一、词法结构
在词法分析阶段,源代码被分解为空白符、注释以及词法符号
1.空白符:
包括空格(半角),制表符和回车换行符(全角宽,半角窄——》代易错的地方)
作用:
(1).用于分隔两个相邻的此法符号
(2).使程序更易读
2.注释
用于对源程序进行说明,提高代码的可读性
格式:
(1).//comments:用于单行注释
(2)./*comments*/:用于单行注释或者多行注释
(3)./** */:用于单行或者多行注释:java doc注释,用于注释类,属性和方法(描述详细)对方发说明返回值及其类型
(4).可以通过javadoc.exe 提取java doc注释到帮助文档中
cmd——》javadoc -d 目标路径 源码路径
3.词法符号
关键字(用于控制如何定义程序的特殊标识符)
标识符:用作类,接口,方法,变量和包的名字
常量:分为字面常量和静态常量
运算符:《略》
分隔符:(),[],{},,,.,;等
二、数据类型
java是强类型语言,变量声明时必须显示声明类型,分为两大类:基本类型和引用类型
1.数值型:
都有正负号(除了零),都有固定的取值范围,可以跨平台
(1).整型
i).字面常量默认为int型 (超过后+L)
ii).可以用八进制、十进制、十六进制表示
iii).如果,没有超出byte,short或者char的范围,则可以把字面常量直接赋值给该类型的变量
iv).如果字面常量介于int和long的范围之间,则在数值后面加上L
(2).浮点型
i).字面常量默认为double型(把字面常量给float要+F)
ii).如果把字面常量赋值给float,则需要在数值后加上f
2.字符型+转移字符
一个字符为两个byte,字符型基本质为整型
3.布尔型
常量:true和false
三、运算符
1.算术运算符
+,-,*,/,%(运算结果的符号与左边操作数保持一致),++,--
2.位运算符
^,~,&,|
3.比较运算符
>,==,>=,<,<=,!= PS:(!=和==(比引用的地址,比基类的值)可以操作任意类型)
4.位运算符
&&,||,|,&,!(PS:&&、||(短路与,短路或):操作数为Boolean型,结果也是Boolean型)
5.赋值运算符
=,+=,-=,*=,/=
6.以为运算符
>>,>>>,<<
7.三目运算符
op21?op2:op3
op1为布尔值,op2和op3必须是兼容类型
8.类型提升
(1).byte,short,char参与运算时,自动提升为int类型,++和--型除外
(2).当一个操作数为double,则另一个也自动转换为double,结果也为double
…… float, …… float, …… float
…… long, …… long, …… long
否则都为int型。
四、表达式
是由运算符和操作数按照一定的语法规则连接起来的式子包括常量,变量,方法调用,数组访问,创建对象,等。
五、语句
包括空语句,表达式语句,块语句,循环语句,跳转语句,同步语句(多线程),异常语句。
ps:标号语句:用于标识紧随它的循环体
六、数组
用于存放一组相同、树木固定的数据
1.数组也是对象,通过引用来操作,如果引用的值为null,则抛出空指针异常(NullPointerException)
2.数组能容纳元素的个数称为数组的长度,通过length属性获取
3.数组元素通过数组名+下标值来访问
数组的初始化:
int[] arr1 = new int[10];//默认初始化,指定长度
int[] arr2 ;//显示初始化,根据元素个数定长度
arr2 = new int[]{2,4,3,1,5};
int [] arr3 = {3,2,1,4,5};//显示初始化,根据元素个数定长度
数组常见异常类型:
ArrayIndexOutOfBoundsException(数组下标越界异常)
NullPointerException(空指针异常)
NegativeArraySizeException(下标异常)
常用方法:
equals(),clone(),arraycopy(),copyOf(),copyOfRange()方法
4.可以定义任意类型的数组
5.数组对象可以在创建对象时指定
6.二维数组是数组的数组
二维数组的元素是一维数组
每一位数组的长度可以不一致
JVM认为二维数组中存放着一维数组的引用,所以在clone二维数组时持有的一维数组是相同的。