如果想快速有效的学习,思想核心是“以建立知识体系为核心”,具体方法是“守破离”。反复练习直到熟练。
1.1 注释
用来提高程序的可读性,这些文字性的说明就称为注释。 注释不会出现在字节码文件中,即Java编译器编译时会跳过注释语句。 在Java中根据注释的功能不同,主要分为单行注释、多行注释和文档注释。
- 单行注释: 使用“//”开头,“//”后面的单行内容均为注释。
- 多行注释: 以“/*”开头以“*/”结尾,在“/*”和“*/”之间的内容为注释,我们也可以使用多行注释作为行内注释。但是在使用时要注意,多行注释不能嵌套使用。
- 文档注释: 以“/**”开头以“*/”结尾,注释中包含一些说明性的文字及一些JavaDoc标签(后期写项目时,可以生成项目的API)
1.2 标识符
标识符是用来给变量、类、方法以及包进行命名的。
标识符需要遵守一定的规则:
- 标识符必须以字母、下划线_、美元符号$开头。
- 标识符其它部分可以是字母、下划线“_”、美元符“$”和数字的任意组合。
- Java 标识符大小写敏感,且长度无限制。
- 标识符不可以是Java的关键字。
标识符的使用规范:
- 表示类名的标识符:每个单词的首字母大写,如Boy, GoodBoy
- 表示方法和变量的标识符:第一个单词小写,从第二个单词开始首字母大写,我们称之为“驼峰原则”,如go(), goHome()
【注意】:Java不采用通常语言使用的ASCII字符集,而是采用Unicode这样标准的国际字符集。因此,这里字母的含义不仅仅是英文,还包括汉字等等。但是不建议大家使用汉字来定义标识符!
1.3 Java中的关键字/保留字
Java语言保留供内部使用的,如class用于定义类。 关键字也可以称为保留字,它们的意思是一样的,我们不能使用关键字作为变量名或方法名。
1.4 变量
1.4.1 变量的本质
变量本质上就是代表一个”可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。我们可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。
Java是一种强类型语言,每个变量都必须声明其数据类型。变量的数据类型决定了变量占据存储空间的大小。 比如,int a=9; 表示a变量的空间大小为4个字节。
变量作为程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。变量在使用前必须对其声明, 只有在变量声明以后,才能为其分配相应长度的存储空间。
变量的声明:
/* type varName [=value]; */
//声明变量
int i;
int a = 10;
注意事项
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型。
- 变量名必须是合法的标识符。
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
1.4.2 变量的分类
从整体上可将变量划分为局部变量、成员变量(也称为实例变量)和静态变量。
1.5 常量
常量通常指的是一个固定的值。在Java语言中,主要是利用关键字final来定义一个常量。 常量一旦被初始化后不能再更改其值。
声明格式为:
final type varName = value;
字面常量,而使用final修饰的PI等称为 符号常量。
变量和常量命名规范(规范是程序员的基本准则,不规范会直接损害你的个人形象):
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则: monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则: Man, GoodMan
- 方法名:首字母小写和驼峰原则: run(), runRun()
1.6 基本数据类型(primitive data type)
Java是一种强类型语言,每个变量都必须声明其数据类型。 Java的数据类型可分为两大类:基本数据类型(primitive data type)和引用数据类型(reference data type)。
数据类型的分类
引用数据类型的大小统一为4个字节,记录的是其引用对象的地址!
1.7 运算符
计算机的最基本用途之一就是执行数学运算,作为一门计算机语言,Java也提供了一套丰富的运算符来操作变量。
运算符分类
1.8 类型转换
1.8.1 自动类型转换
自动类型转换指的是容量小的数据类型可以自动转换为容量大的数据类型。如下图所示,黑色的实线表示无数据丢失的自动类型转换,而虚线表示在转换时可能会有精度的损失。
自动类型转换
可以将整型常量直接赋值给byte、 short、 char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围即可。
1.8.2 强制类型转换
强制类型转换,又被称为造型,用于显式的转换一个数值的类型。在有可能丢失信息的情况下进行的转换是通过造型来完成的,但可能造成精度降低或溢出。
语法格式:
//运算符“()”中的type表示将值var想要转换成的目标数据类型。
//(type)var
double x = 3.14;
int nx = (int)x; //值为3
当将一种类型强制转换成另一种类型,而又超出了目标类型的表数范围,就会被截断成为一个完全不同的值。
int x = 300;
byte bx = (byte)x; //值为44
不能在布尔类型和任何数值类型之间做强制类型转换!