目录
一 :基本语法
(一) 注释
Java 中的注释有三种:
-
单行注释:通常用于解释方法内某单行代码的作用。
-
多行注释:通常用于解释一段代码的作用。
-
文档注释:通常用于生成 Java 开发文档。
(二) Java关键字
⚠️注意:
- 所有的关键字都是小写的,在 IDE 中会以特殊颜色显示。
default
这个关键字很特殊,既属于程序控制,也属于类,方法和变量修饰符,还属于访问控制。- 在程序控制中,当在
switch
中匹配不到任何情况时,可以使用default
来编写默认匹配的情况。 - 在类,方法和变量修饰符中,从 JDK8 开始引入了默认方法,可以使用
default
关键字来定义一个方法的默认实现。 - 在访问控制中,如果一个方法前没有任何修饰符,则默认会有一个修饰符
default
,但是这个修饰符加上了就会报错 true
,false
, 和null
看起来像关键字但实际上他们是字面值,同时你也不可以作为标识符来使用。
(三) 自增自减运算符
++
和 --
运算符可以放在变量之前,也可以放在变量之后:
- 前缀形式(例如
++a
/--a
):先自增/自减变量的值,然后再使用该变量,
例如,b = ++a
先将a
增加 1,然后把增加后的值赋给b
。 - 后缀形式(例如
a++
/a--
):先使用变量的当前值,然后再自增/自减变量的值。例如,b = a++
先将a
的当前值赋给b
,然后再将a
增加 1。
口诀:符号在前就先加/减,符号在后就后加/减。
(四) continue、break、return 的区别
在循环结构中,当循环条件不满足或者循环次数达到要求时,循环会正常结束。但是,有时候可能需要在循环的过程中,当发生了某种条件之后 ,提前终止循环,这就需要用到下面几个关键词:
continue
:指跳出当前的这一次循环,继续下一次循环。break
:指跳出整个循环体,继续执行循环下面的语句。
return
用于跳出所在方法,结束该方法的运行。
return 一般有两种用法:
return;
:直接使用 return 结束方法执行,用于没有返回值函数的方法return value;
:return 一个特定值,用于有返回值函数的方法。
二:Java基本数据类型
(一) Java 中有 8 种基本数据类型,分别为:
- 6 种数字类型:
- 4 种整数型:
byte
、short
、int
、long
- 2 种浮点型:
float
、double
- 4 种整数型:
- 1 种字符类型:
char
- 1 种布尔型:
boolean
这 8 种基本数据类型的默认值以及所占空间的大小如下:
对于 boolean
,官方文档未明确定义,它依赖于 JVM 厂商的具体实现。逻辑上理解是占用 1 位,但是实际中会考虑计算机高效存储因素。
⚠️注意:
- Java 里使用
long
类型的数据一定要在数值后面加上 L,否则将作为整型解析。 - Java 里使用
float
类型的数据一定要在数值后面加上 f 或 F,否则将无法通过编译。 - char :单引号
char a = 'h'
,String:双引号String a = "hello"
。
(二) 这八种基本类型都有对应的包装类分别为:Byte
、Short
、Integer
、Long
、Float
、Double
、Character
、Boolean
。
(三) 基本数据类型与包装类型的区别
- 用途:除了定义一些常量和局部变量之外,我们在其他地方比如方法参数、对象属性中很少会使用基本类型来定义变量。并且,包装类型可用于泛型,而基本类型不可以。
- 存储方式:基本数据类型的局部变量存放在 Java 虚拟机栈中的局部变量表中,基本数据类型的成员变量(未被
static
修饰 )存放在 Java 虚拟机的堆中。包装类型属于对象类型,我们知道几乎所有对象实例都存在于堆中。 - 占用空间:相比于包装类型(对象类型), 基本数据类型占用的空间往往非常小。
- 默认值:成员变量包装类型不赋值就是
null
,而基本类型有默认值且不是null
。 - 比较方式:对于基本数据类型来说,
==
比较的是值。对于包装数据类型来说,==
比较的是对象的内存地址。所有整型包装类对象之间值的比较,全部使用equals()
方法。
(四) 自动装箱和自动拆箱
- 装箱:将基本类型用它们对应的引用类型包装起来;
- 拆箱:将包装类型转换为基本数据类型;
Integer i = 10; //装箱
int n = i; //拆箱
装箱其实就是调用了 包装类的valueOf()
方法,拆箱其实就是调用了 xxxValue()
方法。
因此
Integer i = 10
等价于Integer i = Integer.valueOf(10);
int n = i
等价于int n = i.intValue()
;
注意:如果频繁拆装箱的话,也会严重影响系统的性能。我们应该尽量避免不必要的拆装箱操作