java的基础类型有8中,如下
基本类型 | 大小 | 范围/精度 |
byte | 1字节 | -128到127 |
short | 2 字节 | -32,768到32,767 |
char | 2 字节 | 整个Unicode字符集 |
int | 4 字节 | -2,147,483,648到2,147,483,647 |
float | 4 字节 | 32位IEEE 754单精度 |
long | 8 字节 | -9,223,372,036,854,775,808到9,223,372,036, 854,775,807 |
double | 8 字节 | 64位IEEE 754双精度 |
boolean | 1 位 | True或者false |
如果使用十六进制,8位可以转换成一个字节,如"0B",可以转成一个byte,同样一个byte也可以转换成两个是(8位)十六进制字符。如:
//hex --> byte
String hex="0B";
byte b=(byte)Integer.parseInt(hex, 16);
System.out.println(b); //--> 11
//byte --> hex
byte b = 12;
StringBuffer sb = new StringBuffer(2);
if (((int) b & 0xff) < 0x10){
sb.append("0");
}
sb.append(Long.toString((int) b & 0xff, 16));
System.out.println(sb.toString()); //--> 0C
在byte传输的层级是不用考虑编码格式问题,如果我们传输数据时使用的byte数组等,当我们使用byte数组,并将其转换成String时才会存在编码的问题,常用的编码格式有utf-8,gbk,gb2312等。String内部的存储单元的char,所以编码是在byte和char之间的存在的。
String s="测试";
byte[] bytes=s.getBytes("gbk");
....
String ss=new String(bytes, "gbk");