×
Offer来了:Java面试核心知识点精讲(第2版)

Offer来了:Java面试核心知识点精讲(第2版)

1星价 ¥103.4 (6.5折)
2星价¥103.4 定价¥159.0
暂无评论
图文详情
  • ISBN:9787121435959
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:16开
  • 页数:636
  • 出版时间:2022-07-01
  • 条形码:9787121435959 ; 978-7-121-43595-9

本书特色

——1. 不仅是Java开发者的应试经典,更是面试官的参考题库—— 本书以Java技术为主,从Java基础、Java生态技术到设计模式等都做了详细介绍,帮你深入理解Java核心技术,对Java知识点查漏补缺。章节架构由浅入深,内容讲解细致入微,对架构及知识点的梳理清晰明了。 ——2. 能帮助读者梳理Java面试知识脉络,总结和提升Java技能—— 本书从Java基础、Spring、缓存、分布式到NoSQL等多方面做了应用和原理方面的介绍,各知识点讲解力求精简,直击痛点,不拖泥带水。 ——3. 在第1版的基础上进行内容升级,对Java知识点重新梳理和补充—— 本书在第1版的基础上,对理论基础、常用算法、应用场景、大厂常用技术框架和数据处理框架等都重新做了知识点梳理和补充。这些内容在大规模、高并发、低延迟的场景的互联网大规模应用开发中会被频繁用到。 ——4. 超强Java面试书,一书在手,Offer我有—— 作为面试类的图书,本书全面覆盖了面试、笔试环节中的各个知识点,并附有详细的示例代码,可帮助读者在提高理论水平的基础上加强动手能力。

内容简介

本书讲解Java面试中常被问及的核心知识点,涉及Java基础、Java并发编程、JVM、Java高并发网络编程、Spring基础、Netflix的原理及应用、Spring Cloud Alibab的原理及应用、数据结构、Java中常用算法的原理及其Java实现、关系数据库及分布式事务、分布式缓存的原理及应用、ZooKeeper的原理及应用、Kafka的原理及应用、Elasticsearch的原理及应用、设计模式的概念及其Java实现。 本书内容全面、细致,既可帮助读者迅速查找Java知识点,也可帮助读者完善其Java知识体系;不但可以作为Java面试知识速通手册,也可以作为Java程序员的案头手册。

目录

》》》第1章 Java基础 1《《《 1.1 集合 2 1.1.1 List:可重复 2 1.1.2 Queue 3 1.1.3 Set:不可重复 4 1.1.4 Map 5 1.2 异常的分类及处理 8 1.2.1 异常的概念 8 1.2.2 异常的分类 9 1.2.3 处理异常的方式 10 1.3 反射机制 12 1.3.1 动态语言的概念 12 1.3.2 反射机制的概念 12 1.3.3 反射的应用 12 1.3.4 Java的反射API 13 1.3.5 反射的过程 13 1.3.6 创建对象的两种方式 14 1.3.7 Method的invoke方法 15 1.4 注解 16 1.4.1 注解的概念 16 1.4.2 标准元注解:@Target、@Retention、@Documented、@Inherited 16 1.4.3 注解处理器 17 1.5 内部类 19 1.5.1 静态内部类 19 1.5.2 成员内部类 20 1.5.3 局部内部类 21 1.5.4 匿名内部类 21 1.6 泛型 22 1.6.1 泛型标记和泛型限定:E、T、K、V、N、? 23 1.6.2 泛型方法 24 1.6.3 泛型类 25 1.6.4 泛型接口 25 1.6.5 类型擦除 26 1.7 序列化 27 1.7.1 Java序列化API的应用 27 1.7.2 Kryo序列化 29 1.7.3 Avro序列化 31 1.7.4 ProtoBuf序列化 33 1.8 Java I/O 35 1.8.1 输入流和输出流 35 1.8.2 字节流和字符流 36 1.8.3 节点流和处理流 42 1.8.4 内存映射文件技术 43 》》》第2章 Java并发编程 46《《《 2.1 常见的Java线程的创建方式 47 2.1.1 继承Thread类 47 2.1.2 实现Runnable接口 48 2.1.3 通过ExecutorService和Callable<Class>接口实现有返回值的线程 49 2.1.4 基于线程池 50 2.2 Java线程池的原理 50 2.2.1 线程复用 51 2.2.2 线程池的核心组件和核心类 51 2.2.3 Java线程池的工作流程 52 2.2.4 线程池的拒绝策略 53 2.3 5种常用的线程池 56 2.3.1 newCachedThreadPool 56 2.3.2 newFixedThreadPool 57 2.3.3 newScheduledThreadPool 57 2.3.4 newSingleThreadExecutor 58 2.3.5 newWorkStealingPool 58 2.4 线程的生命周期 58 2.4.1 新建状态:New 60 2.4.2 就绪状态:Runnable 60 2.4.3 阻塞状态:Blocked 60 2.4.4 等待状态:Waiting 61 2.4.5 超时等待状态:Timed_Waiting 61 2.4.6 线程终止:Terminated 61 2.5 线程的基本方法 61 2.5.1 线程等待:wait方法 62 2.5.2 线程睡眠:sleep方法 62 2.5.3 线程让步:yield方法 62 2.5.4 线程中断:interrupt方法 62 2.5.5 线程加入:join方法 63 2.5.6 线程唤醒:notify方法 64 2.5.7 后台守护线程:setDaemon方法 64 2.5.8 sleep方法和wait方法的区别 65 2.5.9 start方法和run方法的区别 65 2.5.10 终止线程的4种方式 65 2.6 Java中的锁 67 2.6.1 乐观锁 68 2.6.2 悲观锁 68 2.6.3 自旋锁 68 2.6.4 synchronized 69 2.6.5 ReentrantLock 77 2.6.6 synchronized与ReentrantLock的对比 83 2.6.7 Semaphore 83 2.6.8 AtomicInteger 84 2.6.9 可重入锁 85 2.6.10 公平锁和非公平锁 85 2.6.11 读写锁 86 2.6.12 共享锁和独占锁 86 2.6.13 重量级锁和轻量级锁 87 2.6.14 偏向锁 87 2.6.15 分段锁 88 2.6.16 同步锁和死锁 88 2.6.17 如何进行锁优化 88 2.7 线程上下文切换 90 2.7.1 线程上下文切换的流程 90 2.7.2 导致线程上下文切换的原因 91 2.8 Java中的阻塞队列 91 2.8.1 阻塞队列的主要操作 92 2.8.2 Java中阻塞队列的实现 96 2.9 Java并发关键字 101 2.9.1 CountDownLatch 101 2.9.2 CyclicBarrier 103 2.9.3 Semaphore 104 2.9.4 volatile的作用 106 2.10 多线程如何共享数据 108 2.10.1 将数据抽象成一个类,将对这个数据的操作封装在类的方法中 108 2.10.2 将Runnable对象作为一个类的内部类,将共享数据作为其成员变量 109 2.11 Fork/Join并发框架 111 2.11.1 工作窃取算法 111 2.11.2 Fork/Join框架的应用 112 2.11.3 Fork/Join的核心组件 116 2.11.4 Fork/Join的任务调度流程 117 2.12 Java中的线程调度 117 2.12.1 抢占式调度 117 2.12.2 协同式调度 118 2.12.3 Java线程调度的实现:抢占式 119 2.12.4 线程让出CPU的情况 119 2.13 进程调度算法 119 2.13.1 优先调度算法 119 2.13.2 高优先权优先调度算法 120 2.13.3 时间片的轮转调度算法 121 2.14 CAS 122 2.14.1 CAS的特性:乐观锁 123 2.14.2 CAS自旋等待 123 2.15 ABA问题 124 2.16 AQS 124 2.16.1 AQS的原理 125 2.16.2 state:状态 125 2.16.3 AQS共享资源的方式:独占式和共享式 126 2.17 Java 8中的流 127 2.17.1 并行流和串行流的原理 128 2.17.2 流的常用函数 130 2.17.3 流的创建方式 131 2.17.4 流和集合的区别 132 》》》第3章 JVM 133《《《 3.1 JVM结构规范(Java SE 8) 134 3.2 多线程 135 3.3 HotSpot JVM内存模型 136 3.3.1 程序计数器:线程私有,无内存溢出问题 137 3.3.2 Java虚拟机栈:线程私有,描述Java方法的执行过程 137 3.3.3 本地方法栈:线程私有 138 3.3.4 Java堆:线程共享 139 3.3.5 元空间:方法区在HotSpot JVM中的实现,线程共享 139 3.3.6 直接内存 139 3.4 HotSpot JVM堆 140 3.4.1 新生代:Eden区、SurvivorTo区和SurvivorFrom区 140 3.4.2 老年代 141 3.5 垃圾回收的原理与算法 142 3.5.1 如何确定垃圾 142 3.5.2 如何回收垃圾 143 3.6 Java中的4种引用类型 147 3.7 分代回收算法和分区回收算法 148 3.7.1 分代回收算法 148 3.7.2 分区回收算法 148 3.8 垃圾回收器 149 3.8.1 Serial垃圾回收器:单线程,复制算法 150 3.8.2 ParNew垃圾回收器:多线程,复制算法 150 3.8.3 Parallel Scavenge垃圾回收器:多线程,复制算法 150 3.8.4 Serial Old垃圾回收器:单线程,标记整理算法 150 3.8.5 Parallel Old垃圾回收器:多线程,标记整理算法 151 3.8.6 CMS垃圾回收器 152 3.8.7 G1垃圾回收器 152 3.9 JVM的参数配置 153 3.9.1 JVM参数设置入门案例 153 3.9.2 JVM参数设置实战 154 3.10 JVM的类加载机制 156 3.10.1 JVM的类加载阶段 156 3.10.2 类加载器 158 3.10.3 双亲委派机制 159 3.10.4 OSGI 160 3.11 JVM的性能监控与分析工具 161 3.11.1 jps 161 3.11.2 jinfo 162 3.11.3 jstat 162 3.11.4 jstack 163 3.11.5 jmap 164 3.11.6 GC日志分析 166 》》》第4章 Java高并发网络编程 168《《《 4.1 网络 169 4.1.1 OSI七层网络模型 169 4.1.2 TCP/IP四层网络模型 170 4.1.3 TCP三次握手/四次挥手 171 4.1.4 HTTP的原理 176 4.1.5 CDN的原理 180 4.2 负载均衡 182 4.2.1 四层负载均衡与七层负载均衡的对比 182 4.2.2 负载均衡算法 18
展开全部

节选

》》》》》》推荐序1 拿到本书并阅读之后,作为一个从业二十多年的“大龄”程序员,我不禁回忆起自己经历丰富的面试官生涯。入行多年以来,我为不同的公司、团队、产品和项目组面试过许多技能、背景和水平各不相同的程序员,可以说是阅人无数了。每个公司都希望招聘到市场上非常优秀的程序员,每个新手程序员也都想成为“技术大牛”。 这些年的面试经验和工作经验告诉我,*好的程序员往往具备两个突出特点: (1)不管工作经验是否丰富,其基础都非常扎实,无论是操作系统、数据结构和编程语言等基础知识,还是开发框架的原理和常用算法,都可以信手拈来、触类旁通; (2)视野非常开阔,能够把理论知识和工程实践非常恰当地结合起来,而不是纸上谈兵,并且总能够根据项目或者产品的实际情况活学活用,找到适合的技术栈和工程方法。 本书几乎讲解了优秀的Java程序员所应掌握的核心技术,可以让读者一站式掌握Java新技术生态中的核心知识,同时了解到如何将这些知识运用到具体的工程实践之中。本书的内容由浅到深、循序渐进,非常丰富和翔实,不仅适合新手程序员入门学习,也适合作为每个程序员的案头手册,更适合每个程序员不断学习。 相信本书不仅能够帮助面试者在面试过程中做到滴水不漏、挥洒自如,顺利拿到心仪的Offer,也能够帮助在职程序员开拓眼界、不断提高,成为未来的“技术大牛”。————————西安翼辉爱智物联技术有限公司研发总监 李强 》》》》》》 推荐序2 我是王磊的大学老师,听说他的书要再版了,非常开心。我知道他为本书付出了很多心血,但却把自己在编写过程中遇到的困难说得云淡风轻。我认真阅读了他送来的样书,也非常理解他的写书初衷:他希望自己的书能成为读者成长路上的垫脚石。 写书的人都是真诚的,都相信书是人类进步的阶梯,而且一旦进步了,习得了,就成为刻在基因里的能力。我相信他传递的是思维,也是方法,更是一种可以终生受益的能力。 王磊的大学同学都戏称他为“才子”,一是因为他所知甚广,二是因为他所研甚深。在美丽的大学时光里,他和老师、同学们曾蹲在路边打开计算机讨论软件操作,腿麻得无法站立,还被蚊子叮得浑身是包;他在读本科的时候就已经在团队讨论会上给研究生们讲技术和算法的原理了,并且能耐心地回答所有问题。我当时就对他说:“我觉得你可以写书了,你写的文档比大学老师写的书都细致,还更容易上手!”大学毕业前,他果然写了一本厚厚的书。我非常惊叹他的行动能力。 在知识产权保护意识越来越强的时代,我希望他的付出能得到社会的认可,也能得到应有的回馈。他带着满怀的真诚,认真对待每一颗求知的心!希望他和读者能相互成就! ————————陕西师范大学地理科学与旅游学院副教授 苏惠敏 》》》》》》 推荐序3 认真阅读了王磊寄给我的样稿,我有惊喜也有感慨:惊喜的是,在公司业务快速发展和系统架构不断演进的过程中,王磊仍然可以编写出这样高质量和高含金量的内容;感慨的是,如果自己在十年前找工作时也能有这样的知识点完备的图书,一定会让自己信心百倍,即使是现在,本书仍然让我有温故知新的感受。 每一位做技术的同学,一定都非常喜欢在技术氛围浓厚、有创造力的团队里工作,这样既能感受讨论问题时抽丝剥茧和拨云见日的快感,也能体会业务飞涨时跨越巅峰和突破极限的喜悦。王磊作为Java专家加入我们团队,使得我们团队的能力板块得到了补充和加强,也给我们带来了新的创造力;而且他领导了多个分布式系统的设计和开发,参与了大数据平台从Lambda架构到Kappa架构的升级,还实现了PB级大数据实时数仓的构建。 在十余年的技术管理工作中,我面试了很多人,发现优秀的人在对原理的掌握和对知识的贯通上都非常突出。只有理解JVM的内存模型和垃圾回收方式,我们才能知道在频繁Full GC的情况下用什么工具去分析JVM的性能;只有理解同步、异步的底层原理,我们才能知道高并发场景下技术选型的重点;只有理解HBase的存储引擎原理,我们才能理解在高读高写场景下如何应用它,也才能理解冷热分离的存储模式的可行性。本书能够帮助我们梳理这些知识点,*终实现融会贯通的效果。 作为面试类的图书,本书全面覆盖了面试、笔试环节中的各个知识点,从Java基础、Spring实战、分布式系统的概念、大数据应用等方面层层展开,并附有详细的示例代码,可帮助读者在提高理论水平的基础上加强动手能力。本书不仅适合正在应聘的应届生阅读,对正在从事Java开发、分布式系统应用开发、大数据开发的一线人员也有很高的参考价值。 ————————Yeahmobi广告平台技术总监 芦康平

作者简介

王磊 飞轮数据(Apache Doris商业化公司)大数据架构师、阿里云MVP、极客时间“每日一课”专栏作者。对分布式架构、DevOps、Serverless、PB级数据处理等有丰富的实战经验,深入理解数据治理、数据湖和实时数仓技术。热爱技术,喜欢创新,关注社区的技术发展状态。 已出版的图书有: -《Offer来了:Java面试核心知识点精讲(原理篇)》 -《Offer来了:Java面试核心知识点精讲(框架篇)》 -《图解Spark:大数据快速分析实战》

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航