Java疯狂讲义读书笔记第六章(二)

  1. 内部类, 在类中定义一个类。属于类的成员,可用访问控制符修饰,设置为静态。
  2. 非静态内部类的方法内访问某个变量顺序,在该方法中找–>>方法所在内部类–>>内部类所在外部类

    public class OutClass {
        private String prop = "123";
        private class inClass {
            private String prop = "456";
            private void info() {
                prop = "666";
                System.out.println(prop);                   // 输出 666
                System.out.println(this.prop);              // 输出 456
                System.out.println(OutClass.this.prop);     // 输出 123
            }
        }
        public void test() {
            inClass in = new inClass();
            in.info();
        }
    }
    
  3. 非静态内部类不能有静态声明(静态方法、静态成员变量、静态初始化块),外部类静态方法不可以访问非静态内部类。
  4. 静态内部类,用static修饰,包含静态成员,也可以包含非静态成员。但是静态内部类不可以访问外部类的实例成员,只能访问外部类的类成员(static修饰)。
  5. 在外部类以外使用非静态内部类,必须先实例化外部类。

    // 第一种写法
    Out.In in = new Out().new In();
    
    // 第二种写法
    Out.In in;
    Out out = new Out();
    in = out.new In();
  6. 在外部类以外使用静态内部类,无须实例化外部类。

    Out.In in = new Out.In();
    
    Out.In in;
    in = new out.In();
  7. 局部内部类,把一个定义在方法看里的内部类,仅在该方法里有效。不能再外部内的方法以外使用,所以不能使用访问控制符和static修饰。
  8. 匿名内部类(重点)适合创建那种只需要一次使用的类。一定一定要存在继承关系。

    public abstrct Father() {
        public void show();
    }
    
    Father f = new Father() {  // 匿名内部类
        public void show() {
            System.out.println("匿名内部类");
        }
    };
    
    f.show(); // 输出 匿名内部类
    
  9. Lambda表达式,支持将代码块用作方法参数,允许使用更简洁的代码来创建只有一个抽象方法的接口的实例。也可以叫(匿名函数)。
  10. 枚举类,实例个数有限且固定的类。用关键字enum定义。
  11. 枚举类继承自java.lang.Enum类(不是Object),所以不能显示的继承其他父类。enum类不能派生子类。枚举类的构造器只能使用private修饰,枚举类必须在类内部的第一行显示列出,否则这个枚举类不能产生实例。
  12. 垃圾回收机制只负责回收内存中的对象,不会回收任何物理资源。回收对象之前总是会调用finalize();方法,但该方法可能重新让一个引用变量指向该对象,导致取消回收。
  13. 对象在内存中的状态:可达、可恢复、不可达。创建对象后,若有一个以上的引用变量指向它,为可达状态。某个对象不再有任何引用变量引用它,为可恢复状态(若调用finalize()之前重新指向则恢复可达状态)。调用finalize()后没有变成可达状态则为不可达,系统才会真正回收。
  14. 强制系统进行垃圾回收。1.System.gc(); 2.Runtime.getRuntime().gc();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值