百度提前批一面凉经!继续复习!

昨晚下大雨,主包十一点多从公司往家里赶,把平板淋坏了,郁闷。
--- --- --- --- ---

聊实习。面试官非常有礼貌。一听是golang,对为什么投java表达了奇怪,遂不细问。

常规八股:
1. 抽象类与接口的区别
2. JDK中你知道哪些并发安全容器
3. 如果要实现一个单生产者多消费者模式,你有哪些方法?
4. synchronized和reentrantlock锁之间有什么区别?
5. Spring Controller如果想打印日志,怎么做?
6. 如果一个Controller是上传文件的接口,那么在AOP层做完了文件流的读取,在Controller层还能重复读取吗?
7. Java线上CPU打满,如何排查?
8. 进程和线程的区别?
9. 如何快速找到指定目录下大于100MB的所有文件
10. Spring、Spring Boot中你常用的注解有哪些?
11. @Autowired和@Resource之间有什么区别?
12. MySQL用的是B树还是B+树,这二者有什么区别?
13. delete * from,drop,truncate之间有什么区别?
14. 脏读、可重复读、幻读分别说一下
15. Redis常见数据结构
16. Redis的Hash使用的时候有哪些注意事项?
17. 给一张表,user_id, class_id, grade,找到每个班级排名第二的成绩
18. 有没有用过窗口函数
19. JVM类加载机制说一下

聊实习情况。无手撕凉凉。

体会:SSM完全生疏还没复习,大失败!非常感谢面试官帮我找状态。

#我的秋招“寄”录#
全部评论
cy
点赞 回复 分享
发布于 08-23 11:15 北京
加油
点赞 回复 分享
发布于 08-21 15:54 上海
主包主包,为啥说无手撕凉凉?
点赞 回复 分享
发布于 08-19 21:24 湖南
主包加油!看你字节面经长大的
点赞 回复 分享
发布于 08-19 01:19 北京
Mark
点赞 回复 分享
发布于 08-16 01:49 陕西
来一把三国杀
点赞 回复 分享
发布于 08-16 00:49 湖南
这种ssm大八股 我真一点也不想看
点赞 回复 分享
发布于 08-15 18:11 河南
面完就共享了吗
点赞 回复 分享
发布于 08-15 18:07 广东
为啥不投go
点赞 回复 分享
发布于 08-15 16:49 广东

相关推荐

import java.util.*;class Node {public Integer key;public Integer value;public Long timeStamp;public Node(Integer key, Integer value, Long timeStamp) {this.key = key;this.value = value;this.timeStamp = timeStamp;}}class LRUCache {private Map<Integer, Node> map;private int capacity;public LRUCache(int capacity) {map = new LinkedHashMap<>();this.capacity = capacity;}public int get(int key) {Node node = map.get(key);// key 不存在if (node == null) {return -1;}// key 过期(懒删除策略)if (isExpire(node)) {map.remove(key);return -1;}map.remove(key);map.put(key, node);return node.value;}public void put(int key, int value, Long timeStamp) {Node node = map.get(key);if (node == null) {  // key 不存在node = new Node(key, value, timeStamp);if (map.size() < capacity) {  // 有额外空间map.put(key, node);} else {  // 没有额外空间// 先尝试移除过期keyremoveExpireNodes();// 如果空间还是不足,移除最老的keyif (map.size() >= capacity) {map.remove(map.keySet().iterator().next());}map.put(key, node);}} else {  // key 存在map.remove(key);node = new Node(key, value, timeStamp);map.put(key, node);}}private void removeExpireNodes() {for (Node node : map.values()) {if (isExpire(node)) {map.remove(node.key);}}}private boolean isExpire(Node node) {if (node.timeStamp == null) {  // 没有时间戳表示永久不过期return false;}return System.currentTimeMillis() > node.timeStamp;}}class LRUTTL {public static void main(String[] args) {LRUCache cache = new LRUCache(2);cache.put(1, 10, null);cache.put(2, 20, null);System.out.println(cache.get(1));  // 10cache.put(3, 30, null);System.out.println(cache.get(2));  // -1cache.put(4, 40, System.currentTimeMillis() + 1000);try {System.out.println(cache.get(1));  // -1Thread.sleep(1500);System.out.println(cache.get(3));  // 30System.out.println(cache.get(4));  // -1} catch (InterruptedException e) {throw new RuntimeException(e);}}}优化点:可以维护一个map结构存储<最小过期时间,节点数量>来判断当前LinkedList中是否存在已经过期的node,可以一定程度地减少 removeExpireNodes 的调用次数
点赞 评论 收藏
分享
评论
9
53
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务