【阿里面经】2.26提前批
发帖时间有点晚,不过还是希望能给大家一点帮助
【面经】阿里提前批2.26/亽
面试官人很好,说这次不算正式面试,不录入招聘系统,就我们相互了解一下,然后给我科普了20分钟阿里云数据库,他们部门负责的生态工具之类的,基本没听懂【捂脸】,然后让我介绍下自己,之后开始了提问环节。
说一说helloWorld.java程序执行过程中,JVM发生了什么
编译器把helloWorld.java编译成字节码文件helloWorld.class
类加载器把helloWold类的静态变量(无),静态方法(Main()),常量(“hello world”),代码(指令)加载到方法区,并在堆中生成一个helloWold.Class对象
JVM开始执行栈里的Main()方法,读取到System.out.Print("hello world");执行打印操作, 栈中的Main()方法引用在类的链接过程得到。
你了解类的模板吗
类的模板指的是类的Class对象,它本身也是一个类
一个类只会有一个Class实例对象,在JVM中由类加载器载入.Class文件,用户不能自己创建,只能通过一些方法获取。
通过Class对象可以获得一个类完整的属性,方法,构造器,是实现反射机制的关键
你了解volatile关键字吗
JVM提供的最轻量级的同步机制. 见过,没用过。
java如何实现多继承
通过多级继承,内部类实现,接口实现。
聊一聊你比较熟悉的GC算法
复制算法,运用在新生代,幸存区分为from和to两个空间,from区满后,GC会把活动对象全部复制到to区,复制完成后,from和to互换,GC完成。15次GC后,幸存区的活动对象进入老年区。
为什么要用复制算法,而不是直接剔除不可达对象
即问复制算法的优点:
吞吐量优秀
可实现告诉分配:分配内存的时候在末尾累加就行了
没有碎片化问题
与缓存兼容:有引用关系的内存间距离很近,一般都是挨着的
答案是我自己面试完之后总结的,不保证正确性,希望大佬们多多指教
#实习面经##面经##阿里巴巴##校招#