一、数据类型及其字节数
Java的数据类型分为:
1、基础数据类型:①byte,1个字节 ②short,2个字节 ③int,4个字节 ④long,8个字节 ( ①~④为整型,java默认为int)
⑤float,4个字节(也称单精度,精确到6-7位有效数字)
⑥double,8个字节(也称双精度,精确到15-16位有效数字) (⑤~⑥为浮点型不能用于等值比较,java默认为double)
⑦char,字符型,2个字节(Java中char类型表示的是unicode编码表中的字符。占两个字节)
⑧boolean,布尔型,1个计算机位 (1字节=8个计算机位)
2、引用型:①类(class) ②接口 ③数组 (均可自定义)
整型字节的表示数字范围为[-2n-1,2n-1-1],这里的 n = 字节数 * 8,e.g:byte的表数范围为[-128,127]
二、进制转换
以十→二为例: ①二→十:自右向左:1010 => 0x20+1x21+0x22+1x23=10 ②Java中八进制以0开始。八→十:017=> 1x81+7x80 = 15
获得二进制结果1010 ③Java中十六进制以0x开始,十六→十:0x17 = 1x161+7x160 = 23
三、计算机编码
计算机只认识0和1,而字符不能直接转成二进制,人为的定义一套编码机制把字符和二进制对应起来。
常见字符编码集
ASCII
ISO-8859-1 西欧字符集
GB2312 大陆使用最早、最广的简体中文字符集
GBK GB2312的扩展,可以表示繁体中文
Unicode 国际通用字符集
当用户输入的文件保存到计算机时,把字符编码成二进制,这个过程称为编码。当用户把文件从硬盘打开时,把二进制解码成字符,这个过程称为解码。
四、 变量、常量、方法、类的命名规则和规范
1、命名规则:[1] 变量名可以由字母、数字、_、$构成。[2] 变量名不能以数字开头。[3] 不能用java的关键字
2、规范:①变量、方法:[1] 驼峰命名法(首个单词都小写,后续具有单个意义的单词首字符大写)。[2] 见名知意
②常量:(常量只能初始化一次,用final修饰) 大写字母和下划线:final float MAX_VALUE= 200.5f;
③类名:首字母大写和驼峰原则: Man, GoodMan
五、局部变量和实例变量
1、在方法或者语句块({ })中声明的变量称为局部变量,局部变量必须先声明后赋值再使用。
2、在方法外,类的内部声明的变量称为实例变量,实例变量可赋初始值,也可以不赋初始值。若不自行初始化,jvm会自动初始化成该类型的默认初始值
数值型变量初始化成0或0.0、字符型变量的初始化值是16位的0,也可以写成‘\u0000’、布尔型默认是false
六、 运算符
1、赋值运算符
2、算术运算符:+、-、*、/、%(取余(求模)模谁就不会超过谁!)
/ 在java中表示整除,整数和整数运算得到的一定是整数;只要有小数参与整除得到的一定是小数,除数不能为0
i++/i-- (i先参与运算,运算完成i自加/自减1)、++i/--i (i在参与运算前就自加/自减1)
3、关系运算符:用于逻辑判断或比较,结果是boolean:>、>= 、<、<= 、== 、!=
4、逻辑运算符:&&(短路运算:&& 若第一个表达式是false,第二个表达式不在运算)、 ||(短路运算:||若第一个表达式是true,第二个表达式不在运算)、!
5、条件运算符:三目运算符
6、拓展运算符:+=、-=、*=、/=、%=(常用的x += n => x递增n,x -= n => x递减n,x *= n => x倍增n)
7、位运算符:按位与(&)、按位或(|)、按位异或(^)、取反(~)、左移(<<)(左移n位,原值乘2n)、右移(>>)(右移n位,原值除2n,取整)
七、类型转换
1、 自动类型转换:[1] 容量小的数据类型可以自动转化成容量大的数据类型 [2] 类型相兼容(数值型(整形和浮点型想兼容)、整形和char类型相兼容)
另外,jvm优化:整型常量可直接赋值给byte, short, char等类型变量,而不需要强制类型转换,只要不超出其表数范围。e.g:byte g = 127;char h = 98;
2、强制类型转换:eg:int e = 97;char f = (char)e;(当将一种类型强转成另一种类型时,超出了目标类型的表数范围,就会被截断成为一个完全不同的值)
八、&和&&、| 和 || 的异同
1、&和&&的共同点:当&和&&符号左右两边的结果都是boolean类型变量时,&和&&都可以用作逻辑与运算符。
两边的都为true时,整个运算结果才为true,否则,只要有一方为false,结果都为false。
2、&和&&的区别:
① 对于&:无论任何情况,&两边的操作数或表达式都会参与计算。
对于&&:当&&左边的操作数为false或左边表达式结果为false时,&&右边的操作数或表达式将不参与计算,此时最终结果都为false。
② &还可以用作位运算符。当&两边操作数或两边表达式的结果不是boolean类型时,&用于按位与运算符的操作。
| 和 || 的区别和联系与&和&&的区别和联系类似。