static void do(int[] doArgs) { .... } static void caller() { int[] doArgs = { 1, 2 }; int[] doArgs = new int[]{ 1, 2 }; do(doArgs); do(new int[]{ 1, 2 }); do({ 1, 2 }); // not good } byte -> char | short -> int -> long -> float -> double boolean Animals.WOOF class C { static void f() { ... } static int field; } class D { void g() { C inst = new C(); inst.f(); // not encouraged int i = inst.field; // not encouraged C.f(); // better C.field(); // better } }