书籍作者:蔡羽 | ISBN:9787111641186 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:7969 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
《Java高级程序员面试笔试宝典》是一本讲解高级Java程序员面试笔试的百科全书,在写法上,除了讲解如何解答高级Java程序员面试笔试问题以外,还引入了相关知识点辅以说明,让读者能够更加容易地理解。
由于高级Java程序员所需要掌握的知识体系,较之初级、中级程序员会更加底层,所以该书会花费大量篇幅针对Java语言的高级特性(泛型、Collection框架、JUC框架、Java IO、JVM等)进行深度剖析。该书将高级Java程序员面试笔试过程中各类知识点一网打尽,在广度上,通过各种渠道,搜集了近3年来几乎所有IT企业针对高级Java程序员岗位的笔试面试涉及到的知识点,包括但不限于高级Java程序员必须掌握的各类技术点等,所选择知识点均为企业招聘考察的高频知识点。在讲解的深度上,该书由浅入深,庖丁解牛式地分析每一个知识点,并提炼归纳,同时,引入相关知识点,并对知识点进行深度剖析,让读者不仅能够理解这个知识点,还能在遇到相似问题的时候,也能游刃有余地解决,而这些内容是其它所有同类书籍所没有的。该书根据知识点进行分门别类,结构合理,条理清晰,对于读者进行学习与检索意义重大。
该书是一本计算机相关专业毕业生面试、笔试的求职用书,同时也适合期望在计算机软、硬件行业大显身手的计算机爱好者阅读。
猿媛之家,成立于201 5年8月,是一家致力于研究程序员人生规划、程序员技能与培训、程序员就业与发展的机构。旨在为广大求职者提供求职一站式服务,为求职者量体裁衣,打造一套适合自己的求职解决方案。机构成员均毕业于国内“985”“211”高校的计算机相关专业,就职于BAT等典型IT企业。
机构宗旨是“服务大众、分层对待、整体提高、打造精品”,目标是“让天下没有找不到工作的程序员”。
蔡羽,程序员。从事开发工具、可视化工具相关开发近十年。擅长Java、JS及相关技术,目前专攻方向为online IDE。
程序员求职始终是当前社会的一个热点,而市面上有很多关于程序员求职的书籍,例如《程序员代码面试指南》(左程云著)、《剑指Offer》(何海涛著)、《程序员面试笔试宝典》(何吴编著)、《Java程序员面试笔试宝典》(何昊编著)、《编程之美》(《编程之美》小组著)、《编程珠玑》(Jon Bentley著)等,它们都是针对基础知识的讲解,各有侧重点,而且在市场上反映良好。但是,当前市面上没有一本专门针对Java高级程序员的面试笔试的分析与讲解,很多读者朋友们向我们反映,随着就业市场的竞争白热化,如果只是掌握一些浅显的初中级Java知识,那么找到一份月薪八千的工作问题不大,但要想获取更高的职位或薪酬,基本上是一件很难的事情。当下,一些互联网公司特殊Offer的要求也越来越高,要想领先他人,求职者就必须比别人掌握更深入的知识才行。
针对这种情况,我们创作团队经过精心准备,从互联网上的海量面试笔试真题中,选取了当前顶级企业(包括微软、谷歌、百度、腾讯、阿里巴巴、360和小米等)的面试笔试真题,挑选出其中最典型、考查频率最高、最具代表性的Java真题,同时对真题进行知识点的分门别类,做到层次清晰、条理分明、答案简单明了,最终编写成书。本书所选真题以及写作手法具有以下特点:
第一,考查率高。本书中所选知识点全是Java程序员面试笔试常考点,囊括当前Java程序员面试笔试过程中各类高频知识点,尤其是对高级Java语言特性的分析更是细致入微。
第二,行业代表性强。本书中所选知识点全部来自于顶级知名企业,它们是行业的风向标,代表了行业的高水准,其中绝大多数知识点因为题目难易适中,而且具有非常好的区分度,经常会被众多中小企业全盘照搬,具有代表性。
第三,答案详尽。本书对每一个知识点都有非常详细的解答,授之以鱼的同时还授之以渔,不仅提供答案,还告诉读者再遇到同类型题目时该如何解答。
第四,分类清晰、条理分明。本书对各个知识点都进行了归纳分类,这种写法有利于读者针对个人实际情况做到有的放矢、重点把握。
第五,讲解深入。对于大部分知识点,不仅给出这个知识点的用法,更重要的是给出其底层的实现原理。
由于篇幅所限,我们无法将所有的程序员面试笔试真题内容或者知识点都列入其中,鉴于此,我们在猿媛之家官方网站(www.yuanyuanzhijia.com)上提供了一个读者交流平台,读者朋友们可以在该网站上上传各类面试笔试真题,也可以查找自己所需要的知识,同时,读者朋友们也可以向本平台提供当前最新、最热门的程序员面试笔试题、面试技巧、程序员生活等相关材料。除此以外,我们还建立了公众号“猿媛之家”,作为对外消息发布平台,以便最大限度地满足读者需要。欢迎读者关注探讨新技术。
本书主要针对Java用户,我们还有专门针对C/C++用户的图书,同期出版发行。
感谢帮助过我们的亲人、同事、朋友和同学,无论我们遇到多大的挫折与困难,他们对我们不离不弃,一如既往地支持与帮助我们,使我们能够开开心心地度过每一天。在此对以上所有人致以最衷心的感谢。
所有的成长和伟大,如同中药,都是一个时辰一个时辰熬出来的;所有的好书,都是逐字逐句琢磨出来的。在技术的海洋里,我们不是创造者,但我们更愿意去当好一名传播者,让更多的求职者能够通过对本书的系统学习,找到一份自己满意的工作,实现自己的人生理想与抱负。
前言
第一部分 Java特性
第1章 重视基础知识
1.1 不可变类
1.2 “==”、equals与haascode
1.3 值传递与引用传递
1.4 Java关键字
1.4.1 static
1.4.2 final
1.4.3 transient
1.4.4 volatile
第2章 再论面向对象
2.1 继承
2.1.1 多重继承
2.1.2 Overload与Override
2.2 反射
2.3 嵌套类
第3章 泛型
3.1 基本概念
3.1.1 泛型的分类
3.1.2 有界泛型
3.1.3 复杂的泛型
3.1.4 数组和泛型容器
3.1.5 泛型使用建议
3.2 泛型擦除
3.2.1 泛型信息的擦除
3.2.2 擦除带来的问题
3.2.3 编译器保留的泛型信息
3.2.4 反射获取泛型信息
3.2.5 Java泛型的历史
第4章 Java新特性
4.1 Java 8新特性
4.1.1 Lambda表达式
4.1.2 方法的默认实现和静态方法
4.1.3 方法引用
4.1.4 注解(Annotation)
4.1.5 类型推测
4.1.6 参数名字
4.1.7 新增0ptional类
4.1.8 新增Stream类
4.1.9 日期新特性
4.1.10 调用JavaScript
4.1.11 Base64
4.1.12 并行数组
4.2 Java 9新特性
4.2.1 JShell:交互式Java REPL
4.2.2 不可变集合工厂方法
4.2.3 私有接口方法
4.2.4 平台级模块系统
4.2.5 进程API的改进
4.2.6 try-with-resources
4.2.7 Stream API的改进
第二部分 JDK内部实现原理分析
第5章 Collection框架
5.1 List
5.1.1 ArrayList
5.1.2 LinkedList
5.1.3 Vector和Stack
5.1.4 总结
5.2 Queue
5.3 Map
5.3.1 HashMap
5.3.2 Java 8之前的HashMap
5.3.3 Java 8提供的HashMap
5.3.4 TreeMap
5.3.5 Java 8之前的LinkedHashMap
5.3.6 Java 8里的LinkedHashMap
5.3.7 Hashtable
5.3.8 WeakHashMap
5.4 Set
5.4.1 HashSet
5.4.2 LinkedHashSet
5.4.3 TreeSet
第6章 JUC框架
6.1 AQS队列同步器
6.1.1 AQS的同步状态关键字
6.1.2 volatile关键字
6.1.3 AQS和CAS
6.1.4 AQS的等待队列
6.1.5 AQS如何阻塞线程和中断阻塞
6.1.6 sun.misc.Unsafe
6.2 ReentrantLock重入锁
6.2.1 ReentrantLock的公平锁与非公平锁实现
6.2.2 ReentrantLock的重入性
6.2.3 ReentrantLock和synchronized
6.2.4 ReentrantLock的条件监视器
6.3 BlockingQueue
6.3.1 ArrayBlockingQueue
6.3.2 LinkedBlockingQueue
6.3.3 PriorityBlockingQueue
6.3.4 ConcurrentLinkedQueue
6.3.5 DelayQueue
6.4 Executor框架集
6.4.1 Executor接口
6.4.2 ExecutorService
6.4.3 ThreadpoolExecutor
6.4.4 FixedThreadpool、CachedThreadpool和SingleTlareadExecutor
6.4.5 Future和FutureTask
6.5 Latch
6.6 Barrier
6.6.1 利用重入锁ReentrantLock和条件监视器Condition实现Barrier
6.6.2 利用Generation对象实现回归性
6.6.3 利用Generation对象和Interrupt提供break功能
6.6.4 为Barrier指定超时
6.6.5 Barrier的回调和回调的异常处理
6.7 同步(wait?ify)
6.8 ThreadLocal
6.8.1 使用实例
6.8.2 原理解析
6.8.3 Java 8新特性
6.9 其他JUC类
6.9.1 ConcurrentHashMap
6.9.2 CopyOnWriteArrayList
第7章 Java IO
7.1 IO相关基础概念
7.2 同步与异步、阻塞与非阻塞
7.3 BIO
7.4 NI0
7.4.1 Buffer
7.4.2 Channel
7.4.3 Selector
7.4.4 AIO
第三部分 JVM
第8章 内存分配
8.1 JVM内存划分
8.2 运行时内存划分
8.2.1 年轻代、老年代与永久代
8.2.2 String.intern()
8.2.3 原空间MetaSpace
8.3 垃圾回收
8.3.1 垃圾回收算法
8.3.2 串行垃圾回收
8.3.3 并行垃圾回收
8.3.4 并发标记清理回收器
8.3.5 G1
第9章 代码的执行
9.1 类加载
9.1.1 双亲委托模型
9.1.2 线程上下文类加载器
9.2 代理模式
9.2.1 静态模式
9.2.2 动态代理
9.2.3 CGLIB
9.3 Java代码的执行
9.3.1 Java字节码
9.3.2 变量的执行
9.3.3 条件语句的执行
9.3.4 循环语句的执行
9.3.5 泛型擦除的类型转换
第10章 设计模式
10.1 单例模式
10.2 工厂模式
10.3 适配器模式
10.4 观察者模式
附录(常见面试笔试题)