记录一下自己学习《Java核心技术 卷Ⅰ》的学习历程。
3.1Java命名规则
- Java区分大小写;
- 类名规则:名字必须以字母开头,后面可以跟字母和数字的任意组合,不可以使用保留字;
- 标准的命名规范:类名是以大写字母开头的名词。如果名字由多个单词组成,每个单词的第一个字母都应该大写(Camel Case);
源代码的文件名必须与公共类的名字相同并用.java作为扩展名。
3.2注释
Java中注释写法有三种:
//
:从//开始到本行结尾;/* */
:用于较长注释;- 以
/**
开始,*/
结尾,用来自动生成文档;(详见Chapter4)
3.3数据类型
Java语言提供了八种基本类型。六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型。
整型
类型 | 存储需求 | 取值范围 |
---|---|---|
byte | 1字节 | -128到127;8位有符号 |
short | 2字节 | -32768到32767;16位有符号 |
int | 4字节 | -2147483648到2147483647;32位有符号 |
long | 8字节 | -9223372036854775808到9223372036854775808;64位有符号 |
Java中没有任何无符号(Unsigned)形式的整型!
浮点型
类型 | 存储需求 | 取值范围 |
---|---|---|
float | 4字节 | 大约±3.402 823 47E+38F;有效位数为6~7位; |
double | 8字节 | 大约±1.797 693 134 862 315 70E+308;有效位数为15位; |
Float和Double的最小值和最大值都是以科学记数法的形式输出的,结尾的"E+数字"表示E之前的数字要乘以10的多少次方。比如3.14E3就是3.14 × 103 =3140,3.14E-3 就是 3.14 x 10-3 =0.00314。
char类型
char类型是一个单一的 16 位 Unicode 字符;最小值是 \u0000(即为0);最大值是 \uffff(即为65,535);char 数据类型可以储存任何字符;
char类型需要用单引号括起来;注意区分双引号! 例如’A’是编码值位65的字符常量,"A"是包含一个字符A的字符串;
boolean类型
flase和ture ;Java整型和布尔型不能互相转换;
java转义符
\n | 换行 (0x0a) |
---|---|
\r | 回车 (0x0d) |
\f | 换页符(0x0c) |
\b | 退格 (0x08) |
\0 | 空字符 (0x0) |
\s | 空格 (0x20) |
\t | 制表符 |
" | 双引号 |
’ | 单引号 |
\ | 反斜杠 |
\ddd | 八进制字符 (ddd) |
\uxxxx | 16进制Unicode字符 (xxxx) |
3.4变量与常量
- 变量名必须是以一个字母开头并由字母,大小写敏感;从Java10开始,对于局部变量,如果可以从变量的初始值推断出它的类型,就不再需要声明类型,只需要用关键字var而无需指定类型;
- 关键字final指示常量;习惯上常量名使用全大写;
- 关键词static final指示类常量;如果一个常量被声明为public,那么其他类的方法也可以使用这个常量;
- 关键字Enum 枚举类型(Chapter5);
3.5运算符
算术运算符
- +、-、*、/;当参与/运算的两个操作数都是整数时,表示整数除法;否则,表示浮点除法;整数被0除将会产生一个异常,而浮点数被0除将会得到无穷大或NaN结果;
- 整数的求余操作用%表示;
- Math类中的函数:sqrt()、pow()、floorMod()……
数值类型转换
- 不能对boolean类型进行类型转换。
- 不能把对象类型转换成不相关类的对象。
- 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
- 转换过程中可能导致溢出或损失精度,例如:
int i =128;
byte b = (byte)i;
因为 byte 类型是 8 位,最大值为127,所以当 int 强制转换为 byte 类型时,值 128 时候就会导致溢出。 - 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:
(int)23.7 == 23;
(int)-45.89f == -45