旷视科技面试题目总结(后端开发半年经验)

一面:

算法:

翻转链表

翻转二叉树

并查集

数据库:mysql 更新一条数据需要刷新几次磁盘?为什么? 为什么用 b+树?b 树呢?

网络:tcp 三次握手,为什么不是两次,四次?三次握手发的数据是什么?? 四次挥手?为什么不是三次??中间为什么是两次??为什么要 time_wait?出现大量 time_wait 怎么办? ssl 原理?

java: 启动一个 hello world 程序发生了什么? 你怎么看待虚拟机?物理机和程序之间隔了一层虚拟机有什么好处? JMM 讲一下? ArrayList 扩容?HashMap 讲一下?(有多少讲多少) 什么情况会出现线程安全?怎么解决?? syncronized 实现?(监视器模型) 原子类实现?unsafe 类的功能有哪些??

如何用Java 的 Executor 来创建线程池?

线程池如何配置?

说一下数据库连接池,连接池最小和最大连接数?何时达到最大连接数?HashMap 数据结构 put 的过程,源码看过没有?

hashcode 和 equals 有什么区别?

Spring 说一下 IoC 底层如何实现 IoC?

设计模式用过哪些?有没有用过单例模式?

线程有哪些状态?

如何构造一个线程?Runnable 和 Callable 与什么区别? 如何启动一个线程?

一面两小时,第二天打电话约二面。

二面:

A 方法打印 A,B 方法打印 B,C 方法打印 C 方法执行序列 ABC,两条线程怎么打印 AABBCC。 (给了三个方案,wait/notify 机制,condition,线程组成链表 1->2->1->2 交替执行,后面的 等前面的锁)

研究过字节码??

创建一个对象过程?(三个指令,new,dup, invokespecial)开辟空间,调用构造器初始化 lambda 表达式的实现?

#面经##旷视##Java工程师##社招#
全部评论

相关推荐

点赞 评论 收藏
转发
6 38 评论
分享
牛客网
牛客企业服务