do you mean when you have seen them in buffered image rendering techniques? well then they are simply a grouping of memory , in detail the array object is the just the first position in the arrays memory location , java of course handles all of this internally but its good knowledge , the type then defines how much memory each subscript takes up , if its an integer its usually 4 bytes , character arrays will use 1 byte per subscript , so if I use arrayname[0] im accessing memory location 0 or arrayname.pointerposition + (0 * numofbytes) , if I said int arrayname[2] and the location in memory that arrayname pointed to was 0,for simplicity, then the byte grouping I would access would be at location 8.
Of course that is in heavy detail , simply put an array is a method of grouping similar data types together , it is a simple and efficient method of programming that is generally coupled with iteration. There are a lot of useful functions surrounding arrays but the most important things about an array are its type , its size and the size of the data type itself , if you have an array of integers so int[] myintslolamazedoge = new int[25]; then you can iterate through it a lot more quickly than say myhuge4kilobyteclass[] omgsuchsize = new myhuge4kilobyteclass[25];. The size of the data does count , if you are putting something into an array ensure that 1, you wont exceed the amount of memory you have available and that you dont go out of bounds.
for iteration use myarray.length , this will return the maximum number of elements the array can contain. So to use this in iteration you would do for(int i = 0; i < myarray.length;i++), use < because i starts at 0 not 1.
2 dimensional arrays are incredibly useful , in java they are so simple to use , unlike in python , c or c++ , they are not accessed as if they were an array of an array , they are more like a chart , a really really big chart , with x along the top and y along the bottom
0,1,2,3,4,5,6,7,8
1,H,I, ,T,H,E,R,E
2 , , , , , , ,
3 , , , , , , ,
4 , , , , , , ,
5 , , , , , , ,
to define one you simply do int[][] my2darry = new int[25][25]; , 3d if you wish int[][][] my3darray = new int[25][25][25];
to access is just as simple, my2darray[0,5] = 2343; my3darray[5,6,1] = (int)“A”;
However , they do have a drawback , they require more time to process this is because the processor cannot simply look in the next location in memory but actually has to look into the location into memory which points to another location in memory , taking up twice as many processor cycles. So be careful and use them when you deem it necessary and performance is not an issue.
Good examples of times to use an array would be in a map , often people may use a hashmap however for smaller maps and for simpler maps its easy to just go Tile[][] map = new Tile[100][100]; , you can also use them for taking apart strings , this is what the string.split() function returns , for instance (hah) , String[] mysplitstring = “ladedadedum”.split(“a”);,where “a” is the regex.
Another use for arrays is storing incredulously large numbers or extremely accurate decimal division , maybe not something you might come into unless you do banking but it can be used.
To be honest though , there are a lot of similar uses for arrays , most of them funnily enough include storing similar data together , its easier to store each persons school record together than have a new object for each one , schoolrecord[] records = new schoolrecord[10]; or schoolrecord a; schoolrecord b; schoolrecord c; etc. I would however get used to them , they are definitely not going anywhere any time soon and make your life a hell of a lot easier, another good example probably a bit closer to home would be storing each vertex of an object you are about to render or are currently performing collision checking on.
Hope that was helpful.