Day 05(总汇)【图片见前方随笔】
Markdown学习
-
标题格式,#加空格
-
字体,字体两边两边加*
-
引用,>加空格,加引用来源
-
-
图片
-
超链接,
-
列表
Dos命令
CMD打开方式
-
命令指示符
-
Win加R
-
shift+鼠标右键,打开命令行窗口
-
地址栏前加上CMD
常用的DOS命令
-
盘符切换
-
查看当前目录下的所有文件 dir
-
CD 如下图
-
ping命令
-
文件操作
md 创建文件夹
rd 移除文件夹
cd>文件名 创建文件
del 文件名 删除文件
HelloWorld
-
新建一个文件夹,存放代码
-
新建一个java文件
。Hello.java
-
编写代码
public class Dadashisb{
public static void main (String[] args){
System.out.print("Dadashisb");
}
} -
编译javac java文件,会生成class文件
-
运行class文件java class文件 如下图
注意事项:文件名和类名必须保持一致
Day02
Java程序运行机制
编译型
解释型
程序运行机制
源程序(.java文件)>>>java编译器>>>字节码(.class文件:类)>>>类装载器>>>字节校验器>>>解释器>>>操作系统平台
IDEA(集成开发环境)
安装与基本操作
JAVA基础语法
注释
单行注释与多行注释和文档注释,如下图
标识符
关键字:
类名:
变量名
标识符注意点
-
所有表示辅都应该以字母,美元符,或者下火下开始
-
首字母之后可以是字母,美元符,下划线或者数字的任何组合
-
不能使用关键字作为变量名或者类名
-
标识符是大小写敏感的
数据类型
强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用 弱类型语言:变量的使用可以不用符合规定
JAVA的数据类型分为两大类;
基本类型(primitive type):整数类型,浮点类型,字符类型(char),boolean类型 引用类型(referrence type):类,接口,数组
字节: 位(bit):计算机内部数据储存的最小单位,11001100是一个八位二进制数 字节(byte):习惯上用B表示 1B=8bit
Day03
数据类型拓展
二进制: 十进制:010 十六进制:0x eg:0x10
浮点数拓展:字节的不同会导致比较的不同,所以最好 完全谁用浮点数进行比较
如下:
public class demo02 {
public static void main(String[] args) {
//整数拓展: 进制 二进制0b 十进制 八进制 十六进制
int i=10;
int i2=010;//八进制0
int i3=0x10;//十六进制 0x 0~9 A~F 16
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("============================");
//====================================
//浮点数拓展 eg:银行业务的表示 BigDecimal
//float 有限的 离散的 舍入误差 接近但是不等于
// 与double
//最好完全使用浮点数进行比较
//BigDecimal 数学工具类
float f=0.1f; //0.1
double d=1.0/10; //0.1
System.out.println(f==d);
float d1=2323233232323f;
float d2=d1+1;
System.out.println(d1==d2); //true ,因为是有限的字节,所以 忽略 了 1
//==============================================
// 字符拓展
//============================
char c1='a';
char c2='中';
System.out.println(c1);
System.out.println((int)c1); //强制换行
System.out.println(c2);
System.out.println((int)c2);//强制换行
//所有字符的本质还是数字,通过编码Unicode编码转换,eg(97=a, 65=A) 2字节 0~65536
//转义字符 非常多,自己测试
// \t 制表符
// \n 换行
System.out.println("HELLO\tWORLD");
//======================================
String sa=new String("dadashisb");
String sb=new String("dadashisb");
System.out.println(sa==sb);//FALSE
String sc="dadashisb";
String sd="dadashisb";
System.out.println(sc==sd); //TRUE
//对象,从内存分析
//布尔值扩展
boolean flag=true;
if (flag){}// if(flag==true)
}
}
字符拓展:、
所有字符本质是数字,通过Unicode编码进行转换
转义字符:非常多。eg:\t,\n等等等等
类型转换
低---------------------------高 (小数的优先级大于整数) byte,short,char->int->long->float->double 运算中,不同类型的数据先转化成统一类型,然后进行运算
注意溢出问题,以及转换问题,详情见demo03,如下:
public class demo03 {
public static void main(String[] args){
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间用下划线分割
int money=10_0000_0000;
int years=20;
int tatal=money*years; //此时会溢出
long total2=money*years; //由于money和years都是int,所以转换之前已经存在问题
long total3=money*((long)years); //先把一个数转换成long
System.out.println(total3);
//除了转换类型,类也可以转换
}
}
变量
变量:可以变化的量 //栈?? 每个变量必须声明其类型 JAVA变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
注意事项:
-
每个变量都有类型,类型可以使基本类型,月可以是引用类型(变量八大基本类型)
-
变量名必须是合法的标识符(注意day02中的常用标识符)
-
变量声明是一跳完整的语句,因此每一个变量声明必须以分号结尾
变量作用域
类变量:写在类里面 实例变量:写在类中间 局部变量:写在方法里
public class demo05 {
//属性:变量
//类变量 static 只要加了static这个关键词,
static double salary=2500;
//实例变量:从属于对象,如果不自行初始化,这个会变成这个类型的默认值
String name; //不用初始化 但是用,就需要一些操作
int age;
//main方法
public static void main(String[] args){
//局部变量:实在方法里面的,再两个大括号之间的 ,使用之前必须声明和初始化值。这些声明只在这个括号里面有用
//方法块,代码块,作用域就比较宽
//变量类型(就是demo05) 变量名字=new demo05();
demo05 demo05 = new demo05();
System.out.println(demo05.age); //输出是10,由于没有自行初始化,所以输出为这个类型的默认值
System.out.println(demo05.name); //输出是null
/*
所有数字类型初始化一般都是0(整数)和0.0(小数),
字符串变量初始化会是一个16位的0,即u0000,
布尔值:会默认是false
除了基本类型,其余的默认值都是null
*/
//类变量 static 只要加了static这个关键词,就可以直接使用,后面会重点讲,前期学习都用这个,后面回血new
System.out.println(salary); //此时可以直接输出salary
}
}
常量
常量:初始化之后就不能再改变值,不会变动的值 可以理解成一种特殊的变量,他的值再被设定之后,在程序中就不会再改变
定义方法如下:
final 常量名=值;
eg: final double PI=3.14
//常量名一般都大写
eg:
import java.security.spec.RSAOtherPrimeInfo;
public class demo06 {
//修饰符,不存在先后顺序,有一大堆
static final double PI=3.14; //定义常量,可以直接调用,制作一些长宽高等一系列的东西的时候作用大
public static void main(String[] args) {
System.out.println(PI);
}
}
变量的命名规范
-
所有变量,方法,类名:见名知意
-
类成员变量:首字母小写和驼峰原则:eg monthSalary
-
局部变量:首字母和驼峰原则
-
常量:大写字母和下划线:MAX_VALUE
-
类名:首字母大写和驼峰原则:Man,GodMan
-
方法名:首字母小写和驼峰原则:run();runRUN()
以上重点
static和fanal
命名规范
运算符
算术运算符:+ - * %(取余,念做模),++,--
加减乘除如下:
package base; //代表当前的包
public class Demo07 {
public static void main(String[] args) {
//二元运算符
//ctrl+d 复制当前行到下一行
int a=10;
int b=20;
int c=25;
int d=25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/(double)b); //会有小数,要搞清楚作用范围
}
}
输出字符有优先级,如下
package base;
public class Demo08 {
public static void main(String[] args) {
long a=123123123123123L;
int b=123;
short c=10;
byte d=8;
System.out.println(a+b+c+d); //Long 有long,结果就是long
System.out.println(b+c+d); //int
System.out.println(c+d); //int
}
}
赋值运算符:=
关系运算符:<,>,>=.<=,==,!=(不等于),instanceof
package base;
public class Demo09 {
public static void main(String[] args) {
//关系运算符返回的结果:正确,错误
int a=10;
int b=20;
int c=21;
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
System.out.println(c%a);
}
}
逻辑运算符:&&,||,! (与或非)
位运算符: 条件运算符:? : 扩展复制运算符
Day04
自增自减运算符
++ 与-- 注意a++与++a的区别
package base;
public class Demo10 {
public static void main(String[] args) {
// ++ -- 自增 ,自减 一元运算 符
int a=3;
int b=a++; // 此时b=3,
//执行完这行代码后,先给b赋值,再自增
//即:b=3,然后a=a+1
System.out.println(a); //a=a+1=4
int c=++a; //执行完这行 代码前,先自增,再给c赋值
System.out.println(b);
System.out.println(c);
//幂运算 2*2*2=8
//很多运算会使用 一些工具类 来进行运算 eg:Math类
double piw=Math.pow(3,2);
System.out.println(piw);
}
}
逻辑运算符
与运算:两个为真则运算结果为真 +(a&&b) 或运算:两个中的一个为真,则计算结果为真 +(a||b) 非运算:如果为真,则为假,如果为假则为真 +!(a&&b)
package base;
public class Demo11 {
//逻辑运算符 与 或 非(取反)
public static void main(String[] args) {
boolean a=true;
boolean b=false;
System.out.println("a && b:"+(a&&b));
//逻辑运算:两个变量都为真 ,结果才为真 在计算a&&b的时候,若a为假,则直接结束运算
//不会进行下一步的运算
//详情见下方的短路运算
System.out.println("a || b:"+(a||b));
//或运算: 两个变量又一个为真,则运算结果为真
System.out.println("!a && b:"+!(a&&b));
//非运算,如果是真,则为假,如果是假,则为真
注意短路运算: 在计算a&&b的时候,若a为假,则直接结束运算不会进行下一步的运算
//短路运算 int c=5; boolean d=(c<4)&&(c++<4); System.out.println(d); System.out.println(c); //输出c的结果为5 /* 因为c<4为false,所以就终止了下一步(c++<4)的计算 所以输出的c结果为5,如果计算了 (c++<4),则输出结果应该为 6 以上为短路运算 */
位运算
A&B:如果两个都为1,则为1 A|B:如果对位有一个1,则为1(如果对应位都是0,则为0,否则为1) A^B:(异或)如果对应位相同则为0,否则为1 ~B:(取反)与对应位完全相反
举例如下:
/* A=0011 1100 B=0000 1101 则: A&B=0000 1100 A|B=0011 1101 A^B=0011 0001 ~B=1111 0010 */
位运算效率高,是直接与二进制打交道 左移<< :*2 右移>> : /2 如下图:(涉及计算机的组成)
位运算符: 左移,<< *2 右移,>> /2 2*8=16 2*2*2*2=2<<3 如下: 0000 0000 0 0000 0001 1 0000 0010 2 0000 0100 4 0000 1000 8 0001 0000 16
条件运算符:重点(疑问)
三元运算符
?和:
// x ? y : z // 如果x==true,则结果为y,否则结果为z
public class Demo14 {
//条件运算符:?和:
public static void main(String[] args) {
// x ? y : z
// 如果x==true,则结果为y,否则结果为z
int score=80;
String type=score <60 ?"不及格":"及格";
//if语句
System.out.println(type);
}
}
优先级:(),
Day05
包机制
包的本质:一个文件夹 尽量不要让包里面的名字重复
//定义包:package pkJ.a.b.b.b.b.cl; // package.pkj.*; //.*是导入包里面的所有的内容
包的名字:一般 利用公司 域名倒置作为包 名 eg:www.baidu.com com.baidu.www
包的作用:为了使用某一个包的成员,我们需要在 Java程序中期 明确导入该包 ,使用“import”语句可以完成此功能
JavaDoc
javadoc命令是用来生成自己API文档的
参数信息: @auther 作者名 @version 版本号 @since 指明需要最早使用的版本 @param 参数名 @return 返回值情况 @throws 异常抛出情况
package com.base;
//加在类上面就是类的注释,加在方法上,就是方法的注释
//注意注解与注释的区别
/**
* @author 冯继炎
* @version 1.0
* @since 0.8
*/
public class Doc {
String name;
/**
* @auther 冯继炎
* @param name
* @return
* @throws Exception
*/
//这是一个方法,注意与类等其他的判别
//注意注解与注释的区别
public String test(String name) throws Exception{
return name;
}
}
命令行生成文档:
会生成Index.html,即可生成JavaDoc文档
作业:学会查找使用IDEA生成JavaDoc文档
浙公网安备 33010602011771号