Java研发方向如何准备BAT技术面试

Java基础:java

面向对象和面向过程的区别linux

Java的四个基本特性(抽象、封装、继承,多态)面试

Overload和Override的区别算法

构造器Constructor是否可被override数据库

访问控制符public,protected,private,以及默认的区别设计模式

是否能够继承String类数组

String和StringBuffer、StringBuilder的区别安全

hashCode和equals方法的关系性能优化

抽象类和接口的区别cookie

自动装箱与拆箱

什么是泛型、为何要使用以及泛型擦除

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之间的区别

 

设计模式:

设计模式的六大原则

经常使用的设计模式

用一个设计模式写一段代码或画出一个设计模式的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预防

那怎么知道链接是恶意的呢?多是正常链接

欢迎工做一到十年的Java工程师朋友们加入Java进阶高级架构裙:858327216

本群提供免费的学习指导 架构资料 以及免费的解答

不懂得问题均可以在本群提出来 以后还会有职业生涯规划以及面试指导

相关文章
相关标签/搜索