1.关于原码、反码、补码的问题。
经过强制类型转换以后,变量a,b的值分别为多少?
1
2
|
short a = 128 ;
byte b =( byte ) a;
|
已知负数的补码,求负数:
补码-1=反码,反码按位取反=该负数绝对值
已知负数,求负数的补码:
(1)、负数原码除了符号位,按位取反(不含符号位),加1。
(2)、负数绝对值的补码(也就是原码),按位取反(含符号位),加1
java int 128转为byte,值:
128为正数,补码为10000000(前面24个0省略),变成byte,只剩下10000000(byte为1个字节),因为开头是1,所以为负数。即1个负数的补码是10000000。反码是01111111,原码是1000000。是128.因为是负数,所以是-128。
2、final修饰的变量是常量,必须进行初始化,可以显示初始化,也可以通过构造进行初始化,如果不初始化编译会报错。
final作为对象成员存在时,必须初始化;但是,如果不初始化,也可以在类的构造函数中初始
因为java允许将数据成员声明为final,却不赋初值。但是,final必须在使用之前初始化。如果不初始化,就会出现编译时错误。
3.stack是继承自vector,所以是线程安全的。
4.字符型类型的数据默认值是空。
5.Object类中的方法有:
3.stack是继承自vector,所以是线程安全的。
4.字符型类型的数据默认值是空。
5.Object类中的方法有:
方法摘要 | |
---|---|
protected Object |
clone() 创建并返回此对象的一个副本。 |
boolean |
equals(Object obj) 指示其他某个对象是否与此对象“相等”。 |
protected void |
finalize() 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。 |
Class<?> |
getClass() 返回此 Object 的运行时类。 |
int |
hashCode() 返回该对象的哈希码值。 |
void |
|