In Java there are four types of variables. 

They are: local variables (they need to be initialized by the programmer) 
          parameters (initialized when the method is invoked)
          static variables (initialized by default)
          non-static (instance) variables (initialized by default)

As far as types of values: primitive types (int, char, boolean, double) 
                           user-defined (reference) types 

int[] a; // declares an array variable

a = new int[23]; // initializes a and allocates space for the array
// the elements of the array are initialized by default
// an array is really an object, a value of reference type 
// the new operator creates instances, or objects.

String b = new String("whatever"); // same as String b = "whatever"; 

import java.util.*; 

public class Conversation {
  public static void main(String[] args) {
    int[] numbers = new int[0]; 
    Scanner in = new Scanner(System.in); 
    System.out.print("Type: "); 
    String line = in.nextLine(); 
    int count = 0, sum = 0, max, min, average; 
    while (! line.equals("bye")) {
      int number = Integer.parseInt(line); 
      numbers = Arrays.copyOf(numbers, numbers.length + 1);
      numbers[numbers.length-1] = number; 
      System.out.println(Arrays.toString(numbers));
      Arrays.sort(numbers);    
      System.out.println(Arrays.toString(numbers));
      count += 1;
      sum += number; 
      average = (double) sum / count; 
      if (count == 1) {
        max = number; 
        min = number; 
      } else {
        if (max < number) max = number; 
        if (min > number) min = number; 
      }  
      System.out.print("Type: "); 
      line = in.nextLine(); 
    } 
    // calculate average here
    System.out.println( max + ", " + min + ", " + average + ", " + sum + ", " + count); 
  } 
}

int[] a;

a = new int[12];

String[] b;

b = new String[6];

ArrayList<String> c; 

c = new ArrayList<String>(); 

c.add("Laura"); 

c.add("Larry"); 

c.add("Alex"); 

System.out.println( c ); 

System.out.println( c.size() )

ArrayList is a class defined in java.util so you need to import it. 

Welcome to DrJava.  Working directory is C:\Users\dgerman
> ArrayList<String> c;
Static Error: Undefined class 'ArrayList'
> import java.util.*;
> ArrayList<String> c;
> c
null
> c = new ArrayList<String>();
> c
[]
> c.add("Laura")
true
> c
[Laura]
> c.size()
1
> c.add("Alex")
true
> c
[Laura, Alex]
> c.add("Tom")
true
> c.add("Larry")
true
> c
[Laura, Alex, Tom, Larry]
> c.size()
4
> ArrayList<int> d;
Static Error: Type has incompatible bounds
> ArrayList<Integer> d;
> d
null
> d = new ArrayList<Integer>();
> d
[]
> d.add(3)
true
> d
[3]
> d.add(4)
true
> d.add(-1)
true
> d
[3, 4, -1]
> String[][] m;
> int size = 13;
> m = new String[size][size];
> m
{ { null, null, null, null, null, null, null, null, null, null, null, null, null }, { null, null, null, null, null, null, null, null, null, null, null, null, null }, { null, null, null, null, null, null, null, null, null, null, null, null, null }, { null, null, null, null, null, null, null, null, null, null, null, null, null }, { null, null, null, null, null, null, null, null, null, null, null, null, null }, { null, null, null, null, null, null, null, null, null, null, null, null, null }, { null, null, null, null, null, null, null, null, null, null, null, null, null }, { null, null, null, null, null, null, null, null, null, null, null, null, null }, { null, null, null, null, null, null, null, null, null, null, null, null, null }, { null, null, null, null, null, null, null, null, null, null, null, null, null }, { null, null, null, null, null, null, null, null, null, null, null, null, null }, { null, null, null, null, null, null, null, null, null, null, null, null, null }, { null, null, null, null, null, null, null, null, null, null, null, null, null } }
> for (String[] row : m)
    System.out.println( row );
[Ljava.lang.String;@e6615f
[Ljava.lang.String;@102d6b3
[Ljava.lang.String;@15d8350
[Ljava.lang.String;@58117b
[Ljava.lang.String;@1e3b4e1
[Ljava.lang.String;@7828f3
[Ljava.lang.String;@c8a95c
[Ljava.lang.String;@1e6f216
[Ljava.lang.String;@11fb491
[Ljava.lang.String;@879c2a
[Ljava.lang.String;@11dae99
[Ljava.lang.String;@1b1df2e
[Ljava.lang.String;@b3608c
> for (String[] row : m)
    System.out.println( Arrays.toString( row ));
[null, null, null, null, null, null, null, null, null, null, null, null, null]
[null, null, null, null, null, null, null, null, null, null, null, null, null]
[null, null, null, null, null, null, null, null, null, null, null, null, null]
[null, null, null, null, null, null, null, null, null, null, null, null, null]
[null, null, null, null, null, null, null, null, null, null, null, null, null]
[null, null, null, null, null, null, null, null, null, null, null, null, null]
[null, null, null, null, null, null, null, null, null, null, null, null, null]
[null, null, null, null, null, null, null, null, null, null, null, null, null]
[null, null, null, null, null, null, null, null, null, null, null, null, null]
[null, null, null, null, null, null, null, null, null, null, null, null, null]
[null, null, null, null, null, null, null, null, null, null, null, null, null]
[null, null, null, null, null, null, null, null, null, null, null, null, null]
[null, null, null, null, null, null, null, null, null, null, null, null, null]
> for (int i = 0; i < m.length; i++)
    for (int j = 0; j < m[i].length; j++)
      if (i+j == size/2 || i+j==3 * size/2 || i-j == -size/2 || i-j == size/2 || i==j && i > size/2) m[i][j] = "*";
> for (int i = 0; i < m.length; i++)
    for (int j = 0; j < m[i].length; j++)
      if (i+j == size/2 || i+j==3 * size/2 || i-j == -size/2 || i-j == size/2 || i==j && i > size/2) m[i][j] = "*"; else m[i][j] = " ";
> for (String[] row : m)
    System.out.println( Arrays.toString( row ));
[ ,  ,  ,  ,  ,  , *,  ,  ,  ,  ,  ,  ]
[ ,  ,  ,  ,  , *,  , *,  ,  ,  ,  ,  ]
[ ,  ,  ,  , *,  ,  ,  , *,  ,  ,  ,  ]
[ ,  ,  , *,  ,  ,  ,  ,  , *,  ,  ,  ]
[ ,  , *,  ,  ,  ,  ,  ,  ,  , *,  ,  ]
[ , *,  ,  ,  ,  ,  ,  ,  ,  ,  , *,  ]
[*,  ,  ,  ,  ,  ,  ,  ,  ,  ,  ,  , *]
[ , *,  ,  ,  ,  ,  , *,  ,  ,  ,  , *]
[ ,  , *,  ,  ,  ,  ,  , *,  ,  , *,  ]
[ ,  ,  , *,  ,  ,  ,  ,  , *, *,  ,  ]
[ ,  ,  ,  , *,  ,  ,  ,  , *, *,  ,  ]
[ ,  ,  ,  ,  , *,  ,  , *,  ,  , *,  ]
[ ,  ,  ,  ,  ,  , *, *,  ,  ,  ,  , *]
> ArrayList<ArrayList<Integer>> u;
> u
null
> u = new ArrayList<ArrayList<Integer>>();
> u
[]
> u.add(new ArrayList<Integer>());
> u
[[]]
> u.add(new ArrayList<Integer>());
> u.add(new ArrayList<Integer>());
> u
[[], [], []]
>