Java 基础
1. 进程和线程的区别;
2.Java 的并发、多线程、线程模型;
3. 什么是线程池,如何使用?
4. 数据一致性如何保证;Synchronized 关键字,类锁,方法锁,重入锁;
5.Java 中实现多态的机制是什么;
6. 如何将一个 Java 对象序列化到文件里;
7. 说说你对 Java 反射的理解;
8. 同步的方法;多进程开发以及多进程应用场景;
9. 在 Java 中 wait 和 seelp 方法的不同;
10.synchronized 和 volatile 关键字的作用;
11. 服务器只提供数据接收接口,在多线程或多进程条件下,如何保证数据的有序到达;
12. 抽象类与接口的区别;应用场景;抽象类是否可以没有方法和属性;
13. 静态属性和静态方法是否可以被继承?是否可以被重写?以及原因?
14. 修改对象 A 的 equals 方法的签名,那么使用 HashMap 存放这个对象实例的时候,会调用哪个 equals 方法;
15. 说说你对泛型的了解;
16.Java 的异常体系;
17. 如何控制某个方法允许并发访问线程的个数;
18. 动态代理的区别,什么场景使用;
19.Dex 加载过程和优化方式;
20.Jvm 和 Gc 机制;
21 常用的设计模式。
22. 数据结构与算法
23. 堆和栈在内存中的区别是什么(数据结构方面以及实际实现方面);
24. 最快的排序算法是哪个?给阿里 2 万多名员工按年龄排序应该选择哪个算法?堆和树的区别;写出快排代码;链表逆序代码;
25. 求 1000 以内的水仙花数以及 40 亿以内的水仙花数;
26. 子串包含问题 (KMP 算法) 写代码实现;
27. 万亿级别的两个 URL 文件 A 和 B,如何求出 A 和 B 的差集 C,(Bit 映射 ->hash 分组 -> 多文件读写效率 -> 磁盘寻址以及应用层面对寻址的优化)
28. 蚁群算法与蒙特卡洛算法;
29. 写出你所知道的排序算法及时空复杂度,稳定性;
30. 自己集合实现一个队列
31. 自己实现线程安全类
32. 快速排序和冒泡的排序,怎么转换一下。
二、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 的区别
memcached 和 redis 的区别
有没有遇到中文乱码问题,如何解决的
如何理解分布式锁
你知道的开源协议有哪些
json 和 xml 区别
三、设计模式:
设计模式的六大原则
常用的设计模式
用一个设计模式写一段代码或画出一个设计模式的 UML
如何理解 MVC
高内聚,低耦合方面的理解
四、数据结构:
队列、栈、链表、树、堆、图
编码实现队列、栈
操作系统:
操作系统什么情况下会死锁
产生死锁的必要条件
死锁预防
数据库:
范式
数据库事务隔离级别
数据库连接池的原理
乐观锁和悲观锁
如何实现不同数据库的数据查询分页
SQL 注入的原理,如何预防
数据库索引的实现(B+ 树介绍、和 B 树、R 树区别)
SQL 性能优化
数据库索引的优缺点以及什么时候数据库索引失效
10.Redis 的存储结构
网络:
OSI 七层模型以及 TCP/IP 四层模型
HTTP 和 HTTPS 区别
HTTP 报文内容
get 提交和 post 提交的区别
get 提交是否有字节限制,如果有是在哪限制的
TCP 的三次握手和四次挥手
session 和 cookie 的区别
HTTP 请求中 Session 实现原理
redirect 与 forward 区别
安全:
如果客户端不断的发送请求连接会怎样
DDos 攻击
DDos 预防
那怎么知道连接是恶意的呢?可能是正常连接
其它:
说一个你参与的项目、其中作为什么角色
遇到最困的问题是什么,怎么解决的
你认为自己有那些方面不足
平常如何学习的
如何评价自己
智力题:
给你 50 个红球和 50 个黑球,有两个一模一样的桶,往桶里放球,让朋友去随机抽,采用什么策略可以让朋友抽到红球的概率更高?
从 100 个硬币中找出最轻的那个假币?
总结:
以上这些考察的知识点,在强大的互联网上都可以搜索到答案,有些答案可能不是很全,所以需要自己去总结,但是对于一些需要知道原理的知识点,还是推荐看源代码或者对于的书,然后总结得到自己的东西,这样既学到真东西,还不会很容易忘。Java 基础的知识点推荐《Java 编程思想》,JVM 的推荐《深入理解 Java 虚拟机》,Spring 原理的推荐《Spring 源码深度解析》,对于网站架构的推荐《大型网站技术架构核心原理与案例分析》。
以上面试题答案和资料获取方式,加群:952124565,进群即可获取。