Yes, just as for 1D arrays.
If you want a collection of a variety of types, you probably want to use a class to contain them, not an array.
 int 
The following program creates a 2D array of int that implements
the gradeTable example.
Details about declaring and constructing 2D arrays will
be explained later.
| Row | Col | ||||
|---|---|---|---|---|---|
| 0 | 1 | 2 | 3 | 4 | |
| 0 | 99 | 42 | 74 | 83 | 100 | 
| 1 | 90 | 91 | 72 | 88 | 95 | 
| 2 | 88 | 61 | 74 | 89 | 96 | 
| 3 | 61 | 89 | 82 | 98 | 93 | 
| 4 | 93 | 73 | 75 | 78 | 99 | 
| 5 | 50 | 65 | 92 | 87 | 94 | 
| 6 | 43 | 98 | 78 | 56 | 99 | 
class gradeExample
{
  public static void main( String[] arg )
  {
    // declare and construct a 2D array
    int[][] gradeTable = 
        {  {99, 42, 74, 83, 100}, 
           {90, 91, 72, 88, 95},
           {88, 61, 74, 89, 96},
           {61, 89, 82, 98, 93},
           {93, 73, 75, 78, 99},
           {50, 65, 92, 87, 94},
           {43, 98, 78, 56, 99}  };
    System.out.println("grade 0,0: " + gradeTable[0][0]);
    System.out.println("grade 2,4: " + gradeTable[2][4]);
    gradeTable[5][3] = 99 ;
    int sum = gradeTable[0][1] + gradeTable[0][2] ;
    System.out.println( "sum: " + sum );
  }
}
The declaration of gradeTable uses an
initializer list as a short-cut way to create a 2D array
object and place values into it.
The list contains 7 rows each separated by a comma; 
each row is a list of values.