搜狗 java岗社招面筋
项目问的不深,还让画了架构图。
系统化怎么进行分页的呢?我答了sql 语句limit、数组分页还有拦截器分页。
cookie 和session 的区别
JMM
堆,怎样会抛出OOM 异常,我说了分配对象需要的空间大于当前连续可用空间,他说除了
这个呢,我答不出来了。
JVM 内存区域除了堆还有哪些,还问了虚拟机栈和本地方法栈的区别,还问了什么是native
方法。
垃圾回收算法知道哪些,CMS 说一下,并发标记阶段处理速度慢的原因可能是什么。怎么
进行优化。
这个优化我答不上来,只说了为什么会处理速度慢,他说了在remark 之前再做一次YoungGC。
Java 加载一个程序的时候,jvm 有哪些参数?
线程的创建方法?
Callable 和Runnable 的区别?
设置线程池有哪些参数?
核心线程池和最大线程池还有任务队列是怎么配合工作的。
数据库的索引一般是什么数据结构。
b 树和b+树有什么区别呢
阻塞和等待的区别
volatile 能保证原子性吗
AtomicInteger 在多线程进行加1 操作的时候怎么保证线程安全的。
答了CAS 和volatile,然后说了一下。
又问了CAS 工作原理。
输入一个网页经历了哪些过程
TCP 三次握手四次挥手画一下图,然后问了客户端真正断开连接是在什么时候,我回答是在
发送最后一个响应以后
再等待2MSL 的时候以后才断开。他又问为什么要等待2MSL 的时间。
Mysql 事务的隔离级别,然后问了可提交读和不可重复读之间有什么关系,然后让举例子
HashMap 底层数据结构,是线程安全的吗?为什么不安全?怎么让hashmap 保证数据安全。
concurrenthashmap 底层数据结构
手写多线程安全的懒加载的单例模式。
手写一个算法:一个数组当中有0 和非0 元素,如何把所有0 元素放到数组后面,其他元素
保持相对顺序不变。
#java工程师##搜狗##社招##面经#