Java学习笔记
该学习笔记着重于Java相较于C++等编程语言的独特之处。内容主要来自 The Java™ Tutorials 和 JAVA8 官网笔记教程 。
语言基础
变量
变量分为以下4种类型,其中前2种合称为字段:
- 实例变量(非静态字段)
 - 类变量(静态字段)
 - 局部变量
 - 参数,包括构造器和异常处理器
 
一个类型的字段、方法和嵌套类型统称为成员。合法的标识符由大小写敏感的字母、数字、$和_组成,其中数字不能作为第一个字符,不建议使用$。不建议以_开头。标识符不能与关键字相同。
建议:对于变量一般采用驼峰命名法,即首字母小写后续单词首字母大写;对于常量一般全部大写,_分隔各个单词。
基本数据类型
共有8种基本类型byte(1字节)、short(2字节)、int(4字节)、long(8字节)、float(4字节)、double(8字节)、boolean和char(2字节)。int和long的包装器Integer和Long提供了诸如compareUnsigned和divideUnsigned之类的无符号操作。java.math.BigDecimal提供了精确的实数。基本数据类型不存在无符号类型,除了boolean之外的基础数据类型大小固定。此外,双引号括住的字符串默认是java.lang.String类,它是不可变的。
默认值
未被初始化的字段会被初始化为0(基本数据类型)或者null(对象)。局部变量不会自动初始化,访问未被初始化的局部变量将导致编译错误。不建议依赖自动初始化。
字面常量
字面常量代表一个固定值,可以直接向基本类型的变量赋值(无需new)。
整型字面常量
若后缀为L或者l,则其类型为long,否则为int。建议使用大写L,避免和数字1搞混。可用int类型的字面常量初始化byte、short、int和long。long类型的字面常量只可初始化long。默认为10进制。0X或者0x前缀表示16进制;0B或者0b表示2进制;0开头的表示8进制。
注意: 大小超过int类型的字面常量却未指明是long类型是一个编译错误。
浮点型常量
若后缀为F或者f,则其类型为float;若不存在后缀或后缀为D或者d,则其类型为double。
字符和字符串常量
char和String类型可以存储任何Unicode(UTF-16)的字符。可直接在源代码中使用这些字符,也可以\uXXXX(XXXX为4位16进制数字)转义。使用单引号代表字符;使用双引号代表字符串。
此外还有转义序列,如\b(退格符)、\t(水平制表符)、\n(换行符)、\f(换页符)、\r(回车符)、\"(双引号)、\'(单引号)、\\(反斜杠符)。
null字面常量可赋值给任何非基本数据类型变量。<typename>.class用于得到类型本身(其类型为Class),这被称作类字面常量(class literal)。
在数字字面常量中使用下线符
可以使用_分割数字(包括整型和浮点型常量),增加代码可读性,只允许在两个数字之间插入一个或多个_。
数组
Java的数组定长。里面的每一项目称为元素,通过下标索引(从0开始)。通过<type>[] <identifier>;定义一个可以引用数组的变量(数组大小不是类型的一部分)。通过new <type>[<length>]来创建数组(内容会被0初始化)。可以用{...
剩余内容已隐藏