文档注释
Java语言提供了一种功能更加强大的注释形式:文档注释。如果编写Java源代码时添加了合适的文档注释,然后通过JDK提供的javadoc工具可以直接将源代码里的文档注释提取成一份系统的API文档。
所以我们可以在开发中定义类、方法时也可以先添加注释文档,然后使用javadoc工具来生成自己的API文档。
由于文档注释是用于生成API文档的,而API文档主要用于说明类、方法、成员变量的功能。因此,javadoc工具只处理文档源文件在类、接口、方法、成员变量、构造器和内部类之前的注释,忽略其他地方的文档注释。而且javadoc工具默认只处理以public或protected修饰的类、接口、方法、成员变量、构造器和内部类之前的文档注释。
文档注释以斜线后紧跟两个星号(/**)开始,以星号后紧跟一个斜线(*/)结束,中间部分全是文档注释,会被提取到API文档中。
标识符和关键字
分隔符
Java语言里的分号(;)、花括号({})、方括号([])、圆括号(())、空格、原点(.)都具有特殊的分隔作用,因此被统称为分隔符。
花括号
花括号的作用是定义一个代码块,一个代码块指的就是“{”和“}”所包含的一段代码,代码块在逻辑上是一个整体。对Java语言而言,类定义必须放在一个代码块里,方法体部分也必须放在一个代码块里。除此之外,条件语句中的条件执行体和循环语句中的循环体通常也放在代码块里。
花括号一般是成对出现的,有一个“{”则必然有一个“}”,反之亦然。
标识符规则
Java的所有关键字都是小写的,TRUE、FALSE、和NULL都不是Java关键字。
空引用(null)只能被转换成引用类型,不能转换成基本数据类型,因此不要把一个null值赋给基本数据类型的变量。
Java的基本数据类型
Java只包含这8种基本数据类型,值得指出的是,字符串并不是基本数据类型,字符串是一个类,也就是说是一个引用数据类型。
基本类型的类型转换
Java语言提供的7种数值类型之间可以相互转换,有两种类型转换方式:自动类型转换和强制类型转换。
可以看出,当试图强制把表数范围大的类型转换为表数范围小类型时,必须格外小心,因为非常容易引起信息丢失。
上面那条除了强制类型转换可以不报错,写成float a = 5.6f;也可以。
String类型的直接量不能赋给其他类型的变量,null类型的直接量可以直接赋给任何引用类型的变量,包括String类型。boolean类型的直接量只能赋给boolean类型的变量,不能赋给其他任何类型的变量。
运算符
++在左,则操作数先加1,再放入表达式中运算。(++在左,先加后算)
++在右,则先放入表达式中运算,再将操作数加1.
自加和自减只能操作变量,不能用于操作数值直接量、常量或表达式。例如5++,6–等写法都是错误的。
+除了可以作为数学的加法运算符之外,还可以作为字符串的连接运算符。-除了可以作为减法运算符之外,还可以作为求负的运算法。
个人理解:这里可以参考前面讲的表达式类型的自动提升:当一个算术表达式的基本数据类型值有多个时,整个算数表达式的数据类型将发生自动提升,自动提升到最高级别的数据类型。
public class Main {
public static void main(String[] args) {
byte a = 5;
/*
下面语句错误是因为,在没给定数据类型的情况下数字默认类型为int
所以下面的5是int类型,而a是byte类型
由于表达式中最高级的类型是int,所以表达式的值自动提升为int类型
可a是byte类型,所以报错
*/
// a = a + 5;
/*
而a+=5;则不会报错
因为机制不一样,此时就类似于byte a = 5;
将5定义为了byte类型了
*/
a+=5;
}
}
&总会计算前后两个操作数,而&&先计算左边的操作数,如果左边的操作数为false,则直接返回false,根本不会计算右边的操作数,即短路。(一般都用&&短路与叭,毕竟感觉可以减少一点运行损耗)