1. 标识符命名规则:
包:
单级包:全部小写 liuyi
多级包:小写且用.隔开 cn.cast
注:java.lang包下的类不需要导入,其他的全部需要导入
类或者接口:
一个单词:首字母大写 Student
多个单词:每个单词的首字母必须大写 SudentName
方法或者变量:
一个单词:单词的首字母小写 main, age
多个单词:从第二个单词开始,每个单词的首字母必须大写 studentAge
常量:
一个单词:全部大写 PI
多个单词:每个字母都大写,用下划线隔开 STUDENT_MAX_AGE
注意事项:不能以数字开头;不能是关键字;区分大小写
2. 注释
单行注释://
多行注释:/* */
文档注释: /** **/
(1)解释说明程序,提高程序的阅读星
(2)帮助调试程序
3. 原码反码补码
原码:最高位为符号位,符号位0是正数,1是负数,其余位表示数值大小
反码:正数的反码与原码相同,负数的反码是对原码逐位取反,但符号位除外
补码:正数的补码与原码相同,负数的补码是在其反码的末位加1
计算机中数据的运算都是补码进行的
4. 变量
变量的组成规则:
(1)必须用数据类型进行限定
(2)给变量存储的空间起一个变量名
(3)初始化值
使用变量时需注意的问题:
(1)作用域:变量定义在哪个大括号内,它就在哪个大括号内有效。并且,在同一个大括号内不能同时定义同名的变量。
(2)推荐在变量定义的时候给定初始化值
5. 基本数据类型
(1)整数 占用字节数
byte 1
short 2
int 4
long 8
(2) 浮点数 占用字节数
float 4
double 8
(3)字符
char 2
(4)布尔
boolean 1
整数默认为int类型,浮点数默认为double类型
长整型后缀最好用L标记,比如10000000000L,不然超出int范围的整数会报错
单精度浮点数后缀用F标记,不然会容易损失精度
数据类型转换
基本数据类型默认转换是从小到大 (byte,short,char(这三个相互之间不转换))-int-long-float-double,从大到小可以采用强制类型转换。两个变量算术运算时,先是类型提升,然后计算得出结果;常量是先计算,然后看结果是否在赋值的类型范围内
byte,short定义的时候接受的实际上是一个int值
byte a = 3;
int b = 4;
byte c = a+b; //有问题
int c = a+b; //没问题
byte a1 = 4, a2 = 3, a;
a = a1+a2 //有问题,a1+a2加法后默认为int类型
a = 3+4 //没问题,常量计算先把结果计算出来,然后看是否在byte的范围内,如果在就不报错
强制转换后数据溢出
byte b = byte(130) //数据溢出,但不会报错
分析过程:
(1)获取130这个数据的二进制为 00000000 00000000 00000000 10000010 (默认为int类型)这既是原码也是补码
(2)做截取操作,截成byte类型 10000010 这是补码
(3)已知补码求原码 先求反码10000001 ,再求原码11111110 即-126
注:-128的原码为10000000
字符串相加
字符加数字为数字类型
字符串数据和其他数据做加法运算,结果是字符串类型,从左到右计算
System.out.println('a'+1) //98
System.out.println("Hello"+'a'+1); //Helloa1
System.out.println('a'+1+"hello"); //98hello
System.out.println("5+5="+5+5): //5+5=55