当前位置:   article > 正文

2019秋招,深入源码级的“Java”面试题_源码学院java面试题整理

源码学院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 个字符,涵盖了大多数西欧语言字符。

3)GB2312

双字节编码,总编码范围是 A1-A7,A1-A9 是符号区,包含 682 个字符,B0-B7 是汉字区,包含 6763 个汉字;

4)GBK

为了扩展 GB2312 ,加入了更多的汉字,编码范围是 8140~FEFE,有 23940 个码位,能表示21003 个汉字。

5)UTF-16

ISO 试图想创建一个全新的超语言字典,世界上所有语言都可通过这本字典 Unicode 来相互翻译,而 UTF-16 定义了 Unicode 字符在计算机中存取方法,用两个字节来表示 Unicode 转化格式。不论什么字符都可用两字节表示,即 16bit,固叫 UTF-16。

6)UTF-8:

UTF-16 统一采用两字节表示一个字符,但有些字符只用一个字节就可表示,浪费存储空间,而 UTF-8 采用一种变长技术,每个编码区域有不同的字码长度。 不同类型的字符可以由1~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/662465
推荐阅读
相关标签
  

闽ICP备14008679号