new to java please explain what this code does line by line
import java.util.Scanner;
public class Main {
public static void main(String args) {
Scanner scnr = new Scanner(System.in);
int numItems;
int currItem;
int i;
// Get items
numItems = scnr.nextInt();
int[] listItems = new int[numItems];
for (i = 0; i < numItems; ++i) {
currItem = scnr.nextInt();
listItems[i] = currItem;
}
if(numItems>0) {
int max = listItems[0];
for (i = 1; i < numItems; i++) {
if(max < listItems[i]){
max = listItems[i];
}
}
System.out.println(max);
}
}
}