IntBuffer
is a class from the java.nio
package in Java that allows you to work efficiently with sequences of 32-bit signed integers. It is part of the NIO (New I/O) library and supports buffer-based data manipulation useful for I/O operations, communication protocols, and performance-critical applications.IntBuffer
is abstract; you create an instance using static factory methods like allocate()
and wrap()
.
Commonly Used Methods

Simple Program using IntBuffer(Store and Display Integer Values)
import java.nio.IntBuffer; public class SimpleIntBufferDemo { public static void main(String[] args) { // Allocate a buffer for 5 integers IntBuffer buffer = IntBuffer.allocate(5); // Put values into buffer buffer.put(100); buffer.put(200); buffer.put(300); // Switch to read mode buffer.flip(); System.out.println("Reading IntBuffer:"); while (buffer.hasRemaining()) { System.out.println(buffer.get()); } } }
Problem Statement
LotusJavaPrince is building a performance dashboard that logs CPU load percentages from various nodes in a distributed banking system. Mahesh gives him a task:
- Store these load readings in an
IntBuffer
. - Filter out any values above 90 (considered CPU overload).
- Display normal load values with index positions for analysis.
Help LotusJavaPrince implement this using IntBuffer
.
import java.nio.IntBuffer; public class CpuLoadMonitor { public static void main(String[] args) { // Simulated CPU load data from 10 servers int[] cpuLoads = {45, 67, 91, 88, 77, 95, 60, 84, 93, 70}; // Wrap the CPU load array IntBuffer inputBuffer = IntBuffer.wrap(cpuLoads); // Allocate a new buffer to store normal loads (<= 90) IntBuffer normalLoadBuffer = IntBuffer.allocate(cpuLoads.length); // Filter values while (inputBuffer.hasRemaining()) { int load = inputBuffer.get(); if (load <= 90) { normalLoadBuffer.put(load); } } // Prepare output buffer for reading normalLoadBuffer.flip(); // Display filtered CPU loads System.out.println("Normal CPU Load Values (Filtered by LotusJavaPrince):"); int index = 0; while (normalLoadBuffer.hasRemaining()) { System.out.println("Node[" + index + "] Load: " + normalLoadBuffer.get()); index++; } } }
Output
Normal CPU Load Values (Filtered by LotusJavaPrince):
Node[0] Load: 45
Node[1] Load: 67
Node[2] Load: 88
Node[3] Load: 77
Node[4] Load: 60
Node[5] Load: 84
Node[6] Load: 70
Code language: CSS (css)
The IntBuffer
class in Java NIO is a specialized buffer designed for handling sequences of 32-bit int
values efficiently. Extending the abstract Buffer
class, it provides all the standard buffer features such as position, limit, capacity, and mark, but tailored for integer data.
IntBuffer
plays a vital role in high-performance applications that need to manipulate large volumes of integer data, such as numerical simulations, image processing, file I/O, or network protocols. With support for heap and direct buffers, it enables memory-efficient and fast data access, especially in conjunction with NIO channels.