Java面试题9.21/9.22

发布于:2022-12-10 ⋅ 阅读:(555) ⋅ 点赞:(0)

 

目录

基本数据类型中的特殊情况

static作用域问题

 HashMap和HashTable的区别

接口与接口的关系

 >>和>>>的区别

垃圾回收器所对应的回收算法

 拆箱装箱


基本数据类型中的特殊情况

自动数据类型转换优先关系:

byte,short,char->int->long->float->double

 

 注意:

float占4个字节为什么比long占8个字节大呢,因为底层的实现方式不同。

浮点数的32位并不是简单直接表示大小,而是按照一定标准分配的

第1位,符号位,即S

接下来8位,指数域,即E。

剩下23位,小数域,即M,取值范围为[1 ,2 ) 或[0 , 1)

然后按照公式: V=(-1)^s * M * 2^E

static作用域问题

Java中静态变量只能在类主体中定义,不能在方法中定义。 静态变量属于类所有而不属于方法 

 

 HashMap和HashTable的区别

(30条消息) HashTable和HashMap的区别_Fairy要carry的博客-CSDN博客_hashtable与hashmap区别

接口与接口的关系

类与类之间的关系为继承,只能单继承,但可以多层继承。 2.类与接口之间的关系为实现,既可以单实现,也可以多实现。 3.接口与接口之间的关系为继承,既可以单继承,也可以多继承

 >>和>>>的区别

>>>(逻辑操作符):表示无符号右移,也叫逻辑右移,即若该数为正,则高位补0,而若该数为负数,则右移后高位同样补0

>>(算数操作符):表示右移,如果该数为正,则高位补0,若为负数,则高位补1;

例如:

res = 20 >> 2; (正数,算数操作符)

20的二进制为 0001 0100,右移2位后为 0000 0101,则结果就为 res = 5;

res = -20 >> 2;(负数,算数操作符,高位补1)

-20的二进制为其正数的补码加1,即 1110 1100,右移2位后为 1111 1011,结果为 res = 211;

而对于>>>符号而言:

res = 20 >>> 2; 的结果与 >> 相同;

res = -20 >>> 2;

-20的结果为 res = 59;

垃圾回收器所对应的回收算法

新生代回收器:Serial、ParNew、Parallel Scavenge
老年代回收器:Serial Old、Parallel Old、CMS

Serial New收集器是针对新生代的收集器,采用的是复制算法

Parallel New(并行)收集器,新生代采用复制算法,老年代采用标记整理

Parallel Scavenge(并行)收集器,针对新生代,采用复制收集算法

Serial Old(串行)收集器,新生代采用复制,老年代采用标记整理

Parallel Old(并行)收集器,针对老年代,标记整理

CMS收集器,基于标记清除

G1收集器:整体上是基于标记 整理 ,局部采用复制

 拆箱装箱

对于-128到127之间的数, Integer直接从数组中取, 故a1, a2指向的是同一个对象, A正确. 

int类型与Integer类型比较时, 先将Integer拆箱, 再比较值, 故B正确.

包装类和它对应的基础类型作比较——>会进行拆箱比较

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到