小红书面经
1.自我介绍
2.说说ajax和redis(这俩有啥关系么。。 ajax我倒是知道 但是简历上没写 而且好久没看了我也不知道 只知道异步通信 处理表示层的 页面刷新啥的 具体说说 那我不知道了。。
3.说说redis(简单结合项目说了利用了redis消息队列处理高并发
4.你的项目什么时候会高并发 你是先学了redis后解决高并发还是先遇到并发问题后学redis 你的项目遇到过什么问题(抢书包柜的时候 || 这啥问题我没懂想问啥 说了句处理预约的时候想起来有并发问题用redis解决 然后后来分配的时候忘了加锁 后来想到了又实现了加锁
5.高并发会造成什么 (一下不知道怎么说。。 造成脏读? 直接被打断 数据库不就有隔离级别不允许脏读吗
6.那你说说读未提交怎么回事儿(一个事务先读了 另一个之后做了修改但未提交 然后读到未提交的数据就脏读了 很烂 应该是事务A对一行数据做了修改 但未提交 事务B读到这个改后数据 但是事务A回滚了 那就导致事务B脏读了
7.Synchronized 和 ReentrantLock(没记住
8.redis还知道啥 知道缓存穿透吗(刚好看了点 就说了说 黑客制造大量不存在的key,缓存中找不到就直接请求数据库
9.给了一段代码 大概是一个方法 里面定义了一个栈 while栈不为空 出栈 问有啥线程安全问题 怎么解决(多线程同时执行这段代码可能导致栈空了缺依然pop(),解决就加锁 加到哪里 方法上 粒度再小点 加到while循环上 问我具体哪句话出了问题 答出栈 那就加在出栈这句
10.实现词频统计(用hashset hashmap 问空间复杂度太大了 再考虑有没有更好的 最后没答上来 后来问他说用byte数组
11.int long Integer Long 区别 都占多少字节(基本数据类型 包装类 4 8 后面俩呢 不知道。。。 想到了有引用指针不知道占多少怎么计算也没说出来
12.volatile 和 synchronized(没背
13.gc你用哪种方式(不懂 提示了我点啥 哦问的是gc收集器 记得有个g1就说了一句 还答非所问的说了gc算法 就问我g1是用的哪个算法
14.cms和g1啥区别
15.g1比cms好在哪
16.或者说说g1的运作 哪个环节有stop-the-world
17.final
18.类加载 static block 和 static field 怎么加载的(好像是这么问的 我是毁在英语上了吗 没反应过来 这是静态代码块和静态成员变量的意思吗
19.双亲委派模型 怎么打破双亲(还是自己看的不到位 真不知道怎么打破 答案自定义一个类加载器重载loadClass()
20.hashcode相等一定相等吗(不,已经懵了 说因为hashcode只能说明内存地址相等,还要equals比较两者的值是否相等。。。
21.问我有没有要问他的(g了,没有
面对gg吧!