Here is an implementation of the insertion sort algorithm in Java:
```
public class InsertionSort {
public static void insertionSort(int[] arr) {
for (int i = 1; i < arr.length; i++) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
}
public static void main(String[] args) {
int[] arr = { 5, 2, 7, 3, 9, 1 };
insertionSort(arr);
System.out.println(Arrays.toString(arr));
}
}
```
In this implementation, we have a `insertionSort` method that takes an integer array as input and sorts it in ascending order using the insertion sort algorithm.
The algorithm works by iterating over each element of the array, starting with the second element. For each element, we compare it with the elements to its left (in decreasing order) until we find the correct position for the current element. We shift all the elements to the right of this position one position to the right and insert the current element at the correct position.
In the `main` method, we create an integer array, call the `insertionSort` method on it, and print the sorted array to the console.