Java基础常问问题 一

来源:互联网 发布:剑三正太捏脸数据下载 编辑:程序博客网 时间:2024/05/17 09:15

java基础:
  java
对象的hashcode是怎么算的?
  hashCode
的常规协定是: http://www.bysocket.com/?p=263
    1
、在 Java 应用程序执行期间,在对同一对象多次调用 hashCode 方法时,必须一致地返回相同的整数,前提是将对象进行 equals 比较时所用的信息没有被修改。从某一应用程序的一次执行到同一应用程序的另一次执行,该整数无需保持一致。
    2
、如果根据 equals(Object) 方法,两个对象是相等的,那么对这两个对象中的每个对象调用 hashCode 方法都必须生成相同的整数结果。
    3
、如果根据equals方法,两个对象不相等,那么对这两个对象中的任一对象上调用 hashCode 方法不 要求一定生成不同的整数结果。但是,程序员应该意识到,为不相等的对象生成不同整数结果可以提高哈希表的性能。
 
容器:hashmap stringbuffer
    hashmap

      1 hashmap的数据结构是什么?
      是链表组成的数组,数组的下标是索引值,数组的每一项是链表

      2 hashmap的原理是什么?

      主要是添加索引,把元素按照索引分组

      3 hashmap是线程安全的吗?

      不是线程安全的,
ConcurrentHashMap是线程安全的
      4 hashmap
中元素的put和get操作原理是什么?

      解答:通过hash算法计算index,在index中调用equals方法比较元素的key进行get或者put
      5 hashmap
和hashtable的区别是什么?

      Hashmap线程不安全,hashtable线程安全。
      6
对象的hashCode方法原理是什么,有什么用?
      7 StringBuilder
和StringBuffer有什么区别,分别是做什么的?

 

Hashmapputget方法参考:

http://yikun.github.io/2015/04/01/Java-HashMap%E5%B7%A5%E4%BD%9C%E5%8E%9F%E7%90%86%E5%8F%8A%E5%AE%9E%E7%8E%B0/


0 0