《Java程序员面试笔记》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(中国)杨峰,王楠
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2019
  • ISBN:9787111627623
  • 页数:373 页
图书介绍:本书为了满足广大应聘IT岗位的毕业生及社招人士复习所学知识,提高职场竞争力而编写。书中涵盖了Java程序员面试所需掌握的全部知识点,内容涉及Java基础,面向对象,字符串,数据结构,算法设计以及操作系统,数据库,计算机网络,综合能力测试题等面试中经常出现的知识点。与此同时,本书还包含了相当篇幅的面试技巧的介绍,并精心搜集了面试官常问的20个问题和外企常考的20道英文面试题,帮助求职者在面试过程中展现自身技术硬实力的同时更能充分发挥自身素质和个人魅力等软实力。 本书不是一部“习题集”,在每节中都对本节所涉及的知识点进行完整的梳理,这样可以使读者夯实专业基础,从根本上掌握程序员笔试面试的要领,也对未来的工作打下坚实的基础。本书采用笔记体裁方式编写,排版采用双色套印,核心内容用高亮标注,重点问题和知识点加批注注释,使读者阅读此书时易于上手,掌握关键信息,提高学习效率。为了更好地帮助读者备战笔试面试,本书将每一节中的知识点梳理以及一些比较有代表性的题目都进行了视频讲解,使读者学习起来更加灵活有趣,知识掌握的也更加牢固。本书中涵盖了各大公司近年来Java笔试面试真题,具有权威性,并在讲解上力求深

第一部分 求职攻略技巧篇 1

第1章 凡事预则立,不预则废——求职准备 1

1.1 摆脱就业“恐惧症” 1

1.2 深度剖析自己,找准定位——切忌好高骛远,眼高手低 3

1.3 制订一个详细的求职计划 6

1.4 你应该知道的求职渠道 8

1.5 认识招聘的流程 11

第2章 打造你的个人名片——简历技巧 13

2.1 个人简历的书写要领及注意事项 13

2.2 英文简历 15

2.3 简历模板参考 16

第3章 下笔如有神的秘籍——笔试技巧 19

3.1 笔试是场持久战 19

3.2 夯实基础才是王道 20

3.3 临阵磨枪,不快也光 22

3.4 练习一点智力题 23

3.5 重视英语笔试和专业词汇 24

3.6 建立自己的笔试资料库 26

第4章 征服面试官的绝招——面试技巧 28

4.1 面试着装的技巧 29

4.2 不打无准备之仗——事先准备可能的提问 29

4.3 切记!第一轮面试仍是“技术面” 30

4.4 重视英语口语 31

4.5 细节决定成败 32

第5章 鱼和熊掌如何取舍——Offer选择技巧 33

5.1 选择Offer的大原则——方向第一,赚钱第二 33

5.2 选择最适合自己的 34

5.3 户口和收入哪个更重要 35

第6章 我的未来我做主——职业生涯规划 39

6.1 Y型发展轨迹 39

6.2 融入企业文化 41

6.3 关于跳槽 42

第7章 运筹帷幄,决胜千里——面试官常问的20个问题 44

7.1 谈谈你的家庭情况 44

7.2 你有什么爱好和兴趣 44

7.3 你自己的优点是什么 45

7.4 你自己的缺点是什么 45

7.5 谈谈最令你有成就感的一件事 45

7.6 谈谈你最近的一次失败的经历 46

7.7 你做过什么项目 46

7.8 你有多少代码量 46

7.9 请描述一下你对我们公司的理解 47

7.10 谈一下最近5年内的职业规划 47

7.11 你觉得工作之后最大的挑战是什么 47

7.12 你对出差和外派的看法是什么 47

7.13 你对加班的看法是什么 48

7.14 你对跳槽的看法是什么 48

7.15 你如何理解你应聘的职位 48

7.16 工作中遇到压力你如何缓解 48

7.17 如何看待程序员40岁以后编不动代码 49

7.18 在工作中有没有经历过和他人意见不合的时候?你是怎么处理的 49

7.19 你平时都采取什么样的学习方式 49

7.20 你还有什么需要了解的问题 49

第8章 知己知彼、百战不殆——外企常考的20道英文面试题 50

8.1 Please tell me something aboutyourself? 50

8.2 What experience do you havein this field? 50

8.3 What is your dream job? 50

8.4 Why should we hire you? 51

8.5 What are you looking for in a job? 51

8.6 Are you willing to workovertime? 51

8.7 What is your greatestweakness? 51

8.8 What are your strengths? 52

8.9 Why did you quit your last job? 52

8.10 Why do you want to work inour company? 52

8.11 What kind of salary are youlooking for? 52

8.12 What do co-workers sayabout you? 53

8.13 What were some of yourachievements at your last job? 53

8.14 Tell me about your ability towork under pressure? 53

8.15 What have you learned frommistakes on the job? 53

8.16 Where do you see yourself in5 years? 53

8.17 How long would you expect towork for us if hired? 54

8.18 What do you want to know about our company? 54

8.19 Tell me about a suggestion you have made? 54

8.20 What motivates you to do your beston the job? 54

第9章 IQ加油站——综合能力测试题 55

9.1 数学类型的测试题 55

【面试题1】兔子赛跑 55

【面试题2】女装的成本 55

【面试题3】徘徊的小鸟飞了多少米 56

【面试题4】电视机的价值 56

【面试题5】被污染的药丸 56

【面试题6】取水问题 57

【面试题7】院墙外的相遇 57

【面试题8】牛吃草问题 59

【面试题9】送花瓶 60

【面试题10】左轮手枪 60

9.2 逻辑类型的测试题 61

【面试题1】哪位教授与会 61

【面试题2】谁是罪犯 62

【面试题3】王教授的生日 62

【面试题4】是谁闯的祸 63

【面试题5】会哪国语言 63

【面试题6】如何拿水果 65

【面试题7】海盗分赃 66

【面试题8】小镇上的四个朋友 66

【面试题9】说谎岛 67

【面试题10】丈夫是小偷 68

第二部分 面试笔试技术篇 70

第10章 Java基础 70

10.1 Java的跨平台机制 70

10.1.1 知识点梳理 70

10.1.2 经典面试题解析 71

【面试题1 】 Java语言的优势 71

【面试题2】简述Java与C++的相同点与不同点 72

10.2 Java的数据类型 73

10.2.1 知识点梳理 73

10.2.2 经典面试题解析 75

【面试题1】简述不同数据类型之间的转换规则 75

【面试题2】判断下面赋值语句是否正确 76

【面试题3 】 char型变量中能否存储一个中文汉字?为什么? 76

【面试题4】简述什么是不可变类,编程实现一个不可变类 77

【面试题5】程序改错 80

10.3 运算符 81

10.3.1 知识点梳理 81

10.3.2 经典面试题解析 83

【面试题1】简述运算符的优先级 83

【面试题2】写出下面这段程序的运行结果 85

【面试题3】说一说&和&&的区别 86

【面试题4】用最有效率的方法算出2乘以8等于几 86

【面试题5】简述“==”和equals有什么区别 86

10.4 分支语句和循环语句 89

10.4.1 知识点梳理 89

10.4.2 经典面试题解析 91

【面试题1】简述Java中为什么没有goto语句 91

【面试题2】简述在Java中如何跳出多重循环 92

10.5 数组 96

10.5.1 知识点梳理 96

10.5.2 经典面试题解析 98

【面试题1】简述Java中数组的初始化方法 98

【面试题2】简述Java中如何复制一个整型数组 100

【面试题3】数组有没有length()这个方法?String有没有length()方法? 106

10.6 字符串 107

10.6.1 知识点梳理 107

10.6.2 经典面试题解析 108

【面试题1 】 String类型的特性 108

【面试题2】简述String、String-Buffer、StringBuilder的区别和适用场景 109

【面试题3】如何把一段逗号分隔的字符串转换成一个字符串数组 109

10.7 异常处理 112

10.7.1 知识点梳理 112

10.7.2 经典面试题解析 113

【面试题1】常识性问题 113

【面试题2】finally块中的代码什么时候会被执行? 115

【面试题3 】 Java异常处理中的关键字 118

10.8 反射机制 119

10.8.1 知识点梳理 119

10.8.2 经典面试题解析 123

【面试题1】反射机制的基本概念 123

【面试题2】简述反射机制的优缺点 123

10.9 关键字 124

10.9.1 知识点梳理 124

10.9.2 经典面试题解析 124

【面试题1】常识性问题 124

【面试题2】简述final、 finally和nalize的区别 126

【面试题3】简述static的作用 128

【面试题4】简述volatile的作用 129

【面试题5】简述instanceof的作用 130

10.10 输入/输出 131

10.10.1 知识点梳理 131

10.10.2 经典面试题解析 131

【面试题1】编写程序实现判断D:\根目录下是否有后缀名为.jpg的文件,如果有则输出该文件名称 131

【面试题2】编写程序实现判断D:\目录下(包括全部子目录)是否有后缀名为.jpg的文件,如果有则输出该文件名称 134

【面试题3】简述Java的I/O流的分类 136

【面试题4】编写一段程序可以在屏幕上打印出这段程序的源代码 137

【面试题5】什么是对象的序列化和反序列化 139

【面试题6】简述什么是序列化版本 142

第11章 面向对象 146

11.1 基本概念 146

11.1.1 知识点梳理 146

11.1.2 经典面试题解析 147

【面试题1】简述面向对象与面向过程的区别 147

【面试题2】简述面向对象的基本特征 148

11.2 继承 149

11.2.1 知识点梳理 149

11.2.2 经典面试题解析 152

【面试题1】什么是继承?Java继承有哪些特性? 152

【面试题2】简述继承与组合的区别 153

【面试题3】简述overload和override的区别 154

【面试题4】程序改错 155

【面试题5】如何获取父类的类名?如何获取当前运行类的类名? 158

11.3 构造方法 159

11.3.1 知识点梳理 159

11.3.2 经典面试题解析 160

【面试题1】构造函数能否被继承?能否被重载? 160

【面试题2】下面的代码是否正确?如果有误请改正 162

【面试题3】简述静态块、非静态块和构造函数的初始化顺序 163

11.4 抽象类和接口 165

11.4.1 知识点梳理 165

11.4.2 经典面试题解析 167

【面试题1】常识性问题 167

【面试题2】简述抽象类与接口的相同点与差别 167

【面试题3】 Java抽象类可以实现接口吗?它们需要实现所有的方法吗? 168

【面试题4】 Java抽象类可以是final的吗? 169

11.5 内部类 169

11.5.1 知识点梳理 169

11.5.2 经典面试题解析 170

【面试题1】常识性问题 170

【面试题2】简述Static NestedClass与Inner Class的区别 172

【面试题3】什么是匿名内部类?使用匿名内部类需要注意什么? 173

第12章 多线程 177

12.1 线程的基础 177

12.1.1 知识点梳理 177

12.1.2 经典面试题解析 178

【面试题1】简述什么是线程?进程和线程有什么区别? 178

【面试题2】 Java中多线程有几种实现方法?启动一个线程是用run还是start? 179

【面试题3】简述Java中Runnable和Callable有什么不同? 180

12.2 线程的状态及控制 181

12.2.1 知识点梳理 181

12.2.2 经典面试题解析 183

【面试题1】简述sleep方法和wait方法的区别,sleep方法和yield方法的区别 183

【面试题2】简述Java中为什么不建议使用stop和suspend方法终止线程 184

【面试题3】如何终止一个线程 184

12.3 线程的同步 187

12.3.1 知识点梳理 187

12.3.2 经典面试题解析 190

【面试题1】账户存取现金问题 190

【面试题2】简述synchronized和Lock的区别 192

12.4 线程协调机制 193

12.4.1 知识点梳理 193

12.4.2 经典面试题解析 195

【面试题】生产者-消费者问题 195

12.5 守护线程 201

12.5.1 知识点梳理 201

12.5.2 经典面试题解析 201

【面试题1】常识性问题 201

【面试题2】分析下面这段程序的输出结果 202

第13章 Java容器 204

13.1 Collection和Iterator 204

13.1.1 知识点梳理 204

13.1.2 经典面试题解析 207

【面试题1】常识性问题 207

【面试题2】简述Collection与Collections的区别 209

13.2 HashSet和TreeSet 213

13.2.1 知识点梳理 213

13.2.2 经典面试题解析 214

【面试题1】常识性问题 214

【面试题2】 Set接口的实现类 218

【面试题3】输出在字符串中第一次重复出现的字符 219

13.3 ArrayList、Vector和LinkedList 221

13.3.1 知识点梳理 221

13.3.2 经典面试题解析 223

【面试题1】常识性问题 223

【面试题2】简述ArrayList和Vector的区别 225

【面试题3】编程实现去除一个Vector容器中的重复元素 226

13.4 HashMap和Hashtable 227

13.4.1 知识点梳理 227

13.4.2 经典面试题解析 228

【面试题1】常识性问题 228

【面试题2】 HashMap为什么要引入红黑树结构 232

第14章 软件工程与设计模式 234

14.1 UML 234

14.1.1 知识点梳理 234

14.1.2 经典面试题解析 242

【面试题1】常识性问题 242

【面试题2】系统模型设计阶段的UML图 243

【面试题3】设计一个点餐系统的用例图 244

14.2 单例模式 246

14.2.1 知识点梳理 246

14.2.2 经典面试题解析 247

【面试题1】编写一个延迟加载的单例模式代码 247

【面试题2】懒汉式单例模式的优劣 248

14.3 工厂模式 249

14.3.1 知识点梳理 249

14.3.2 经典面试题解析 258

【面试题1】简述工厂方法模式和抽象工厂模式的区别 258

【面试题2】工厂模式的优缺点 258

14.4 观察者模式 259

14.4.1 知识点梳理 259

14.4.2 经典面试题解析 262

【面试题1】观察者模式的优点 262

【面试题2】观察者模式的使用场景 262

14.5 适配器模式 263

14.5.1 知识点梳理 263

14.5.2 经典面试题解析 264

【面试题1】什么情况下适合使用适配器模式 264

【面试题2 】 Java类库中的适配器模式 265

第15章 数据结构与算法 266

15.1 线性结构 266

【面试题1】用Java实现一个单链表 266

【面试题2】从链表中删除重复元素 269

【面试题3】实现链表的反转 270

【面试题4】用两个栈模拟队列操作 272

15.2 树结构 274

【面试题1】用Java实现一棵二叉树 274

【面试题2】二叉树的遍历(深度遍历) 276

【面试题3】二叉树的遍历(按层次遍历) 278

【面试题4】编程计算二叉树中叶子结点的个数 279

15.3 排序与查找 281

【面试题1】编程实现直接插入排序 281

【面试题2】编程实现冒泡排序 282

【面试题3】编程实现简单选择排序 284

【面试题4】编程实现快速排序 286

【面试题5】编程实现希尔排序 288

【面试题6】编程实现堆排序 289

【面试题7】各种排序算法的比较 293

【面试题8】编程实现二分查找 294

15.4 算法设计 297

【面试题l】统计字符个数 297

【面试题2】计算两个有序整型数组的交集 300

【面试题3】判断字符串中是否包含重复字符 301

【面试题4】寻找特殊的六位数 302

【面试题5】组成最小的数 305

【面试题6】金额翻译器 307

【面试题7】 1500以内的丑数 309

第16章 Java EE及开源框架 314

16.1 JDBC 314

16.1.1 知识点梳理 314

16.1.2 经典面试题解析 315

【面试题1】常识性问题 315

【面试题2】 JDBC的事务隔离级别有几种? 316

【面试题3】编写一个用JDBC连接并访问Oracle数据库的代码 317

16.2 Spring轻量级架构 319

16.2.1 知识点梳理 319

16.2.2 经典面试题解析 321

【面试题1】常识性问题 321

【面试题2】使用Spring框架的好处是什么? 324

【面试题3】什么是控制反转和依赖注入,在Spring框架中如何实现? 325

16.3 Hibernate 325

16.3.1 知识点梳理 325

16.3.2 经典面试题解析 326

【面试题1】简述Hibernate的缓存机制 326

【面试题2】 Hibernate查询方式有哪几种? 326

16.4 EJB 327

16.4.1 知识点梳理 327

16.4.2 经典面试题解析 328

【面试题1】简述EJB容器提供的服务 328

【面试题2】简述EJB的有状态会话Bean和无状态会话Bean的区别 328

【面试题3】 EJB是如何管理事务的? 329

第17章 Java Web设计 330

17.1 JSP 330

17.1.1 知识点梳理 330

17.1.2 经典面试题解析 330

【面试题1】常识性问题 330

【面试题2】在JSP中,定义了哪些动作元素? 332

【面试题3】简述JSP和Servlet有何异同 333

17.2 Servlet 333

17.2.1 知识点梳理 333

17.2.2 经典面试题解析 334

【面试题1】常识性问题 334

【面试题2 】 Servlet中Forward和Redirect的区别是什么? 335

17.3 JavaScript 336

17.3.1 知识点梳理 336

17.3.2 经典面试题解析 339

【面试题1】常识性问题 339

【面试题2】简述JavaScript对象的创建方式 340

【面试题3】输出如下JavaScript代码的结果 344

17.4 XML 346

17.4.1 知识点梳理 346

17.4.2 经典面试题解析 347

【面试题1】常识性问题 347

【面试题2】 XML的命名空间是什么?有什么作用? 348

【面试题3】 DOM和SAX解析器的区别是什么?各自的优缺点是什么? 349

17.5 WebserviceREST 350

17.5.1 知识点梳理 350

17.5.2 经典面试题解析 350

【面试题1 】 REST和SOAP有什么区别? 350

【面试题2】什么是面向REST服务,请解释幂等性和安全性? 351

【面试题3】 RESTful主要的请求方法有哪些?有什么区别? 352

第18章 经典Android面试题详解 353

18.1 Android系统架构 353

【面试题】简述Android系统的架构 353

18.2 Android的四大组件 354

【面试题】简述Android四大组件及其作用 354

18.3 Activity的生命周期 355

【面试题】简述Activity的生命周期 355

18.4 onSaveInstanceState函数 358

【面试题】简述onSaveInstanceState和onRestoreInstanceState的调用时机 358

18.5 横竖屏切换时候Activity的生命周期 359

【面试题】简述横竖屏切换时候Activity的生命周期 359

18.6 如何在两个Activity之间传递数据 359

【面试题】简述如何在两个Activity之间传递数据 359

18.7 Fragment 361

【面试题】什么是Fragment? Fragment的加载方式?Fragment与Activity之间是怎样交互的? 361

18.8 RecyclerView 363

【面试题】简述什么是Recycler View 363

18.9 Service及Service的启动方法 364

【面试题】简述什么是Service以及Service有几种启动方法 364

18.10 BroadcastReceiver机制 365

【面试题】简述广播的注册方式以及广播的类型 365

18.11 ContentProvider机制 367

【面试题】简述ContentProvider机制以及使用ContentProvider的优势 367

18.12 Handler机制 368

【面试题】简述Android中的Handler机制 368

18.13 Android跨进程通信 371

【面试题】简述Android中跨进程通信的几种方式 371

18.14 JNI 372

【面试题】简述什么是JNI,并写出JNI调用的基本方法 372