一切皆对象(Think In Java)
1.1 引用操纵对象
- 创建对象时的变量名为引用
- 只是单纯的创建一个变量名而未进行初始化值,则该变量不具备引用对象
- 一般在创建引用时便进行初始化
1.2 必须由你创建所有对象
- 自行创建类型
- new 创建一个新对象
1.2.1 对象存储
- 寄存器:最快的存储区,位于处理器内部
- 堆栈:位于通用RAM(随机存储器),指针上移释放内存,指针下移分配新的内存,需明确知道项的生命周期,对象的引用存储
- 堆:位于通用内存池(RAM内),存放Java对象,分配、清理对象耗时,不需知道生命周期
- 常量存储: 存放ROM(只读存储器)
- 非RAM存储:流对象,持久化对象
1.2.2 特例:基本类型
| 基本类型 | 大小 | 最小值 | 最大值 | 包装器类型 |
|---|---|---|---|---|
| boolean | _ | _ | _ | Boolean |
| char | 16bit | Unicode0 | Unicode216-1 | Character |
| byte | 8bits | -128 | +127 | Byte |
| short | 16bits | -215 | +215-1 | Short |
| int | 32bits | -231 | +231-1 | Integer |
| long | 64bits | -263 | +263-1 | Long |
| float | 32bits | IEEE754 | IEEE754 | Float |
| double | 64bits | IEEE754 | IEEE754 | DOuble |
| void | _ | _ | _ | Void |
new 一个基本类型时需要使用包装器进行创建
高精度数字
- 不是基本类型,以操作方法取代运算符
- BigInteger:任意精度的整数,可以准确的标识任何大小的整数值,而不会丢失任何信息
- BigDEcimal: 任何精度的定点数
1.2.3 java中的数组
相较于c/c++ 安全,创建数组对象,有引用但未进行初始化,会将每个引用转化为一个特定值null
1.3 永远不需要销毁的对象
1.3.1 作用域
- 决定其内定义的变量名的可见性和生命周期
1.3.2 对象的作用域
- new 创建一个java对象,可以存活于作用域之外,但引用只能在作用域内执行
- 垃圾回收器,检测未被使用的对象进行回收(内存泄漏问题)
1.4 创建新的数据类型:类
- class 关键字后面跟类名
- 类名 a = new 类名();创建一个类的对象
2.4.1 字段和方法
- 字段(数据成员):可以是任何类型的对象
- 方法(成员函数)
基本成员默认值
| 基本类型 | 默认值 |
|---|---|
| boolean | false |
| char | 'uoooo'(null) |
| byte | (byte)0 |
| short | (short)0 |
| int | 0 |
| long | 0l |
| float | 0.0f |
| double | 0.0.d |
1.5 方法、参数、返回值
- 方法的组成:名称、参数、返回值和方法体
- 方法名、参数列表(方法签名)
1.5.1 参数列表
- 类型 + 变量名
- return void 做提供退出的方法
1.6 构建第一个java程序
1.6.1 名字可见性
- 方法名冲突问题
- c++的名字空间,java的域名
1.6.2 运用其他构件
- import指示编译器导入一个包
- 通配符‘*’
1.6.3 static 关键字
- 通过类型直接调用变量或方法而非对象
- static对每个类都只有一个存储空间,非static来说每个类都一个存储空间
1.7 创建对各Java程序
- args 用来存储命令行参数
1.7.1 编译和运行
- 下载JDK
1.8 注释和嵌入文档
- /* /: 可注释多行,连续的注释内容的每一行都需要以 开头
- // : 单行注释
1.8.1 注释文档
- javadoc 用于提取注释的工具
1.8.2 语法
- 所有的Javadoc命令都只能在/** 注释中出现,以*/结束
- private的注释提取会被忽略,用-private标记
1.8.3 嵌入式HTML
- 在注释中嵌入html
1.8.4 一些标签示例
1.8.5 文档示例
1.9 编程风格
- 类名每个单词首字母要大写
- 标识符首字母要小写,驼峰命名法

浙公网安备 33010602011771号