`
davidxiaozhi
  • 浏览: 236830 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java编程思想学习笔记-初始化与清理

阅读更多

重载是类内部的事情,方法重载的区别主要是参数列表及参数类型,返回值是不能区分重载方法的,即返回值不能作为判断重载方法的标志。重载设计到的问题主要是参数类型自动提升问题如short类型自动提升为int 类型。

  this关键字当前调用这个方法的那个对象的引用  构造器方法只能在构造器方法之间可以互相调用,普通方法是不能调用构造器方法的

  垃圾回收器只能回收那些由new分配的内存,但是如果你的对象没有通过new或得了一些特殊的内存,垃圾回收器不知道如何回收这些特殊的内存,所以Java允许你定义一个finalize()方法,一旦垃圾回收器回收那些对象的存储空间时,首先会调用finalized()方法,并且在下一次垃圾回收时,才会真正的回收对象占用的那块内存,这样你就可以在垃圾回收时刻做一些清理工作 。

      注意:有些对象可能不被垃圾回收(即Java里的对象并不总是被垃圾回收),垃圾回收不等同与c++中的析构,垃圾回收只与内存有关(也许你会发现当程序的存储空间没有濒临用完的那一刻,对象占用的空间总也得不到回收),到这我们已经明白,不能指望finalize()方法做一些清理工作了,finalize()真正的作用验证对象是否终结(system.gc()可以强制终结动作)。

   

    垃圾回收器的工作方式 自适应的,标记-清扫(所有的对象都比较稳定,垃圾回收器效率比较低时),停止-复制(存储空间出现了好多碎片时) 两种模式切换。

    注意: 标记-清扫模式 垃圾回收器会遍历堆栈和静态存储区域的所有引用,进而找出所有存活的对象,进行标记,只有全部标记完了才会进行垃圾回收。停止-复制模式这个垃圾回收动作不是在后台进行的,他需要程序停止,这种模式下回收旧有对象前需要把所有存活对象复制到新堆中,导致内存中出现大量的复制行为

    初始化  静态块初始化,构造器初始化。

   

    可变参数列表和类中其他同名方法的冲突问题

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics