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源码深度解析》,对于网站架构的推荐《大型网站技术架构核心原理与案例分析》。
针对上面的技术我特意整理了一下,有很多技术不是靠几句话能讲清楚,所以干脆找朋友录制了一些视频,很多问题其实答案很简单,但是背后的思考和逻辑不简单,要做到知其然还要知其所以然。如果想学习Java工程化、高性能及分布式、深入浅出。性能调优、Spring,MyBatis,Netty源码分析的朋友可以加我的Java进阶群:671017482,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。