每日面试题分享——京JD东面试题分享

         

哪些情况下的对象会被垃圾回收机制处理掉?

      利用可达性分析算法,虚拟机会将一些对象定义为 GC Roots,从 GC Roots 出发沿着引用链
向下寻找,如果某个对象不能通过 GC Roots 寻找到,虚拟机就认为该对象可以被回收掉。
 

  哪些对象可以被看做是 GC Roots 呢?

1)虚拟机栈(栈帧中的本地变量表)中引用的对象;
2)方法区中的类静态属性引用的对象,常量引用的对象;
3)本地方法栈中 JNI(Native 方法)引用的对象;

      

 对象不可达,一定会被垃圾收集器回收么?

      即使不可达,对象也不一定会被垃圾收集器回收,1)先判断对象是否有必要执行 finalize()方法,对象必须重写 finalize()方法且没有被运行过。2)若有必要执行,会把对象放到一个 队列中,JVM 会开一个线程去回收它们,这是对象最后一次可以逃逸清理的机会.

     

讲一下常见编码方式? 

        编码的意义:计算机中存储的最小单元是一个字节即 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
个字节组成。

   

静态代理和动态代理的区别

        代理是一种常用的设计模式,目的是:为其他对象提供一个代理以控制对某个对象的访问,
将两个类的关系解耦。代理类和委托类都要实现相同的接口,因为代理真正调用的是委托类
的方法。
         1)静态代理 由程序员创建或是由特定工具生成,在代码编译时就确定了被代理的类是哪
一个是静态代理。静态代理通常只代理一个类;
         2)动态代理 在代码运行期间,运用反射机制动态创建生成。动态代理代理的是一个接口
下的多个实现类;
举例:Spring AOP 机制 就是动态代理机制
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leon_coding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值