秋招面试中遇到的问题,记录不全
1. java基础方面
- 如何调用别人的接口
- 如何给别人写一个可供调用的接口
- .net包下的常用类有那些
- 乐观锁和悲观锁
- UML图
- jre、jdk、jvm三者之间的关系
- 子类与父类的转型理解
- 程序员可以手动进行内存释放吗
- 序列化与法序列化的作用
- 手写单例模式
- 手写通过反射获取对象的私有方法
- 字符串中转义字符使用
- equals()和hashCode()的作用
- java的8种基本数据类型及其对应字节
2. 多线程
- 进程间进行通信的方式
- wait()和sleep()的区别
- 线程与进程的区别
- 如何进行加锁
- 如何创建线程池
3. JVM方面
- JVM的作用
- 垃圾回收算法有哪几种
- 如何理解双亲委派模型和自顶向下加载
- 垃圾回收过程
- JVM的分区,以及每个分区的作用
- 如何对JVM进行优化,都有那些参数
- 如何理解多态,重载和重写那个是多态
- JVM的内存模型
- GC的原理
- 防止内存泄露的方法有哪些
4. 数据结构与算法方面
- 冒泡排序方法思想
- 手写希尔排序,归并排序
- 常用的排序算法知道那些
- 稳定排序与不稳定排序算法有那些
- 前序遍历和中序遍历过程
- 排序二叉树中哪种遍历过程有序
- 什么叫做二叉排序树
- 什么叫做堆排序,及其最大堆和最小堆
- 二叉排序树的平均查找长度
- 深度遍历和广度遍历
- 为什么hashMap的扩容为2的n次幂
- hashMap的初始容量和内部结构,hashMap和hashTable和ConcurrentHashMap那些是线程安全的
- arrayList的初始容量和扩容机制,List arrayList = new ArrayList(20)扩容了几次
- 如何保证Set存储的元素唯一
5. 数据库方面
- 数据库中的存储过程和触犯器
- redis的数据类型有哪些
- mongodb和redis的区别
- 数据库事物的特性
- 如何理解不可重复读
- 数据库中设置主键的方式有哪些
- 如果两张表放在不同的数据库中,主键如何进行设置
- redis为什么快
- redis通常用来做什么
- %与_的区别
- 为什么一般不会使用select *进行查询
- 数据库对象有哪些
- 如何创建视图
- 内链接、外链接、左链接和右链接的区别
- 笛卡尔积
- 数据库索引有哪些,有什么区别,为什么使用索引
- 数据库索引的数据结构有哪几种,有什么区别
- 强外健和弱外健的区别
- exist关键词的用法
- 在数据库中如何进行分页
- 如何对数据库进行优化
- 支持数据库事物的数据库引擎有哪些
- JDBC链接的四个步骤
6. 后端框架方面
- dispatcher的原理,如何进行分发
- serlet和拦截的区别
- 如何对进入Controller层的请求进行拦截
- 对响应后的东西是否还能够进行拦截
- 一次完整的HTTP请求过程
- Spring中常用的注解有哪些
- @Repository、@Service、@Controller、@Component这几个注解有什么关系
- @Resource和@Autowrite注解的区别
- Servlet的声明周期
- bean有那几种装载方式
- 如何理解AOP
- 对MVC三层架构的理解
- SpringBoot和Spring的区别
- 如何启动SpringBoot
7. 计算机网络
- http和https的区别
- 发送邮件使用的什么协议
- 查询结点经过那些路由器的命令
8. linux
- linux如何切换用户
- 文件有哪些权限,如何设置
- 如何查找一个程序的端口号