数据类型:
基础数据类型:整型,浮点型,字符型,布尔型
引用数据类型:类、接口、数组
基础数据类型:
字节: 1byte 8位 范围:因为首位为符号位,所以±2的7次方
short: 2byte 16位 范围:首位为符号位,±2的15次方
int : 4byte 32位 范围:首位为符号位,±2的31次方
long : 8byte 64位 范围:首位为符号位,±2的63次方
float: 4byte 32位 首位符号位,8位指数,23位小数
double:8byte 64位 首位符号位,11位指数,52位小数
运算符:
+,-,乘,/,%,!
+=,-=,*=,/=,%=,?= <,>,>=,<=,==,!=
++,-- a++,先运算,在增加。例:a=3,a++, a先等于3 后等于4。
&,&&,|,||
位运算:&按位与,|按位或,^异或,~取反,>>右移位,<<左移位,>>>无符号移位
位运算:正数的原码,反码,补码一样
负数的原码符号位(第一位)为1 ,这一位是符号位
反码:除符号位全取反
补码:反码+1
计算机中负数最终是以补码参与位运算
程序控制:
if else ,while,do…while,switch,for循环
break:打断整个循环, continue打断本次循环
数组:
数组类型 数组名[] = new 数组类型[数组长度]
二维数组,三维数组,多维数组、、、
数组长度是int值,最大是2的31次方,最大是2G
方法:
修饰符 返回值类型 方法名(参数类型 参数名){
…
方法体
…
return 返回值;
}
方法的命名规则
方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。
方法的重载
一个类的两个方法拥有相同的名字,但是有不同的参数列表,如下面代码所示:
public static double max(double num1, double num2) {
if (num1 > num2)
return num1;
else
return num2;
}
public static double max(int num1, int num2) {
if (num1 > num2)
return num1;
else
return num2;
}
方法的递归
一个方法调用方法本身,如下面代码所示:
public static void main(String args[]) {
m(9);
}
/**
* 打印出九九乘法表
* @param i
*/
public static void m(int i) {
if (i == 1) {
System.out.println("1*1=1 ");
} else {
m(i - 1);
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + j * i + " ");
}
System.out.println();
}
}
递归的方式调用图示:
每一个方法的调用都会产生一个栈帧,压入到方法栈,当递归调用的时候,方法栈中栈帧的图示和上图类似。去掉方法中栈帧的引用关系更加直观:如下图所示: