学习路线的思维导图如下:
1 基础语法
1.1 注释
Java代码中的注释分为三种形式,分别是单行注释、多行注释和文档注释。
注意:
1.多行注释不能嵌套多行注释;
2.文档注释用来解释这段代码的作用,敲/**然后回车会自动生成。
1.2 数据类型
Java的数据类型主要分为两大类,基本类型和引用类型。
字面量
代码中直接写出来的数据类型值就叫字面量,代码中具体使用如下。
注意:Java中if语句的条件必须是布尔类型,不像其它语言变量非0即表示真。
字面量中的转义序列的写法如下(右边为其对应的Unicode编码):
注意:
1.引用类型类似于C语言里面的指针类型;
2.字符串类型属于引用类型,字符串内容为空代表指向的位置不放任何字符串,而空值null表示没有任何指向;
3.为了增加代码的可读性,Java中可以在数字中使用下划线区分数字位数或者字节分组,具体使用示例如下图。
变量初始化
1.Java中任何变量在使用之前都必须要进行初始化(赋值);
2.局部变量:需要程序员手动初始化;
3.非局部变量(实例变量、类变量):编译器会自动给未初始化的变量设置一个初始值。
1.3 运算符
注意:
1.运算符的优先级上面一行比下面一行高;
2.同一行的优先级一样;
3.当多个优先级一样的运算符一起使用时,按照结合性进行运算(只有赋值运算符的结合性是从右到左,其他运算符的结合性都是从左到右);
4.为了保证运算符按照预期执行,尽量多使用小括号;
5.算术表示式的运算结果必须被使用。
字符串的拼接
位运算
运算符中的按位与&
、或|
、异或^
不仅可以应用到整数类型,还可以应用到布尔类型。
按位与&
、或|
、异或^
不具备短路功能,而逻辑与&&
、或||
具有短路功能,即只要第一个条件成立就不会执行后面的条件。
其它位运算符:
1.4 类型转换
类型转换分两种:拓宽和窄化。
注意:布尔类型和其它类型之间不能相互转换。
一元数字提升:表示将byte、short、char类型的一元数字自动提升为int类型(属于拓宽基本类型转换)。
在什么情况会自动提升:
注意:图中程序倒数第一句是字面量赋值给char类型,可以执行;而倒数第二句是int类型赋值给char类型,需要加一个强制转换。
二元数字提升:即如果二元运算的两个变量类型不一样的时候,需要转换成数据范围大的那个变量的类型,如果既不是double又不是float也不是long,那么大家都转换为int。
图中代码第三行两个byte相加都会转换成int,int到byte需要强制转换,第四五行有byte就会转换成int。
1.5 关键字和标识符
关键字
标识符
命名建议:
1.6 数组
数组的创建:
数组的内存:
数组的遍历:
注意:可以直接输出数组元素,如果输出数组会打印数组类型和十六进制的哈希值。
1.7 方法
Java中的方法其实就是其他编程语言中的函数。
方法中的可变参数:
用三个点表示,可以传递任意数量类型的参数。
参数传递
八种基本类型和引用类型(数组、对象)的参数传递类型不一样。
方法的签名和重载
方法签名包括方法名和参数类型。
注意:在同一个类中不能定义2个方法签名一样的方法。
方法中的栈帧
递归调用:栈帧的逐步创建和销毁