java

导航

2020年java高频面试题:第七部分

来源 :中华考试网 2020-10-13

  HashMap的数据结构是什么?如何实现的?和HashTable、ConcurrentHashMap的区别?

  在Java 8中,HashMap的数据结构是由Node作为元素组成的数组:(1)如果有多个值hash到同一个桶中,则组织成一个链表,而且,当这个链表的节点个数超过某个值(TREEIFY_THRESHOLD参数指定)时,则将这个链表重构为一个二叉树;(2)如果发现map中的元素个数超过了threshold,则进行空间扩容——二倍空间。

  HashMap和HashTable的数据结构和操作基本相同,区别是前者是非线程安全,并且HashMap接受value为null。

  ConcurrentHashMap和HashTable一样,都是线程安全的,但是区别是:HashTable每次操作都会锁住整个表结构——导致一次只能有一个线程访问HashTable对象,而ConcurrentHashMap不会,只会锁住某个节点,只有在涉及到size的操作时才会锁整个表结构。

  Cookie和Session的区别 HTTP是无状态协议,但是在实际应用中有跟踪客户端状态的需求,Cookie和Session是两种不同的实现方案。Cookie保存在客户端,Session保存在服务端

  Cookie没有Session安全,侵入者可以通过分析客户端的cookie信息侵入网站;

  使用Session存储重要信息,使用Cookie存储不那么重要的信息;

  使用Session方案时,常常需要依赖Cookie传递SID的值,如果客户端禁用了Cookie,则转而采取URL重写技术(但是这种技术有安全风险);

  填写下面表单即可预约申请免费试听java课程!害怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

分享到

相关资讯