Java 这个ByteBuffer.allocate()方法到底创建了什么?
在一个Java应用程序中,我发现这行代码:Java 这个ByteBuffer.allocate()方法到底创建了什么?,java,byte,bytebuffer,Java,Byte,Bytebuffer,在一个Java应用程序中,我发现这行代码: ByteBuffer b = ByteBuffer.allocate(Integer.SIZE / 8); 它创建了一个ByteBuffer对象(我认为它用于读取和写入单个字节。那么这意味着什么?我可以在这个对象中放置和读取字节?) 因此,ByteBuffer.allocate()方法似乎类似于返回字节的工厂方法 但传递Integer.SIZE/8值作为输入参数究竟是什么 将Integer.SIZE/8值作为输入传递到底是什么 参数 它正在创建一个容
ByteBuffer b = ByteBuffer.allocate(Integer.SIZE / 8);
它创建了一个ByteBuffer对象(我认为它用于读取和写入单个字节。那么这意味着什么?我可以在这个对象中放置和读取字节?)
因此,ByteBuffer.allocate()方法似乎类似于返回字节的工厂方法
但传递Integer.SIZE/8值作为输入参数究竟是什么
将Integer.SIZE/8值作为输入传递到底是什么
参数
它正在创建一个容量为4字节(32/8)的ByteBuffer
实例。如果在
ByteBuffer
实例中放入多个整数(或4个字节),将抛出java.nio.BufferOverflowException
它创建了一个ByteBuffer对象(我认为是用来读写的)
单字节。那它意味着什么?我可以把和只读字节放进去
这个物体?)
您可以输入byte
,也可以输入除boolean之外的所有其他基本类型:int
、long
、short
、float
和double
put(字节b)
方法写入一个字节。
putInt(int值)
写入一个int。
对……也是如此。。
因此,ByteBuffer.allocate()方法似乎类似于 返回字节的工厂方法 它确实是一个工厂方法,但不是返回一个
Byte
,而是返回一个ByteBuffer
实例。
实际上,ByteBuffer
类不能从客户机类实例化:它是一个抽象类。因此
ByteBuffer.allocate()
实例化ByteBuffer
类的实现并将其返回给客户端:
ByteBuffer allocate = ByteBuffer.allocate(Integer.SIZE / 8);
所以你可以写下:
allocate.putInt(1);
不,
Integer.SIZE
是32,因此创建了一个4字节的缓冲区。不,它不是返回一个字节
,而是返回一个字节
。