A 2-D array, or multi-dimensional array, is an array of arrays that represents data in rows and columns. A 2-D array can be declared and initialized in Java by specifying the number of rows and columns, with each element accessed using two indices for the row and column. Elements in a 2-D array must be of the same type, and the array can be initialized either during or after creation by assigning values to each element using its row and column indices.