面经
文章平均质量分 89
hellodake
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
阿里菜鸟内推 一面
1.自我介绍 2.HashMap和ConcurrentHashMap的区别? HashMap线程不安全,ConcurrentHashMap线程安全。 HashMap是基于哈希表的Map接口的非同步实现。提供所有可选的映射操作,并允许null值和null键。 基本原理是先声明一个下标范围比较大的数组来存储元素。另外设计一个哈希函数(也叫做散列函数)来获得每一个元素的k...原创 2018-07-19 16:50:43 · 564 阅读 · 0 评论 -
TOP k问题
题目:有1千万条短信,有重复,以文本文件的形式保存,一行一条,有重复。请用5分钟时间,找出重复出现最多的前10条。 解析:对于本题来说,某些面试者想用数据库的办法来实现:首先将文本导入数据库,再利用select语句某些方法得出前10条短信。但实际上用数据库是满足不了5分钟解决这个条件的。这是因为1千万条短信即使1秒钟录入1万条(这已经算是很快的数据录入了)5分钟才300万条。即使真的能在5分钟...原创 2018-09-05 09:14:22 · 232 阅读 · 0 评论 -
Hashmap1.7和1.8区别+ConcurrentHashmap1.7和1.8区别
Hashmap JDK1.7中 使用一个Entry数组来存储数据,用key的hashcode取模来决定key会被放到数组里的位置,如果hashcode相同,或者hashcode取模后的结果相同,那么这些key会被定位到Entry数组的同一个格子里,这些key会形成一个链表; 在hash函数特别差的情况下,比如说所有key的hashcode都相同,这个链表可能会很长,那么put...原创 2018-09-04 16:58:06 · 6366 阅读 · 5 评论 -
CAS操作是怎么实现的
CAS是compare and swap,翻译过来就是比较并交换。维护三个变量值,一个是内存值V,一个是期望的旧的值A,一个是要更新的值B。更新一个变量的时候,只有当预期值A与内存V中的值相等的时候,才会执行更新操作,把内存V的值改为B。 从思想上来说,synchronized属于悲观锁,悲观的认为程序中的并发情况严重,所以严防死守,CAS属于乐观锁,乐观地认为程序中的并发情况不...原创 2018-09-05 14:26:06 · 2832 阅读 · 0 评论 -
volatile关键字
java提供了一种稍弱的同步机制,volatile变量,用来确保将变量的更新操作通知到其他线程。当把变量声明为volatile类型的时候,编译器与运行时都会注意到这个变量是共享的,所以不会将该变量上的操作与其他内存操作一起重排序。volatile变量不会被缓存在寄存器或者对其他处理器不可见的地方,因此在读取volatile类型的变量时总会返回最新写入的值。 在访问volatile...原创 2018-09-05 16:52:48 · 175 阅读 · 0 评论
分享