除了事件之外,字节通过仅消耗8位存储来节省内存,而{em> 32位仅用于integer
。它有什么其他实际用途?我在文中读到,当我们处理来自网络或文件的数据流时,它很有用。当您处理可能与Java的其他内置类型不直接兼容的原始二进制数据时,它们也很有用。任何人都可以用例子来解释这些吗?并陈述一些更实际的用途?
答案 0 :(得分:3)
正如您所读,在读取位流
时,字节很有用在告诉原因之前,lemme问你一个问题,一个字符代表多少位或字节? 8位/ 1字节。我希望你在这里得到了字节的原因。
在读取位流时使用字节的原因是当你读取一个字节中的流时,每次读取时,你的字节类型变量都会有一个字节的数据。即1个字符。因此,在阅读时,您将同时获得一个角色。
同样机器理解位,所以字节也派上用场,当从键盘,文件,数据流等任何输入读取时,我们更喜欢字节。类似地,当写入设备监视器时,输出流,文件等字节就派上用场了。
周围的所有内容都是10100010的倍数,因此当您不确定发送方的期望或接收方的期望时,请使用byte。
答案 1 :(得分:2)
通常字节数组用于序列化(到磁盘,网络流,内存流等)。一个简单的例子可能是这样的(取自here):
Object object = new javax.swing.JButton("push me");
try {
// Serialize to a file
ObjectOutput out = new ObjectOutputStream(new FileOutputStream("filename.ser"));
out.writeObject(object);
out.close();
// Serialize to a byte array
ByteArrayOutputStream bos = new ByteArrayOutputStream() ;
out = new ObjectOutputStream(bos) ;
out.writeObject(object);
out.close();
// Get the bytes of the serialized object
byte[] buf = bos.toByteArray();
} catch (IOException e) {
}
byte数据类型的另一种用法也与图像有关。例如,您可以执行以下操作:byte[] pixels = ((DataBufferByte) bufferedImage.getRaster().getDataBuffer()).getData();
(取自here)以访问与像素相关的信息。
答案 2 :(得分:1)
byte
是java中的8位有符号原语类型。在我们以字节形式处理数据的情况下,例如“从/向文件读取/写入字节数据”,它是有用的。
您可以在here找到最佳实用示例。