码迷,mamicode.com
首页 > 编程语言 > 详细

java基础盲点梳理

时间:2016-09-18 01:07:16      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:

  • 类的基本成员才有默认值

  • finalize()并非析构,Java中没有析构,使用finalize()通常在于跨语言调用情景:比如使用C进行malloc内存分配以后,要在finalize()方法中进行free,以便于提供一种内存释放的方法,否则当量达到一定程度时会造成out of memories。Jvm在进行gc时会优先调用finalize(),但这并不意味着一定会释放finalize中指定的对象,因为gc最终只和内存相关,当内存达到回收条件时才会进行垃圾回收

  • 静态块static{xxx;}在类加载时就进行初始化,非静态块和构造函数在创建对象时才会初始化或调用,并且非静态块要优先于构造函数。

  • 内部类可以访问外围类所有成员,包括private成员

  • 通过内部类可以变相的实现“多重继承”

  • 匿名内部类常用于实例初始化

  • 动态代理,通过反射动态地创建Proxy,Proxy用于添加一些你想对Target进行的额外操作,然后在适当的时候将请求转发给Target。换句话说,Proxy在Target上进行了一层封装修改。

  • HashMap,通过设置容量和负载因子,以调整容器的性能。默认容量达到四分之三满时将自动进行扩充&再散列。因此,如果能够预估存储容量,然后设置一个恰当的初始容量,将可以避免自动再散列的开销

  • transient关键字可以避免敏感信息字段的序列化

  • ThreadLocal对象通常当做静态域存储,使得每个单独的线程都被分配了自己的存储

java基础盲点梳理

标签:

原文地址:http://www.cnblogs.com/justool/p/java-123.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!