《Java程序员面试笔试宝典》终于在万众期待中出版啦~它是知名畅销书《程序员面试笔试宝典》的姊妹篇,而定价只要48元哦,恰逢求职季节,希望本书的出版能够让更多的求职者能够走进理想的企业
在这里,众多知名企业面试官将为你撕开神秘的求职面纱;
在这里,各种求职达人将现身说法为你揭开求职谜团;
在这里,各种类型的企业招聘细节都会被展露无疑;
在这里,我们将为你抽丝剥茧,还原IT行业的真相;
在这里,我们将为你指点迷津,告诉你职场上的风风雨雨;
在这里,我们将为你点石成金,成为那盏指引你前进的灯塔;
……
本书覆盖了历年来各大IT名企95%以上的面试笔试题,当你细细品读完本书的知识后,各类企业的offer将任由你挑选。本书将带你走进神奇的求职之旅。
以下是本书目录部分内容。
目录... 1
JAVA程序员面试笔试宝典... 8
前言... 8
封面... 9
作者简介... 10
内容简介... 10
上篇:面试笔试经验技巧篇... 10
第1章 面试官箴言... 10
1.1 有道无术,术可求;有术无道,止于术... 11
1.2 求精不求全... 11
1.3 脚踏实地,培养多种技能... 12
1.4 保持空杯心态... 13
1.5 职场是能者的舞台... 14
1.6 学会“纸上谈兵”... 15
1.7 小结... 15
第2章 面试心得交流... 16
2.1 心态决定一切... 16
2.2 未雨绸缪是王道... 17
2.3 假话全不说,真话不全说... 18
2.4 走自己的路,让别人去说吧... 20
2.5 夯实基础谋出路... 21
2.6 书中自有编程法... 22
2.7 笔试成绩好,不会被鄙视... 24
2.8 不要一厢情愿做公司的备胎... 25
2.9 小结... 26
第3章 企业面试笔试攻略... 26
3.1互联网企业... 27
3.2网络设备提供商... 30
3.3 外企... 35
3.4 国企... 37
3.5研究所... 40
3.6创业型企业... 42
3.7如何抉择?... 45
第4章 面试笔试技巧... 46
4.1不打无准备之仗... 46
4.1.1 如何获取求职信息?... 46
4.1.2 如何制作一份受用人单位青睐的简历?... 47
4.1.3 如何高效地网申简历?... 51
4.1.4 面试考察什么内容?... 51
4.1.5 霸王面合适吗?... 52
4.1.6 非技术类笔试如何应答?... 53
4.1.7 什么是职场暗语?... 53
4.1.8 如何克服面试中的紧张情绪?... 56
4.1.9 面试礼仪有哪些?... 56
4.1.10 面试需要准备什么内容?... 58
4.1.11 女生适合做程序员吗?... 58
4.1.12 程序员是吃青春饭的吗?... 60
4.1.13 为什么会被企业拒绝?... 60
4.1.14 如何准备集体面试?... 61
4.1.15 如何准备电话面试?... 63
4.2从容应对... 63
4.2.1 如何进行自我介绍?... 64
4.2.2 你对我们公司有什么了解?... 65
4.2.3 如何应对自己不会回答的问题?... 65
4.2.4 如何应对面试官的“激将法”语言?... 66
4.2.5 如何处理与面试官持不同观点这个问题?... 66
4.2.6 如果你在这次面试中没有被录用,你会怎么办?. 67
4.2.7 如果你被我们录取了,接下来你将如何开展工作?... 67
4.2.8 你怎么理解你应聘的职位?... 67
4.2.9 你有哪些缺点?... 68
4.2.10 你有哪些主要的优点?... 68
4.2.11 你没有工作经验,如何能够胜任这个岗位?... 69
4.2.12 你的好朋友是如何评价你的?... 69
4.2.13 你与上司意见不一致时,该怎么办?... 70
4.2.14 你能说说你的家庭吗?... 71
4.2.15 你认为自己最适合做什么?... 71
4.2.16 你如何看待公司的加班现象?... 72
4.2.17 你的业余爱好是什么?... 72
4.2.18 你和别人发生过争执吗?你怎样解决?... 73
4.2.19 你如何面对压力?... 73
4.2.20 你为什么离开了原来的单位?... 74
4.2.21 你为什么更倾向于我们公司?... 74
4.2.22 你觉得我们为什么要录用你?... 75
4.2.23 你的职业规划是什么?... 75
4.2.24 你对薪资有什么要求?... 75
4.2.25 你有什么问题需要问我的吗?... 76
4.3签约这点事... 76
4.3.1 风萧萧兮易水寒,offer多了怎么办?... 76
4.3.2 签约、违约需要注意哪些事项?... 77
4.4小结... 80
下篇:面试笔试技术攻克篇... 80
第5章 Java基础知识... 80
5.1 基本概念... 80
5.1.1 Java语言有哪些优点?... 80
5.1.2 Java与C/C++有什么异同?... 80
5.1.3 为什么需要public static void main(String[] args)这个方法?... 81
5.1.4 如何实现在main函数执行前输出“Hello world”?... 82
5.1.5 Java程序初始化的顺序是怎样的?... 83
5.1.6 Java中作用域有哪些?... 84
5.1.7 一个Java文件中是否可以定义多个类?... 85
5.1.8 什么是构造函数?... 85
5.1.9 为什么Java中有些接口没有任何方法?... 86
5.1.10 Java中clone方法有什么作用?... 88
5.1.11 什么是反射机制?... 92
5.1.12 package有什么作用?... 93
5.1.13 如何实现类似于C语言中函数指针的功能?... 94
5.2 面向对象技术... 95
5.2.1 面向对象与面向过程有什么区别?... 95
5.2.2 面向对象有哪些特征?... 96
5.2.3 面向对象的开发方式有什么优点?... 96
5.2.4 什么是继承?... 96
5.2.5 组合与继承有什么区别?... 97
5.2.6 多态的实现机制是什么?... 97
5.2.7 Overload和Override有什么区别?... 99
5.2.8 abstract class(抽象类)与interface(接口)有什么异同?... 100
5.2.9 内部类有哪些?... 101
5.2.10 如何获取父类的类名?... 102
5.2.11 this与super有什么区别?... 103
5.3 关键字... 104
5.3.1 变量命名有哪些规则?... 104
5.3.2 break、continue以及return有什么区别?... 105
5.3.3 final, finally和 finalize有什么区别?. 106
5.3.4 assert有什么作用?... 107
5.3.5 static关键字有哪些作用?... 108
5.3.6 switch使用时有哪些注意事项?... 110
5.3.7 volatile有什么作用?... 112
5.3.8 instanceof有什么作用?... 112
5.3.9 strictfp有什么作用?... 113
5.4 基本类型与运算... 113
5.4.1 Java提供了哪些基本的数据类型?... 113
5.4.2 什么是不可变类?... 115
5.4.3 值传递与引用传递有哪些区别?... 116
5.4.4 不同数据类型转换有哪些规则?... 119
5.4.5 强制类型转换的注意事项有哪些?... 120
5.4.6 运算符优先级是什么?... 120
5.4.7 Math类中round、ceil和floor方法的功能是什么?... 120
5.4.8 ++i与i++有什么区别?... 121
5.4.9 如何实现无符号数右移操作?... 122
5.4.10 char型变量中是否可以存储一个中文汉字?... 124
5.5 字符串与数组... 125
5.5.1 字符串创建与存储的机制是什么?... 125
5.5.2 “==”、equals和hashCode有什么区别?... 126
5.5.3 String、StringBuffer、StringBuilder和StringTokenizer有什么区别?... 127
5.5.4 Java中数组是不是对象?... 129
5.5.5 数组的初始化方式有哪几种?... 129
5.5.6 length属性与length函数有什么区别?... 131
5.6 异常处理... 131
5.4.11 finally块中的代码什么时候被执行?... 131
5.4.12 异常处理的原理是什么?... 134
5.4.13 运行时异常和普通异常有什么区别?... 135
5.7 输入输出流... 136
5.7.1 Java IO流的实现机制是什么?... 136
5.7.2 管理文件和目录的类是什么?... 137
5.7.3 Java Socket是什么?... 138
5.7.4 Java NIO是什么?... 140
5.7.5 什么是Java序列化?... 141
5.7.6 System.out.println()方法使用需要注意哪些问题?... 143
5.8 Java平台与内存管理... 144
5.8.1 为什么说Java是平台独立性语言?... 144
5.8.2 Java平台与其它语言平台有哪些区别?... 144
5.8.3 JVM加载class文件的原理机制是什么?... 145
5.8.4 什么是GC?... 146
5.8.5 Java是否存在内存泄露问题?... 147
5.8.6 Java中的堆和栈有什么区别?... 149
5.9 容器... 150
5.9.1 Java Collections框架是什么?... 150
5.9.2 什么是迭代器?... 150
5.9.3 ArrayList,Vector和LinkedList有什么区别?... 152
5.9.4 HashMap、HashTable、TreeMap和WeakHashMap有哪些区别?... 152
5.9.5 用自定义作为HashMap或HashTable的key需要注意哪些问题?... 153
5.9.6 Collection 和 Collections有什么区别?... 157
5.10 多线程... 158
5.10.1 什么是线程?它与进程有什么区别?为什么要使用多线程?... 158
5.10.2 同步和异步有什么区别?... 158
5.10.3 如何实现Java多线程?... 159
5.10.4 run与start有什么区别?... 161
5.10.5 多线程同步的实现方法有哪些?... 162
5.10.6 sleep与wait有什么区别?... 163
5.10.7 终止线程的方法有哪些?... 164
5.10.8 synchronized与Lock有什么异同?... 165
5.10.9 什么是守护线程?... 169
5.10.10 join方法的作用是什么?... 170
5.11 Java数据库操作... 171
5.11.1 如何通过JDBC访问数据库?... 171
5.11.2 JDBC处理事务采用什么方法?... 172
5.11.3 Class.forName的作用是什么?... 173
5.11.4 Statement,PreparedStatement,CallableStatement有什么区别?... 173
5.11.5 getString()与getObject()有什么区别?... 175
5.11.6 使用JDBC时需要注意哪些问题?. 175
5.11.7 什么是JDO?. 175
5.11.8 JDBC与Hibernate有什么区别?... 176
第6章 Java Web. 176
6.1 Servlet与JSP. 176
6.1.1 页面请求的工作流程是怎样的?... 176
6.1.2 HTTP中GET与POST方法有什么区别?... 177
6.1.3 什么是Servlet?... 177
6.1.4 doPost()与doGet()方法怎么选择?... 178
6.1.5 什么是Servlet的生命周期?... 179
6.1.6 JSP有哪些优点?... 179
6.1.7 JSP与Servlet有和异同?... 180
6.1.8 如何使用JSP与Servlet实现MVC模型?... 180
6.1.9 Servlet中forward和redirect有什么区别?... 182
6.1.10 JSP的内置对象有哪些?... 183
6.1.11 request对象主要有哪些方法?... 183
6.1.12 JSP有哪些动作?... 184
6.1.13 JSP中include指令和include动作有什么区别?... 185
6.1.14 会话跟踪技术有哪些?... 186
6.1.15 Web开发中如何指定字符串的编码?... 186
6.1.16 什么是Ajax?... 187
6.1.17 cookie和session有什么区别?... 187
6.2 J2EE与EJB. 187
6.2.1 什么是J2EE?... 187
6.2.2 J2EE中常用的术语有哪些?... 188
6.2.3 EJB有哪些不同的类别?... 189
6.2.4 EJB与JavaBean有什么异同?... 190
6.2.5 EJB有哪些生命周期?... 190
6.2.6 EJB的角色有哪几种?... 192
6.2.7 EJB的开发流程是怎样的?... 192
6.2.8 EJB 3.0与EJB 2.0有哪些不同之处?... 194
6.2.9 EJB容器有哪些作用?... 195
6.2.10 EJB规范规定EJB中禁止的操作有哪些?... 195
6.2.11 Web 服务器与Web应用服务器有什么区别?... 195
6.2.12 什么是Web Service?... 195
6.2.13 SOAP与REST有什么区别?... 196
6.2.14 什么是XML?... 197
6.2.15 数据库连接池的工作机制是怎样的?... 199
6.2.16 J2EE开发有哪些调优的方法?... 200
6.3 框架... 200
6.3.1 什么是Struts框架?... 200
6.3.2 Struts框架响应客户请求的工作流程是什么?... 202
6.3.3 Struts框架的数据验证可分为几种类型?... 203
6.3.4 Form Bean的表单验证流程是什么?... 203
6.3.5 在Struts配置文件中,<action>元素包含哪些属性和子元素?... 203
6.3.6 ActionForm Bean的作用有哪些?... 204
6.3.7 ActionForm的执行步骤有哪些?... 204
6.3.8 forward与global-forward有什么区别?... 204
6.3.9 Struts如何实现国际化?... 204
6.3.10 Struts1与Struts2有哪些区别?... 205
6.3.11 什么是IoC?... 206
6.3.12 什么是AOP?... 208
6.3.13 什么是Spring框架?... 209
6.3.14 什么是Hibernate?... 211
6.3.15 什么是Hibernate的二级缓存?... 216
6.3.16 Hibernate中session的update()和saveOrUpdate()、load()和get()有什么区别?... 216
6.3.17 Hibernate有哪些主键生成策略?... 217
6.3.18 如何实现分页功能?... 218
6.3.19 什么是SSH?... 218
第7章 数据库原理... 219
7.1 SQL语言的功能有哪些?... 219
7.2 内连接与外连接有什么区别?... 221
7.3 什么是事务?... 222
7.4 什么是存储过程?它与函数有什么区别与联系?... 223
7.5 一二三四范式有什么区别?... 223
7.6 什么是触发器?... 224
7.7 什么是游标?... 225
7.8 如果数据库日志满了,会出现什么情况?... 225
7.9 union和union all有什么区别?... 226
7.10 什么是视图?... 226
第8章 网络与通信... 227
8.1. 网络模型... 227
8.1.1 OSI七层模型是什么?... 227
8.1.2 TCP/IP模型是什么?... 228
8.1.3 B/S与C/S有什么区别?... 228
8.2. 网络设备... 229
8.2.1 交换机与路由器有什么区别?... 229
8.2.2 路由表的功能有哪些?... 230
8.3. 网络协议... 230
8.3.1 TCP和UDP的区别有哪些?... 230
8.3.2 什么叫三次握手?什么叫四次断开?... 231
8.3.3 什么是ARP/RARP?... 232
8.3.4 IP Phone的原理是什么?都用了那些协议?... 233
8.3.5 Ping命令是什么?... 233
8.3.6 基本的HTTP流程有哪些?... 233
8.4. 网络其它问题... 234
8.4.1 常用的网络安全防护措施有哪些?. 234
8.4.2 什么是SQL注入式攻击?... 235
8.4.3 电路交换技术、报文交换技术和分组交换技术有什么区别?... 235
8.4.4 相比IPv4,IPv6有什么优点?... 236
第9章 操作系统... 236
9.1 进程管理... 236
9.1.1 进程与线程有什么区别?... 236
9.1.2 线程同步有哪些机制?... 237
9.1.3 内核线程和用户线程的区别?... 237
9.2 内存管理... 238
9.2.1 内存管理有哪几种方式?... 238
9.2.2 分段和分页有什么区别?... 238
9.2.3 什么是虚拟内存?... 238
9.2.4 什么是内存碎片?什么是内碎片?什么外碎片?... 239
9.2.5 虚拟地址、逻辑地址、线性地址、物理地址有什么区别?... 239
9.2.6 Cache替换算法有哪些?... 239
9.3 用户编程接口... 240
9.3.1 库函数与系统调用有什么不同?... 240
9.3.2 静态链接与动态链接有什么区别?... 241
9.3.3 静态链接库与动态链接库有什么区别?... 241
9.3.4 用户态和核心态有什么区别?... 241
9.3.5 用户栈与内核栈有什么区别?... 242
第10章 设计模式... 242
10.1 什么是单例模式?... 243
10.2 什么是工厂模式?... 243
10.3 什么是适配器模式?... 245
10.4 什么是观察者模式?... 245
第11章 数据结构与算法... 246
11.1 链表... 246
11.1.1 如何实现单链表的增删操作?... 246
11.1.2 如何从链表中删除重复数据?... 249
11.1.3 如何找出单链表中的倒数第k个元素?... 250
11.1.4 如何实现链表的反转?... 251
11.1.5 如何从尾到头输出单链表?... 251
11.1.6 如何寻找单链表的中间结点?... 251
11.1.7 如何检测一个链表是否有环?. 252
11.1.8 如何在不知道头指针的情况下删除指定结点?... 253
11.1.9 如何判断两个链表是否相交?... 253
11.2 栈与队列... 255
11.2.1 栈与队列有哪些区别?... 255
11.2.2 如何实现栈?... 255
11.2.3 如何用O(1)的时间复杂度求栈中最小元素?... 257
11.2.4 如何实现队列?... 258
11.2.5 如何用两个栈模拟队列操作?... 259
11.3 排序... 260
11.3.1 如何进行选择排序?... 260
11.3.2 如何进行插入排序?... 261
11.3.3 如何进行冒泡排序?... 262
11.3.4 如何进行归并排序?... 263
11.3.5 如何进行快速排序?... 264
11.3.6 如何进行希尔排序?... 266
11.3.7 如何进行堆排序?... 267
11.3.8 各种排序算法有什么优劣?... 268
11.4 位运算... 269
11.4.1 如何用移位操作实现乘法运算?... 269
11.4.2 如何判断一个数是否为2的n次方?... 270
11.4.3 如何求二进制数中1的个数?... 270
11.5 数组... 271
11.5.1 如何寻找数组中的最小值与最大值?... 271
11.5.2 如何找出数组中第二大的数?... 273
11.5.3 如何求最大子数组的和?... 273
11.5.4 如何找出数组中重复元素最多的数?... 276
11.5.5 如何求数组中两两相加等于20的组合种数?... 277
11.5.6 如何把一个数组循环右移k位?... 278
11.5.7 如何找出数组中第k个最小的数?... 279
11.5.8 如何找出数组中只出现一次的数字?... 280
11.5.9 如何找出数组中唯一的重复元素?... 282
11.5.10 如何用递归方法求一个整数数组的最大元素?... 285
11.5.11 如何求数对之差的最大值... 285
11.5.12 如何求绝对值最小的数?... 288
11.5.13 如何求数组中两个元素的最小距离?... 290
11.5.14 如何求指定数字在数组中第一次出现的位置?... 291
11.5.15 如何对数组的两个子有序段进行合并?... 292
11.5.16 如何计算两个有序整型数组的交集?... 293
11.5.17 如何判断一个数组中数值是否连续相邻?... 294
11.5.18 如何求解数组中反序对的个数?... 295
11.5.19 如何求解最小三元组距离?... 297
11.6 字符串... 299
11.6.1 如何实现字符串的反转?... 299
11.6.2 如何判断两个字符串是否由相同的字符所组成的?... 300
11.6.3 如何删除字符串中重复的字符?... 301
11.6.4 如何统计一行字符中有多少个单词?... 303
11.6.5 如何按要求打印数组的排列情况?... 304
11.6.6 如何输出字符串的所有组合?... 306
11.7 二叉树... 307
11.7.1 二叉树基本概念... 307
11.7.2 如何实现二叉排序树?... 308
11.7.3 如何层序遍历二叉树?... 311
11.7.4 已知先序遍历和中序遍历,如何求后序遍历?... 311
11.7.5 如何求二叉树中结点的最大距离?... 313
11.8 其它... 314
11.8.1 如何消除嵌套的括号?... 314
11.8.2 如何不使用比较运算算就可以求出两个数的最大值与最小值?... 316
第12章 海量数据处理... 316
12.1 问题分析... 316
12.2 基本方法... 317
12.3 经典实例分析... 327
12.3.1 top K问题... 327
12.3.2 重复问题... 329
12.3.3 排序问题... 330
附录A软件企业Java笔试真题1. 331
附录B软件企业Java笔试真题2. 334
附录C软件企业Java笔试真题3. 336
附录D 求职有用网站及QQ群一览表... 338
致谢... 339