图书介绍
Java核心技术及面试指南PDF|Epub|txt|kindle电子书版本下载
![Java核心技术及面试指南](https://www.shukui.net/cover/15/32741884.jpg)
- 金华 著
- 出版社:
- ISBN:
- 出版时间:2018
- 标注页数:0页
- 文件大小:59MB
- 文件页数:354页
- 主题词:
PDF下载
下载说明
Java核心技术及面试指南PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 带你走进Java的世界1
1.1搭建Java开发环境,运行基本程序2
1.1.1在MyEclipse中开发第一个Java程序2
1.1.2第一个程序分析容易犯的错误4
1.1.3开发稍微复杂带函数调用的程序5
1.1.4可以通过Debug来排查问题5
1.1.5输入运行时的参数7
1.2遵循规范,让你的代码看上去很专业9
1.2.1注意缩进9
1.2.2规范命名9
1.2.3在必要的地方加注释,让别人能看懂你的代码10
1.2.4把不同类型的代码放入不同的类、不同的包(package)11
1.3高效学习法,让你不再半途而废12
1.3.1在公司项目中,Web是重点,Core是基础12
1.3.2Core和Web知识点的学习路线图12
1.3.3从基本的LinkedList入手,分享一些学习方法14
1.3.4除非有特殊的需求,否则可以延后学习的知识点16
1.3.5以需求为导向,否则效率不高17
1.3.6提升能力后,成功跳槽时常见的忧虑18
第2章 基本语法中的常用技术点精讲19
2.1基本数据类型、封装类和基本运算操作20
2.1.1从int和Integer来区别基本数据类型和封装类20
2.1.2左加加和右加加的使用建议21
2.1.3可以通过三目运算符来替代简单的if语句22
2.1.4==和equals的区别23
2.1.5基本数据类型、封装类和运算操作的面试题24
2.2流程控制时的注意要点24
2.2.1以if分支语句为例,观察条件表达式中的注意要点24
2.2.2避免短路现象26
2.2.3尤其注意while,do…while和for循环的边界值27
2.2.4switch中的break和default28
2.2.5流程控制方面的面试题30
2.3需要单独分析的String对象30
2.3.1通过String定义常量和变量的区别30
2.3.2通过String来了解“内存值不可变”32
2.3.3通过String和StringBuilder的区别查看内存优化34
2.3.4会被不知不觉调用的toString()方法35
2.3.5使用String对象时容易出错的问题点36
2.3.6String相关的面试题37
2.4论封装:类和方法37
2.4.1类和实例的区别37
2.4.2方法的参数是副本,返回值需要return39
2.4.3通过合理的访问控制符实现封装40
2.4.4静态方法和静态变量41
2.4.5默认构造函数和自定义的构造函数42
2.5论继承:类的继承和接口的实现43
2.5.1从项目角度(非语法角度)观察抽象类和接口43
2.5.2子类中覆盖父类的方法45
2.5.3Java是单重继承,来看看老祖宗Object类的常用方法45
2.5.4不能回避的final关键字47
2.5.5要理解finalize方法,但别重写48
2.6论多态:同一方法根据不同的输入有不同的作用49
2.6.1通过方法重载实现多态49
2.6.2方法重载和覆盖50
2.6.3构造函数能重载但不能覆盖,兼说this和super51
2.6.4通过多态减少代码修改成本54
2.7面向对象思想的常用面试题及解析55
第3章 集合类与常用的数据结构58
3.1常见集合类对象的典型用法59
3.1.1通过数组来观察线性表类集合的常见用法59
3.1.2以HashMap为代表,观察键值对类型的集合对象60
3.1.3Set类集合的使用场景62
3.2要学习线性表类集合,你必须掌握这些知识63
3.2.1ArrayList和LinketList等线性表的适用场景63
3.2.2对比ArrayList和Vector对象,分析Vector为什么不常用66
3.2.3通过线性表初步观察泛型67
3.2.4Set集合是如何判断重复的68
3.2.5TreeSet、HashSet和LinkedHashSet的特点70
3.2.6集合中存放的是引用:通过浅复制和深复制来理解74
3.2.7通过迭代器访问线性表的注意事项78
3.2.8线性表类集合的面试题80
3.3关于键值对集合,你必须掌握这些基本知识80
3.3.1通过Hash算法来了解HashMap对象的高效性80
3.3.2为什么要重写equals和hashCode方法81
3.3.3通过迭代器遍历HashMap的方法84
3.3.4综合对比HashMap、HashTable及HashSet三个对象87
3.3.5键值对部分的面试题87
3.4Collections类中包含着操控集合的常见方法88
3.4.1通过sort方法对集合进行排序88
3.4.2把线程不安全变成线程安全的方法89
3.5泛型的深入研究90
3.5.1泛型可以作用在类和接口上90
3.5.2泛型的继承和通配符92
3.6集合部分的面试题及解析94
第4章 异常处理与IO操作97
4.1异常处理的常规知识点98
4.1.1错误和异常98
4.1.2异常处理的定式,try…catch…finally语句99
4.1.3运行期异常类不必包含在try从句中100
4.1.4throw,throws的Throwable的区别101
4.2高级程序员需要掌握的异常部分知识点102
4.2.1finally中应该放内存回收相关的代码102
4.2.2在子类方法中不应该抛出比父类范围更广的异常103
4.2.3异常处理部分的使用要点104
4.2.4异常部分的面试题107
4.3常见的IO读写操作107
4.3.1遍历指定文件夹中的内容108
4.3.2通过复制文件的案例解析读写文件的方式109
4.3.3默认的输入输出设备与重定向111
4.3.4生成和解开压缩文件115
4.3.5对IO操作的总结117
4.4非阻塞性的NIO操作118
4.4.1与传统IO的区别119
4.4.2NIO的三大重要组件119
4.4.3通道(Channel)和缓冲器(Buffer)119
4.4.4选择器(Selector)122
4.5解析XML文件124
4.5.1XML的文件格式124
4.5.2基于DOM树的解析方式125
4.5.3基于事件的解析方式127
4.5.4DOM和SAX两种解析方式的应用场景131
4.6Java IO部分的面试题131
第5章 SQL,JDBC与数据库编程132
5.1项目中常用SQL语句的注意事项133
5.1.1尽量别写select133
5.1.2count(*)和count(字段名)的比较133
5.1.3insert的注意事项134
5.1.4在delete中,可以通过in语句同时删除多个记录135
5.1.5merge和update的比较136
5.1.6关于存储过程的分析137
5.2通过JDBC开发读写数据库的代码138
5.2.1MySQL数据库中的准备工作138
5.2.2编写读数据表的代码139
5.2.3编写插入、更新、删除数据表的代码141
5.2.4迁移数据库后,JDBC部分代码的改动143
5.3优化数据库部分的代码144
5.3.1把相对固定的连接信息写入配置文件中145
5.3.2用PreparedStatement以批处理的方式操作数据库148
5.3.3通过PreparedStatement对象防止SQL注入149
5.3.4使用C3P0连接池150
5.3.5数据库操作方面的面试题153
5.4通过JDBC进行事务操作153
5.4.1开启事务,合理地提交和回滚153
5.4.2事务中的常见问题:脏读、幻读和不可重复读155
5.4.3事务隔离级别156
5.5面试时JDBC方面的准备要点157
第6章 反射机制和代理模式160
6.1字节码与反射机制161
6.1.1字节码和.class文件161
6.1.2Class类是反射实现的语法基础161
6.2反射的常见用法161
6.2.1查看属性的修饰符、类型和名称162
6.2.2查看方法的返回类型、参数和名称163
6.2.3通过forName和newInstance方法加载类164
6.2.4通过反射机制调用类的方法166
6.2.5反射部分的面试题167
6.3代理模式和反射机制168
6.3.1代理模式168
6.3.2有改进余地的静态代理模式169
6.3.3在动态代理中能看到反射机制171
6.4你已经掌握了一种设计模式,就应大胆地说出来174
6.4.1如何在面试时找机会说出“代理模式”174
6.4.2面试时如何说出对代理模式的认识175
第7章 多线程与并发编程177
7.1线程的基本概念与实现多线程的基本方法178
7.1.1线程和进程178
7.1.2线程的生命周期178
7.1.3通过extends Thread来实现多线程179
7.1.4通过implements Runnable来实现多线程(线程优先级)181
7.1.5多线程方面比较基本的面试题183
7.2多线程的竞争和同步183
7.2.1通过sleep方法让线程释放CPU资源183
7.2.2Synchronized作用在方法上184
7.2.3Synchronized作用在代码块上189
7.2.4配套使用wait和notify方法191
7.2.5死锁的案例195
7.2.6Synchronized的局限性196
7.2.7通过锁来管理业务层面的并发性200
7.2.8通过Condition实现线程间的通信204
7.2.9通过Semaphore管理多线程的竞争208
7.2.10多线程并发方面的面试题210
7.3对锁机制的进一步分析211
7.3.1可重入锁211
7.3.2公平锁和非公平锁213
7.3.3读写锁213
7.4从内存结构观察线程并发217
7.4.1直观地了解线程安全与不安全217
7.4.2从线程内存结构中了解并发结果不一致的原因219
7.4.3volatile不能解决数据不一致的问题220
7.4.4通过ThreadLocal为每个线程定义本地变量221
7.5线程池223
7.5.1通过ThreadPoolExecutor实现线程池223
7.5.2通过Callable让线程返回结果226
7.5.3通过ExecutorService创建4种类型的线程池227
7.6多线程综合面试点归纳228
7.6.1说出多线程的基本概念和常规用法228
7.6.2说出多线程并发的知识点229
7.6.3从线程内存角度分析并发情况230
第8章 让设计模式真正帮到你232
8.1初识设计模式233
8.1.1设计模式的分类233
8.1.2面试时的常见问题(学习设计模式的侧重点)233
8.2从单例模式入手来了解创建型设计模式234
8.2.1单例模式的实现代码和应用场景234
8.2.2通过工厂模式屏蔽创建细节236
8.2.3工厂模式违背了开闭原则237
8.2.4抽象工厂和工厂模式的区别238
8.2.5分析建造者模式和工厂模式的区别239
8.3了解结构型的设计模式242
8.3.1简单的装饰器模式242
8.3.2通过适配器模式协调不同类之间的调用关系245
8.4了解行为型的设计模式247
8.4.1通过迭代器了解迭代模式247
8.4.2常见但大多数情况不用自己实现的责任链模式250
8.4.3适用于联动场景的观察者模式251
8.5设计模式背后包含的原则254
8.5.1应用依赖倒转原则能减少修改所影响的范围254
8.5.2能尽量让类稳定的单一职责原则256
8.5.3继承时需要遵循的里氏替换原则257
8.5.4接口隔离原则和最少知道原则260
8.5.5通过合成复用原则优化继承的使用场景261
8.6设计模式方面学习面试经验总结262
8.6.1设计模式方面对于不同程序员的面试标准262
8.6.2设计模式方面学习和面试的误区263
8.6.3面试时如何展示设计模式的能力264
8.6.4设计模式方面的面试题265
第9章 虚拟机内存优化技巧266
9.1虚拟机体系结构和Java跨平台特性267
9.1.1字节码、虚拟机、JRE和跨平台特性267
9.1.2虚拟机体系结构268
9.1.3归纳静态数据、基本数据类型和引用等数据的存储位置270
9.2Java的垃圾收集机制271
9.2.1分代管理与垃圾回收流程271
9.2.2不重视内存性能可能会导致的后果272
9.2.3判断对象可回收的依据273
9.2.4深入了解finalize方法274
9.2.5Java垃圾回收机制方面的初级面试题275
9.3通过强、弱、软、虚4种引用进一步了解垃圾回收机制275
9.3.1软引用和弱引用的用法276
9.3.2软引用的使用场景277
9.3.3通过WeakHashMap来了解弱引用的使用场景278
9.3.4虚引用及其使用场景280
9.4更高效地使用内存283
9.4.1StoptheWorld、栈溢出错误和内存溢出错误284
9.4.2内存泄漏的示例285
9.4.3在代码中优化内存性能的具体做法288
9.4.4调整运行参数,优化堆内存性能289
9.5定位和排查内存性能问题290
9.5.1什么情况下该排查内存问题291
9.5.2通过JConsole监控内存使用量291
9.5.3通过GC日志来观察内存使用情况292
9.5.4通过打印内存使用量定位问题点294
9.5.5出现OOM后如何获取和分析Dump文件295
9.5.6出现内存问题该怎样排查297
9.6内部类、final与垃圾回收298
9.7在面试中如何展示虚拟机和内存调优技能300
9.7.1从虚拟机体系结构引出内存管理的话题301
9.7.2如何自然地引出内存话题301
9.7.3根据堆区结构,阐述垃圾回收的流程302
9.7.4进一步说明如何写出高性能的代码302
9.7.5展示监控、定位和调优方面的综合能力303
第10章 通过简历和面试找到好工作304
10.1哪些人能应聘成功305
10.1.1公司凭什么留下待面试的简历305
10.1.2技术面试官考查的要点及各要点的优先级306
10.1.3项目经理和人事的考查要点307
10.1.4入职后怎样进行背景调查308
10.2怎样的简历能帮你争取到面试机会308
10.2.1简历中应包含的要素,一个都别落下308
10.2.2如何描述公司的工作情况309
10.2.3描述项目经验的技巧310
10.2.4投送简历时的注意要点316
10.3面试时叙述项目经验和回答问题的技巧318
10.3.1通过叙述项目技能引导后继问题318
10.3.2结合项目实际回答问题319
10.4面试前可以做的准备320
10.4.1事先准备些亮点,回答问题时找机会抛出321
10.4.2事先练习展示责任心和团队协作能力的方式322
10.4.3准备提问环节的问题,以求给自己加分323
10.4.4准备用英文回答问题,以求有备无患324
10.4.5准备些常见刁钻问题的回答,不要临场发挥325
10.4.6准备谈薪资的措辞327
10.5项目经理级别面试的注意要点328
10.5.1把面试官想象成直接领导329
10.5.2在回答中展示良好的沟通和团队协作能力329
10.5.3让面试官确信你会干得长久330
10.6Offer和劳动合同中需要注意的要点331
10.7最后祝大家前程似锦332