`
xitong
  • 浏览: 6228072 次
文章分类
社区版块
存档分类
最新评论

编程心得

 
阅读更多

Cloneable(参考com.davic.example.cloneable.AddingClone)

  1. 所有java的类需要具备clone这个功能必须继承Cloneable,

  2. 而且重构clone这个函数。

  3. clone 主对象其所有子对象也会给clone

Alias(别名参考com.davic.example.Alias)

  1. 类对象采用直接赋值,是将一个对象的reference指向赋值对象而已。

  2. Alias是按地址传值并不是按值传值,如果对函数下参数进行修改,则该参数就会改变数值。



Constructor (构造函数 com.davic.example.Constructor)

  1. 向上转型。任何类都可以通过继承,然后安全进行向上转型。

  2. 调用机制 构造函数先初始化子属性,再调用本身的构造函数。

  3. 构造函数重载 函数重载是通过参数的不同来区分重载函数。

++i,i++(参考com.davic.example.basic.AutoInc

I++先显示数据才加1,++i 就是先加1才显示数据

位移(参考com.davic.example.basic.BitManipulation)

当左位移(<<)的时候,最低位补0.当右位移的时候(>>),当该数是正数的时候,高位补0,如果该数是负数,高位补1。

Finalize(参考com.davic.example.Finalize

  1. 机制 当垃圾回收器打算开始释放你的对象所占用空间,就会先调用finalize()函数,并且在下一次垃圾回收动作发生时才回收对象。

  2. 使用情况 finalize的使用的情况是有限定的,当你的对象是以对象new之外的生成方式,来分配存储空间就适合用finalize来清空对象。

  3. 调用时间 垃圾回收器会在觉得可用内存不足够的时候就会开始执行。

  4. 我们如果需要手动调用垃圾回收器,可以通过system.gc() 这个函数调用,终结动作就会发生在所有对象身上。

  5. 死亡条件 我们可以利用对象清空(finalize)时,判断其当前状态是否正确。

  6. 垃圾回收的理念是,能够存活于stack或static storage (静态存储空间)上的reference而追踪到的对象,才算是生命尚存对象。

其他

  1. 所有基础类型如果强制转型,先转成小型,然后进行处理。如其他型与int型处理,则将其他类型,转变成为int型进行统计(参考 com.davic.example.basic.CastingNumbers

  2. 如果想实现类对象按所需要求对比,则需要extends compliar类,并重构equals函数。

  3. 如果某一笔数据既是static又是final,那么它就会拥有一块无法改变的地址。

  4. 但是用于object reference时,final让reference保持不变。某个reference一旦被初始化用以代表某个对象之后,便再也不能执向另外一个对象。

容器(Container 参考com.davic.example.Container



数组

数组的初始化

      1. Integer[] a = { new Integer(1), new Integer(2), new Integer(3), };

    1. 数组new

      1. a = new int[pRand(20)];

    2. 数组排序(参考 com.davic.example.container.AlphabeticSearch

      1. 数组排序可以先通过自定义Comparator类,然后通过java.util.Arrays类进行排序(Comparator写法:参考 com.davic.example.util.AlphabeticComparator)

    3. 数组的添加

      1. 可以通过 java.util.Arrays.fill() 函数进行数组的添加

    4. 数组的复制

      1. 可以通过System.arraycopy进行复制

    5. WeakHashMap

      1. 容器中有一个特殊的map,其所持有的乃是weak reference : weakhashmap.在这样一个mapping里面,value只存在一个实体.因而节省了储存空间.一但程序需要某个value,便在mapping中查找既有的对象,并使用找到的那个对象.

RTTI 执行期类型识别(参考com.davic.example.rtti

  1. 执行期类型识别可以通过判断 instanceof判断类型是否相同

  2. 又可以采取用isInstance(是否某类的子对象)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics