2016年Java服务器端开发面试总结
因为一些个人原因,陆陆续续参加了一些校招补招、社招的笔试和面试(BAT),也包括一些国外公司(Spotify, Google, Ericsson),最后有幸被网易收入麾下,拿到了S。下面罗列一些我复习中的要点,如果能以此为一个参考,做好充足的准备,国内BAT这些公司的基础技术笔试和面试应该没什么问题。当然对于一些大公司,基础知识可能不是最被看重的,关键是学习能力,独立解决问题的能力,是否是一个"灵性"的人,我一直觉得我们程序员是在创造一个新的世界。
当然有一些技术老人,也可以看看这个,当作一个复习点,温故知新。
Java 常见基础知识面试点:
- Hashcode()和equals(), 明白背后的原理,包括hashcode()的用法,各自的区别,如何,何时覆盖,为何覆盖
- 区别new String()和"" 申明的字符串的区别,String不变量,堆上创建,何时栈上创建,传递变量时候的按值传递
- Comparable 接口,Comparator类,用来做比较,主要是用于集合中,排序,插入等等
- 类初始化,变量初始化,静态变量,静态区,常量区等等
- 继承多态需要知道的有super, this, 相应的可能涉及到的设计模式
- Java的内部类,有哪几种声明方式,有没有static的区别
- 集合,collection,array。 set, list, queue这些接口间的区别,set不可重复, arraylist的实现和linkedlist的实现区别,HashMap, HashTable。涉及到各种效率问题等,里面最好阅读一下源码
- 集合的遍历方法和使用iterator来遍历的区别,集合可否修改,能否删除其中的一个元素,然后size是否变化等等问题
- JAVA垃圾回收,内存结构
- 异常的种类
- Object类,哪些方法
- 文件读取, 字节流和字符流, 流的概念, reader, stream等; NIO(通道,缓冲区,选择器)
Java常见多线程面试点:
- thread, start(), run()
- 多线程里面的关键字,wait, notfiy, 锁(synchronized), lock接口
- 线程状态,上下文切换,守护线程
- 消费者和生产者的几种实现方式,优缺点
- 进程间通信
- 同步容器类,并发容器类之间的区别
- 几个重要的数据结构,需要了解详细,最好能看过关键代码, copyOnWrite容器, ConcurrentHashMap
- 信号量, CountDownLatch, CyclicBarrier等类的使用
- 还有一些Future框架等等(这块我也知道的不多)
Java Web 方向的面试点:
- Servlet init() service() post, get等方法区别
- 重定向,请求转发,跨域什么的
- Http各个端口号,返回码
- Spring框架中的东西 spring MVC Spring web
Java高深一点的东西:
- 反射机制
- Java类加载机制,四种类加载器,加载过程,检查过程
- 依赖注入
- Spring框架
- AOP面向切面编程
数据结构方向的面试点:
- 数据结构,线性列表,二叉树,完全二叉平衡树,B+树,图的表示。
- 树的先序,中序,后序,层序遍历。能手写代码,递归和循环实现。 栈的使用
- 排序 常用的排序算法, 选择,冒泡,快排,堆排序,归并等。能手写代码,知道时间和空间复杂度,能做一些代码上的改进。
- 动态规划和分治的区别,能根据题目想到这方面,简单的例子能写出来
- 图的算法
- 最好去leetcode上系统的刷一下题,不需要全部刷完,但是基本的类型都刷到,很有帮助,代码能力也能提高
数据库方面的面试点:
- MySQL数据库的几种引擎,不同数据库间的比较
- 数据库的封锁协议,各种读写锁
- Java里面的数据库连接,driver等等
- SQL语句,insert,select, truncate, drop等
- 索引,联合索引,自增主键的优劣。
- NoSQL和MongoDB, Redis的概念,它的恢复机制,两种模式(内存快照和命令保存)
计算机网络和操作系统方面的面试点:
- 拥塞控制,网络七层模型,各层各种应用,tcp/udp, IP,DNS, FTP. 举例访问网站经过的步骤等
- 操作系统里面的内存替换算法,LRU等
- 网络安全方向的,数据安全,数字签名等等
不错的网站介绍:
leetcode 刷算法题的好地方,但是现在题目越来越多了。都400多道了,看个人能力了
Simple Java 一个讲解Java面试中常问到的一些点,误区等等,适合基础入门用
阿里中间件官方博客 有蛮多框架上的东西和一些实际工作的经验总结,可以长长知识
还有好多个人收藏的网站,你们在搜索上面的知识点的时候差不多都能找到
2016年Java服务器端开发面试总结的更多相关文章
- java 软件开发面试宝典
一. Java 基础部分........................................................................................ ...
- 百度基础架构组-实习生面试(2016.08 java后台开发)
一.项目 1.Spring MVC与Struts2的区别: 2.MVC三层是如何工作的?比如:要访问一个Url?a=xx&b=xx,怎么找到相应的资源,怎么运算,怎么返回等? 3.数据库myb ...
- linux c++ 服务器端开发面试必看书籍
摘自别人博客,地址:http://blog.csdn.net/qianggezhishen/article/details/45951095 打算从这开始一本一本开始看 题外话: 推荐一个 githu ...
- java高级开发面试总结
Java高级工程师面试题总结及参考答案 (转载)博客原文链接:https://www.cnblogs.com/java1024/p/8594784.html 一.面试题基础总结 1. JVM结构原理. ...
- Java开发面试总结
Java开发面试总结.. ----------------------- java 基础知识点这一块: 1.面向对象的三大特征.(继承,封装,多态) 1.1 在什么样的场合下面会使用到继承 1.2 什 ...
- Java NIO服务器端开发
一.NIO类库简介 1.缓冲区Buffer Buffer是一个对象,包含一些要写入和读出的数据. 在NIO中,所有的数据都是用缓冲区处理的,读取数据时,它是从通道(Channel)直接读到缓冲区中,在 ...
- Android开发面试经——3.常见Java基础笔试题
Android开发(29) 版权声明:本文为寻梦-finddreams原创文章,请关注:http://blog.csdn.net/finddreams 关注finddreams博客:http:/ ...
- java web面试技巧,数据库面试,java web轻量级开发面试教程
我最近看到一本比较好的讲java web方面面试的书,java web轻量级开发面试教程. 其中不仅用案例和视频讲述了Spring MVC,Hibernate, ORM等方面的技巧,而且还实际讲到了面 ...
- java web方面的面试问题,Spring MVC方面的面试问题,摘自java web轻量级开发面试教程
本文摘自java web轻量级开发面试教程: https://baike.baidu.com/item/Java%20Web%E8%BD%BB%E9%87%8F%E7%BA%A7%E5%BC%80%E ...
随机推荐
- WINDOW(单调队列的应用)
给你一个长度为 N 的数组,一个长为 K 的滑动的窗体从最左移至最右端, 你只能见到窗口的K个数,每次窗体向右移动一位,如下表: 你的任务是找出窗口在各位置时的 max value,min value ...
- Python 十进制转二进制代码实现
def my_bin(num): la = [] if num < 0: return '-' + my_bin(abs(num)) while True: num, remainder = d ...
- Combination Sum
Given a set of candidate numbers (C) (without duplicates) and a target number (T), find all unique c ...
- 如何用css3实现一个图片的抖动或者弹跳
<li onmouseout="this.className='off'"><a href=""><img src=". ...
- iOS初步开发
趁公司目前iOS整个没人管理,我折腾一下调试工具,刚好nordic也有参考demo. 然后作为helloworld级别的我... 就直接down下来,结果,还不错, 不像oschina.net和cod ...
- [BZOJ 3637]Query on a tree VI
偶然看见了这题,觉得自己 QTREE.COT 什么的都没有刷过的真是弱爆了…… 一道思路很巧妙的题,终于是在约大爷的耐心教导下会了,真是太感谢约大爷了. 这题显然是树链剖分,但是链上维护的东西很恶心. ...
- Amazon验证码机器算法识别
Amazon验证码识别 在破解Amazon的验证码的时候,利用机器学习得到验证码破解精度超过70%,主要是训练样本不够,如果在足够的样本下达到90%是非常有可能的. update后,样本数为2800多 ...
- 在CentOS 6.x中支持exfat格式的U盘(移动硬盘)
参考资料:http://linux.cn/article-1503-1.html CentOS系列一直没有默认支持使用exfat格式的大容量U盘(移动硬盘),但可以通过添加fuse-exfat模块来支 ...
- 6个错误将杀死你的App
没有开发者或者设计师会故意破坏应用的设计.所有的应用程序创建者都对自己的应用寄予美好的愿望,但是很多错误是在他们无意识的状态下破坏app的设计.以下是应用开发者和设计者经常犯的几个错误,不过这些错误是 ...
- Kubernetes系统架构简介
1. 前言 Together we will ensure that Kubernetes is a strong and open container management framework fo ...