二、java基础
1、系统结构图(xmind)
PS:语句,函数,数组部分未列出。
2、Tips
——1. 标识符名称规范
包名:多单词组成时所有字母都为小写:xxxyyyzzz。
类名与接口名:多单词组成时,多有单词的首字母大写:XxxYyyZzz。
变量名和函数名:多单词组成时,第一个单词首字母小写,第二个单词开始每个单词首字母大写:xxxYyyZzz。
常量名:所有字母都大写,多单词时每个单词用下划线连接:XXX_YYY_ZZZ。
——2. 进制转换
1.十进制转二进制原理:对十进制数进行除2运算。
2.二进制转十进制原理:二进制乘以2的过程。
3.十进制转八进制原理:八进制即是二进制位,3个二进制位即为一个八进制位。
4.十进制转十六进制原理:十六进制同为二进制位,由4个二进制位组成一个十六进制位。
5.负数的二进制表示形式就是对应的正数二进制取反加1
栗:求-8的二进制表现形式:
-7
0000-0111
取反: 1111-1000
加1 : 1111-1001
负数的二进制最高位永远是1.
——3. 变量
1.整数默认类型:int类型,小数默认类型:double类型。
2.定义long类型变量时需要在数值后加上一个"l",就可以让编译器知道这个数值是long类型了
栗:long l = 123456789l;
3.同理定义flaot类型是在数值后加上一个"f"即可。
栗:float f = 2.3f;
——4. 类型转换
栗:
class ClassCastDemo
{
public static void main(String[] args)
{
byte b = 3 + 9;
byte b1 = 3;
byte b2 = 9;
b = b1 + b2;
System.out.println(b);
}
}
运行:
原因分析:报错的位置在第八行的b = b1 + b2,而之前的b = 3 + 9却没有报错,byte的范围是-127~128即8位,确保了这些数字都在byte的范围内,3和9都是常量,编译器知道结果是12,依旧在byte的范围之内,自动提升之后在运算不会报错,而b = b1 + b2中b1和b2都是变量,编译器并不知道他们的值是多少,在两个byte数据相加时,都会被自动提升为int类型,所以和也是int类型,再赋值给byte类型的b时就会报错。
——5. 算术运算符
b=++a与b=a++的不同:
执行b=++a时,先运算++a并保存进变量池a中,之后在将a赋值给b。
执行b=a++时,先运算b=a部分,之后再运算a++,所以b的值为a之前的值。
——6. 逻辑运算符
&&:和&运算的结果是一样的,但是运算过程有点小区别,当左边为false时右边不参与运算,可提升效率。
&:无论左边的运算结果是什么,右边都会参与运算。
同理,||和|相同,前一个当左边为true时右边不参与运算,后一个无论左边为什么,右边都餐与运算。
——7. 位运算符
1. &,|符号同样在位运算符中,运算时先将两边量变为2进制,再运算。
2. >>左移几位其实就是该数据乘以2的几次方。
<< 右移几位其实就是改数据除以2的几次方。
>>对于高位出现的空位,原来高位是什么,就用什么补这个空位,而>>>无符号右移,在数据进行右移时,高位出现的空位,无论原高位是什么,空位都用0补。