What is the IntBuffer slice() method in Java?

What is IntBuffer?

IntBuffer is a class in Java that is defined inside the java.nio package. The java.nio package defines buffers, which are a chunk of readable and writeable memory that can be used to easily communicate over NIO channels. There are many types of buffers in the java.nio package, including IntBuffer. IntBuffer is similar to arrays of different data types with different sizes.

The class IntBuffer allows for various operations, which are as follows:

  • Absolute and relative get methods that read single ints.
  • Absolute and relative put methods that write single ints.
  • Relative bulk get method that can allocate a contiguous chunk of memory from the buffer into arrays.
  • Relative bulk put method that can allocate contiguous memory from an int array to a buffer.

Overview

The slice method slices the IntBuffer from its current position onwards. The space from its current position to its capacity is reserved for the new integer buffer acquired after slicing. The position and limit are reset for the new integer buffer and the mark is undefined. The general syntax for the slice method is as follows:

public abstract IntBuffer slice()

Parameters

There are no compulsory parameters for the slice method.

Return value

The new buffer is returned after using the slice method.

Example

The following example will help you understand the slice method. As shown below, we first create an IntBuffer and fill it up. Then, we print the integer buffer, along with its position. After using the slice method, it is observed that the position is reset to 0. Moreover, when we fill elements in the buffer, they start filling up from the empty position after which the original buffer was sliced.

import java.nio.*;
import java.util.*;
public class main {
public static void main(String[] args)
{
int cap = 5;
IntBuffer buffer = IntBuffer.allocate(cap);
buffer.put(1);
buffer.put(1);
System.out.println("Original IntBuffer: "
+ Arrays.toString(buffer.array()));
System.out.println("Position of the original IntBuffer: "
+ buffer.position());
IntBuffer newBuffer = buffer.slice();
System.out.println("Position of the new IntBuffer: "
+ newBuffer.position());
newBuffer.put(3);
System.out.println("New IntBuffer: "
+ Arrays.toString(newBuffer.array()));
}
}

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved