学而思java实习从笔试到offer
4.29笔试
笔试题目选择题有20道,加两道算法题,
选择题部分是C++的,有一部分是java多线程还有操作系统
算法题第一道求字符串最长回文子串,第二道是十进制转二进制
5.06一面
一面上来先问了我的一个项目,项目中用了shiro,问了一下shiro的原理
数据库部分:
1、数据库中的索引结构
2、Myisam和innodb的索引区别
3、怎么建索引(举了个例子,where 变量1=A,变量2>B,变量3=C的时候),应该是想问索引什么时候失效
计算机网络部分:
1、OSI七层网络模型
2、TCP三次握手、四次挥手
3、http的是什么样的协议(这里一开始我没明白,以为要回答协议名,后来面试官说http是文本协议)
缓存部分:
1、redis基本数据类型以及底层实现
java基础部分:
1、垃圾回收算法
2、触发Full GC的条件
3、hashmap的扩容及时间复杂度
4、hash冲突算法
算法部分:
斐波那契数列除了递归之外其他的实现方法
其他:
线程安全的单例模式及单例模式的好处在哪
问了linux我常用的那些命令
5.08二面
二面一上来也是问了我的一个项目,项目中redis是怎么做缓存的,以及项目中redis分布式锁的实现
java部分:
分别让我说一下java的多线程、JVM相关、垃圾回收相关
我分别从以下部分说的
多线程:
1、synchronized锁升级的过程
2、reentrantlock非公平和公平锁的实现
3、violate关键字的原理
4、CAS操作
JVM:
1、JVM的结构
2、JVM加载类的过程
垃圾回收:
垃圾回收算法(和一面的差不多)
面试官开始问其他的问题
1、在浏览器上输入url后的过程
2、http的响应与请求的结构
3、redis的主从分布
4、redis持久化
5、常用的collection容器
6、hashMap和hashTable的区别
7、CurrentHashMap和hashTable的区别
8、IO多路复用模型中select、poll、epoll的区别
5.11 hr面
5.12收到了通过的邮件,感谢牛客,感谢好未来