一切皆对象(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 编程风格

  • 类名每个单词首字母要大写
  • 标识符首字母要小写,驼峰命名法
posted @ 2021-02-22 11:45  江湖有一青衫仗剑  阅读(146)  评论(0)    收藏  举报