- 36
- 0
- 约6.25千字
- 约 9页
- 2019-03-18 发布于江苏
- 举报
java深入源码级的面试题
1、哪些情况下的对象会被垃圾回收机制处理掉?
利用可达性分析算法,虚拟机会将一些对象定义为GC Roots,从GC Roots出发沿着引用链向下寻找,如果某个对象不能通过GC Roots寻找到,虚拟机就认为该对象可以被回收掉。
1.1 哪些对象可以被看做是GC Roots呢?
1)虚拟机栈(栈帧中的本地变量表)中引用的对象;
2)方法区中的类静态属性引用的对象,常量引用的对象;
3)本地方法栈中JNI(Native方法)引用的对象;
1.2 对象不可达,一定会被垃圾收集器回收么?
即使不可达,对象也不一定会被垃圾收集器回收,1)先判断对象是否有必要执行finalize()方法,对象必须重写finalize()方法且没有被运行过。2)若有必要执行,会把对象放到一个队列中,JVM会开一个线程去回收它们,这是对象最后一次可以逃逸清理的机会。
2、讲一下常见编码方式?
编码的意义:计算机中存储的最小单元是一个字节即8bit,所能表示的字符范围是255个,而人类要表示的符号太多,无法用一个字节来完全表示,固需要将符号编码,将各种语言翻译成计算机能懂的语言。
1)ASCII码:总共128个,用一个字节的低7位表示,0?31控制字符如换回车删除等;32~126是打印字符,可通过键盘输入并显示出来;
2)ISO-8859-1,用来扩展ASCII编码,256个字符,涵盖了
原创力文档

文档评论(0)