美文网首页
java基础-2018-05-13

java基础-2018-05-13

作者: 异常已捕获 | 来源:发表于2019-04-03 17:36 被阅读0次

Hashcode的作用

hashCode主要是用于数据的查询快捷性。

两个对象的hashCode相同,但对象不一定相同;两个对象相同,其hashCode必然相同。

HashMap的hashcode的作用

用于确定对象在hashMap中存储的地址。

为什么重载hashCode方法?

重载equals方法时一定要重载hashCode方法。

1、为什么需要重载equals方法。

因为Object默认的equals方法是比较的两个对象的引用;意思就是指向同一内存,地址则相等,否则不相等;如果你现在需要利用对象里面的值来判断是否相等,则重载equal方法。

2、为什么需要重载equals方法。

因为需要满足equals相同,则hashCode必须相同;hashCode相同,equals不一定相同的约定。在HashTable、HashMap、HashSet等等hash结构的集合时,保证数据的唯一性。

ArrayList、LinkedList、Vector的区别

ArrayList内部实现是一个数组,非线程安全。插入时只能存储到数组尾部

LinkedList的实现是一个双向链表,非线程安全。插入时,可以指定任意节点的前后位置。方法比ArrayList丰富。插入效率比ArrayList快。

Vector实现和ArrayList类似,但是线程安全。

String、StringBuffer与StringBuilder的区别

String是字符串常量,一旦创建后对象就不可改变。StringBuffer和StringBuild是对象,可以改变。

在对字符串进行操作时,如拼接时,StringBuffer和StringBuild处理效率优于String。StringBuffer是线程安全的,而StringBuild是非线程安全的。

Map、Set、List、Queue、Stack的特点与用法

Map是键值对的存储结构,键值key是唯一的,存储对象可以是一对一或N对1;

Set不可以存储重复元素,可以存储null;只能用Iterator实现单项遍历,Set中没有同步方法;

List比较常用的存储列表,有序集合。用Iterator实现单向遍历,也可用ListIterator实现双向遍历;

Queue遵从先进先出原则。 不允许有Null对象。使用时尽量避免add()和remove()方法,而是使用offer()来添加元素,使用poll()来移除元素,它的优点是可以通过返回值来判断是否成功。;

Stack遵从后进先出原则。 

HashMap和HashTable的区别

HashMap非线程安全,可以存储null对象;

HashTable线程安全,不可以存储null;

JDK7与JDK8中HashMap的实现

JDK7中HashMap的实现是散链列表,一个数组+链表。

JDK8中则是数组+链表/红黑树的结构;当同一hashcode对象超过8个时,其所在的链表则转化为红黑树结构。

HashMap和ConcurrentHashMap的区别,HashMap的底层源码

HashMap非线程安全,可以存储null;

ConcurrentHashMap线程安全。

ConcurrentHashMap能完全替代HashTable吗

不能,两者的迭代器的一致性不同:HashTable使用的强一致性,而ConcurrentHashMap是弱一致性。比如ConcurrentHashMap中put一个数据,可能在一段时间内,get获取不到 。

相关文章

  • java基础-2018-05-13

    Hashcode的作用 hashCode主要是用于数据的查询快捷性。 两个对象的hashCode相同,但对象不一定...

  • Java 基础

    Java 基础01Java开发入门 Java 基础02Java编程基础 Java 基础03面向对象 Java 基础...

  • 技术体系

    一,java核心 java基础,jvm,算法,多线程,设计模式 Java基础:java基础相关,全栈java基础 ...

  • 面试题汇总

    1.Java基础面试问题 Java基础之基础问题 Java基础之面向对象 Java基础之数据结构 Java基础之I...

  • 【Android】知识点汇总,坚持原创ing

    Android基础 Java基础 Java基础——Java内存模型和垃圾回收机制 语法基础 语法基础——C语法基础...

  • Java基础:反射

    反射注解动态代理相关阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 ...

  • Java基础:注解

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 概述 注解...

  • Java基础:动态代理

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 概述 在运行时,...

  • Java 集合类原理

    Java基础——HashMap源码分析 Java基础——HashSet源码分析 Java基础——HashTable...

  • Java基础:类加载器

    系列阅读 Java基础:类加载器 Java基础:反射 Java基础:注解 Java基础:动态代理 1. 什么是类加...

网友评论

      本文标题:java基础-2018-05-13

      本文链接:https://www.haomeiwen.com/subject/rhdrdftx.html