参考链接:https://blog.csdn.net/z_godgirl/article/details/52542800
参考链接:https://blog.csdn.net/github_27263697/article/details/80421478
参考链接:https://blog.csdn.net/qq_35114086/article/details/70173329
网上有个哥们去面试,面试官问了一句,int几个字节?
我也忘了!
在Java中一共有8种基本数据类型,其中整型(long ,int , short , byte),浮点类型(double , float),char类型和boolean类型。
计算机中最小的信息单位是bit(称为bit或者位),8个bit为一个byte(字节);
整型 (整型取值范围计算 2的(bit位数-1)次幂)
类型 存储需求 bit数 取值范围 备注
long 8字节 88 ±2^63(正值要减去1)
int 4字节 48 ±2^31
short 2字节 28 ±2^16
byte 1字节 18 ± 2^7
2.浮点型
类型 存储需求 bit数 取值范围 备注
double 8字节 88 没有后缀F的浮点数值(如3.14)默认为double类型
float 4字节 48 float类型的数值有一个后缀F(例如:3.14F)
3.char类型
类型 存储需求 bit数 取值范围 备注
char 2字节 2*8
4.boolean类型
类型 存储需求 bit数 取值范围 备注
boolean 1字节 1*8 false/true
面试官再问 int占几个字节 整型的从大到小 8421 其他的从大到小 8421
java中十进制转16进制
String h = Integer.toHexString(255); //此处h为"ff"
16进制转10进制
int a = Integer.valueOf("a", 16) // a=10
转字符串和byte数组
String a = "abcd";
char[] array = a.toCharArray(); // array = {'a','b','c','d'}
byte[] bt = a.getBytes(); // bt = 97 98 99 100
可以用于简单加密的
按位取反可以用于简单加密
String a = "abcd";
byte[] bytes = a.getBytes();
byte[] valueB = new byte[4];
for(int i =0;i<bytes.length;i++)
valueB[i] = (byte)(~bytes[i]);
System.out.println( new String(valueB)); //灊湜
for(int i =0;i<valueB.length;i++)
bytes[i] = (byte)(~valueB[i]);
System.out.println( new String(bytes)); // abcd
常用的异或加密简单实现
char[] key = {'1','2','3','4'};
String a = "abcd";
char[] valueA = new char[4];
char[] array = a.toCharArray();
for(int i =0;i<array.length;i++)
{
valueA[i] = (char)(array[i]^key[3]);
}
System.out.println(new String(valueA)); //UVWP
for(int i =0;i<valueA.length;i++)
{
array[i] = (char)(valueA[i]^key[3]);
}
System.out.println(new String(array)); //abcd