大厂真题之京东-Java实习生
VIP免费
2024-12-10
3
0
240.41KB
6 页
5.9玖币
侵权投诉
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~6 个字节组
成。
3、utf-8 编码中的中文占几个字节;int 型几个字节?
utf-8 是一种变长编码技术,utf-8 编码中的中文占用的字节不确定,可能 2个、3个、4个,
int 型占 4个字节。
4、静态代理和动态代理的区别,什么场景使用?
代理是一种常用的设计模式,目的是:为其他对象提供一个代理以控制对某个对象的访问,
将两个类的关系解耦。代理类和委托类都要实现相同的接口,因为代理真正调用的是委托类
的方法。
区别:
1)静态代理:由程序员创建或是由特定工具生成,在代码编译时就确定了被代理的类是哪
一个是静态代理。静态代理通常只代理一个类;
2)动态代理:在代码运行期间,运用反射机制动态创建生成。动态代理代理的是一个接口
下的多个实现类;
实现步骤:a. 实 现 InvocationHandler 接口创建自己的调用处理器;b. 给Proxy 类 提 供
ClassLoader 和代理接口类型数组创建动态代理类;c.利用反射机制得到动态代理类的构造函
数;d.利用动态代理类的构造函数创建动态代理类对象;
使用场景:Retrofit 中直接调用接口的方法;Spring 的AOP 机制;
5、Java 的异常体系
Java 中Throwable 是所有异常和错误的超类,两个直接子类是 Error(错误)和 Exception(异
常):
1)Error 是程序无法处理的错误,由 JVM 产生和抛出,如 OOM、ThreadDeath 等。这些异常
发生时,JVM 一般会选择终止程序。
2)Exception 是程序本身可以处理的异常,又分为运行时异常(RuntimeException)(也叫 Checked
Eception) 和 非 运 行 时 异 常 (不 检 查 异 常 Unchecked Exception) 。 运 行 时 异 常 有
NullPointerException\IndexOutOfBoundsException 等,这些异常一般是由程序逻辑错误引起
的,应尽可能避免。非运行时异常有 IOException\SQLException\FileNotFoundException 以及
由用户自定义的 Exception 异常等。
6、谈谈你对解析与分派的认识。
解析指方法在运行前,即编译期间就可知的,有一个确定的版本,运行期间也不会改变。解
析是静态的,在类加载的解析阶段就可将符号引用转变成直接引用。
分派可分为静态分派和动态分派,重载属于静态分派,覆盖属于动态分派。静态分派是指在
重载时通过参数的静态类型而非实际类型作为判断依据,在编译阶段,编译器可根据参数的
静态类型决定使用哪一个重载版本。动态分派则需要根据实际类型来调用相应的方法。
7、修改对象 A的equals 方法的签名,那么使用 HashMap 存放这个对象实例的时候,会调
摘要:
展开>>
收起<<
1、哪些情况下的对象会被垃圾回收机制处理掉?利用可达性分析算法,虚拟机会将一些对象定义为GCRoots,从GCRoots出发沿着引用链向下寻找,如果某个对象不能通过GCRoots寻找到,虚拟机就认为该对象可以被回收掉。1.1哪些对象可以被看做是GCRoots呢?1)虚拟机栈(栈帧中的本地变量表)中引用的对象;2)方法区中的类静态属性引用的对象,常量引用的对象;3)本地方法栈中JNI(Native方法)引用的对象;1.2对象不可达,一定会被垃圾收集器回收么?即使不可达,对象也不一定会被垃圾收集器回收,1)先判断对象是否有必要执行finalize()方法,对象必须重写finalize()方法且没有...
声明:本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。玖贝云文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知玖贝云文库,我们立即给予删除!
相关推荐
-
工程建设招标投标合同(附件)VIP免费
2024-11-15 16 -
工程建设招标投标合同(动员预付款银行保证书)VIP免费
2024-11-15 11 -
工程建设招标设标合同条件(第1部分)VIP免费
2024-11-15 11 -
工程建设招标设标合同合同条件(第3部分)VIP免费
2024-11-15 10 -
工程建设招标设标合同合同条件(第2部分)VIP免费
2024-11-15 13 -
工程建设监理委托合同VIP免费
2024-11-15 14 -
工程建设监理合同标准条件VIP免费
2024-11-15 11 -
工程技术资料目录VIP免费
2024-11-15 13 -
工程技术咨询服务合同VIP免费
2024-11-15 13 -
工程建设招标投标合同(投标邀请书)VIP免费
2024-11-15 35
分类:计算机
价格:5.9玖币
属性:6 页
大小:240.41KB
格式:PDF
时间:2024-12-10


渝公网安备50010702506394