1、关键字:
概念:被Java语言赋予特定含义的单词。
特点:组成关键字的字母全部小写。
注意事项:
·goto和const作为保留字使用,目前并不使用(意思是以后可能应用)
2、标识符:
(1)概念:就是给类,接口,方法,变量等起名字时使用的字符序列。
(2)组成规则:由字母,数字,_和$组成。
(3)注意事项:
·不能以数字开头
·不能是Java中的关键字
·区分大小写
(4)标识符的常见命名规则:(见名知意)
A:包(其实就是文件夹,用于将相同的类名加以区分)
全部小写
单级包:liu,com
多级包:com.cn.item 表示三个文件夹一级一级递进。
B:类或接口
一个单词:首字母大写
举例:Student,Demo
多个单词:每个单词首字母大写
举例:StudentName,HelloWorld
C:方法或者变量
一个单词:首字母小写
举例:name,main
多个单词:从第二个单词开始,每个单词首字母大写
举例:studentAge,showAllNames
D:常量
全部大写
一个单词:大写
举例:PI
多个单词:大写,并用_隔开
举例:STUDENT_MAX_AGE
3、注释
(1)概念:对程序进行解释说明的文字
(2)分类:
A: 单行注释://
B: 多行注释/* */ (多行注释不可以嵌套)
C: 文档注释/** */
(3)注释作用:
A:用于解释程序
B: 可以帮助我们调试程序。测试有误代码,可先注释其他代码。
4、常量
(1)概述:在程序执行的过程中,其值不发生改变的量。
(2)分类:
A:字面值常量
B:自定义常量
(3)字面值常量:
A:字符串常量 “hello” ,”world”
B:整数常量 11,23
C:小数常量 1.23,2.5
D:字符常量 ‘a’ ,’A’ , ‘0’
E:布尔常量 true ,false
F:空常量 null
5、进制和转换
(1)进制:是一种进位的方式。
(2)不同进制的数据组成:
A:二进制以0b开头
B:八进制以0开头
C:十六进制以0x开头
(3)进制转换
二进制和十进制间的快速转换:
原码,反码和补码
6、变量
(1)概念:在程序执行的过程中,其值在某个范围内可以发生改变的量。
(2)变量的组成规则:
A:必须用数据类型对其进行限定。
B:在运算时不可能拿着空间进行运算,所以起了变量名。
C:要初始化值。
(3)变量的定义格式:
A:数据类型 变量名=初始化值;
B:数据类型 变量名;
变量名=初始化值;
(4)使用变量时要注意的问题:
作用域:
变量名定义在哪个大括号内,就在哪个里面有效。
同一个大括号不可以定义同名变量。
7、数据类型
(1)数据类型:Java是一种强类型语言,针对每一种数据都定义了明确的数据类型。
(2)数据类型分类:
A:基本数据类型
B:引用数据类型(接口,类,数组)
(3)基本数据类型(4类8种)
A:整数
占用字节数
Byte 1
Short 2
Int 4
Long 8
B:浮点数
占用字节数
Float 4
Double 8
C:字符 char 2
D:布尔 boolean 1
注意:整数默认是int类型。浮点数默认是double,长整数要加L或者l。单精度的浮点数要加F或者f。
8、数据类型转换
一般来说,在运算的时候,要求参与运算的数据类型必须一致。
注意:
(1):boolean类型不能转换为其他数据类型。
(2):默认转换(从小到大):
·byte,short,char---int---long---float---double
·byte,short,char之间不相互转换,他们参与运算首先转换为int类型。
(3)强制类型转换
概述:从大的数据类型到小的数据类型。
格式:目标数据类型 变量=(目标数据类型)(被转换的数据)
注意:不要随意使用强制转换,他隐含了精度损失问题。
·面试题:
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;
byte b4 = 3 + 4;
第三句有问题。因为变量相加,会首先看类型问题,最终把结果赋值的也会考虑类型问题。常量相加,首先做加法,然后看结果是否在赋值的数据类型范围内,如果不是才报错。
·思考题:
byte b = (byte)130;的结果是什么?
我们要想知道结果是什么,就应该知道是如何进行计算的。
而我们又知道计算机中数据的运算都是补码进行的。
而要得到补码,首先要计算出数据的二进制。
A:获取130这个数据的二进制。
00000000 00000000 00000000 10000010
这是130的原码,也是反码,还是补码。
B:做截取操作,截成byte类型的了。
10000010
这个结果是补码。
C:已知补码求原码。
符号位 数值位
补码: 1 0000010
反码: 1 0000001
原码: 1 1111110
所以输出结果是:126.计算机计算时用的是补码,我们看到的数据都是原码。
·字符参与运算:
查找ASCII里面的值:
‘a’ 97
‘A’ 65
‘0’ 48
System.out.println('a');//结果就是a
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
System.out.println(5+5+"=5+5"); 结果是10=5+5
字符串数据和其他数据+,结果是字符串类型。
这里的+不是加法运算,而是字符串连接符。