您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
搜索
热搜:
磁力片
|
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
冲刺高薪Offer——Java并发编程进阶及面试指南
字数: 346
出版社: 人民邮电
作者: 编者:梁建全|
商品条码: 9787115655523
适读年龄: 12+
版次: 1
开本: 16开
页数: 318
出版年份: 2025
印次: 1
定价:
¥99.9
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
加入书单
收藏
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥21.56
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
内容简介
本书是一份旨在帮助Java求职者在面试中脱颖而出的重要指南。本书涵盖Java并发编程的多个关键主题,如并发原理和线程安全、并发关键字原理、并发锁和死锁、并发容器和工具、并发线程池以及并发设计与实战等。本书的特色在于将“大厂”“名企”的面试问题和实践经验相结合,不仅对面试问题和面试官心理进行深度剖析,还对面试问题解答和相关技术点进行详细介绍,这样更有利于读者全面理解相关知识点和技术,并能够在实际工作和面试中灵活应用。 通过学习本书,读者可以深入了解“大厂”“名企”的面试问题和实践经验。本书提供的面试问题解答和宝贵经验将有助于读者在实际工作中提升自己的能力,并在面试中表现更加出色,提高面试成功率,斩获高薪Offer(职位)。无论是对面试准备还是对技能提升而言,本书都是读者不可或缺的指南,能够帮助读者在职业生涯中取得更大的成功。
作者简介
梁建全,毕业于北京大学计算机专业,18年以上IT研发和管理经验,先后在北大方正、新东方、达内、拉勾网等多家上市企业担任资深架构师和技术总监岗位,著有《你必须知道的261个Java语言问题》《轻量级JavaEE框架整合方案》《ASP.NET开发答疑》《ASP.NET办公自动化开发实例导航》等多本IT技术书籍 ,【西二旗程序员】公号创办者,热衷技术分享。
目录
第1章 并发原理和线程安全 001 1.1 面试官:谈谈你对线程和线程安全的理解 001 1.1.1 Java创建和启动线程的方式有哪些?它们之间有什么区别? 003 1.1.2 Java线程都有哪些状态?其状态是如何切换的? 006 1.1.3 Java线程使用到了哪些调度策略? 008 1.1.4 为什么使用并发编程?需注意哪些问题? 010 1.1.5 并发编程和并行编程有什么区别? 012 1.1.6 什么是线程同步和阻塞?它们有什么关系? 013 1.1.7 什么是线程安全?如何确保线程安全? 014 1.2 面试官:介绍JMM与线程安全的关系 016 1.2.1 什么是JMM?它有哪些特征和作用? 017 1.2.2 JMM和Java内存结构有什么区别? 019 1.2.3 JMM内存是如何交互的?都有哪些操作? 020 1.2.4 什么是happens-before原则?它有什么作用? 022 1.2.5 什么是指令重排序和内存屏障? 025 1.2.6 如何保证程序的可见性、原子性和有序性? 029 1.3 面试官:谈谈多线程中的上下文切换 031 1.3.1 什么是上下文切换?上下文切换会带来哪些问题? 033 1.3.2 什么是进程上下文切换?引起进程上下文切换的原因有哪些? 034 1.3.3 什么是线程上下文切换?与进程上下文切换有何区别? 036 1.3.4 如何查看线程上下文切换信息? 038 1.3.5 如何减少线程上下文切换的次数? 040 1.4 面试官:谈谈你对AQS的理解 042 1.4.1 什么是AQS ?它有什么作用? 043 1.4.2 AQS支持哪些资源共享方式? 045 1.4.3 AQS的底层数据结构和工作原理是什么? 047 1.4.4 什么是Condition ?它有哪些使用场景? 054 1.4.5 AQS中的Condition是如何实现的? 056 1.5 面试官:讲讲CAS实现机制和原理 059 1.5.1 什么是CAS ?它有什么作用? 061 1.5.2 Java中有哪些CAS工具?如何使用它们? 062 1.5.3 Unsafe类和CAS有什么关系? 064 1.5.4 使用CAS会产生什么问题?如何解决这些问题? 065 第2章 并发关键字原理 071 2.1 面试官:谈谈final关键字对并发编程的作用 071 2.1.1 final 关键字的底层原理是什么? 072 2.1.2 final 关键字对并发编程有什么作用? 076 2.1.3 为什么final 引用不能从构造函数内“逸出”? 079 2.2 面试官:谈谈synchronized关键字的特性和原理 082 2.2.1 synchronized关键字的底层实现原理是什么? 085 2.2.2 synchronized关键字是怎么保证线程安全的? 091 2.2.3 synchronized是可重入锁吗?其底层如何实现? 094 2.2.4 Java对synchronized关键字做了哪些优化? 096 2.2.5 说说synchronized锁升级过程及实现原理 100 2.2.6 什么是synchronized锁消除和锁粗化? 102 2.3 面试官:说说volatile 关键字的使用及原理 104 2.3.1 volatile 关键字的使用场景有哪些? 107 2.3.2 volatile关键字如何做到内存可见性? 111 2.3.3 volatile关键字如何实现禁止指令重排序? 113 2.3.4 volatile变量的内存屏障插入策略是什么? 114 2.3.5 volatile关键字能保证操作的原子性吗? 115 2.3.6 双重检查锁为什么要使用volatile关键字? 116 2.3.7 volatile和synchronized关键字有什么区别? 117 第3章 并发锁和死锁 119 3.1 面试官:谈谈Java并发锁的使用和原理 119 3.1.1 Java都有哪些锁?它们有什么区别? 122 3.1.2 乐观锁和悲观锁的应用和原理有什么区别? 124 3.1.3 乐观锁如何解决ABA问题? 127 3.1.4 在Java中如何应用读锁和写锁? 130 3.1.5 Java独享锁和共享锁有何区别? 132 3.1.6 偏向锁、轻量级锁、重量级锁是什么? 133 3.1.7 什么是公平锁?什么是非公平锁? 135 3.1.8 分段锁的设计思想和目的是什么? 137 3.1.9 什么是可重入锁?其实现原理是什么? 140 3.1.10 什么是自旋锁?它有哪些实现方式? 142 3.1.11 常用的锁优化手段和方法有哪些? 145 3.2 面试官:如何预防和解决多线程死锁? 147 3.2.1 什么是线程死锁?其产生原因有哪些? 149 3.2.2 如何避免和解决线程死锁? 152 3.2.3 如何分析和定位死锁问题源头? 156 3.2.4 什么是饥饿和活锁?它们与死锁有什么区别? 159 3.2.5 什么是锁的分级?如何使用它预防死锁? 163 3.2.6 Java并发API有哪些高级特性可用于避免死锁? 164 第4章 并发容器和工具 167 4.1 面试官:谈谈你对JUC的理解 167 4.1.1 什么是JUC ?它包含哪些内容? 169 4.1.2 什么是原子类?它有哪些作用和优点? 170 4.1.3 Lock框架有哪些常用的锁?它们有什么优缺点? 172 4.1.4 常用的并发容器有哪些?适用于哪些场景? 174 4.1.5 同步容器与并发容器有什么区别? 177 4.1.6 JUC包含哪些同步工具类?有什么作用? 179 4.2 面试官:谈谈JUC容器的实现原理 181 4.2.1 ConcurrentHashMap的底层存储结构是什么? 183 4.2.2 ConcurrentHashMap如何保证线程安全? 185 4.2.3 ConcurrentHashMap如何实现扩容? 187 4.2.4 在ConcurrentHashMap中什么情况下链表会转换 为红黑树? 193 4.2.5 什么是Copy-on-Write ?常见的CopyOnWrite容器有哪些? 195 4.2.6 CopyOnWriteArrayList是如何保证线程安全的? 197 4.3 面试官:谈谈你对并发队列的理解 200 4.3.1 BlockingQueue和BlockingDeque有什么区别? 201 4.3.2 BlockingQueue阻塞队列的实现原理是什么? 204 4.3.3 ArrayBlockingQueue和LinkedBlockingQueue有什么区别? 206 4.3.4 SynchronousQueue底层有几种数据结构?有什么区别? 207 4.3.5 ConcurrentLinkedQueue是如何保证线程安全的? 208 4.4 面试官:介绍JUC同步工具的使用及实现原理 212 4.4.1 CountDownLatch如何使用?其实现原理是什么? 214 4.4.2 CyclicBarrier 和CountDownLatch有什么区别? 216 4.4.3 使用Semaphore需注意哪些问题?其底层如何实现? 219 4.4.4 Exchanger主要解决什么问题?实现机制是什么? 224 4.5 面试官:谈谈你对ThreadLocal的理解 230 4.5.1 工作中遇到过哪些ThreadLocal的使用场景? 231 4.5.2 ThreadLocal底层是如何实现线程隔离的? 234 4.5.3 为什么ThreadLocal会导致内存泄漏?如何解决? ......235 第5章 并发线程池 237 5.1 面试官:说说线程池的设计思想和实现原理 237 5.1.1 什么是线程池?它有哪些适用场景? 240 5.1.2 线程池有哪些状态?这些状态如何转换? 242 5.1.3 线程池主要有哪些参数?它们有什么作用? 244 5.1.4 核心线程和非核心线程有什么区别? 247 5.1.5 Java线程池的线程复用原理是什么? 249 5.1.6 线程池是如何进行任务调度的? 255 5.1.7 线程池为什么要使用阻塞队列? 258 5.1.8 Java线程池的底层实现原理是什么? 259 5.2 面试官:谈谈你使用Java线程池的一些经验 262 5.2.1 Java有哪些类型的线程池?它们各自适用于什么场景? 265 5.2.2 为什么不推荐使用Executors创建线程池? 269 5.2.3 如何合理配置Java线程池的参数? 270 5.2.4 Java线程池线程抛出的异常该如何处理? 273 5.2.5 如何优雅且安全地关闭一个线程池? 276 5.2.6 如何监控和优化线程池的性能? 277 第6章 并发设计与实战 283 6.1 面试官:讲讲并发编程中有哪些常用的线程操作 283 6.1.1 如何正确处理一个线程发生的异常? 285 6.1.2 如何正确停止一个正在运行的线程? 288 6.1.3 如何唤醒一个阻塞的线程? 290 6.1.4 如何保证多个线程的执行顺序? 294 6.1.5 如何在两个线程之间共享数据? 298 6.1.6 怎么检查一个线程是否持有某个对象锁? 304 6.2 面试官:谈谈并发编程中的一些设计实践和经验 306 6.2.1 如何解决单例模式的线程安全问题? 307 6.2.2 如何使用阻塞队列来实现生产者- 消费者模型? 310 6.2.3 如何使用AQS实现互斥锁? 312 6.2.4 怎样设计一个线程池? 314 6.2.5 设计一个并发系统,如何确保系统不会出现死锁? 316
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网