【冲刺秋招,许愿offer】第 一 天

【冲刺秋招,许愿offer】第 一 天

知识点

Java

  1. Leetcode:可以用LinkedListMap模拟实现LRUCache,用hash表查找,双向链表记录顺序。
  2. 集合:集合的遍历方式,可以使用迭代器(万能)、增强for只能用于单列集合,调用foreach
  3. 基础:编译看左边,运行看右边,在使用多态的时候子类不能调用父类中没有的方法

项目

  • 如何解决缓存击穿问题的? 缓存击穿问题是由于热点Key过期了,导致大量请求到达数据库,可以用互斥锁或者逻辑过期。

    互斥锁:线程1查询缓存未命中-> 获取锁 -> 进行缓存重建 -> 其他线程和当前线程都要等待缓存重建完成后返回数据

    逻辑过期:加一个字段来表示是否过期,业务逻辑变为,看判断是否过期,过期,获取锁,开启子线程进行缓存重建,其他线程以及主线哼返回旧数据。

    对比:相比较于互斥锁:逻辑过期有短暂的数据不一致性,但是性能较好

牛客面经

  1. 说一下JMM内存模型
    JMM内存模型是Java内存的一种规范,它并不真实存在,分为主内存和工作内存,主内存存放的是共享数据,工作内存就对应每个线程的内存,CPU的执行指令的时候,会先将主内存里面的数据加载到工作内存,从而提高CPU的处理速度,有了JMM的这种规范,就能保证并发程序在不同的虚拟机上编译执行的结果是可靠的。解决了并发的三大特性,原子性、可见性、有序性。
  2. volatile的底层实现
    volatile的底层原理主要依赖于CPU的高速缓存、Java内存模型(JMM)和内存屏障技术。它通过确保volatile变量的读写操作直接从主内存中进行,以及使用内存屏障来确保操作的顺序和可见性,从而实现了多线程环境下的可见性和一定程度的原子性。
    对 volatile 变量的写指令后会加入写屏障
    写屏障保证在该屏障之前,对共享变量的修改都同步到主存中
    对 volatile 变量的读指令前会加入读屏障
    读屏障保证在该屏障之后,读取到的数据都是主存中最新的数据

emo环节

现在技术还是菜的一批,中等难度的算法题很难一次(一小时)解出来,项目稍微一深挖或者问点视频中没讲到的扩展性问题直接拉跨化身聋哑人,牛客面经越看越焦虑,里面问到的八股也不是都会,哎,感觉给我大厂面试机会也是秒挂,前面摆烂两个月了,秋招将至,再冲击一下,希望能拿到个好点的offer。

相关推荐
莫得感情 o7 分钟前
设计模式 13 · 桥接模式
java·设计模式·桥接模式
吠品7 分钟前
Java中实现拓扑排序的两种方式:Kahn算法和DFS
java·数据库·notepad++
TunerT_TQ18 分钟前
企业智能体工程体系v1.1|企业智能体工程卷 · 第5期· 数据飞轮——用观察—分析—计划—执行持续改进
java·运维·网络·#agent工程化·#企业智能体·#多智能体系统·#数据飞轮
小当家.10522 分钟前
工具并行调用原理与实现:CompletableFuture 实战
java·agent·线程池·工具·并行
wangjialelele1 小时前
Spring Cloud 全体系学习笔记(REST、Nacos、Feign、Gateway)
java·spring boot·笔记·学习·spring·spring cloud·gateway
yk 坤帝1 小时前
用Python算清你的“买时间“账
java·服务器·python
weixin_BYSJ19871 小时前
springboot医疗信息管理系统---附源码17465
java·javascript·spring boot·python·django·flask·php
xqqxqxxq1 小时前
吃透 Spring 高频注解(包含SpringMVC Spring Boot)
java·spring boot·spring
都叫我大帅哥1 小时前
Embabel 1.0 Agent Framework 完全指南:从入门到生产级实践
java
福大大架构师每日一题1 小时前
agno v2.8.7 发布:顾问模型、精准路线、调度能力全面升级,10项关键修复一次看懂
java·开发语言·数据库