三七互娱JAVA游戏端二面
三七互娱二面 远程视频面试:JAVA游戏端开发。非常有深度 大约50Min
1.自我介绍:
2.我不是计算机专业的,先从一些计算机常识问题入手:
3.计算机的结构:硬件和软件,里面的计算机结构
4.计算机网络模型 OSI七层模型的产生
5.操作系统的死锁问题
问我会什么,我从JAVA虚拟机入手
6.JAVA虚拟机内存模型 :程序计数器,虚拟机栈、本地方法栈、Java堆(具体划分)、方法区
7. 内存泄漏如何解决 用jstat,jstack,jmap各种工具分析
(1.确定频繁full GC现象,找出进程唯一ID,用JPS 2.Jstat查看Full GC频次 3.jmap分析堆文件)
8.谈到了新生代的Eden和survivor区,为什么Eden区不用标记-清除算法: 因为新生代频繁创建对象
9.标记清除算法,复制算法的原理
10.垃圾回收机制的优劣 :不用手动管理垃圾回收,但是也造成了无法对垃圾进行管控。
11.垃圾回收算法中可达性分析算法原理,什么可以作为GC-roots的引用链
虚拟机栈引用的对象,方法区类静态属性引用的对象,方法区常量引用的对象
就在此时,网络开始变差,我。。。我和面试官失去了联系。
面试官脾气真的好,让我调试成功了再继续。 而且,本来约上午的面试,我当时准备高铁面试,然后就安排到了下午,非常有耐心!
多线程编程 刨根问底
JAVA中的线程
12多线程和单线程的区别: 一个数据集进行排序,使用单线程还是多线程处理,他们的优劣
我谈到了mapReduce,他说是不同主机之间的处理,如果是一台主机,你是选用多线程还是单线程呢?
这个真的把我难倒了。
13多线程编程的好处是什么? --充分利用并发
14synchronized和reentrantLock的区别 --先说到了自旋锁,锁消除和锁粗化。最后扯到了Unsafe类就谈不下去了
15synchronized的原理和ReentrantLock的原理 问到AQS这一层,已经回答不出来了。
16.synchronized锁对象和锁类的区别(synchronized(A.class)和synchronized(object) 获取对象锁,获取类锁)
主要区别是同一个类的不同对象使用类锁会是同步的。
17.当数据正在更新,如何解决不同线程更新一个变量的问题。 ---使用synchoronized
18.volatile的内部原理:JMM内存模型,冲刷线程中的缓存。
19.volatile的具体使用场景
20.CAS的原理,CAS产生的问题,如何解决,CAS使用场景
21.知道atomic类的原理吗? 聊一聊使用的场景。
聊了这么多,说一下你对哪一方面的知识比较熟悉?
22.提到了线程池中的各种接口
从executor到executorService,ThreadPoolExecutor,Executors,谈到了里面都有哪些方法?
ThreadPoolExecutor的具体工作流程
聊到这里已经基本结束,询问了公司的业务和方向,不是偏向大数据。使用的框架大部分都是公司内部的。
最后问面试官我的表现如何,他说基本上问题不大,不知道有没有通过。
最后总结一下:技术官非常喜欢深挖一些你会的知识点,然后不断向下探索,深度挖掘。
一个知识点,真的需要把他的原理搞明白。
#三七互娱##面经##春招##Java工程师#