• Java面试八股文:高频面试题与求职攻略一本通(视频解说版)
  • Java面试八股文:高频面试题与求职攻略一本通(视频解说版)
  • Java面试八股文:高频面试题与求职攻略一本通(视频解说版)
  • Java面试八股文:高频面试题与求职攻略一本通(视频解说版)
  • Java面试八股文:高频面试题与求职攻略一本通(视频解说版)
21年品牌 40万+商家 超1.5亿件商品

Java面试八股文:高频面试题与求职攻略一本通(视频解说版)

正版 当天发货 照片是实物图

20 1.6折 128 九品

仅1件

北京大兴
认证卖家担保交易快速发货售后保障

作者谭勇德(Tom)

出版社电子工业出版社

出版时间2023-06

版次1

装帧其他

上书时间2024-10-22

一品博雅书斋

五年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:九品
图书标准信息
  • 作者 谭勇德(Tom)
  • 出版社 电子工业出版社
  • 出版时间 2023-06
  • 版次 1
  • ISBN 9787121455582
  • 定价 128.00元
  • 装帧 其他
  • 开本 其他
  • 纸张 胶版纸
  • 页数 480页
  • 字数 0.65千字
【内容简介】
本书将碎片化的Java面试“八股文”知识点系统化、结构化,精选了近200道经典高频的“八股文”面试题,整理了近20个经典高频的“实战场景”解决方案,准备了10多个面试简历实操技巧。每道面试题都标注了难度指数、考查频率、开发年限和匹配岗位等,并配置了二维码,扫码即可同步观看视频解说,能够让读者享受到“同声传译”式的体验。本书内容覆盖了Java基础知识,并发编程与多线程,集合原理,JVM原理,I/O与网络编程,设计模式,Spring全家桶,Dubbo、Netty、MyBatis等互联网常用框架,分布式与微服务,MySQL数据库,缓存与NoSQL,消息中间件,互联网经典场景及面试求职攻略,覆盖了90%以上常见的面试知识点。本书非常适合未来想从事Java开发相关工作的学生、准备面试的Java程序员、不知道如何修改简历的技术人员阅读。希望本书可以帮助读者完成短期面试突击,获得理想的Offer。
【作者简介】
谭勇德(Tom)咕泡科技联合创始人。现担任咕泡产品总监一职,主要负责课程产品、技术产品的标准定义和设计。一个从美术生转型Java开发的程序员,3年内做到架构师,5年内做到CTO。自研开发过多套企业内部UI框架和ORM框架。14年Java从业经验,6年线上教学经验。已培养5万名学员进入主流互联网企业。国内首创《互联网程序员职业成长发展路线图》《互联网程序员职业各成长阶段能力模型》,已影响全国100W+程序员。 开创“手写源码学习法”,已让全国60W+学员受益。 获2022年“51CTO专家博主”,获“掘金2021年受欢迎创作者”,获“2021年CSDN IT领军人物”,全网粉丝已超过50W。著有畅销书《Spring 5核心原理与30个类手写实战》《Netty 4核心原理与手写RPC框架实战》《设计模式就该这样学》,电子工业出版社博文视点优秀作者,电子工业出版社“Java架构师成长丛书”长期签约作者。关注公众号“Tom弹架构”获取更多干货。谭锋(Mic)咕泡科技联合创始人。目前担任教学总监一职,负责微服务及高并发领域的课程设计和研发。2017年开始创业,至今已有6年多时间,拥有14年Java开发架构经验,其中包括4年授课经验,培养了5万名学员,学员遍布一二线城市的主流互联网企业。曾就职于中国电信、平安支付、挖财等公司,担任技术经理/架构师岗位。在平安支付主导了基于Dubbo的服务化架构设计和落地,在挖财推动了基于Spring Boot的微服务化架构改造,对微服务架构和并发架构有非常深入的研究,以及丰富的实践经验。著有畅销书《Spring Cloud Alibaba微服务原理与实战》《Java并发编程深度解析与实战》,电子工业出版社博文视点优秀作者。关注公众号“跟着Mic学架构”获取更多干货。
【目录】
第1篇  Java核心知识点1

第1章  Java基础知识2

1.1  数据类型2

1.1.1  为什么要设计封装类,Integer和int有什么区别2

1.1.2  为什么“1000==1000”为false,“100==100”为true3

1.1.3  new String(\"hello\")之后,到底创建了几个对象6

1.1.4  String、StringBuffer、StringBuilder的区别是什么8

1.2  Object对象9

1.2.1  如何理解Java对象的创建过程9

1.2.2  什么是深克隆和浅克隆10

1.2.3  强引用、软引用、弱引用、虚引用有什么区别12

1.2.4  一个空的Object对象到底占多大内存14

1.2.5  为什么重写equals()方法就一定要重写hashCode()方法15

1.3  其他特性17

1.3.1  请对比一下Java和JavaScript的区别17

1.3.2  什么是受检异常和非受检异常18

1.3.3  fail-fast机制与fail-safe机制分别有什么作用20

1.3.4  如何理解序列化和反序列化21

1.3.5  什么是SPI,它有什么用22

1.3.6  finally语句块一定会执行吗24

1.3.7  什么是内存溢出,什么是内存泄漏25

第2章  并发编程与多线程27

2.1  J.U.C和锁27

2.1.1  什么是AQS27

2.1.2  如何理解AQS的实现原理28

2.1.3  AQS为什么要使用双向链表29

2.1.4  什么是CAS31

2.1.5  什么是乐观锁,什么是悲观锁32

2.1.6  什么条件下会产生死锁,如何避免死锁33

2.1.7  synchronized和Lock的区别是什么35

2.1.8  什么是可重入锁,它的作用是什么37

2.1.9  ReentrantLock的实现原理是什么38

2.1.10  ReentrantLock是如何实现锁的公平性和非公平性的39

2.1.11  说说你对行锁、间隙锁、临键锁的理解40

2.1.12  如何理解Java中令人眼花缭乱的各种并发锁42

2.1.13  阻塞队列被异步消费,怎么保持顺序51

2.1.14  基于数组的阻塞队列ArrayBlockingQueue的实现原理是什么52

2.2  多线程与线程池53

2.2.1  Thread和Runnable的区别是什么53

2.2.2  什么是守护线程,它有什么特点54

2.2.3  BLOCKED和WAITING两种线程状态有什么区别55

2.2.4  为什么启动线程不能直接调用run()方法,调用两次start()方法会

有什么后果56

2.2.5  谈谈你对Java线程5种状态流转原理的理解58

2.2.6  谈谈你对线程池的理解60

2.2.7  Java有哪些实现线程池的方式62

2.2.8  线程池是如何回收线程的63

2.2.9  线程池是如何实现线程复用的64

2.2.10  线程池如何知道一个线程的任务已经执行完成65

2.2.11  当任务数超过线程池的核心线程数时,如何让任务不进入队列66

2.2.12  什么是伪共享,如何避免伪共享67

2.2.13  wait和notify为什么要写在synchronized代码块中69

2.2.14  wait和sleep是否会触发锁的释放及CPU资源的释放70

2.2.15  volatile关键字有什么用,它的实现原理是什么71

2.2.16  说说你对CompletableFuture的理解73

2.2.17  谈谈你对ThreadLocal实现原理的理解75

2.2.18  CountDownLatch和CyclicBarrier有什么区别77

2.2.19  谈谈你对Happens-Before的理解79

2.3  线程安全81

2.3.1  谈谈你对线程安全的理解81

2.3.2  Java保证线程安全的方式有哪些82

2.3.3  如何安全中断一个正在运行的线程83

2.3.4  SimpleDateFormat是线程安全的吗84

2.3.5  并发场景中,ThreadLocal会造成内存泄漏吗85

第3章  集合原理89

3.1  ArrayList89

3.1.1  ArrayList是如何实现自动扩容的89

3.1.2  谈谈ArrayList、Vector和LinkedList的存储性能及特性91

3.2  HashMap92

3.2.1  单线程下的HashMap工作原理是什么92

3.2.2  HashMap是如何解决Hash冲突的97

3.2.3  HashMap什么时候扩容,如何自动扩容99

3.2.4  为什么HashMap会产生死循环101

3.2.5  HashMap和TreeMap的区别是什么104

3.2.6  为什么ConcurrentHashMap的key不允许为null106

3.2.7  谈谈你对ConcurrentHashMap底层实现原理的理解108

3.2.8  ConcurrentHashMap是如何保证线程安全的111

第4章  JVM原理115

4.1  JVM介绍115

4.1.1  如何理解Java虚拟机,它的结构是如何设计的115

4.1.2  什么是双亲委派机制119

4.2  内存管理121

4.2.1  JVM如何判断一个对象可以被回收121

4.2.2  谈谈你对JVM中主要GC算法的理解123

4.2.3  JVM分代年龄为什么是15次125

4.2.4  JVM为什么使用元空间替换永久代126

第5章  I/O与网络编程129

5.1  I/O基础129

5.1.1  Java有几种文件拷贝方式,哪一种效率129

5.1.2  I/O和NIO的区别是什么130

5.1.3  谈谈你对I/O多路复用机制的理解131

5.2  网络编程135

5.2.1  什么是网络四元组135

5.2.2  TCP协议为什么要设计3次握手137

5.2.3  Cookie和Session有什么区别138

第6章  设计模式140

6.1  单例模式140

6.1.1  在Java中实现单例模式有哪些方法140

6.1.2  哪些情况下的单例对象可能会被破坏143

6.1.3  在DCL单例写法中,为什么主要做两次检查147

6.1.4  哪些场景不适合使用单例模式150

6.2  代理模式151

6.2.1  什么是代理,为什么要用动态代理151

6.2.2  JDK动态代理为什么只能代理有接口的类153

6.3  责任链模式155

第2篇  框架源码与原理159

第7章  Spring全家桶160

7.1  Spring框架160

7.1.1  为什么要使用Spring框架160

7.1.2  Spring IoC的工作流程是怎样的162

7.1.3  Spring中BeanFactory和FactoryBean的区别是什么164

7.1.4  谈谈你对Spring Bean的理解165

7.1.5  Spring Bean的定义包含哪些内容169

7.1.6  Spring中Bean的作用域有哪些172

7.1.7  如何叙述Spring Bean的生命周期174

7.1.8  Spring中的Bean是线程安全的吗178

7.1.9  Spring有几种依赖注入的方式179

7.1.10  Spring如何解决循环依赖问题180

7.1.11  Spring中用到了哪些设计模式183

7.1.12  Spring中的事务传播行为有哪些184

7.1.13  导致Spring事务失效的原因有哪些185

7.1.14  Spring中实现异步调用的方式有哪些187

7.1.15  谈谈你对Spring AOP原理的理解190

7.2  Spring MVC框架193

7.2.1  说说你对Spring MVC的理解193

7.2.2  简述Spring MVC的核心执行流程194

7.2.3  谈谈你对Spring MVC中9大组件的理解197

7.2.4  Spring中@Autowired和@Resource的区别202

7.3  Spring Boot框架207

7.3.1  为什么越来越多的人选择Spring Boot207

7.3.2  如何理解Spring Boot约定优于配置210

7.3.3  Spring Boot自动装配机制的实现原理是什么211

7.3.4  如何理解Spring Boot中的Starter213

7.4  Spring Cloud框架214

7.4.1  谈谈你对Spring Cloud的理解214

7.4.2  谈谈Eureka Server数据同步原理215

7.4.3  简述Nacos配置更新的工作流程216

第8章  互联网常用框架218

8.1  Dubbo框架218

8.1.1  简述Dubbo和Spring Cloud的优缺点对比218

8.1.2  Dubbo的服务请求失败怎么处理220

8.1.3  Dubbo是如何动态感知服务下线的221

8.2  Netty框架223

8.2.1  谈谈你对Netty中Reactor模式的理解223

8.2.2  Netty是如何实现零拷贝的225

8.2.3  为什么Netty线程池默认大小为CPU核数的两倍228

8.2.4  谈谈你对Netty中Pipeline工作原理的理解229

8.3  MyBatis框架231

8.3.1  谈谈你对MyBatis缓存机制的理解231

8.3.2  MyBatis中#号和$号的区别是什么233

8.3.3  MyBatis是如何进行分页的234

第3篇  分布式与中间件237

第9章  分布式与微服务238

9.1  分布式通信238

9.1.1  谈谈你对RPC框架的理解238

9.1.2  HTTP和RPC有什么区别240

9.2  微服务协调组件242

9.2.1  分布式和微服务的区别是什么242

9.2.2  谈谈你对负载均衡的理解243

9.2.3  谈谈你对ZooKeeper的理解248

9.2.4  简述ZooKeeper中的Watch机制的原理250

9.2.5  ZooKeeper如何实现Leader选举251

9.3  分布式锁254

9.3.1  谈谈你对分布式锁的理解和实现254

9.3.2  什么是幂等,如何解决幂等性问题255

9.3.3  谈谈你对一致性Hash算法的理解256

9.3.4  常用的分布式ID设计方案有哪些260

9.3.5  实现分布式锁,ZooKeeper和Redis哪个更好261

9.4  分布式事务263

9.4.1  如何区分Spring中的事务和分布式事务263

9.4.2  谈谈分布式事务的解决方案264

9.4.3  谈谈你对Seata的理解265

9.4.4  如何解决TCC中的悬挂问题269

9.5  限流和鉴权271

9.5.1  常用的限流算法有哪些271

9.5.2  简述雪花算法的实现原理273

9.5.3  简述Sentinel组件里的滑动窗口算法278

9.5.4  谈谈你对OAuth的理解279

9.6  DevOps与云原生283

9.6.1  谈谈你对Swagger工作流程的理解283

9.6.2  什么是云原生286

9.6.3  什么是服务网格287

9.6.4  谈谈你对IaaS、PaaS、SaaS的理解290

第10章  MySQL数据库293

10.1  存储引擎293

10.1.1  存储MD5值应该用VARCHAR还是CHAR293

10.1.2  能不能用MySQL的VARCHAR来存储一本小说294

10.1.3  导致索引失效的原因有哪些296

10.1.4  什么是聚集索引和非聚集索引297

10.1.5  谈谈你对B树和B+树的理解298

10.1.6  为什么MySQL的索引结构要采用B+树302

10.1.7  MySQL索引的优点和缺点是什么303

10.1.8  为什么SQL语句命中索引比不命中索引要快304
点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP