A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© lilongbin2016 中级黑马   /  2016-12-14 22:58  /  675 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、Object有哪些公共方法?

答:clone(),equals(),hashCode(),wait(), getClass(),finalize(),notify(),notifyAll(),toString()

2、Object中finalize()的作用?

答:用于清理。finalize()方法不需要显示地调用, 在垃圾回收(GC)时会被自动先行调用的。

3、Java中四种引用方式?

答:http://my.oschina.net/eager/blog/726428

4、hashCode()的作用?

答:hashcode是jdk根据对象的地址或者字符串或者数字算出来的int类型的数值。

        在 Java 应用程序执行期间,在对同一对象多次调用 hashCode()时,必须一致地返回相同的整数,前提是将对象进行hashCode()比较时所用的信息没有被修改。

    如果两个对象根据hashCode()返回的整数值不等,则equals()得到的结果必定为false;
    如果两个对象根据equals()比较是相等的,那么调用两个对象的hashCode()必须返回相同的整数结果;
    如果两个对象根据equals()比较是不等的,则hashCode()不一定得返回不同的整数。

详见:http://www.cnblogs.com/dolphin0520/p/3681042.html

5、ArrayList、LinkedList、Vector的区别?

线程安全性:

    Vector、Stack:线程安全
    ArrayList、LinkedList:非线程安全

实现方式:

    LinkedList:双向链表
    ArrayList,Vector,Stack:数组

扩容方式:

Stack继承自Vector,故不分开解释。

    ArrayList扩容原来的50%(int newCapacity = (oldCapacity * 3)/2 + 1)
    Vector缺省情况是原来的1倍(newCapacity  = oldCapacity * 2)

其他详见:http://blog.csdn.net/a19881029/article/details/45533733

6、String、StringBuffer与StringBuilder的区别?

    String类为final类型
    StringBuffer线程安全的可变字符序列
    StringBuilder线程不安全,JDK5.0新增
    在构造 StirngBuffer 或 StirngBuilder 时应尽可能指定它们的容量。如果操作的字符串长度(length)不超过 16 个字符就不用了,缺省时默认构造一个容量为16的对象,否则不指定会降低性能

详见:http://blog.csdn.net/kingzone_2008/article/details/9220691

7、java.io 与 java.nio的区别?

主要区别如下表:
IO         NIO
面向流         面向缓冲
阻塞IO         非阻塞IO
无         选择器

详见:http://my.oschina.net/eager/blog/729320

8、HashMap和Hashtable(注意 t 是小写的)的区别?

    Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现;
    Hashtable是线程安全的,HashMap是线程不安全的;
    HashMap允许null作为Entry的key和value,Hashtable不允许;
    Hashtable使用Enumeration,HashMap使用Iterator遍历;
    Hashtable中hash数组默认大小是11,扩容的方式是 old*2+1,HashMap中hash数组的默认大小是16,扩容一定是2的指数。

9、HashMap和ConcurrentHashMap的区别?

    HashMap是since JDK1.2,ConcurrentHashMap是since JDK1.5;
    HashMap是线程不同步的,ConcurrentHashMap是线程同步的;
    HashMap本质是数组+链表,ConcurrentHashMap将数据分为多个segment,默认16个。

ConcurrentHashMap详见:http://www.cnblogs.com/dolphin0520/p/3932905.html

ConcurrentHashMap实现同步分析:http://blog.csdn.net/xuefeng0707/article/details/40834595

10、Hashtable和ConcurrentHashMap的区别?

    Hashtable采取的是synchronized整个方法,ConcurrentHashMap采取的是synchronized代码块
    Hashtable每次同步锁整体,ConcurrentHashMap只锁当前需要用到的segment

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马