Java研发方向如何准备BAT技术面试
最近BAT等各大互联网巨头们的校招陆陆续续都准备开始了,可能对于在校的大多数学生来说,不知道如何正确衡量自己掌握的技术,更不知道BAT这样的公司会要求自己必须具备什么样的技术能力。对于Java研发方向的技术面试,这里总结了一些你必须要掌握的技术知识点,考察的内容会比这里总结的多,所以如果想要有一个很不错的offer,下面的知识点需要都具备。社招考察的内容会在此基础上增加项目经验、技术实战经验、热门技术的使用及理解。欢迎关注Java技术分享微信公众号:JavaQ,获取更多精彩技术分享。
Java基础:
面向对象和面向过程的区别
Java的四个基本特性(抽象、封装、继承,多态)
Overload和Override的区别
构造器Constructor是否可被override
访问控制符public,protected,private,以及默认的区别
是否可以继承String类
String和StringBuffer、StringBuilder的区别
hashCode和equals方法的关系
抽象类和接口的区别
自动装箱与拆箱
什么是泛型、为什么要使用以及泛型擦除
Java中的集合类及关系图
HashMap实现原理(看源代码)
HashTable实现原理(看源代码)
HashMap和HashTable区别
HashTable如何实现线程安全(看源代码)
ArrayList和vector区别(看源代码)
ArrayList和LinkedList区别及使用场景
Collection和Collections的区别
Concurrenthashmap实现原理(看源代码)
Error、Exception区别
Unchecked Exception和Checked Exception,各列举几个
Java中如何实现***机制(JDK、CGLIB)
多线程的实现方式
线程的状态转换
如何停止一个线程
什么是线程安全
如何保证线程安全
Synchronized如何使用
synchronized和Lock的区别
多线程如何进行信息交互
sleep和wait的区别(考察的方向是是否会释放锁)
多线程与死锁
如何才能产生死锁
什么叫守护线程,用什么方法实现守护线程
Java线程池技术及原理
java并发包concurrent及常用的类
volatile关键字
Java中的NIO,BIO,AIO分别是什么
IO和NIO区别
序列化与反序列化
常见的序列化协议有哪些
内存溢出和内存泄漏的区别
Java内存模型及各个区域的OOM,如何重现OOM
出现OOM如何解决
用什么工具可以查出内存泄漏
Java内存管理及回收算法
Java类加载器及如何加载类(双亲委派)
xml解析方式
Statement和PreparedStatement之间的区别
JavaEE:
servlet生命周期及各个方法
servlet中如何自定义filter
JSP原理
JSP和Servlet的区别
JSP的动态include和静态include
Struts中请求处理过程
MVC概念
Spring mvc与Struts区别
Hibernate/Ibatis两者的区别
Hibernate一级和二级缓存
Hibernate实现集群部署
Hibernate如何实现声明式事务
简述Hibernate常见优化策略
Spring bean的加载过程(推荐看Spring的源码)
Spring如何实现AOP和IOC
Spring bean注入方式
Spring的事务管理(推荐看Spring的源码)
Spring事务的传播特性
springmvc原理
springmvc用过哪些注解
Restful有几种请求
Restful好处
Tomcat,Apache,JBoss的区别
mem***d和redis的区别
有没有遇到中文乱码问题,如何解决的
如何理解分布式锁
你知道的开源协议有哪些
json和xml区别
设计模式:
设计模式的六大原则
常用的设计模式
用一个设计模式写一段代码或画出一个设计模式的UML
如何理解MVC
高内聚,低耦合方面的理解
算法:
深度优先、广度优先算法
排序算法及对应的时间复杂度和空间复杂度
写一个排序算法
查找算法
B+树和二叉树查找时间复杂度
KMP算法、hash算法
常用的hash算法有哪些
如何判断一个单链表是否有环?
给你一万个数,如何找出里面所有重复的数?用所有你能想到的方法,时间复杂度和空间复杂度分别是多少?
给你一个数组,如何里面找到和为K的两个数?
100000个数找出最小或最大的10个?
一堆数字里面继续去重,要怎么处理?
数据结构:
队列、栈、链表、树、堆、图
编码实现队列、栈
Linux:
linux常用命令
如何查看内存使用情况
Linux下如何进行进程调度
操作系统:
操作系统什么情况下会死锁
产生死锁的必要条件
死锁预防
数据库:
范式
数据库事务隔离级别
数据库连接池的原理
乐观锁和悲观锁
如何实现不同数据库的数据查询分页
SQL注入的原理,如何预防
数据库索引的实现(B+树介绍、和B树、R树区别)
SQL性能优化
数据库索引的优缺点以及什么时候数据库索引失效
Redis的存储结构
网络:
OSI七层模型以及TCP/IP四层模型
HTTP和HTTPS区别
HTTP报文内容
get提交和post提交的区别
get提交是否有字节限制,如果有是在哪限制的
TCP的三次握手和四次挥手
session和cookie的区别
HTTP请求中Session实现原理
redirect与forward区别
DNS
TCP和UDP区别
安全:
如果客户端不断的发送请求连接会怎样
DDos攻击
DDos预防
那怎么知道连接是恶意的呢?可能是正常连接
其它:
说一个你参与的项目、其中作为什么角色
遇到最困的问题是什么,怎么解决的
你认为自己有那些方面不足
平常如何学习的
如何评价自己
智力题:
给你50个红球和50个黑球,有两个一模一样的桶,往桶里放球,让朋友去随机抽,采用什么策略可以让朋友抽到红球的概率更高?
从100个硬币中找出最轻的那个假币?