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
本群提供免费的学习指导 架构资料 以及免费的解答
不懂得问题均可以在本群提出来 以后还会有职业生涯规划以及面试指导