到Java应用程序中我找到了这一行:
ByteBuffer b = ByteBuffer.allocate(Integer.SIZE / 8);
它创建了一个 ByteBuffer 对象(我认为它用于读取和写入单个字节。那么这意味着什么?我可以只读取和读取此对象中的字节?)。
所以 ByteBuffer.allocate()方法似乎就像返回Byte的工厂方法。
但究竟是什么分配传递 Integer.SIZE / 8 值作为输入参数?
答案 0 :(得分:0)
究竟是什么分配传递Integer.SIZE / 8值作为输入 参数β
正在创建一个容量为4字节(32/8)的ByteBuffer
实例
如果在ByteBuffer
实例中放置了多个整数(或4个字节),则会抛出java.nio.BufferOverflowException
。
它创建了一个ByteBuffer对象(我认为它用于读写) 单字节。那意味着什么?我可以放入和读取字节 这个对象?)。
您可以输入byte
以及除布尔之外的所有其他基本类型:int
,long
,short
,float
和double
。
put(byte b)
方法写入一个字节。
putInt(int value)
写一个int。
等等......
所以ByteBuffer.allocate()方法似乎就像一个 返回字节的工厂方法。
这确实是一种工厂方法,但不是返回Byte
而是返回ByteBuffer
实例。
实际上,ByteBuffer
类不能从客户端类实例化:它是一个抽象类。
所以ByteBuffer.allocate()
实例化ByteBuffer
类的实现并将其返回给客户端:
ByteBuffer allocate = ByteBuffer.allocate(Integer.SIZE / 8);
所以你可以写:
allocate.putInt(1);