前言:
从今天开始我将对《Java 核心技术卷I》该书进行阅读学习,并对每次学习写出读书笔记,以加深记忆、巩固学习。也希望给大家带来一些收获,一起加油进步!!!
1. 简单的程序
-
关键字 public
访问修饰符:用于控制程序的其他部分对这段代码的访问级别
-
关键字 class
表明 Java 程序中的全部内容都包含在类中
-
关键字 class 后面紧跟类名
-
源代码的文件名必须与公共类的名字相同,并且以
.java
作为扩展名 -
编译源代码后会得到一个包含这个类字节码的文件(注意:不是一个 Java 文件就得到一个字节码文件,而是这个 Java 文件里面有几个类,就会得到几个字节码文件),并命名为
文件名.class
,与源文件存储在同一目录下 -
因为 Java 虚拟机将从指定类中的 main 方法开始执行,所以为了代码能够执行,在类的源文件中必须包含一个 main 方法
-
点号( . )用于调用方法
System.out.println("Hello World!");
在这里使用了 System.out 对象并调用了它的 println 方法
2. 注释
- 单行注释://
- 段落注释:以 /* 开始,以 */ 结束 (不能嵌套)
- 可自动生成文本文档的注释:以 /** 开始,以 */ 结束
3. 数据类型
-
整形
- 整形的范围与运行 Java 代码的机器无关
- Java 没有任何无符号(unsigned)形式的整形
- 后缀 L 或 l,表示长整型
- 前缀 0X 或 0x,表示十六进制
- 前缀 0,表示八进制
- 前缀 0b 或 0B,可以写成二进制,如 0b1001 就是 9
- 数字字面量加下滑线,为了让人更易读懂,如 1_000_000 就是一百万
类型 存储需求 取值范围 int 4字节 -2147483648 ~ 2147483647(-21以亿 ~ 21亿) short 2字节 -32768 ~ 32767 long 8字节 byte 1字节 -128 ~ 127 -
浮点型
-
float 类型的数值后有后缀 F 或 f,没有后缀的浮点数默认为 double 类型,也可后缀 D 或 d
-
溢出或者出错时会有三个特殊的浮点数的值:Infinity(正无穷大)、-Infinity(负无穷大)、NAN(不是一个数字)
-
浮点数值不适用于无法接受舍入误差的金融计算中,例如
System.out.println(2.0-1.1); //结果为0.89999999999999,而不是0.9
舍入误差的主要是因为浮点数值采用二进制系统表示,而二进制系统中无法精确地表示分数
类型 存储需求 取值范围 float 4字节 double 8字节 -
-
char 类型
-
char 类型原本用于表示单个字符,但如今有些 Unicode 字符可以用一个 char 值描述,有些则需要两个 char 值
-
char 类型的字面量值要用单引号括起来
-
char 类型的值可以表示为十六进制值,其范围从
\u0000
到\Uffff
-
所有的转义序列都可以出现在加引号的字符字面量或字符串中
-
转义序列 \u 还可以出现在加引号的字符字面量或字符串外,如
public static void main(String\u005B\u005D args);
因为
\u005B
和\u005D
,是 [ 和 ] 的编码 -
Unicode 转义序列会在解析代码之前得到处理,如一个隐秘的错误
// \u000a is a newline
这是一个注释对吧,按理说注释怎么写对代码也没有影响,但是读程序时
\u00A0
会替换为一个换行符,并且在解析代码之前就得到了处理,所以语法会报错再看一个错误
// Look inside c:\users
因为 \u 后面没有跟4各十六进制数,而转义序列会在解析代码之前处理,则会产生语法错误
-
特殊字符的转义序列 | ||
---|---|---|
转义序列 | 名称 | Unicode 值 |
\b | 退格 | \u0008 |
\t | 制表 | \u0009 |
\n | 换行 | \u000a |
\r | 回车 | \u000d |
\ ‘’ | 双引号 | \u0022 |
\ ’ | 单引号 | \u0027 |
\ \ | 反斜杠 | \u005c |
-
boolean 类型
-
boolean(布尔)类型的值有两个:false 和 true
-
整型值和布尔值之间不能进行互相转换(和 C/C++ 不同,Java 中0不相当于 false,非0不相当于 true)
-
4. 变量
-
变量名
- 变量名必须是一个以字母开头,并由字母或数字构成的序列
- Java 中的字母包括 ‘A’‘Z’、‘a’‘z’、’_’、’$’ 或在某种语言中表示字母的任何 Unicode 字符
- Java 中的数字包括 ‘1’~‘9’ 和在某种语言中表示数字的任何 Unicode 字符
- ’+‘、‘©’ 和空格不能出现在变量名中
- 不能使用 Java 保留字作为变量名
- ‘$’ 不要使用在自己代码中,它只用在 Java 编译器或其他工具生成的名字中
-
在 Java 中,不区分变量的声明与定义
-
常量
-
在 Java 中,利用关键字 final 指示常量,如
final double CM_PER_INCH=2.54;
-
关键字 final 表示这个常量只能被赋值一次,不可更改
-
习惯上,常量名使用全大写
-
可以使用关键字 static final 设置一个类常量,使其在一个类的多个方法中使用,如
public class Constants2 { public static final double CM_PER_INCH=2.54; public static void main(String[] args) { double paperWidth=8.5; double paperHeight=11; System.out.println("Paper size in centimers:" + paperWidth * CM_PER_INCH + "by" + paperHeight * CM_PER_INCH); } }
-
5. 阅读时发现的该书的一些小错误
- 《Java核心技术卷 I》的34页底部的警告中,所述:因为读程序时
\u00A0
会替换为一个换行符。根据代码上机发现并没有报错,经过查询,\u00A0
是不间断空格的含义,而改成\u000a
换行,就会产生语法错误。