整个面试分为笔试和面试,过了后二面,由HR视频面试
一.笔试题
1.int num=2147483647 num+=2L; 结果是多少?
结果是:-2147483647
分析:
int的范围是:
负的2的31次方=-2147483648
正的2的31次方-1=2147483647
当num+=2L的时候内存溢出+1结果变为-2147483648,再+1结果为
-2147483647
2.创建线程有几种不同的方式?你喜欢哪一种?为什么?
三种:
- 1.继承Thread类
- 2.实现Runnable接口
- 3.通过Executor创建线程池实现
喜欢:实现Runnable接口
原因:
- 1 .实现Runnble接口还可以继承其他类
- 2.提高了扩展性,降低了程序的耦合性(设置线程和启动线程分离)
3.数据库中的锁有哪些?
三种锁:
- 1 .表级锁
- 2.行级锁
- 3.页面锁
1.表级锁:并发低,查询速度快
2.行级锁:并发高,分为共享锁,排他锁
- 1 .共享锁:在查询一条数据的时候,允许多个线程同时访问,但不允许修改
- 2.排他锁:在对一条数据进行修改的时候,只允许一个事务进行修改
mysql和Oracle行级索实现原理:
1.mysql,Innodb引擎,利用索引上的索引项实现行级锁
2.oracle通过在数据行加锁实现</