对比下列代码,在看示例。
String dataString1 = new String(datas.toString());//[B@1ddc4ec2
String dataString2 = new String(datas, 0, len);//发送到接收端的数据...
System.out.println(dataString1);//[B@1ddc4ec2
System.out.println(dataString2);//发送到接收端的数据
DatagramSocket ds = new DatagramSocket(10086);
byte[] bytes = new byte[1024];
DatagramPacket dp = new DatagramPacket(bytes, bytes.length);
ds.receive(dp);
byte[] datas = dp.getData();
int len = dp.getLength();
String dataString1 = new String(datas.toString());
String dataString2 = new String(datas, 0, len);
System.out.println(dataString1);//[B@1ddc4ec2
System.out.println(dataString2);//发送到接收端的数据...
toString():显示的结果用的是父类Object的toString()方法并未经过改写得到的结果是Hash码;
new String():通过字节数组byte[]调用String对象中的toString()。