0% found this document useful (0 votes)
3 views

Java 9 Quick Syntax Reference - Source Code

Uploaded by

khoviphetnhau
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Java 9 Quick Syntax Reference - Source Code

Uploaded by

khoviphetnhau
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 19

Java 9 Quick Syntax Reference - Source Code

*** Hello World ***

package myproject;
public class MyApp
{
public static void main(String[] args)
{
System.out.print("Hello World");
}
}

*** Compile and Run ***

// single-line comment

/* multi-line
comment */

/** javadoc
comment */

*** Variables ***

public class MyApp


{
public static void main(String[] args)
{
// Declaration
int myInt;

// Assignment
myInt = 10;

// Output
System.out.print(myInt); // "10"
}
}

public class MyApp


{
public static void main(String[] args)
{
byte myInt8 = 2; // -128 to +127
short myInt16 = 1; // -32768 to +32767
int myInt32 = 0; // -2^31 to +2^31-1
long myInt64 = -1; // -2^63 to +2^63-1

int myHex = 0xF; // hexadecimal (base 16)


int myOct = 07; // octal (base 8)
int myBin = 0b10; // binary (base 2)

int bigNumber = 10_000_000;

double myDouble = 3.14;


myDouble = 3e2; // 3*10^2 = 300

float myFloat = 3.14F;


myFloat = (float)3.14;

char myChar = 'A';


myChar = '\u0000'; // \u0000 to \uFFFF

boolean myBool = false;


}
}

// Anonymous block
public static void main(String[] args)
{
// Anonymous code block
{
int localVar = 10;
}
// localVar is unavailable from here
}

*** Operators ***

// Arithmetic operators
float f = 3+2; // 5 // addition
f = 3-2; // 1 // subtraction
f = 3*2; // 6 // multiplication
f = 3/2; // 1 // division
f = 3%2; // 1 // modulus (division remainder)

// Combined assignment operators


int i = 0;
i += 5; // i = i+5;
i -= 5; // i = i-5;
i *= 5; // i = i*5;
i /= 5; // i = i/5;
i %= 5; // i = i%5;

// Increment and decrement operators


++i; // i += 1
--i; // i -= 1

++i; // pre-increment
--i; // pre-decrement
i++; // post-increment
i--; // post-decrement

int j;
i = 5; j = i++; // j=5, i=6
i = 5; j = ++i; // j=6, i=6

// Comparison operators
boolean b = (2==3); // false // equal to
b = (2!=3); // true // not equal to
b = (2>3); // false // greater than
b = (2<3); // true // less than
b = (2>=3); // false // greater than or equal to
b = (2<=3); // true // less than or equal to

// Logical operators
b = (true && false); // false // logical and
b = (true || false); // true // logical or
b = !(true); // false // logical not

// Bitwise operators
i = 5 & 4; // 101 & 100 = 100 (4)
// and
i = 5 | 4; // 101 | 100 = 101 (5)
// or
i = 5 ^ 4; // 101 ^ 100 = 001 (1)
// xor
i = 4 << 1;// 100 << 1 =1000 (8)
// left shift
i = 4 >> 1;// 100 >> 1 = 10 (2)
// right shift
i = 4 >>>1;// 100 >>>1 = 10 (2)
// zero-fill
// right shift
i = ~4; // ~00000100 = 11111011 (-5) // invert

i=5; i &= 4; // 101 & 100 = 100 (4) // and


i=5; i |= 4; // 101 | 100 = 101 (5) // or
i=5; i ^= 4; // 101 ^ 100 = 001 (1) // xor
i=5; i <<= 1; // 101 << 1 =1010 (10)// left shift
i=5; i >>= 1; // 101 >> 1 = 10 (2) // right shift
i=5; i>>>= 1; // 101 >> 1 = 10 (2) // zero-fill
// right shift

*** String ***

String a = "Hello";
String b = new String(" World");

String c = a+b; // Hello World


a += b; // Hello World

// String compare
boolean x = a.equals(b); // compares string
boolean y = (a == b); // compares address
boolean z = "Hello".equals(a);

// StringBuffer class
StringBuffer sb = new StringBuffer("Hello");

sb.append(" World"); // add to end of string


sb.delete(0, 5); // remove 5 first characters
sb.insert(0, "Hello"); // insert string at beginning

String s = sb.toString();

*** Arrays ***

// Array declaration
int[] x;
int y[];

// Array allocation
int y[] = new int[3];

// Array assignment
y[0] = 1;
y[1] = 2;
y[2] = 3;

int[] x = new int[] {1,2,3};


int[] x = {1,2,3};

// Array access
System.out.print(x[0] + x[1] + x[2]); // "6"

// Multi-dimensional arrays
String[][] x = {{"00","01"},{"10","11"}};
String[][] y = new String[2][2];

y[0][0] = "00";
y[0][1] = "01";
y[1][0] = "10";
y[1][1] = "11";

System.out.print(x[0][0] + x[1][1]); // "0011"

int x[] = new int[3];


int size = x.length; // 3

// ArrayList class
java.util.ArrayList a = new java.util.ArrayList();

a.add("Hi"); // add an element


a.set(0, "Hello"); // change first element
a.remove(0); // remove first element

a.add("Hello World");
String s = (String)a.get(0); // Hello World

*** Conditionals ***

// If statement
if (x < 1) {
System.out.print(x + " < 1");
}
else if (x > 1) {
System.out.print(x + " > 1");
}
else {
System.out.print(x + " == 1");
}

if (x < 1)
System.out.print(x + " < 1");
else if (x > 1)
System.out.print(x + " > 1");
else
System.out.print(x + " == 1");

// Switch statement
switch (y)
{
case 0: System.out.print(y + " is 0"); break;
case 1: System.out.print(y + " is 1"); break;
default: System.out.print(y + " is something else");
}

String fruit = "apple";


switch (fruit)
{
case "apple": System.out.println("apple"); break;
default: System.out.println("not an apple"); break;
}

// Ternary operator (?:)


x = (x < 0.5) ? 0 : 1;

*** Loops ***

int i = 0;
while (i < 10) {
System.out.println(i++);
}

int i = 0;
do {
System.out.println(i++);
} while (i < 10);

for (int i = 0; i < 10; i++) {


System.out.println(i);
}

for (int k = 0, l = 10; k < 10; k++, l--) {


System.out.println(k + l);
}

for (int k = 0, l = 10; k < 10;) {


System.out.println(k + l); k++; l--;
}

int[] array = { 1,2,3 };


for (int element : array) { System.out.print(element); }

// Break and continue


myLoop: for (int i = 0, j = 0; i < 10; i++)
{
while (++j < 10)
{
break myLoop; // end for
continue myLoop; // start next for
}
}

// Labeled block
validation:
{
if(true)
break validation;
}

*** Methods ***

class MyApp
{
void myPrint()
{
System.out.print("Hello");
}

void myPrint(String s)
{
System.out.print(s);
}

public static void main(String[] args)


{
MyApp m = new MyApp();
m.myPrint(); // "Hello"
m.myPrint("Hello"); // "Hello"
}
}

String getPrint()
{
return "Hello";
}

public static void main(String[] args)


{
MyApp m = new MyApp();
System.out.print( m.getPrint() ); // "Hello"
}

void myPrint(String s)
{
// Abort if string is empty
if (s == "") { return; }

System.out.println(s);
}

// Passing arguments
public static void main(String[] args)
{
MyApp m = new MyApp();
int x = 0; // value data type
m.set(x); // value is passed
System.out.print(x); // "0"

int[] y = {0}; // reference data type


m.set(y); // address is passed
System.out.print(y[0]); // "10"
}

void set(int a) { a = 10; }


void set(int[] a) { a[0] = 10; }

*** Class ***

class MyRectangle
{
public int x = 10, y = 20;
public int getArea() { return x * y; }

public MyRectangle() { this(10,20); }


public MyRectangle(int a) { this(a,a); }

public MyRectangle(int x, int y)


{
this.x = x;
this.y = y;
}

class MyApp
{
public static void main(String[] args)
{
// Create an object of MyRectangle
MyRectangle r = new MyRectangle();
r.x = 10;
r.y = 5;
int z = r.getArea(); // 50 (5*10)
}
}

class MyApp
{
int x; // field is assigned default value 0

int dummy() {
int x; // local variable must be assigned if used
}
}

class MyApp
{
public static void main(String[] args)
{
MyApp a = new MyApp();

// Make object available for garbage collection


a = null;
}
}

*** Static ***

class MyCircle
{
float r = 10; // instance field
static float pi = 3.14F; // static/class field

// Instance method
float getArea() { return newArea(r); }

// Static/class method
static float newArea(float a) { return pi*a*a; }
}

class MyApp
{
public static void main(String[] args)
{
float f = MyCircle.pi;
MyCircle c = new MyCircle();
float g = c.r;
double pi = Math.PI;
}
}

// Static fields
class MyCircle
{
static void dummy() { count++; }
static int count = 0;
}

// Static initialization blocks


class MyClass
{
static int[] array = new int[5];

// Static initialization block


static
{
int i = 0;
for(int element : array)
element = i++;
}
}

// Instance initialization blocks


class MyClass
{
int[] array = new int[5];

// Initialization block
{
int i = 0;
for(int element : array) element = i++;
}
}

*** Inheritance ***

// Superclass (parent class)


class Fruit
{
public String flavor;
}

// Subclass (child class)


class Apple extends Fruit
{
public String variety;
}

class MyApp
{
public static void main(String[] args)
{
// Upcast and downcast
Apple a = new Apple();
Fruit f = a;
f.flavor = "Sweet";
Apple b = (Apple)f;
Apple c = (f instanceof Apple) ? (Apple)f : null;
}
}

*** Overriding ***

class Rectangle
{
public int w = 10, h = 10;

public int getArea() {


return w * h;
}

public static int newArea(int a, int b) {


return a * b;
}
}

class Triangle extends Rectangle


{
@Override public int getArea() {
return w * h / 2;
}

public static int newArea(int a, int b) {


return a * b / 2;
}
}

class MyApp
{
public static void main(String[] args)
{
Triangle o1 = new Triangle();
o1.getArea(); // (50) calls Triangle's version

Rectangle o2 = new Triangle();


o2.getArea(); // (50) calls Triangle's version

Triangle o3 = new Triangle();


o3.newArea(10,10); // (50) calls Triangle's version

Rectangle r = o3;
r.newArea(10,10); // (100) calls Rectangle's version
}
}

// Preventing method inheritance


public final int getArea() { return w * h; }

// Accessing overridden methods


class Triangle extends Rectangle
{
@Override public int getArea() {
return super.getArea() / 2;
}
}

// Calling parent constructor


public Triangle(int a, int b) { super(a,b); }
public Triangle() { super(); }

*** Packages and Import ***

package mypackage; // this file belongs to mypackage

// Import specific class


import mypackage.sub.MyClass;
// �
MyClass m;

// Import package
import java.util.*;

// Import static
import static java.lang.Math.*;
// �
double pi = PI; // Math.PI

*** Access Levels ***

package mypackage;
public class MyApp
{
public int myPublic; // unrestricted access
protected int myProtected;// package or subclass access
int myPackage; // package access
private int myPrivate; // class access

void test()
{
myPublic = 0; // allowed
myProtected = 0; // allowed
myPackage = 0; // allowed
myPrivate = 0; // allowed
}
}

class MyClass
{
void test(MyApp m)
{
m.myPublic = 0; // allowed
m.myProtected = 0; // allowed
m.myPackage = 0; // allowed
m.myPrivate = 0; // inaccessible
}
}

package newpackage;
import mypackage.MyApp;

class MyClass extends MyApp


{
void test()
{
myPublic = 0; // allowed
myProtected = 0; // allowed
myPackage = 0; // inaccessible
myPrivate = 0; // inaccessible
}
}

class MyClass
{
void test(MyApp m)
{
m.myPublic = 0; // allowed
m.myProtected = 0; // inaccessible
m.myPackage = 0; // inaccessible
m.myPrivate = 0; // inaccessible
}
}

// Accessible only from containing package


class PackagePrivateClass {}

// Accessible from any package


public class PublicClass {}

// Nested class access


class MyClass
{
// Only accessible within MyClass
private class PrivateNestedClass {}
}

*** Constants ***

class MyApp
{
public static void main(String[] args)
{
// Local constant
final double PI = 3.14;
}
}
// Constant fields
class MyClass
{
final double E;
static final double C;

public MyClass() { E = 2.72; }


static { C = 3e8; }
}

class MyClass
{
// Compile-time constant (static and known at compile-time)
final static double C = 3e8;

// Run-time constant (not static)


final double E = 2.72;

// Run-time constant (not known at compile-time)


final static int RND = (new
java.util.Random()).nextInt();
}

*** Interface ***

interface MyInterface
{
int myMethod(); // method signature

int c = 10; // constant

// Types
class Class {}
interface Interface {}
enum Enum {}
}

// Functionality interface
interface Comparable
{
int compare(Object o);
}

class Circle implements Comparable


{
public int r;

public int compare(Object o) {


return r - ( (Circle)o ).r;
}

public static Object largest(Comparable a, Comparable b)


{
return (a.compare(b) > 0) ? a : b;
}
}
// Class interface
interface MyInterface
{
void exposed();
}

class MyClass implements MyInterface


{
public void exposed() {}
public void hidden() {}
}

class MyApp
{
public static void main(String[] args)
{
MyInterface i = new MyClass();
}
}

interface MyInterface
{
default void defaultMethod() {
System.out.println("default");
}

static void staticMethod() {


System.out.println("static");
}

private static String getString() {


return "string";
}

default void printString() {


System.out.println(getString());
}
}

class MyClass implements MyInterface


{
public static void main(String[] args) {
MyInterface i = new MyClass();
i.defaultMethod(); // "default"

MyInterface.staticMethod(); // "static"
}
}

*** Abstract ***

abstract class Shape


{
public int x = 100, y = 100;
public abstract int getArea();
}
class Rectangle extends Shape
{
@Override public int getArea()
{
return x * y;
}
}

abstract class Shape


{
public int x = 100, y = 100;
public Shape(int a, int b) {
x = a;
y = b;
}
}

class Rectangle extends Shape


{
public Rectangle(int a, int b) {
super(a,b);
}
}

*** Enum ***

enum Speed
{
STOP, SLOW, NORMAL, FAST
}

enum Speed
{
STOP(0), SLOW(5), NORMAL(10), FAST(20);
public int speed;

Speed(int s) { speed = s; }
}

class MyApp
{
public static void main(String[] args)
{
Speed[] a = Speed.values();
Speed s = Speed.valueOf(a[0].toString()); // Speed.STOP
}
}

*** Exception Handling ***

import java.io.*;

class MyApp
{
public static void main(String[] args)
{
try
{
FileReader file = new FileReader("missing.file");
}
catch(FileNotFoundException e)
{
System.out.print(e.getMessage());
}
catch(Exception e)
{
System.out.print(e.getMessage());
}
}
}

// Finally block
import java.io.*;

class MyApp
{
public static void main(String[] args)
{
FileReader in = null;
try {
in = new FileReader("missing.file");
}
catch(FileNotFoundException e) {
System.out.print(e.getMessage());
}
finally {
if (in != null) {
try { in.close(); }
catch(IOException e) {}
}
}
}
}

class MyApp
{
public static void main(String[] args)
{
try(FileReader file = new FileReader("missing.txt")) {
// Read file
}
catch(FileNotFoundException e) {
// Handle exception
}

// Final resource
final FileReader file1 = new FileReader("file1.txt");

// Effectively final resource


FileReader file2 = new FileReader("file2.txt");

try(file1; file2) {
// Read files
}
catch(FileNotFoundException e) {
// Handle exception
}
}
}

// Throwing exceptions
static void MakeException() throws Throwable
{
throw new Throwable("My Throwable");
}

// Specifying exceptions
import java.io.*;

class MyApp
{
static void MakeException() throws IOException, ArithmeticException
{
// �
throw new IOException("My IO exception");
// �
throw new ArithmeticException("Division by zero");
}
}

*** Boxing and Unboxing ***

class MyApp
{
public static void main(String[] args)
{
int iPrimitive = 5;
Integer iWrapper = new Integer(iPrimitive); // boxing
iPrimitive = iWrapper.intValue(); // unboxing

Integer x = new Integer(1000);


Integer y = new Integer(1000);
boolean b = (x == y); // false
b = x.equals(y); // true

Integer iWrapper2 = iPrimitive; // autoboxing


iPrimitive = iWrapper2; // autounboxing

Integer iWrapper3 = Integer.valueOf(iPrimitive);


iPrimitive = iWrapper3.intValue();

java.util.ArrayList a = new java.util.ArrayList();


a.add(Integer.valueOf(5)); // boxing
a.add(10); // autoboxing
}
}

*** Generics ***

// Generic class
class MyBox<T> { public T box; }
class MyApp
{
public static void main(String[] args)
{
MyBox<Integer> iBox = new MyBox<Integer>();
MyBox<Integer> iBox2 = new MyBox<>();

iBox.box = 5;
Integer i = iBox.box;
}
}

// Generic methods
class MyClass
{
public static <T> void printArray(T[] array)
{
for (T element : array)
System.out.print(element + " ");
}
}

class MyApp
{
public static void main(String[] args)
{
Integer[] iArray = { 1, 2, 3 };
MyClass.printArray(iArray); // "1 2 3"
MyClass.<Integer>printArray(iArray); // "1 2 3"
}
}

// Generic functionality interface


interface IGenericCollection<T>
{
public void store(T t);
}

// Non-generic class implementing generic interface


class Box implements IGenericCollection<Integer>
{
public Integer myBox;
public void store(Integer i) { myBox = i; }
}

// Generic class implementing generic interface


class GenericBox<T> implements IGenericCollection<T>
{
public T myBox;
public void store(T t) { myBox = t; }
}

// Generic variable usages


class MyClass<T>
{
public void myMethod(Object o)
{
T t1; // allowed
t1 = null; // allowed
System.out.print(t1.toString()); // allowed
if (o instanceof T) {} // invalid
T t2 = new T(); // invalid
}
}

// Bounded type parameters


// T must be or inherit from superclass A
class B<T extends A> {}
class A {}

// T must be or implement interface I


class C<T extends I> {}
interface I {}

class D<T extends A & I> {}

class E<T extends A & I, U extends A & I> {}

class Fruit
{
public String name;
}

class FruitBox<T extends Fruit>


{
private T box;
public void FruitBox(T t) { box = t; }
public String getFruitName()
{
// Use of Fruit member allowed since T extends Fruit
return box.name;
}
}

// Generics and Object


import java.util.ArrayList;

class MyApp
{
public static void main(String[] args)
{
// Object ArrayList
ArrayList a = new ArrayList();
a.add("Hello World");
// �
Integer b = (Integer)a.get(0); // run-time error
}
}

import java.util.ArrayList;
class MyApp
{
public static void main(String[] args)
{
// Generic ArrayList (recommended)
ArrayList<String> a = new ArrayList<String>();
a.add("Hello World");
// �
Integer b = (Integer)a.get(0); // compile-time error
}
}

*** Lambda Expressions ***

interface Summable
{
public int combine(int a, int b);
}

public class MyApp


{
public static void main(String[] args) {
Summable s = (x, y) -> x + y;
s.combine(2, 3); // 5
}

import java.util.function.*;
public class MyApp
{
public static void main(String[] args) {
BinaryOperator<Integer> adder = (x, y) -> x + y;
adder.apply(2, 3); // 5

UnaryOperator<Integer> doubler = x -> x*2;


doubler.apply(2); // 4

static void starter(Runnable s) { s.run(); }

public static void main(String[] args) {


Runnable r = () -> System.out.println("Hello");
starter(r); // "Hello"
}
}
}

You might also like