《JAVA编程思想》笔记-初始化与清理

5.1用构造器确保初始化

跟C++中的构造器类似
初始化和创建绑定在一起,密不可分。
构造器没有返回值;是默认的static函数

5.2方法重载

和C++中类似
一个方法的签名本质是由原来的方法名,参数列表和返回值构成的,所以虽然是重载了的方法,其本质还是各不相同的一组方法。

基本类型的重载

  • 实参类型小于形参类型:自动提升
  • 实参类型大于形参类型:需要手动进行强制类型转换

5.3默认构造器

如果自己定义了构造器,就不会自动产生默认构造器了

5.4this指针

其实类的成员函数都有一个参数this,用来指向当前对象

static的含义

static用来表示类变量和方法,区别于成员变量和方法。
static修饰过的变量只初始化一次
static修饰过的方法没有this指针。

5.5终结处理和垃圾回收

这一部分看我之前的一篇文章[编译原理]垃圾收集即可了解。将来会在讲到JVM的时候更详细地讲述

概念

  • 自适应技术:自适应的、分代的、停止-复制、标记清扫式的垃圾回收器
  • JIT:及时编译

5.6成员初始化

  • 局部变量不会自动初始化
  • 局部变量自动初始化(引用类型初始化为null)

5.7构造器初始化

  • 自动初始化在构造器初始化之前进行,如下代码i自动初始化位0,然后由构造器初始化为7.
public class Counter {
    int i;
    Counter(){ i = 7; }
}
  • 类中成员变量的初始化顺序同其在类中排列的顺序相同。
  • 静态数据的初始化:基本数据类型位其标准值,引用则为null

对象创建过程:

  1. 类初始化(不是对象初始化),当类被首次访问时
  2. 载入类的class文件,静态初始化进行
  3. 为对象分配内存
  4. 基本数据类型置为基本值,引用置为null
  5. 执行所有出现于字段定义处的初始化动作
  6. 执行构造器

5.8数组初始化

就谈一下可变参数列表

形如:public void function(Object ...args)

实现原理就是一个Object(java中的泛型也是用Object擦除实现的)类型的数组,用的时候需要强制类型转换

5.9枚举

java的枚举好像要比C语言中的枚举复杂不少
jdk5之后才出现枚举,之前需要定义整数常量集来实现(跟C语言的比较像啊)。enum本质是类,自动实现toString方法和ordinal方法,后者给出美剧常量的声明顺序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值