JAVA基础----基本类型和简单加密实现

参考链接: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字节 4
8 ±2^31
short 2字节 28 ±2^16
byte 1字节 1
8 ± 2^7

2.浮点型
类型 存储需求 bit数 取值范围 备注
double 8字节 88 没有后缀F的浮点数值(如3.14)默认为double类型
float 4字节 4
8 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值