1.-1的二进制是多少,怎么算出来的?
1111 1111 在计算机里是以补码的形式存在的,那为什么要使用补码呢?
计算机中的有符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同 [1] 。在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理
-1 转换成二进制是 1000 0001 反码是符号位不变,其他取反 1111 1110 补码是 反码加1 那就是 1111 1111了,需要提醒的是正数的原码,反码,补码,一样。
2.Java中的byte详细的介绍一下
byte,即字节,由8位的二进制组成。在Java中,byte类型的数据是8位带符号的二进制数。
在计算机中,8位带符号二进制数的取值范围是[-128, 127],所以在Java中,byte类型的取值范围也是[-128, 127]。
3.Java 的基础数据类型有哪些,分别占多少存储?
8种基础数据类型:
1、整型
byte 、short 、int 、long
2、浮点型
float 、 double
3、字符型
char
4、布尔型
boolean
boolean (布尔值) 单独4字节,在数组中是1字节 false Boolean
4.如何将byte转换成int?
&0xFF int 是32位的, 0xFF 也是32位 实际上是:0000 0000 0000 0000 0000 0000 1111 1111 将二进制 前24位置0,因为如果二进制 符号位为负,前面24位为补1。
5.重载和重写的区别:
重载是方法名一样,参数不同, 重写要求方法名一样,参数也一样。需要注意的是 重写的时候,返回参数是固定的不允许改变的,但是方法的访问权限允许往大了该,比如父亲是protect的 子类允许是protect,允许是public的,但如果是private ,你就无法往大了改了。重载允许改返回类型和访问权限的基础是你要保证参数不同。下面是测试结果:
6.单例模式的构造函数要private ,防止外部调用,单例的意义不复存在。