内部类 及垃圾回收

 

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
                                                                              08/04/30 开学的第六天记录:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

 1.内部类:
  a.内部类的使用要先产生外部类的对象out,然后使用out.new Inner(); 声明的时候要使用 Out.Inner in = out.new Inner();
  b.通常对内部类的方法是在其中放一个get方法 来返回内部类对象
  c.内部类的修饰符跟类成员的修饰符是一样的
 2.匿名内部类:
  在使用的时候直接实现主要针对抽象类和接口的实现,没有类的名称所以叫内部类
  如:new FileFilter(){
    public boolean accept(File file){
     if(file.getPath().endWith(".txt")) return true;
     return false;
    }
   }

 3.引用与对象
  关于比较 "==" 与  equals 区别

  a.在比较基本数据类型的时候可以使用 “==”直接比较,但是在比较类类型的数据的时候不能直接使用
  “==”比较因为直接比较的是引用的地址而不是对象
  b.要比较实际的对象自己要覆盖父类 Object 类的 equals方法,因为在Object中equals方法也是通过==来实现的不能比较对象是不是相同
    最好也要覆盖hashcode()方法
 4.克隆:
  深克隆:将所有属性也实现克隆
  浅克隆:只克隆当前对象,对象的属性继续使用原引用
  能克隆的对象,类必须要实现Cloneable接口,并且要覆盖object类中的clone方法,将protected修改为public 的
  
 5.垃圾回收:
  强引用:只要有强引用指向对象,对象所占用的内存就不会被释放
  软引用:比强引用弱,即使有软引用指向对象,垃圾回收在内存空间不够用的情况下也会回收对象
   JVM(Java Virturl machine)的规范要求软引用的清除必须是在OutOfMemoryError错误抛出
   之前完成,可以将软引用与引用队列关联起来,在对象清除后,将软引用加入队列中以便判断

   一般用于实现内存敏感的缓存
  弱引用:弱引用的引用强度比软引用还要弱,垃圾回收扫描到对象只有弱引用时,可能回收对象
   垃圾回收是一个低优先级的线程,因此多数情况下弱引用不会受到影响,即程序可以向正常引用
   那样使用弱引用
   一般用于实现映射关系,如WeakHashMap
  虚引用:不能决定对象的生命周期,仅有虚引用指向的对象与没有引用指向的对象相似,对象可以在任意
   时刻被回收
   虚引用必须与应用队列联合使用,用于跟踪对被引用对象的垃圾回收工作
   虚引用对象永远不可达,其get方法总是返回null
   提供了一种不依赖于Java终结机制的清理方法
  引用队列:当引用指向的对象被清除后,引用将被加入到队列中
   注意加入队列的时间并不是立即完成的,可能要在清除后的晚些时候加入
   因此在测试的时候应该让主线程休眠一会

  软引用和弱引用是回避Java内存泄漏的一种选择
 6.java中的内存泄漏:
  全局集合中加入的对象使用后没有清除
  高速缓存中不再使用对象依然存储在缓存中
  类加载器:只要有对类对象或其静态成员的引用,其类加载器就必须驻留在内存中
 7.java中的类加载器:
  引导类加载器(Bootstrap Class Loader)
  扩展类加载器(Extension Class Loader)
  应用类加载器(Application Class Loader)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值