携程java高级社招面经

1. 描述一下JVM 加载Class 文件的原理机制?

2. 什么是类加载器?

类加载器是一个用来加载类文件的类。Java 源代码通过 javac 编译器编译成类

文件。然后JVM 来执行类文件中的字节码来执行程序。类加载器负责加载文件

系统、网络或其他来源的类文件。

3. 类加载器有哪些?

4. 什么是 tomcat 类加载机制?

5、类加载器双亲委派模型机制?

什么是双亲委派模型(Parent-Delegation Model)?为什么使用双亲委派模型?

JVM 中加载类机制采用的是双亲委派模型,顾名思义,在该模型中,子类加载器

收到的加载请求,不会先去处理,而是先把请求委派给父类加载器处理,当父类

加载器处理不了时再返回给子类加载器加载;

为什么使用双亲委派模型?

因为安全。使用双亲委派模型来组织类加载器间的关系,能够使类的加载也具有

层次关系,这样能够保证核心基础的Java 类会被根加载器加载,而不会去加载

用户自定义的和基础类库相同名字的类,从而保证系统的有序、安全。

6. Java 内存分配?

7. Java 堆的结构是什么样子的?

8. 简述各个版本内存区域的变化?

9. 说说各个区域的作用?

10. Java 中会存在内存泄漏吗,简述一下?

理论上Java因为有垃圾回收机制(GC)不会存在内存泄露问题(这也是Java被广泛使用于

服务器端编程的一个重要原因);然而在实际开发中,可能会存在无用但可达的对象,这些

对象不能被GC回收,因此也会导致内存泄露的发生。例如Hibernate的Session(一级缓存)

中的对象属于持久态,垃圾回收器是不会回收这些对象的,然而这些对象中可能存在无用的

垃圾对象,如果不及时关闭(close)或清空(flush)一级缓存就可能导致内存泄露。

11. Java 类加载过程?

在Java中,类装载器把一个类装入Java虚拟机中,要经过三个步骤来完成:装载、链接和

初始化,其中链接又可以分成校验、准备、解析

装载:查找和导入类或接口的二进制数据;

链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的;

校验:检查导入类或接口的二进制数据的正确性;

准备:给类的静态变量分配并初始化存储空间;

解析:将符号引用转成直接引用;

初始化:激活类的静态变量,初始化Java代码和静态Java代码块

12. 什么是GC? 为什么要有GC

13. 简述一下Java 垃圾回收机制?

14. 如何判断一个对象是否存活?

15. 垃圾回收的优点和原理,并考虑2 种回收机制?

基本原理是什么?

Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的

问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃

圾回收机制,Java中的对象不再有"作用域"的概念,只有对象的引用才有"作用域"。垃圾

回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个

单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用

的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃

圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。

16. 深拷贝和浅拷贝?

浅拷贝被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用仍

然指向原来的对象。即对象的浅拷贝会对“主”对象进行拷贝,但不会复制主对象里面的对

象。”里面的对象“会在原来的对象和它的副本之间共享。

简而言之,浅拷贝仅仅复制所考虑的对象,而不复制它所引用的对象。

深拷贝深拷贝是一个整个独立的对象拷贝,深拷贝会拷贝所有的属性,并拷贝属性指向的动

态分配的内存。当对象和它所引用的对象一起拷贝时即发生深拷贝。深拷贝相比于浅拷贝速

度较慢并且花销较大。

简而言之,深拷贝把要复制的对象所引用的对象都复制了一遍。

17. 什么是分布式垃圾回收(DGC)?它是如何工作

的?

RMI子系统实现基于引用计数的“分布式垃圾回收”(DGC),以便为远程服务器对象提供自动

内存管理设施。

当客户机创建(序列化)远程引用时,会在服务器端DGC上调用dirty()。当客户机完成远

程引用后,它会调用对应的clean()方法。

针对远程对象的引用由持有该引用的客户机租用一段时间。租期从收到dirty()调用开始。

在此类租约到期之前,客户机必须通过对远程引用额外调用dirty()来更新租约。如果客户

机不在租约到期前进行续签,那么分布式垃圾收集器会假设客户机不再引用远程对象。

 


#携程##java工程师##社招##面经#
全部评论
问下老哥后来有做测评吗
点赞 回复 分享
发布于 09-19 14:57 上海

相关推荐

努力学习的小绵羊:我反倒觉得这种挺好的,给不到我想要的就别浪费大家时间了
点赞 评论 收藏
分享
M_bao:简历排版换一下吧,第二个项目换了吧,咱门双非学历本来就不行还用这种项目太掉分了,300沟通一个要简历你打招呼也有问题。
点赞 评论 收藏
分享
评论
点赞
36
分享
牛客网
牛客企业服务