1. 关键字
-
关键字是被java语言赋予特定含义的单词
-
特点:全部小写
-
注意事项: goto、const作为保留字,目前不适用
另附关键字表:
访问控制 | private | protected | public | ||||
---|---|---|---|---|---|---|---|
类,方法和变量修饰符 | abstract | class | extends | final | implements | interface | native |
new | static | strictfp | synchronized | transient | volatile | ||
程序控制 | break | continue | return | do | while | if | else |
for | instanceof | switch | case | default | |||
错误处理 | try | catch | throw | throws | finally | ||
包相关 | import | package | |||||
基本类型 | boolean | byte | char | double | float | int | long |
short | null | true | false | ||||
变量引用 | super | this | void | ||||
保留字 | goto | const |
2. 标识符
-
就是给类、接口、方法、变量等起名时使用的字符序列
-
组成规则:
- 英文大小写字母
- 数字字符
- $ 和 _
-
注意:
- 不能以数字开头
- 不能是 java 中的关键字
- 区分大小写
3. 命名规则(见名知意)
-
包:用于将相同的类名进行区分(全部小写)
- 单级:例如:itcast
- 多级:用点(.)分隔。例如:cn.itcast
-
类或接口:
- 一个单词组成:单词的首字母必须大写(例如:Student)
- 多个单词组成:每个单词的首字母必须大写(例如:HelloWorld)
-
方法或变量:
-
一个单词:单词的首字母小写(举例:main、age)
-
多个单词:从第二个单词开始,每个单词的首字母大写(studentAge,showAllNames)
-
-
常量:
- 一个单词:全部大写(例如:PI)
- 多个单词:每个字母多大写,单词之间用下划线(_)隔开
4. 注释
用于解释说明程序的文字。
- 单行注释: //注释文字
- 多行注释:/* 注释文字 */ (多行注释不能嵌套使用)
- 文档注释:被javadoc工具解析生成一个说明书。/** 注释文字 **/
养成良好的编程习惯,先写注释再写代码
注释:
- 需求
- 分析
- 实现
5. 常量
-
在程序执行的过程中其值不可以发生改变
-
常量的分类:
-
字面值常量
- 字符串常量:用双引号括起来的内容
- 整数常量:所有整数
- 小数常量:所有小数
- 字符常量:用单引号括起来的内容
- 布尔常量:只有true和false
- 空常量:null
-
自定义常量
另:
1byte = 8bit
1k = 1024byte
1m = 1024k
1g = 1024m
1t = 1024g
-
进制的表示:
-
二进制:以0b开头
-
八进制:以0开头
-
十进制:默认
-
十六进制:0X或0x
3.有符号的数据的表示法(计算机在操作的时候都是采用二进制对应的补码进行运算的)
-
原码:由符号位和数值位组成
1)正数的符号位是 0
2)负数的符号位的 1
3)其他是数值位
-
反码:
1)正数的反码与其原码相同。
2)负数的反码与原码是符号位相同,数值位取反(1变0,0变1)
-
补码:
1)正数的补码与其原码相同
2)负数的补码是在反码的基础上加1
正数的原码,反码,补码相同
6. 变量
-
在程序的执行中,在某个范围内其值可以发生改变的量
-
变量定义格式
-
数据类型:变量名 = 初始化值
7. 变量的数据类型
java语言是强类型语言,对于每一种数据都定义了明确的具体数据类型。
-
引用数据类型:
- 类(class)
- 接口(interface)
- 数组( [ ] )
-
基本数据类型
- 数值型:
1) 整数类型(默认为int)
关键字 | 占用字节数 |
---|---|
byte | 1 |
short | 2 |
int | 4 |
long | 8 |
2) 浮点类型(默认为double)
关键字 | 占用字节数 |
---|---|
float | 4 |
double | 8 |
3) 字符型
关键字 | 占用字节数 |
---|---|
char | 2 |
4)布尔型
关键字 | 占用字节数 |
---|---|
boolean | 1 |
注意:
-
长整形( long )需使用 L或l标记,建议使用L
建议以后使用 long 类型都加 L
即:
long j = 10000000000000000L;
-
单精度浮点数( float )使用 F或f标记,建议使用F
同理以后使用 float 类型都加 F
即:
float f = 12.345F;
使用变量的注意事项:
- 作用域:
变量定义在哪个大括号内,它就在这个大括号内有效。并且,在同一个大括号内不能同时定义同名变量
-
初始化:
- 没有初始化的变量变量直接使用
- 只要在使用前赋值即可,但建议定义时赋值
- 可以在一行定义多个变量,但不建议
8. 变量的类型转换
一般来说,我们在运算的时,要求参与运算的数据类型必须一致
-
默认转换:(从小到大的转换)
- byte,short,char—int—long—float—double
- byte,short,char相互之间不转换,它们参与运算首先转换为int类型
-
强制转换
格式:目标数据类型 变量 = (目标数据类型)(被转换的数据) ;
byte a = 3;
int b = 4;
byte c = (byte)(a + b);
不要随意使用强制类型转换,因为它隐含了精度损失问题
注意:
float f1 = (float)12.345;
float f2 = 12.345F;
f1 其实是通过一个 double 类型转换过来的
而 f2 本身是一个 float 类型
建议使用 f2
思考题:
byte b1 = 3, b2 = 4, b;
b = b1 + b2;
b = 3 + 4;
3出错 因为b1和b2将被默认类型转换,类型提升为int,将int类型赋给byte会损失精度
4不出错 因为常量的计算会先将其计算出来,看是否在byte的范围内,如果在就不报错
另:ASCII码
‘0’— 48
‘A’— 65
‘a’— 97
public class helloworld {
public static void main(String[] args){
System.out.println("hello"+'a'+1); //输出helloa1
System.out.println('a'+1+"hello"); //输出91hello
System.out.println("5+5="+5+5); //输出5+5=55
System.out.println(5+5"=5+5"); //输出10=5+5
}
}
注意
-
从左到右计算
-
字符串数据和其他数据做 + ,结果是字符串类型。其中 + 不是加法运算,而是字符串连接符