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课程!害怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
预约申请免费听java课程
- 地区:
- 北京
- 天津
- 上海
- 江苏
- 浙江
- 山东
- 江西
- 安徽
- 广东
- 广西
- 海南
- 辽宁
- 吉林
- 黑龙江
- 内蒙古
- 山西
- 福建
- 河南
- 河北
- 湖南
- 湖北
- 四川
- 重庆
- 云南
- 贵州
- 新疆
- 西藏
- 陕西
- 青海
- 宁夏
- 甘肃
- 姓名:
- 手机: