Saturday, October 13, 2012

Java Identifiers, Keywords, Types and Operators

Identifiers - names that are given by the programmers as name of variables, methods or functions, classes etc. The name used as identifier must follow the following rules in Java technology:
  • Each character is either a digit, letter, underscore or currency symbol
  • First character cannot be a digit
  • The identifier name must not be a reserved word
  • Are case sensitive and has no maximum length
Examples:
      identifier
      userName
      user_name
      _sys_varl
     $change

Keywords

The following is a list of the keywords in Java, along with brief descriptions of their functions:

abstract
    The abstract keyword is used to declare a class or method to be abstract. An abstract method has no implementation; all classes containing abstract methods must themselves be abstract, although not all abstract classes have abstract methods. Objects of a class which is abstract cannot be instantiated, but can be extended by other classes. All subclasses of an abstract class must either provide implementations for all abstract methods, or must also be abstract.

assert
    The assert keyword, which was added in J2SE 1.4, is used to make an assertion—a statement which the programmer believes is always true at that point in the program. If assertions are enabled when the program is run and it turns out that an assertion is false, an AssertionError is thrown and the program terminates. This keyword is intended to aid in debugging.

boolean
    The boolean keyword is used to declare a field that can store a boolean value; that is, either true or false. This keyword is also used to declare that a method returns a value of type boolean[.

break
    Used to resume program execution at the statement immediately following the current enclosing block or statement. If followed by a label, the program resumes execution at the statement immediately following the enclosing labeled statement or block.

byte
    The byte keyword is used to declare a field that can store an 8-bit signed two's complement integer.This keyword is also used to declare that a method returns a value of type byte.

case
    The case keyword is used to create individual cases in a switch statement; see switch[.

catch
    Defines an exception handler—a group of statements that are executed if an exception is thrown in the block defined by a preceding try keyword. The code is executed only if the class of the thrown exception is assignment compatible with the exception class declared by the catch clause.

char
    The char keyword is used to declare a field that can store a 16-bit Unicode character. This keyword is also used to declare that a method returns a value of type char.

class
    A type that defines the implementation of a particular kind of object. A class definition defines instance and class fields, methods, and inner classes as well as specifying the interfaces the class implements and the immediate superclass of the class. If the superclass is not explicitly specified, the superclass is implicitly Object.

const
    Although reserved as a keyword in Java, const is not used and has no function. For defining constants in java, see the 'final' reserved word.

continue
    Used to resume program execution at the end of the current loop body. If followed by a label, continue resumes execution at the end of the enclosing labeled loop body.

default
    The default can optionally be used in a switch statement to label a block of statements to be executed if no case matches the specified value; see switch.

do
    The do keyword is used in conjunction with while to create a do-while loop, which executes a block of statements associated with the loop and then tests a boolean expression associated with the while. If the expression evaluates to true, the block is executed again; this continues until the expression evaluates to false.

double
    The double keyword is used to declare a field that can hold a 64-bit double precision IEEE 754 floating-point number. This keyword is also used to declare that a method returns a value of type double.

else
    The else keyword is used in conjunction with if to create an if-else statement, which tests a boolean expression; if the expression evaluates to true, the block of statements associated with the if are evaluated; if it evaluates to false, the block of statements associated with the else are evaluated.

enum (as of J2SE 5.0)
    A Java keyword used to declare an enumerated type. Enumerations extend the base class Enum.

extends
    Used in a class declaration to specify the superclass; used in an interface declaration to specify one or more superinterfaces. Class X extends class Y to add functionality, either by adding fields or methods to class Y, or by overriding methods of class Y. An interface Z extends one or more interfaces by adding methods. Class X is said to be a subclass of class Y; Interface Z is said to be a subinterface of the interfaces it extends.
    Also used to specify an upper bound on a type parameter in Generics.

final
    Define an entity once that cannot be changed nor derived from later. More specifically: a final class cannot be subclassed, a final method cannot be overridden, and a final variable can occur at most once as a left-hand expression. All methods in a final class are implicitly final.

finally
    Used to define a block of statements for a block defined previously by the try keyword. The finally block is executed after execution exits the try block and any associated catch clauses regardless of whether an exception was thrown or caught, or execution left method in the middle of the try or catch blocks using the return keyword.

float
    The float keyword is used to declare a field that can hold a 32-bit single precision IEEE 754 floating-point number.This keyword is also used to declare that a method returns a value of type float.

for
    The for keyword is used to create a for loop, which specifies a variable initialization, a boolean expression, and an incrementation. The variable initialization is performed first, and then the boolean expression is evaluated. If the expression evaluates to true, the block of statements associated with the loop are executed, and then the incrementation is performed. The boolean expression is then evaluated again; this continues until the expression evaluates to false.

    As of J2SE 5.0, the for keyword can also be used to create a so-called "enhanced for loop", which specifies an array or Iterable object; each iteration of the loop executes the associated block of statements using a different element in the array or Iterable.

goto
    Although reserved as a keyword in Java, goto is not used and has no function.

if
    The if keyword is used to create an if statement, which tests a boolean expression; if the expression evaluates to true, the block of statements associated with the if statement is executed. This keyword can also be used to create an if-else statement;.

implements
    Included in a class declaration to specify one or more interfaces that are implemented by the current class. A class inherits the types and abstract methods declared by the interfaces.

import
    Used at the beginning of a source file to specify classes or entire Java packages to be referred to later without including their package names in the reference. Since J2SE 5.0, import statements can import static members of a class.

instanceof
    A binary operator that takes an object reference as its first operand and a class or interface as its second operand and produces a boolean result. The instanceof operator evaluates to true if and only if the runtime type of the object is assignment compatible with the class or interface.

int
    The int keyword is used to declare a field that can hold a 32-bit signed two's complement integer. This keyword is also used to declare that a method returns a value of type int.

interface
    Used to declare a special type of class that only contains abstract methods, constant (static final) fields and static interfaces. It can later be implemented by classes that declare the interface with the implements keyword.

long
    The long keyword is used to declare a field that can hold a 64-bit signed two's complement integer. This keyword is also used to declare that a method returns a value of type long.

native
    Used in method declarations to specify that the method is not implemented in the same Java source file, but rather in another language.

new
    Used to create an instance of a class or array/an object.

package
    A group of types. Packages are declared with the package keyword.

private
    The private keyword is used in the declaration of a method, field, or inner class; private members can only be accessed by other members of their own class.

protected
    The protected keyword is used in the declaration of a method, field, or inner class; protected members can only be accessed by members of their own class, that class's subclasses or classes from the same package.

public
    The public keyword is used in the declaration of a class, method, or field; public classes, methods, and fields can be accessed by the members of any class.

return
    Used to finish the execution of a method. It can be followed by a value required by the method definition that is returned to the caller.

short
    The short keyword is used to declare a field that can hold a 16-bit signed two's complement integer. This keyword is also used to declare that a method returns a value of type short.

static
    Used to declare a field, method, or inner class as a class field. Classes maintain one copy of class fields regardless of how many instances exist of that class. static also is used to define a method as a class method. Class methods are bound to the class instead of to a specific instance, and can only operate on class fields. (Classes and interfaces declared as static members of another class or interface are actually top-level classes and are not inner classes.)

strictfp (as of J2SE 1.2)
    A Java keyword used to restrict the precision and rounding of floating point calculations to ensure portability.

super
    Used to access members of a class inherited by the class in which it appears. Allows a subclass to access overridden methods and hidden members of its superclass. The super keyword is also used to forward a call from a constructor to a constructor in the superclass.
    Also used to specify a lower bound on a type parameter in Generics.

switch
    The switch keyword is used in conjunction with case and default to create a switch statement, which evaluates a variable, matches its value to a specific case, and executes the block of statements associated with that case. If no case matches the value, the optional block labelled by default is executed, if included.

synchronized
    Used in the declaration of a method or code block to acquire the mutex lock for an object while the current thread executes the code. For static methods, the object locked is the class' Class. Guarantees that at most one thread at a time operating on the same object executes that code. The mutex lock is automatically released when execution exits the synchronized code. Fields, classes and interfaces cannot be declared as synchronized.

this
    Used to represent an instance of the class in which it appears. this can be used to access class members and as a reference to the current instance. The this keyword is also used to forward a call from one constructor in a class to another constructor in the same class.

throw
    Causes the declared exception instance to be thrown. This causes execution to continue with the first enclosing exception handler declared by the catch keyword to handle an assignment compatible exception type. If no such exception handler is found in the current method, then the method returns and the process is repeated in the calling method. If no exception handler is found in any method call on the stack, then the exception is passed to the thread's uncaught exception handler.

throws
    Used in method declarations to specify which exceptions are not handled within the method but rather passed to the next higher level of the program. All uncaught exceptions in a method that are not instances of RuntimeException must be declared using the throws keyword.

transient
    Declares that an instance field is not part of the default serialized form of an object. When an object is serialized, only the values of its non-transient instance fields are included in the default serial representation. When an object is deserialized, transient fields are initialized only to their default value. If the default form is not used, e.g. when a serialPersistentFields table is declared in the class hierarchy, all transient keywords are ignored.

try
    Defines a block of statements that have exception handling. If an exception is thrown inside the try block, an optional catch block can handle declared exception types. Also, an optional finally block can be declared that will be executed when execution exits the try block and catch clauses, regardless of whether an exception is thrown or not. A try block must have at least one catch clause or a finally block.

void
    The void keyword is used to declare that a method does not return any value.

volatile
    Used in field declarations to specify that the variable is modified asynchronously by concurrently running threads. Methods, classes and interfaces thus cannot be declared volatile.

while
    The while keyword is used to create a while loop, which tests a boolean expression and executes the block of statements associated with the loop if the expression evaluates to true; this continues until the expression evaluates to false. This keyword can also be used to create a do-while loop;. 

Data Types - java programming supports 8 primitive data types.
  • byte: The byte data type is an 8-bit signed two's complement integer. It has a minimum value of -128 and a maximum value of 127 (inclusive). The byte data type can be useful for saving memory in large arrays, where the memory savings actually matters. They can also be used in place of int where their limits help to clarify your code; the fact that a variable's range is limited can serve as a form of documentation.
  • short: The short data type is a 16-bit signed two's complement integer. It has a minimum value of -32,768 and a maximum value of 32,767 (inclusive). As with byte, the same guidelines apply: you can use a short to save memory in large arrays, in situations where the memory savings actually matters.
  • int: The int data type is a 32-bit signed two's complement integer. It has a minimum value of -2,147,483,648 and a maximum value of 2,147,483,647 (inclusive). For integral values, this data type is generally the default choice unless there is a reason (like the above) to choose something else. This data type will most likely be large enough for the numbers your program will use, but if you need a wider range of values, use long instead.
  • long: The long data type is a 64-bit signed two's complement integer. It has a minimum value of -9,223,372,036,854,775,808 and a maximum value of 9,223,372,036,854,775,807 (inclusive). Use this data type when you need a range of values wider than those provided by int.
  • float: The float data type is a single-precision 32-bit IEEE 754 floating point. Its range of values is beyond the scope of this discussion, but is specified in the Floating-Point Types, Formats, and Values section of the Java Language Specification. As with the recommendations for byte and short, use a float (instead of double) if you need to save memory in large arrays of floating point numbers. This data type should never be used for precise values, such as currency. For that, you will need to use the java.math.BigDecimal class instead. Numbers and Strings covers BigDecimal and other useful classes provided by the Java platform.
  • double: The double data type is a double-precision 64-bit IEEE 754 floating point. Its range of values is beyond the scope of this discussion, but is specified in the Floating-Point Types, Formats, and Values section of the Java Language Specification. For decimal values, this data type is generally the default choice. As mentioned above, this data type should never be used for precise values, such as currency.
  • boolean: The boolean data type has only two possible values: true and false. Use this data type for simple flags that track true/false conditions. This data type represents one bit of information, but its "size" isn't something that's precisely defined.
  • char: The char data type is a single 16-bit Unicode character. It has a minimum value of '\u0000' (or 0) and a maximum value of '\uffff' (or 65,535 inclusive).

Operators
Operator Precedence
Operators Precedence
postfix expr++ expr--
unary ++expr --expr +expr -expr ~ !
multiplicative * / %
additive + -
shift << >> >>>
relational < > <= >= instanceof
equality == !=
bitwise AND &
bitwise exclusive OR ^
bitwise inclusive OR |
logical AND &&
logical OR ||
ternary ? :
assignment = += -= *= /= %= &= ^= |= <<= >>= >>>=

Java Input / Output

In the first program we had experience to show an output using "System.out.println()". You can also use "System.out.print()". The only difference is just .print will print your output continously while .println will print your output on the next line.

Now, we will be doing a program that will accept input. With this we can use the java packages,
  1. java.io.BufferedReader
  2. java.io.InputStreamReader
  3. java.util.Scanner

Let us use first java.io.BufferedReader and java.io.InputStreamReader
Just create new java application, then write this code.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bufferedreader;

/**
 *
 * @author Giovanni
 */
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class BUfferedReader {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws Exception {
        // TODO code application logic here
        System.out.print("Enter your name: ");
        InputStreamReader reader = new InputStreamReader(System.in);
        BufferedReader in = new BufferedReader(reader);
        String name = in.readLine();
        System.out.println("Hello, " + name + ". Enter three ints...");
        int[] values = new int[3];
        double sum = 0.0;
        for (int i = 0; i < values.length; i++) {
        System.out.print("Number " + (i + 1) + ": ");
        String temp = in.readLine();
        values[i] = Integer.parseInt(temp);
        sum += values[i];
        }
        System.out.println("The average equals " + sum / values.length);
    }
}


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bufferedreadercont;

/**
 *
 * @author Giovanni
 */
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class BUfferedReaderCont {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        BufferedReader br = null;
        try {
            InputStreamReader inp = new InputStreamReader(System.in);
            br = new BufferedReader(inp);
            char ans;
            do {
                System.out.println("Enter Roll number : ");
                int rno = Integer.parseInt(br.readLine());

                System.out.println("Enter name: ");
                String name = br.readLine();

                System.out.println("Continue y/n: ");
                ans = (char) br.read();
                br.readLine();
            } while (ans == 'y');
        } finally {
            if (br != null) {
                br.close();
            }
        }

    }
}


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package readconsole;

/**
 *
 * @author Giovanni
 */
import java.util.Scanner; 

public class ReadConsole {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner scanner = new Scanner(System.in); 
 
        System.out.print("Enter your full name: "); 
        String name = scanner.nextLine(); 
         
        System.out.print("Enter your Zodiac sign: "); 
        String zodiac = scanner.next(); 
         
        System.out.print("Enter your weight (kg): "); 
        double weight = scanner.nextDouble(); 
         
        System.out.print("Enter your lucky number: "); 
        int luckyNum = scanner.nextInt(); 
         
        System.out.println("Hello, " + name + "."); 
        System.out.println("Your lucky number is  " + luckyNum + "."); 
        System.out.println("You weigh " + weight + " kg."); 
        System.out.println("Your Zodiac sign is " + zodiac + ".");
    }
}


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package parsestring;

/**
 *
 * @author Giovanni
 */
import java.util.Scanner;

public class ParseString {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner scanner = new Scanner("1 2 3 4 5 6 7 8 9 10"); 
 
        while (scanner.hasNextInt()) { 
            int num = scanner.nextInt(); 
             
            if (num % 2 == 0) 
                System.out.println(num); 
        } 
    }
}


/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package parsestring;

/**
 *
 * @author Giovanni
 */
import java.util.Scanner;

public class ParseString {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner scanner =  new Scanner("1, 2, 3, 4, 5, 6, 7, 8, 9, 10").useDelimiter(", "); 
 
        while (scanner.hasNextInt()) { 
            int num = scanner.nextInt(); 
             
            if (num % 2 == 0) 
                System.out.println(num); 
        }
    }
}



First Program

When we completed installed JDK and IDE, we can now start do our first program which "Hello Giovanni".
Just below below steps;
  1. Start netbeans IDE, >>Start>>All Programs>>Netbeans>>Netbeans version
  2. Go to File Menu>>New Project>> Choose Java in Categories >> Java Application in Projects >> Click Next >> Just enter any Project Name, let say "HelloGiovanni" >> the click Finish
  3. In the main window, you can see HelloGiovanni.java, and the codes are also there. Now, we will show the word "Hello Giovanni Ricohermoso".
  4. After the line "// TODO code application logic here", just write this code. "System.out.println("Hello Giovanni Ricohermoso");
  5. Then we will run the program, just go to the left part of the IDE, you can see the Projects, just right click HelloGiovanni, then select run.
  6. Output Window will show and "Hello Giovanni Ricohermoso" also appear.
  7. Congratulations!! 
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package HelloGiovanni;

/**
*
* @author Giovanni
*/
public class HelloGiovanni{

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
System.out.println("Hello Giovanni Ricohermoso");
}
}

Getting Started

Getting started with Java Java Development Kit - you may visit http://www.sun.java.com/ to download. Integrated Development Environment - I would recommend Netbeans. To download visit http://www.netbeans.org

What Java Virtual Machine is?

A Java virtual machine is a program which executes certain other programs, namely those containing Java bytecode instructions. JVMs are most often implemented to run on an existing operating system, but can also be implemented to run directly on hardware. A JVM provides an environment in which Java bytecode can be executed, enabling such features as automated exception handling, which provides root-cause debugging information for every software error (exception), independent of the source code. A JVM is distributed along with a set of standard class libraries that implement the Java application programming interface (API). These libraries, bundled together with the JVM, form the Java Runtime Environment (JRE). JVMs are available for many hardware and software platforms. The use of the same bytecode for all JVMs on all platforms allows Java to be described as a write once, run anywhere programming language, versus write once, compile anywhere, which describes cross-platform compiled languages. Thus, the JVM is a crucial component of the Java platform. Java bytecode is an intermediate language which is typically compiled from Java, but it can also be compiled from other programming languages. For example, Ada source code can be compiled to Java bytecode and executed on a JVM. Oracle, the owner of Java, produces a JVM, but JVMs using the Java trademark may be developed by other companies as long as they adhere to the JVM specification published by Oracle and to related contractual obligations. The Oracle JVM, named HotSpot, is written in the C++ language.

Java Versions

This is very important what is the latest version of Java. 1. JDK 1.0 (October 1, 1992) 2. JDK 1.1 (February 19, 1997) 3. J2SE 1.2 (December 8, 1998) 4. J2SE 1.3 (May 8, 2000) 5. J2SE 1.4 (February 6, 2002) 6. J2SE 5.0 (September 30, 2004) 7. Java SE 6 (December 11, 2006) 8. Java SE 7 (July 28, 2011)

What is Java?

I will be sharing my reference to everybody. We will start by knowing what Java Programming is and how are we going to start learning this language. First let us know what is Java? 1. JAVA is a Programming language which was developed at Sun Microsystems(now merged in Oracle Corporation) in 1991 lead by James Gosling. 2. JAVA is a general programming language meaning we can use this to make web app, desktop applications or some wireless devices such as mobile phones. 3. JAVA is dynamic and evolving language. 4. JAVA is also defined as simple, object-oriented, network-savvy, interpreted, robust, secure, architecture-neutral, portable, high performance, multithreaded, dynamic language. You may check this link for more information about Java.