1、京东暑期实习一面
首先是自我介绍。
(1)为什么最后的模块使用存储过程,前面是通过java代码实现还是存储过程?用存储过程有什么好处?
什么是存储过程?与函数有什么区别和联系?存储过程的优点和缺点?
(2、3)项目中遇到过什么问题?怎么解决的?你的收获是什么?
技术:系统卡顿,查询速度慢问题;
解决:优化索引、优化SQL。
工作:刚加入项目时可能会出现对于业务了解不清。
解决:摸清业务上下游关系;主动积极、与工作人员保持良好的沟通关系。
(4)你提到了加索引?索引是不是越多越好,查询越快?具体加索引的时候应该考虑什么?
(5)MYSQL中的索引的底层结构了解吗?
(6)MYSQL中的锁?怎么实现乐观锁?
(7)JVM的类加载机制?类加载顺序、双亲委派模型的好处?什么情况下会打破这个模型?
(8)JVM的内存模型?
(9)线程安全问题怎么解决?volitile可以解决原子性问题吗?volitile、Synchronized、Lock分别解决什么问题?Synchronized和Lock的底层实现?底层AQS了解吗?
synchronized、Lock底层实现原理以及和volatile、Lock、ReentrantLock的区别?
(10)线程池的配置?运行机制?状态?如果有最大、最小、队列。那么如果本来达到了最小数量,来了一个线程,是直接创建还是到队列等队列打满再一起创建?
(11)JVM调优有没有经验?
(12)对于网络编程TCP有没有了解?三次握手、四次挥手解释一下?不用具体讲,简单说一下为什么要四次挥手?过程中都有哪些状态了解吗?
(13)端口号为什么是65535个?
(14)有没有配置过TomCat的连接池数量?
(15)直接问了ConcurrentHashMap的底层实现?HashMap的底层实现是数组+链表,在链表长度达到一定的值的时候,会变成树,是这样的吗?
HashMap的底层实现原理?(JDK1.7与JDK1.8源码分析对比)
(16)你平时是怎么学习的,怎么证明你是一个学习能力很强的人?有自己的技术博客吗?会自己去看源码吗?会自己去看一些github上面的开源的项目吗?
(17)你有什么想问我的?
问了面试官在京东工作的感受,小哥哥表示技术氛围比较好,做技术也比较踏实,没有电视剧里的勾心斗角啥的。
问了面试官对我表现的评价,小哥哥说问的这些都是比较基础,答的还可以,学生应该都知道的(额)。
问了面试官对我以后学习的建议,小哥哥说的主要有两点:基础一定要掌握好,看一些开源的东西会是很好的加分项。
2、其他面试的一些问题
(1)如果既要读数据库又要改数据库,怎样保证数据的原子性?
(2)异常捕获,try-catch-finally里都有return,那么return的执行?
return在try-catch-finally中的执行顺序到底是怎样的
(3)String类型进行+的操作,原理是什么?那你刚说的StringBuilder在append的时候内存是怎么分配的呢?
java中操作字符串的类有哪些?String、StringBuilder、StringBuffer的区别?
(4)知道事务怎么写吗?
(5)平时用到过什么集合类?Set用到过吗,可以用来实现什么功能?
(6)SQL查看前十名学生的成绩?查看10-20名学生成绩的SQL?
(7)知道java的异常处理机制吗?