09 2012 档案
摘要:1. 在默认情况下,JDK将堆分为两部分,一个年轻的代和一个老的代(实际上,还有第三部分――永久空间,它用于存储装载的类和方法对象)。 借助于复制收集器,年轻的代又分为一个创建空间(通常称为Eden)和两个生存半空间。2. 经验分析表明,对于大多数面向对象的语言,包括 Java 语言,绝大多数对象――可以多达 98%(这取决于您对年轻对象的衡量标准)是在年轻的时候死亡的。 当大多数对象在年轻时死亡时,复制收集器可以执行得相当好,因为复制收集器完全不访问死亡的对象,它们只是将活的对象复制到另一个堆区域中,然后一次性收回所有的剩余空间。 不过,复制收集器处理长寿对象却很糟糕,它要从一个半空间...
阅读全文
posted @ 2012-09-12 14:57
soeyong
摘要:总结:强引用: 绝不回收,即使内存不足,程序异常终止;软引用: 内存不足时,回收;内存足够,不回收;弱引用: 一旦发现就回收,不管内存空间足够与否;虚引用: 任何时候都可以被回收; 虚引用主要用来跟踪对象被回收的活动,当发现虚引用已加入到引用队列(必须联合使用的),则在回收前采取必要的行动。众所周知,java中是JVM负责内存的分配和回收,这是它的优点(使用方便,程序不用再像使用c那样操心内存),但同时也是它的缺点(不够灵活)。为了解决内存操作不灵活这个问题,可以采用软引用等方法。 在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可.
阅读全文
posted @ 2012-09-11 11:10
soeyong
摘要:第一,谈谈final, finally, finalize的区别。 final—修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。 finally—再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 f...
阅读全文
posted @ 2012-09-11 09:50
soeyong
摘要:'半夜里匆忙写成,第一次用VBA,只是实现功能,未做性能优化,有时间要重写一下。Sub Fighting()Application.ScreenUpdating = FalseApplication.DisplayAlerts = FalseDim Cell As Range, FirstAddress As StringDim temp As LongDim c As LongDim tempValue As LongDim d As LongDim str As StringDim RowCount As LongDim tempRow As LongDim tempStr As
阅读全文
posted @ 2012-09-11 09:26
soeyong
浙公网安备 33010602011771号