㈠ java中的变量各占得字节数
boolen:1个字节自
int:4个字节
float:4个字节
double:8个字节
char:2个字节
byte:1个字节
short:2个字节
long:8个字节
(1)java中的位和字节数组中扩展阅读
Java8大基本数据类型
1,四种整数类型(byte、short、int、long):
byte:8 位,用于表示最小数据单位,如文件中数据,-128~127
short:16 位,很少用,-32768 ~ 32767
int:32 位、最常用,-2^31-1~2^31 (21 亿)
2,两种浮点数类型(float、double):
float:32 位,后缀 F 或 f,1 位符号位,8 位指数,23 位有效尾数。
double:64 位,最常用,后缀 D 或 d,1 位符号位,11 位指数,52 位有效尾。
3,一种字符类型(char):
char:16 位,是整数类型,用单引号括起来的 1 个字符(可以是一个中文字符),使用 Unicode 码代表字符,0~2^16-1(65535)。
4,一种布尔类型(boolean):true真和false假
参考链接:网络JAVA
㈡ JAVA里16进制和字节数组互转
大括号理的就是一个byte类型的数组,里面是3个byte类型那个的数
public static String stringToHexString(String strPart) {
String hexString = "";
for (int i = 0; i < strPart.length(); i++) {
int ch = (int) strPart.charAt(i);
String strHex = Integer.toHexString(ch);
hexString = hexString + strHex;
}
return hexString;
}
private static String hexString="0123456789ABCDEF";
/*
* 将字符串编码成16进制数字,适用于所有字符(包括中文)
*/
public static String encode(String str)
{
// 根据默认编码获取字节数组
byte[] bytes=str.getBytes();
StringBuilder sb=new StringBuilder(bytes.length*2);
// 将字节数组中每个字节拆解成2位16进制整数
for(int i=0;i<bytes.length;i++)
{
sb.append(hexString.charAt((bytes[i]&0xf0)>>4));
sb.append(hexString.charAt((bytes[i]&0x0f)>>0));
}
return sb.toString();
}
/*
* 将16进制数字解码成字符串,适用于所有字符(包括中文)
*/
public static String decode(String bytes)
{
ByteArrayOutputStream baos=new ByteArrayOutputStream(bytes.length()/2);
// 将每2位16进制整数组装成一个字节
for(int i=0;i<bytes.length();i+=2)
baos.write((hexString.indexOf(bytes.charAt(i))<<4 |hexString.indexOf(bytes.charAt(i+1))));
return new String(baos.toByteArray());
}
private static byte uniteBytes(byte src0, byte src1) {
byte _b0 = Byte.decode("0x" + new String(new byte[] {src0})).byteValue();
_b0 = (byte) (_b0 << 4);
byte _b1 = Byte.decode("0x" + new String(new byte[] {src1})).byteValue();
byte ret = (byte) (_b0 | _b1);
return ret;
public static byte[] HexString2Bytes(String src)
{
byte[] ret = new byte[6];
byte[] tmp = src.getBytes();
for(int i=0; i<6; ++i )
{
ret[i] = uniteBytes(tmp[i*2], tmp[i*2+1]);
}
return ret;
}
这方法就可以互相转,你看看吧
㈢ JAVA 如何将整数转成N个字节,放入字节数组中去
publicstaticbyte[]intToBytes(intnum){
byte[]b=new稿粗byte[4];
for(inti=0;i<4;i++){
b[i]=(byte)(num>>>(24-饥敬改i*8));
烂判}
returnb;
}
㈣ 谁能告诉我java中的字节数组是什么意思,怎么用。
public class Test extends Thread {
public static void main(String[] args){
byte[] b=new byte[]{'a','b'};
System.out.println(new String(b));
}
}
字节应用在io输入输出里比较多,文件回的读写,对象序答列化等等,字节就8位打印出来的就ASCII码里的基本字符,
㈤ java中字符与字节和位的关系一个英文字母或数字占几个字节中文占多少1kb代表的是什么
1字符=2字节滚察;1字节段察=8位
英文和数字占一个字节
中文占一个字符,也就是两个字握备茄节
1k=2^10;b:位;B:字节
1kb=1024 位
1kB=1024 字节
㈥ java中String 数组和byte数组的区别,为什么要互相转换
一个byte表示一个字节,8位的,整数范围是-128-127.
***************************************************************
String转化为byte:(这种情况很少)
任何以字符串的形式表示的数字组合,比如说“111”,十进制表示111,二进制表示7,等,转化为byte都是合法的,但是如果以16进制来表示,“111”的十进制值是273,则超过-128-127的范围了,所以被认为是非法转换。
另外任何除了数字组合的字符串,比如说有字母“c”,想转化为Byte都认为是非法的。
****************************************************************
byte[]转化为String:(较常见)
由于byte数组存储的是8位8位的字节,所以转化为String要具体看默认的字符编码,比知拦如常见的宏猛销ascii编码,8个bit就可以转化为一个字节,10个大小的byte数组就可以转化为长度为10的字符蔽游串
㈦ java 中关于byte数组的赋初值问题
byte short int long
这几种类型都是java中的整数类型
你肯定对int比较了解,byte和int的区别是int是32位,byte是8位,表示的数字范围为回:-128到+127
所以答
第一个byte中元素都没超过范围,都以数字显示。第二个byte数组中的元素都是char类型,char类型是占16位的,一般转换为byte是由大到小,需要强制转换,但这些char并没有超出byte的范围,所以不用
在打印时会将char元素转换成对应的ascii码,具体你可以去查
toString的确是输出字母,但'a'是字符,不是字符串,两个完全不同的概念
字符串+primitive类型就是转换为字符型的最简单方法,例:
4+"" 将数字4转换为字符串4 现在的4不再是数字,而是字符串,懂?
㈧ 在java中操作 byte数组
没有现成的 一般都是我们自己写工具类 可以给你占几个常用的方法:
public static int splitToArray(String[] strCompName, int count, int len, int amount, int repariFeeIndex, String strPrefix) throws Exception {
String [] strCompNameTemp ;
if(strCompName[count].length() > len) {
strCompNameTemp = splitToArray(strCompName, count, len, strPrefix);
for(int compIndex=0; compIndex<strCompNameTemp.length; compIndex++) {
if((repariFeeIndex + compIndex)>amount) {
break;
}
if(compIndex != 0) {
count++;
}
strCompName[count] = strCompNameTemp[compIndex];
}
} else if(count != 0){
strCompName[count] = strPrefix + strCompName[count];
}
return ++count;
}
㈨ Java中 “字符类型”与“字节类型”的区别是什么
byte字节类型是JAVA中最小的数据类型,它在内存中占8位,取值范围从-128到127,
赋值:byte i = 127;注:byte型在赋值时,一旦超过127或小于-128,则会产生编译错误。
char字符类型在内存中占2个字节。表示一个字符,也可以使用A SCII码范围内的值来给char型的变量赋值。由于字符在内存中的取值不存在负数范围,所有取值范围从0到655 35。
赋值:char i = 'a'; 或者 char i = 97;
注:在java中,字符的表现形式为单个字符加上一对单引号修饰。
首先得知道byte的概念和作用:
byte即字节的意思,是java中的基本类型,用来申明字节型的变量。
通常在读取非文本文件时(如图片,声音,可执行文件)需要用字节数组来保存文件的内容,在下载文件时,
也是用byte数组作临时的缓冲器接收文件内容。所以说byte在文件操作时是必不可少的。不管是对文件写入还是
读取都要用到。byte在java中是一种是数据类型,代表一个字节,一个字节包含8个位,所以,byte类型的取值范
围是-128到127。
在某些程序中(尤其是和硬件有关的程序)会将某些数据存储到字节类型的变量中,比如00110010,其中每个
位都代表一个参数,然后以位运算的方式对参数进行取值和赋值操作。
机器只知道字节,而字符却是语义上的单位,它是有编歼枝码的,一个字符可能编码成1个2个甚至3个4个字节。这跟字
符集编码有关系,英文字母和数字是单字节氏判敏,但汉字这些自然语言中的字符是多字节的。一个字节只能表示255个字
符,不可能用于全球那么多种自然语言的处理,因此肯定需要多字节的存储方式。而InputStream, OutputStream
它们是处理字节流的,就是说假设所有东西都是二进制的字节,冲液而 Reader, Writer 则是字符流,它涉及到字符集
的问题;按照ANSI编码标准,标点符号、数字、大小写字母都占一个字节,汉字占2个字节。按照UNICODE标准所有
字符都占2个字节。
㈩ java中字节数组与字符数组用法有什么区别
额 最基本的区别就是一个存储字节一个存储字符啊
所以你只要搞清楚字节和字符的区别就专好了
字节属(Byte):字节是通过网络传输信息(或在硬盘或内存中存储信息)的单位。字节是计算机信息技术用于计量存储容量和传输容量的一种计量单位,1个字节等于8位二进制,它是一个8位的二进制数,是一个很具体的存储空间。
字符:人们使用的记号,抽象意义上的一个符号。 '1', '中', 'a', '$', '¥', ……一个字符(1char = 2byte = 16bit)
详情可以自己网络一下 字节和字符的区别