Java Oriented: Object Orientation involves creation of

                                                   Java was developed by James Gosling in 1991.It was designed to recover from the limitations of C and C++.Java enhanced and redefined the object oriented paradigm used by C++,it is a programmer’s language which is cohesive and logically consistent.The Java programming language can be categorized by:-1)Simple:Java is easy for the programmers to learn and use effectively since it inherits C/C++ syntax.2)Object Oriented: Object Orientation involves creation of classes,creating objects from those classes and creating applications.It follows OOP’s concepts.3)Platform Independent:Java is portable across multiple platforms.The applications will run without any modifications on multiple operating systems.4)Robust and Secure:To gain reliability,java helps us to find errors early in program development.It is designed to operate in distributed environments,lets the applications that can’t be conquered from outside world.5)Architecture Neutral and Portable:For code longevity and portability,Bytecodes are generated by the java compiler through which it can run on any platform.The architecture neutral and portable language environment of java is known as Java Virtual Machine(JVM).6)Performance:The automatic garbage collector runs as low priority background thread ensuring a high portability that memory is available when required,leading to better performance.7)Interpreted,Threaded and Dynamic:Java enables the creation of bytecode which can be executed on any system that implements the java virtual machine.Java supports multithreaded programming that allows us to write programs that do many things simultaneously.Java programs have run-time type information that is used to verify and resolve accesses to objects at run-time.JAVA BASE SYSTEM:-The java system includes a number of libraries which are as follows:-?java.lang:It is automatically imported into all programs.It includes threads,exceptions,wrappers for primitive data types and classes(Boolean,Double,Float,Enum,…)?java.io:It provides support for I/O operations.The java I/O classes and interfaces (BufferedInputStream,BufferedReader,BufferedWriter,etc…).In addition a library java.net provides support for sockets and URL’s.?java.util:It includes container and utility classes.eg.Dictionary,Hashtable,EnumSet,Scanner,etc..?java.awt:Abstract Window Toolkit(AWT) that allows us to port java applications from one window system to another.AWT classes include:AWTEvent,Choice,Component,Button,etc.DESIGN GOALS OF JAVA:—>Simplicity:Java eliminates the dubious features of C and C++ in the context of modern object oriented programming.–>Familiar:Another design goal is that java looks familiar to a number of application programmers who are familiar with C/C++FEATURES OF JAVA LANGUAGE:-A)PRIMITIVE DATA TYPES:There are 3 groups of primitive data types:  àNumeric Types:Integer Numeric include-                          64bit long, 32bit int,16 bit short,8bit byte     Real Numeric Types include-                          64bit double,32bit float  àCHARACTER DATA TYPES:It defines a 16-bit Unicode character.The range of       char is 0 to 65,536.eg.                             char mychar=’Q’;  àBoolean Data Types:It is used for representing True/False values.eg.                      If(b==true) //Boolean value can control if statementB)ARITHMETIC AND RELATIONAL OPERATORS:   Arithmetic Operators include:Addition(+),Subtraction(-),Multiplication(*),Division(/),Modulus(%),Increment(++),Addition Assignment(+=),Decrement(–),Modulus Assignment(%=).Relational Operators include:Equal to(==),Not Equal to(!=),Greater than(>),Less than(<),Greater than or equal to(>=),Less than or equal to(<=)C)ARRAYS:   An array is a group of like-typed variables that are referenced under one name.Syntax:  type var-name;                array-var=new typesize;Eg.  int monthdays;       monthdays=new int12; D)STRINGS:    Strings are a sequence of characters.In java,Strings are objects.Java platform provides the String class to create and manipulate strings.eg                 String name="Ishita Tandon";The string class includes a method for concatenating two strings.eg      System.out.println("My name is"+name+"Hello");E)MULTI-LEVEL BREAK:  Since Java has no goto statement,to break or continue multiple-nested loop labels can be placed on loop and switch constructs.F)MEMORY MANAGEMENT AND GARBAGE COLLECTION:  Java's memory management model is based on objects and references to objects.Java has a new operator to allocate memory for objects.When an object has no more references,the object is a candidate for garbage collection G)GARBAGE COLLETOR:   The java runtime environment has a garbage collector that periodically frees the memory used by the objects that are no longer referenced.It does its job automatically when it determines that the time is right.H)INTEGRATED THREAD SYNCHRONIZATION:   Java supports multi-threading.It is a light-weight process used for creating thread safe multithreaded classes.FEATURES REMOVED FROM C AND C++1)NO MORE TYPEDEFS,DEFINES OR PREPROCESSOR:Java doesn't require any preprocessor,typedefs,#define or header files.Java language source files provide the definitions of other classes and their methods.2)NO MORE STRUCTURES AND UNIONS:Java has no structures and unions.It can be accomplished by declaring a class with the appropriate instance variable. 3)NO MORE FUNCTIONS:Java has no functions.Instead it can be done by defining a class and creating methods for that class eg.class Point extends Object{double x;double y;public void setx(double x){       this.x=x;}public void sety(double y){       this.y=y;}public double x(){        return x; }public double y(){       return x;}} 4)NO MORE MULTIPLE INHERITANCE:Multiple Inheritance is not possible with classes.Instead Interfaces(contains only method declaration not body) are used.Any variable declared inside interface automatically becomes static and final.5)NO MORE GOTO STATEMENTS:Java has no goto statements.Multi-level break and continue are used.6)NO MORE OPERATOR OVERLOADING:Operator overloading can be achieved by declaring a class,appropriate instance variables and appropriate methods to manipulate those variables.7)NO MORE AUTOMATIC COERCIONS:Java prohibits automatic coercions.In order to coerce a data,explicit casting can be used.8)NO MORE POINTERS:Java has no pointers.It can be done by declaring objects and array of objects.