zoukankan      html  css  js  c++  java
  • java基础面试题

    1、String,StringBuilder,StringBuffer三者的区别?

    • String字符串常亮,StringBuffer和StringBuilder是字符串变量
    • StringBuffer线程安全,StringBuilder线程不安全
    • 对于字符串拼接,String常量拼接速度,小于StirngBuilder,StirngBuilder小于StringBuffer

    2、单例模式7种创建方式

    http://blog.csdn.net/itachi85/article/details/50510124

    3、ArrayList和LinkedList的区别?

    1. ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 
    2. 对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 
    3. 对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。 

     4、  Vector与ArrayList区别?

    1.  Vector的方法都是同步的(Synchronized),是线程安全的(thread-safe),而ArrayList的方法不是,由于线程的同步必然要影响性能,因此,ArrayList的性能比Vector好。 
    2.  当Vector或ArrayList中的元素超过它的初始大小时,Vector会将它的容量翻倍,而ArrayList只增加50%的大小,这样,ArrayList就有利于节约内存空间。

    5、  HashMap和hashTable区别?

    • 两者最主要的区别在于Hashtable是线程安全,而HashMap则非线程安全

       Hashtable的实现方法里面都添加了synchronized关键字来确保线程同步,因此相对而言HashMap性能会高一些,我们平时使用时若无特殊需求建议使用HashMap,在多线程环境下若使用HashMap需要使用Collections.synchronizedMap()方法来获取一个线程安全的集合。

    • HashMap可以使用null作为key,而Hashtable则不允许null作为key

      虽说HashMap支持null值作为key,不过建议还是尽量避免这样使用,因为一旦不小心使用了,若因此引发一些问题,排查起来很是费事

    • HashMap是对Map接口的实现,HashTable实现了Map接口和Dictionary抽象类

      HashMap的初始容量为16,Hashtable初始容量为11,两者的填充因子默认都是0.75

    • HashMap扩容时是当前容量翻倍即:capacity*2,Hashtable扩容时是容量翻倍+1即:capacity*2+1
    • 两者计算hash的方法不同

             Hashtable计算hash是直接使用key的hashcode对table数组的长度直接进行取模

            HashMap计算hash对key的hashcode进行了二次hash,以获得更好的散列值,然后对table数组长度取摸

    参考:http://blog.csdn.net/qq_29882585/article/details/52198014

     

  • 相关阅读:
    as3 return语句中的运算符
    AIR custom ApplicationUpdaterUI
    Flash Builder 无法连接到应用程序以访存概要分析数据
    Android的所有权限说明
    Tomcat数据源配置
    hibernate 延迟加载(懒加载)
    Android SQLite数据库操作
    Android下载文本文件和mp3文件
    JPA注解
    Android Intent传值且实现窗体跳转
  • 原文地址:https://www.cnblogs.com/520playboy/p/8430676.html
Copyright © 2011-2022 走看看