java report (1)

26
JAVA2 (CORE) A Training Report Submitted by: AYUSH PARAKH Roll no: 12115017, 5 th Sem Department of Computer Science & Engineering

Upload: animesh14

Post on 27-Sep-2015

29 views

Category:

Documents


1 download

DESCRIPTION

contains java info

TRANSCRIPT

presentation.docx

JAVA2 (CORE)A Training ReportSubmitted by:

AYUSH PARAKHRoll no: 12115017, 5th Sem

Department of Computer Science & EngineeringNational Institute of Technology, Raipur

ACKNOWLEDGMENT

I am very thankful to everyone who all supported me, for I have completed my project effectively and moreover on time.

I would like to express my special thanks of gratitude to my teacher as well as our principal who gave me the golden opportunity to do this wonderful project on the topic java2 and its evolution which also helped me in doing a lot of research and I came to know about so many new things.

I am making this project not only for marks but also to increase my knowledge.

Thanking you

AYUSH PARAKH 12115017 , 5TH Sem

ABSTRACTThe report consists of an overview of the famous java core language. This project represents an in-depth tutorial of the java language. It begins with basics, including such things as data types, tokens (escape characters), control statements, objects and classes. It also discusses javas Exception-Handling mechanism, static, String, this, super, packages and interfaces.

TABLE OF CONTENTS

Contents Page NumberI. Acknowledgementi.II. Abstractii. III. Table of Contentsiii.Lesson 1: OverviewI. History of java1II. Features of java2III. Some java core topics6 1) String62) Static & static block83) Exception-Handling84) Multi-Threading10IV. Conclusion14 V. References15FiguresI. Fig 1.1- Exception Handling in java9II. Fig 2.2- Different states of a thread11

AYUSH PARAKH - 12115017Page iii

Lesson 1: Overview1: History of JavaJava was conceived by James gosling, Patrick Naughton, Chris Warth, Ed frank, and Mike Sheridan at sun Microsystems, inc. in 1991. It took 18 months to develop the first working version. This language was initially called oak, but was renamed java in 1995.

Versions

JDK 1.0 (January 21, 1996) JDK 1.1 (February 19, 1997) J2SE 1.2 (December 8, 1998) J2SE 1.3 (May 8, 2000) J2SE 1.4 (February 6, 2002) J2SE 5.0 (September 30, 2004) Java SE 6 (December 11, 2006) Java SE 7 (July 28, 2011) Java SE 8 (March 18, 2014)

2: Features of Java

Simple

Looks familiar to existing programmers: related to C and C++: Omits many rarely used, poorly understood, confusing features of C++, like operator overloading, multiple inheritance, automatic coercions, etc. Contains no goto statement, but break and continue Has no header files and eliminated C preprocessor Eliminates much redundancy (e.g. no structs, unions, or functions) Has no pointer Added features to simplify: Garbage collection, so the programmer won't have to worry about storage management, which leads to fewer bugs. A rich predefined class libraryObject-Oriented

Java is an object-oriented language, which means that you focus on the data in your application and methods that manipulate that data, rather than thinking strictly in terms of procedures.In an object-oriented system, a class is a collection of data and methods that operate on that data. Taken together, the data and methods describe the state and behavior of an object. Classes are arranged in a hierarchy, so that a subclass can inherit behavior from its super class.Java comes with an extensive set of classes, arranged in packages that you can use in your programs.

Robust

Java has been designed for writing highly reliable or robust software language restrictions (e.g. no pointer arithmetic and real arrays) to make it impossible for applications to smash memory (e.g. overwriting memory and corrupting data).Java does automatic garbage collection, which prevents memory leaks. Extensive compile-time checking so bugs can be found early; this is repeated at runtime for flexibility and to check consistency.

Secure

Security is an important concern, since Java is meant to be used in networked environments. Without some assurance of security, you certainly wouldn't want to download an applet from a random site on the net and let it run on your computer. Java's memory allocation model is one of its main defenses against malicious code (e.g. can't cast integers to pointers, so can't forge access). Furthermore access restrictions are enforced (public, private).Byte codes are verified, which copes with the threat of a hostile compiler.

Architecture-Neutral

Compiler generates byte codes, which have nothing to do with particular computer architecture.It is easy to interpret on any machine.Portable

Java goes further than just being architecture-neutral: no "implementation dependent" notes in the specification (arithmetic and evaluation order).Standard libraries hide system differences.The Java environment itself is also portable: the portability boundary is POSIX compliant.High-Performance

Java is an interpreted language, so it will never be as fast as a compiled language as C or C++. In fact, it is about 20 times as slow as C. However, this speed is more than enough to run interactive, GUI and network-based applications, where the application is often idle, waiting for the user to do something, or waiting for data from the network.

Multithreaded

Java allows multiple concurrent threads of execution to be active at once. This means that you could be listening to an audio clip while scrolling the page and in the background downloading an image. Java contains sophisticated synchronization primitives (monitors and condition variables), that are integrated into the language to make them easy to use and robust. The java.lang package provides a Thread class that supports methods to start, run, and stop a thread, and check on its status.

Dynamic

Java was designed to adapt to an evolving environment: Even after binaries have been released, they can adapt to a changing environment Java loads in classes as they are needed, even from across the network It defers many decisions (like object layout) to runtime, which solves many of the version problems that C++ has. Dynamic linking is the only kind present.

Java Platform

Popular languages such as C, C++ follow the approach of write once, compile anywhere approach. It means, to work on different microprocessors we are not required to rewrite the program but are required to recompile the program for different MPs.Java uses compile once, run anywhere approach. It means that a java program after compilation can be run on any environment (i.e. different MPs and OS).This makes Java programs immensely portable.

Java achieves this compile once, run anywhere magic through a program called Java Virtual Machine (JVM).When a java program is compiled, it is converted to byte code instructions instead of machine language instruction for a specific MP. The byte code instructions are interpreted by JVM.

Different JVMs are written specifically for different hardware and OS combinations. A JVM is distributed along with a set of standard class libraries that implement java programming interface.Java byte code instructions are analogous to machine code, but are intended to be interpreted by a virtual machine (VM) written specifically for the host hardware.End-users commonly use a Java Runtime Environment (JRE) installed on their own machine for standalone Java applications, or in a Web browser for Java applets.

3: Some Core Java Topics

1. String

The String class is a final class (cant be inherited). Immutable (manipulations cant be done).1) String s = NIT;2) String s = new String(NIT);3) Char a[] = {N, I, T};String s = new String(a); // NIT

Methods Of String :-s = NIT; s.length(); // 3 s.charAt(index); s.toLowerCase(); // nit s.substring(str index, end index); s1.equals(s2);

2. Static

When a member is declared static, it can be accessed before any objects of its class are created, and without reference to any object. They can only call other static methods, or only static data.They cannot refer to this or super in any way.

Class usestatic {Static int a=3;Static int b;Static void meth(int x) { System.out.println(x = + x); System.out.println(a = + a); System.out.println(b = + b);}Static {System.out.println(static block initialised.);b=a*4;}public static void main(String args[]) {meth(42);}}

It is a block of code declared as static and is executed as soon as the class is loaded before the execution of any other piece of code. It basically acts as an initialization block.

Static Block

static{ b=10; a=0;}

3. Exception-Handling

Every Exception in Java is sub type of Exception class which in turn is the subclass of Throwable. And as we know everything in Java derived from Object class Throwable also derived from class Object. Exception and Error are two different classes that derived from Throwable. Errors represent situation which doesnt occur because of Programming error but that might happen at the time of program execution and these are abnormal behavior which java program cannot handle and shouldnt bother to handle. JVM running out of memory is a type of Error which can occur at runtime.

Fig. 1.1: Exception Handling in Java

Checked Vs Unchecked Exception1. Checked exceptions are subclasses of Exception excluding Runtime Exception and its subclasses.2. Checked Exceptions force programmers to deal with the exception that may be thrown.3. When a checked exception occurs in a method, the method must either catch the exception and take the appropriate action, or pass the exception on to its caller.

Example:// a.javaClass a{public static void main(string ar[]) {int k=0;try {int i = Integer.parseInt(ar[0]);int j = Integer.parseInt(ar[1]);k=i/j;System.out.println(k); }catch(AIOOBE e) {System.out.println(e); }catch(ArithmeticException e) { }catch(NumberFormatException e) {}finally {System.out.println(k); }}}

Java handles the exception using following keywords: try: block in which code which can generate exception is placed . catch: block which catches and handles appropriate exception. throw: throws the exception throws: throws the exception to the calling method. finally : code which must be executed under any circumstances is placed.

4. Multi-Threading

Thread means independent flow of execution.Multithreading is a concept in which program is broken into 2 or more threads and all these threads run simultaneously.Java's multithreading provides benefit in this area by eliminating the loop and polling mechanism, one thread can be paused without stopping the other parts of the program. If any thread is paused or blocked, still other threads continue to run.As the process has several states, similarly a thread exists in several states. A thread can be in the following states:

Ready to run (New): First time as soon as it gets CPU time.Running: Under execution.Suspended: Temporarily not active or under execution.Blocked: Waiting for resources.Resumed: Suspended thread resumed, and start from where it left off.Terminated: Halts the execution immediately and never resumes.

Fig.1.2: different states of a thread

Thread PrioritiesEach thread has its own priority in Java. Thread priority is an absolute integer value. Thread priority decides only when a thread switches from one running thread to next, called context switching. Priority does increase the running time of the thread or gives faster execution.SynchronizationJava supports an asynchronous multithreading, any number of thread can run simultaneously without disturbing other to access individual resources at different instant of time or shareable resources. But some time it may be possible that shareable resources are used by at least two threads or more than two threads, one has to write at the same time, or one has to write and other thread is in the middle of reading it. For such type of situations and circumstances Java implements synchronization model called monitor. The monitor was first defined by C.A.R. Hoare. You can consider the monitor as a box, in which only one thread can reside. As a thread enter in monitor, all other threads have to wait until that thread exits from the monitor. In such a way, a monitor protects the shareable resources used by it being manipulated by other waiting threads at the same instant of time. Java provides a simple methodology to implement synchronization.

Example:

class RunnableDemo implements Runnable {private Thread t;private String threadName;

RunnableDemo(String name){threadName = name;System.out.println("Creating " + threadName );}public void run() {System.out.println("Running " + threadName );try {for(int i=4;i>0;i--){System.out.println("Thread: " + threadName + ", " + i);

// Let the thread sleep for a while.Thread.sleep(50);}} catch(InterruptedException e) {System.out.println("Thread " + threadName + " interrupted.");}System.out.println("Thread " + threadName + " exiting.");}public void start (){System.out.println("Starting " + threadName );if (t == null){ t = new Thread (this, threadName); t.start ();}}}public class TestThread {public static void main(String args[]) {

RunnableDemo R1 = new RunnableDemo("Thread-1");R1.start();

RunnableDemo R2 = new RunnableDemo("Thread-2");R2.start();} }

4: Conclusion

Our project is an effort to understand the working of an ATM and online banking with the use of CORE JAVA and JDBC. The project was only for learning basis. User friendly codes have used in process of building it. The interface is console-based and further attempts are in continued to make it GUI.

5. References

http://www.java2s.com http://www.javaworld.com/javaworld/jw-01-1998/jw-01-bookreview.html Database Programming with JDBC and Java by O'Reilly Head First Java 2nd Edition http://java.sun.com/javase/technologies/desktop/ JAVA Technologies JAVA Complete Reference Head First EJB Sierra Bates Software Engineering by Roger Pressman http://www.google.com http://www.microsoft.com http://www.programmer2programmer.net http://www.codeproject.com http://www.msdn.com. SQL Bible, 2nd Edition Beginning Java Objects: From Concepts to Code by Jacquie Barker) Introduction to Java Programming (NIIIT publication) The Complete Reference Java(McGraw-Hill, Herbert Scheldt- reprint 2008)

AYUSH PARAKH - 12115017Page 1