面试范围(初级程序员)
框架:Spring、 Spring Boot
项目架构:SSM、SSH
分析
1、你们是怎么了解客户的需求的?
2、你写过需求文档吗?
设计
1、你们是用什么进行设计的?
2、你用过PowerDesigner 吗?
3、你们知道那些图?
4、类图和用例图有什么区别?
编码
项目部署
1、你们项目是用什么架构?
2、你搭建过一个项目没有?
3、你是用什么搭建项目的?
4、你知道在Linux上部署项目吗?
5、如何实现分布式服务器部署?
Java 底层基础
1、你了解那些Java源码?
2、对于Java的底层你了解多少?
3、什么是多线程?
4、如何实现多线程?
5、写出八种基本数据类型?
6、Java OOP你了解多少?
7、Servlet是什么?
8、JVM是什么?
9、JVM的运行机制?
10、数据结构和算法模型
项目架构(SSM、SSH)
1、Spring和SpringMVC的区别是什么?
SSH
1、Interceptor(拦截器)和Filter(过滤器)有什么区别?
2、Hibernate的五大核心对象?
SSM
1、mybatis和hibernate的区别?
2、你知道Spring的那些元注解?
3、Spring Boot启动项目必不可少的元注解是什么?
网络协议
1、http和https有什么区别?
2、Tcp和Udp的区别?
3、讲讲三次握手和四次挥手
Redis(缓存)
1、Redis的数据类型有哪些?
2、Set和ZSet有什么区别?
3、Redis的存储方式是什么?
4、说说Redis的常用命令?
多线程
1、如何实现一个效率高且安全的单例模式?
2、当我内存突然占用很多是什么原因?
数据库优化
1、SQL优化你知道那些?
2、你用过那些索引?
大数据处理
1、你知道那些高并发的处理?
2、数据量过大时查询速度慢时怎么处理?
笔试(编程题)
1、手写一个单例模式(常见)
2、玻璃球往楼梯上扔下去,在第几个阶梯会碎。给你两个玻璃球
3、随机一个数值得到它的最大临近值和最小临近值
测试
1、你们一般是用什么进行测试?
2、使用过Junit吗?
3、你是如何完成Junit测试的?