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课程!害怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!
一级建造师二级建造师消防工程师造价工程师土建职称房地产经纪人公路检测工程师建筑八大员注册建筑师二级造价师监理工程师咨询工程师房地产估价师 城乡规划师结构工程师岩土工程师安全工程师设备监理师环境影响评价土地登记代理公路造价师公路监理师化工工程师暖通工程师给排水工程师计量工程师
执业药师执业医师卫生资格考试卫生高级职称护士资格证初级护师主管护师住院医师临床执业医师临床助理医师中医执业医师中医助理医师中西医医师中西医助理口腔执业医师口腔助理医师公共卫生医师公卫助理医师实践技能内科主治医师外科主治医师中医内科主治儿科主治医师妇产科医师西药士/师中药士/师临床检验技师临床医学理论中医理论