Java面试
MANONGMN
收获与付出成正比
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Docker实战】Spring Boot应用容器化
摘要:本文详细介绍了Spring Boot应用容器化的完整流程,采用多阶段Docker构建优化镜像大小(从700MB降至120MB)。重点包含:1)分层构建技术提升构建效率;2)启动脚本实现MySQL依赖检查;3)环境变量配置管理;4)自定义网络通信方案;5)部署过程与问题排查指南。提供Docker Compose编排示例,并给出生产环境配置建议,如敏感信息管理、健康检查等。通过实际案例演示如何将传统Java应用高效迁移至容器环境。原创 2025-08-10 19:33:56 · 450 阅读 · 0 评论 -
【Java面试】fail-safe 和 fail-fast
原因是采用安全失败机制的集合容器,在遍历时不是直接在集合内容上访问的,而是先复制原有集合内容,在拷贝的集合上进行遍历。由于迭代时是对原集合的拷贝进行遍历,所以在遍历过程中对原集合所作的修改并不能被迭代器检测到。: 表示快速失败,在集合遍历过程中,一旦发现容器中的数据被修改了,会立刻抛出 ConcurrentModificationException 异常,从而导致遍历失败。,表示失败安全,也就是在这种机制下,出现集合元素的修改,不会抛出ConcurrentModificationException。原创 2023-11-02 15:20:43 · 243 阅读 · 0 评论 -
【Java面试】AQS?
AQS 是多线程同步器,它是 J.U.C 包中多个组件的底层实现,如 Lock、CountDownLatch、Semaphore 等都用到了 AQS. 从本质上来说,AQS 提供了两种锁机制,分别是排它锁和共享锁。,就是存在多线程竞争同一共享资源时,同一时刻只允许一个线程访问该共享资源,也就是多个线程中只能有一个线程获得锁资源,比如 Lock 中的 ReentrantLock 重入锁实现就是用到了 AQS 中的排它锁功能。原创 2023-11-02 15:02:28 · 165 阅读 · 0 评论 -
【Java面试】Java集合总结
HashMap 通过 key 的 hashCode 经过扰动函数处理过后得到hash 值,然后通过(n-1) & hash 判断当前元素存放的位置(这里的 n 指的是数组的长度),如果当前位置存在元素的话,就判断该元素与要存入的元素的 hash 值以及key 是否相同,如果相同的话,直接覆盖,不相同就通过拉链法解决冲突。内存空间占用:LinkedList 比 ArrayList 更占内存,因为LinkedList 的节点除了存储数据,还存储了两个引用,一个指向前一个元素,一个指向后一个元素。原创 2023-11-02 13:58:22 · 184 阅读 · 0 评论 -
【Java面试】面试被问:ConcurrentHashMap 底层实现原理?
ConcurrentHashMap有一个。原创 2023-11-02 12:47:48 · 218 阅读 · 0 评论 -
【Java面试】面试被问lock和synchronized的区别?
而非公平锁,就是不管是否有线程在排队等待锁,它都会尝试去竞争一次锁。synchronized在性能方面和lock相差不大,在实现上会有一个区别synchronized引入了偏向锁,轻量级锁,重量级锁,以及锁升级的机制去实现锁的优化,而lock则用到了自旋锁的方式实现性能优化。并且我们可以通过synchronized加锁对象的生命周期,来控制锁的作用范围,比如锁对象是静态对象,或者类对象,那么这个锁就是属于全局锁,如果锁对象是实例对象,那么这个锁的范围取决于这个对象的生命周期。2.修饰在同步代码块上。原创 2023-11-02 12:12:42 · 114 阅读 · 0 评论
分享