导航:首页 > 编程语言 > javabyte数组初始化

javabyte数组初始化

发布时间:2023-09-16 01:25:49

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各类型的初始值

基本数据类型作为类的成员时,
即使没有对其进行初始化,
java也会确保它有一个默认值,如下:

基本类型的初始值 基本类型 默认值
boolean false
char \u0000(null)
byte (byte)0
short (short)0
int 0
long 0L
float 0.0f
double 0.0d

上面的默认值,是当变量作为类的成员使用时才有的,
java这样做是保证基本类型的成员变量得到初始化,
防止产生程序错误,
但这些值在实际的程序中可能都是不合理的,
所以最好明确的给出初始值。

上面的默认值对在程序中非成员变量就不适用了,
非成员变量如果不明确给出初始值,就可能是任何值。
在java程序编译时会提示你一个错误,而不是c++中的警告。

至于那些应用类型,像数组,对象啦,有些复杂,根据你的类型而定,对象一般弄人为null,
数组根据你的类型,按照基本数据类型的默认值来初始化……

明白了么?

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yongpang/archive/2008/01/30/2073765.aspx

③ java 中,char 数组转换成 byte数组(急,在线等)

package com.example.lib;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.*;
import java.nio.charset.Charset;

public class MyClass {
public static void main(String[] args) throws IOException {
FileInputStream fs; //定义流对象变量
fs = new FileInputStream("/Users/mac/AndroidStudioProjects/MyApplication/lib/src/main/java/com/example/lib/mytext.txt");
byte[] bytes = new byte[fs.available()]; //定义接收数据的字节数组,并用流对象初始化数组大小
fs.read(bytes); //装载数据
char[] w = getChars(bytes);//将字节数组转化为字符数组,注意数组末尾会有空字符
String s = new String(w); //利用字符串构造函数来构造字符串,
System.out.println("结果为:"+s.trim());输出时,去掉末尾空格字符
}

private static byte[] getBytes (char[] chars) {
Charset cs = Charset.forName ("UTF-8");//设定字符集编码代号
CharBuffer cb = CharBuffer.allocate (chars.length);//按照字符数组长度进行分配空间
cb.put (chars); //装载数据
cb.flip (); //指针复位
//按照编码规则进行编码
ByteBuffer bb = cs.encode (cb);
return bb.array();
}

private static char[] getChars (byte[] bytes) {
Charset cs = Charset.forName ("UTF-8");//指定字符集编码
ByteBuffer bb = ByteBuffer.allocate (bytes.length);
bb.put (bytes);//装载数据
bb.flip ();//调整回指针为0
CharBuffer cb = cs.decode (bb);//按照指定字符集进行解码
return cb.array();//返回字符数组
}
}

④ 在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编程,这是什么意思 new char[] { '0', '1', '2', '3', '

new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E' }[15] = 70;
这句话实际上是两种合在一起了,和下面两句意思一样:
char[] array = new char[]{ '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E' };
array[15] = 70;
就是让字符数组的下内标为15的元素的ASCII码为70。但容是下标15实际上越界了,会出错的。
不过这种写法在真正写程序的时候不会出现,创建的对象没有引用,而且什么也没有做,没有意义。

⑥ java中如何去掉byte数组中的空值

byte类型的数组不存在空值的,在数组初始化的时候所有元素都会默认被赋值0

阅读全文

与javabyte数组初始化相关的资料

热点内容
e盘的文件夹怎么放在桌面上 浏览:426
数控车削编程与加工是什么 浏览:446
金稻的app怎么下载 浏览:216
怎么筛选两列包含数值的数据 浏览:545
reactnative原生开发工具 浏览:998
什么是网络云台 浏览:902
政府pdf文件加水印 浏览:435
linq代码生成 浏览:969
加密光盘源的数据怎么读 浏览:119
配置文件数据文件 浏览:473
钉钉如何将文件转发至qq 浏览:616
js获取table的tr 浏览:518
xp系统网络配置文件在什么位置 浏览:602
word中cad图形打不开 浏览:55
什么是配置管理工具 浏览:803
wps如何扫描文件 浏览:370
微信收费电影网站系统 浏览:62
佛山哪里学编程好 浏览:389
不同环境配置文件分支管理 浏览:663
电脑显示pdf文件不是一个有效的 浏览:391

友情链接