第5章 初始化与清理

1. 垃圾回收机制

  a. 引用计数法,每个对象都含有一个引用计数器,当有应用连接到对象时,引用计数+1;当引用离开作用域被置为 null 时,引用计数-1。缺点是,当对象之间存在循环引用时,可能会出现“对象应该被回收,但引用计数不为0”的情况。

  b. 标记-清扫法,从堆栈和静态存储区出发,遍历所有的引用并标记,进而找出所有存活的对象。标记完成后,再开始清理过程,将没有标记的对象释放。

 

2. 类内成员变量编译器会自动赋值,而对于方法的局部变量,编译器并不会自动赋值。

 

3. 数组初始化

  a. int[] a = {1, 2, 3, 4, 5}

  b. 动态分配 a1 = new int[5]

  另外,若执行 a1=a,是引用拷贝

 

4. 可变参数列表

1 static void f(int required, String... trailing) {
2     System.out.print("required: " + required + " ");
3     for (String string : trailing) {
4         System.out.print(string + " ");
5     }
6     System.out.println();
7 }

 

  可以将可变参数看成一个数组。

 

5. 枚举类型

复制代码
 1 public class SimpleEnumUse {
 2     public enum Spiciness {    // 枚举类型
 3         NOT, MILD, MEDIUM, HOT, FLAMING
 4     }
 5 
 6     public static void main(String[] args) {
 7         // values 返回常量数组
 8         for (Spiciness s : Spiciness.values()) {
 9             // 枚举类型重写了toString方法
10             // ordinal方法返回序号
11             System.out.println(s + ", " + s.ordinal());
12         }
13     }
14 }
复制代码

 

posted @ 2018-06-13 15:11  Just_for_Myself  阅读(623)  评论(0)    收藏  举报
编辑推荐:
· MySQL查询执行顺序:一张图看懂SQL是如何工作的
· 为什么PostgreSQL不自动缓存执行计划?
· 于是转身独立开发者
· C#.Net筑基-泛型T & 协变逆变
· dotnet 代码调试方法
阅读排行:
· Cursor 实战万字经验分享,与 AI 编码的深度思考
· 精选 10 个 C#/.NET 开发必备开源库!
· 用 AI 制作超长视频,保姆级教程!
· C#:wpf ui 4.0 是如何实现页面导航的?
· Cursor 网页版来了,这下拉屎时也能工作了
点击右上角即可分享
微信分享提示