1、注释(comments)
1、单行注释 //...
2、多行注释 /*...*/
3、文档注释 /**...*/文档注释中可以有很多可选参数@author、@param等
命令:
javadoc -d doc(生成后的API存放位置) (-author -version...) className.java
javadoc -d doc (-author -version...) *.java
javadoc -d doc (-author -version...) @file(文件中保存着源文件的路径)
2、标识符(需要程序员自己起名字的)
1、标识符组成:字母、数字、下划线和美元符号,没有长度限制(java中)
2、命名规则:
1、标识符不能是关键字、保留字(主要是C语言中的关键字)
2、第一个字母不能是数字
3、标识符不能是[true、false(非关键字)]和null
4、标识符区分大小写
注意:中文、特殊词(System、String等)可以用,但不建议
3、数据类型
1、基本数据类型(四类八种)
逻辑类型:boolean(true、false)
整数类型:byte(8位)、short(16位)、int(32位)、long(64位)[最高位为符号位,其余为数值位]
字符类型:char(16位)
浮点类型:float(32位)、double(64位)[最高位为符号位,其余为数值位]
注:
精度从低到高的排列:byte、short、char、int、long、float、double
在计算机中整型可以精确存储,很多小数不能精确存储
小数一般使用double数据类型进行保存,保留16位有效数字(没有进位):0.123456789123456789(18位)存在计算机中为0.1234567891234567(16位)
采用float数据类型进行保存时,保留8位有效数字(有进位):0.123456789123456789f(18位)存在计算机中为0.12345679(8位)
char 'a'可以用字符'a'、(ASCll码)数字97、(Unicode)'\u0060'进行表示
数据类型转换
1、整形之间(或浮点型之间):
窄类型转宽类型 隐式转换 int i; long l = i;
宽类型转窄类型 强制转换 long l; int i = (int)l;
2、整形转浮点型 隐式转换 int i; float f = i;
3、浮点型转整形 强制转换 float f; int i = (int)f;
2、引用数据类型
1、类类型
2、接口类型
3、数组
4、枚举类型
4、变量(基本变量、引用变量)
1、定义
数据类型 变量名=value; //声明(statement)变量并初始化
数据类型 变量名; 变量名=value;
2、局部变量
定义在类中的{}中的变量,可以是在方法、代码块、构造器中等
作用范围(生命周期):从声明初始化变量这一行开始到变量所在的{}结束
使用:局部变量没有默认值,使用之前需要赋值(初始化)
3、实例变量(成员变量、属性、field)
定义在类中的任意位置的变量(不在类中的{}内)
作用范围(生命周期):从创建这个变量所在的类的对象(实例)开始到对象的销毁(垃圾回收器回收)
使用:实例变量等到创建对象(实例)时才有意义,JVM会给其默认初始化值(被final修饰的成员变量需要显示的进行赋值)
整形是0(long 0L),浮点型是0.0f(d),char是'\u0000',boolean是false,其他的为null
4、局部变量不能被访问控制修饰符和static修饰;局部变量和实例变量可以被final修饰
5、操作符
1、赋值操作符
=、+=、-=、/=、*=
2、算术操作符
+(还可以做连接字符串的连接符)、-、*、/、%(mod)取余
3、比较操作符
>=、>、<=、<、==、instanceof(判断一个引用类型所引用的对象是否是一个类的实例。该操作符左边是一个引用类型,右边是一个类)
4、相等操作符
==、!=
==和equals的区别
1、两者都用于比较,返回值都是布尔类型的值;
2、==是运算符,equals是Object类【该类是Java体系中所有的父类】中的方法;
3、==和equals在默认情况下都是比较两个对象的内存地址
4、当重写了Object类中的equals方法,则会按照重写的规则进行比较;
5、==既能比较基本数据类型也能比较引用数据类型,而equals只能比较引用数据类型
5、对二进制数操作
1、移位运算符
>>(算术右移)、<<(算术左移)、>>>(逻辑右移)
算术移位:带符号 逻辑移位:不带符号位
2、位运算操作符
&(按位"与")[同为1为1,否则为0]、|(按位"或")[同为0为0,否则为1]、^(按位"异或")[相同为0,不同为1]、~(按位"取反")[int x=6; int y=~x; y=-7;]
6、逻辑运算符
&&(逻辑"与")[同为true为true,否则为false]
||(逻辑"或")[同为false为false,否则为true]
7、条件运算符
逻辑表达式(true or false) ?表达式1(true) :表达式2(false);
表达式的结果会根据表达式12中精度最高的进行隐式转化
显示转化:false?int:char(byte、short); 输出结果为char(byte、short)、char和byte、short结果均为int
隐式转换:浮点型和其他基本类型(除Boolean),long和其他基本数据类型(除boolean和浮点型)
6、流程控制语句
条件控制语句
1、if else(连续性)
2、switch case(离散性)
放在case 数据类型 :byte,short,char,int,String(JDK1.7后),枚举类型(enum)(JDK1.5后)
case中的{}可以不写;没有break的情况下:先去匹配case中的值,如果没有,则执行default以及default以下的;如果有,则执行这个case及case以下的。等case匹配完才执行的default。无论default处于什么位置,都不会首先执行。
循环控制语句
1、for
明确了循环次数
2、while
3、do while
先执行一次代码
其他
1、continue
跳出当前循环的当次循环执行下一次循环
2、break
跳出当前循环
这两个一般放在循环语句中执行;其后面可以加标签,表示跳到(跳出)标签指定的程序,eg:continue b1;break b1;
7、数组(array)
1、数组是什么?什么时候用数组?
程序运行过程中帮我们临时存放相同数据类型数据的容器
2、数组是对象,数组不是类,数组是引用类型
3、声明数组
int[] arr;
int arr[];
4、数组的初始化
int[] arr = new int[3(也可以是变量)];JVM会给其开3块连续的内存空间,并初始化
如果是变量:
int len=0;
if(args.length!=0){
len = Intager.parseInt(args[0]);
}
int[] arr = new int[len];
5、数组的遍历
1、主要是边界问题(数组越界):编译没问题,运行报错(ArrayIndexOutOfBoundsException)
2、数组浪费空间
6、基本数据类型的数组和引用数据类型的数组
一个存放的是基本数据类型的数据,一个存放的是引用(地址值)
7、多维数组(225维数组)
JVM一共可以创建225维;数组的数组的...
8、可变参数
public void print(int... args){}
...表示可变参数,必须放在参数列表的最后 eg:print(1,2,3,4);print(1,2,3);个数不限