帮我看看 java 的这句代码

来源:百度知道 编辑:UC知道 时间:2024/06/14 01:16:25
int pos=0;
byte []buf = new byte[1024];
String StrInfo=null;
StrInfo= new String(buf,0,pos);
这一句 StrInfo= new String(buf,0,pos);
让一个String 类型的StrInfo变量等于 buf数组的第1个元素到第pos个元素
String()进行转化 我理解的对不。但为什么要new
这个new是什么意思。

string是一个类,strinfo是他的一个对象.创建对象必须要在类名前加new.如:
Apple a=new Apple(r,t)
后边的括号和参数表示这个是该类的构造函数.

这一句 StrInfo= new String(buf,0,pos);
让一个String 类型的StrInfo变量等于 buf数组的第1个元素到第pos个元素

以上说法是错误的!

将字节数组所表示的二进制流转换成字符串

你可以看看hello的字节数组是什么样的:
byte[] hb = "hello".getBytes();

你的理解是对的啊
用new是因为你说的这个这个实现是使用String类的构造方法来完成的
确切的来说是让String 类型的StrInfo变量等于一个新new出来的String对象
这个String对象等于 buf数组的第1个元素到第pos个元素

new就是把你转换出的这个变成一个新的String对象.