爱奇艺远程一面
主要问了 java基础,数据库,Linux和算法。一面问得很基础.....
1.自我介绍
2.Java基础:
Integer和int区别, Integer内部怎么实现的。
描述一下继承,为什么用继承?
String类, String s="abc" String s=new String("abc") String s="a"+"b"+"c",有什么区别?
方法覆盖是什么?为什么不能用返回值区分? 反射加载类能访问私有成员变量吗?
Set List Map 之间的区别,各自使用场景。
HashMap底层怎么实现的? hash冲突是怎么处理的?
ConcurrentHashMap和 HashMap?
volatile int i=0;
public void run(){
i++;
} 执行10000次会有什么结果?
描述一下多线程的可见性?
线程的生命周期, 什么时候进入就绪,什么时候运行,有哪些方法可以令线程阻塞。
描述一下wait()/notify()、notifyAll()? join(),sleep(),yield() 各自作用和区别。
描述一下线程池,为什么用线程池?
Lock和 synchronized的区别. Lock怎么加锁和释放锁?
JVM对锁进行了什么优化?
JVM内部由那些东西组成? 给了一些变量,问哪些存在栈区,哪些在堆内存,哪些在常量池......
3. 数据库:
sql语句题, group by,having和where ,redis是什么? 为什么要用它?
了解过nginx吗?有用过吗? 没了解。。。。
描述一下索引,数据库有哪些索引结构?
分库分表是什么? 没了解过。。。。
4.网络 :
描述一下Http协议,Http和Https区别. 如何搭建Https, 不会.....
Get,Post区别
描述一下cookie, 那session呢?有什么区别?
浏览器禁用了cookie会发生什么情况?
如何设计一个秒杀系统? ...........只知道要处理并发....
5.Linux
常用命令 比如查看内存,查看进程等。。。
文件权限划分。
还问了些其他的,忘了具体问了什么.....
6.算法:
手撕代码: 两个栈实现一个队列 . ....剑指offer原题
手撕代码: 递归实现冒泡排序. 在哪儿见过来着,忘了.....,后来让写了个循环的冒泡。
最后面试官总结:你的基础还可以,但感觉有点零散,不够系统,算法能力得加强.....