Get Adobe Flash player

Tuesday, November 15, 2011

Life Cycle of a java program


The figure below explains the lifecycle of a Java Program. In words, the figure can be explained as:
  1. A Java program is written using either a Text Editor like Textpad or an IDE like Eclipse and is saved as a .java file. (Program.java)
  2. The .java file is then compiled using Java compiler and a .class file is obtained from it. (Program.class)
  3. The .class file is now portable and can be used to run this Java program in any platform.
  4. Class file (Program.class) is interpreted by the JVM installed on a particular platform. JVM is part of the JRE software.

Web Browsers

web browser is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. An information resource is identified by a Uniform Resource Identifier (URI) and may be a web page, image, video, or other piece of content. Hyperlinks present in resources enable users easily to navigate their browsers to related resources. A web browser can also be defined as an application software or program designed to enable users to access, retrieve and view documents and other resources on the Internet.

Example of Web browsers :


  • HotJava
  • Netscape Navigator
  • Internet Explorer
HotJava :
        HotJava (later called HotJava Browser to distinguish it from HotJava Views) was a modular, extensible web browser from Sun Microsystems implemented in Java. It was the first browser to support Java applets, and was Sun's demonstration platform for the then new technology. It has since been discontinued and is now no longer supported.

Netscape Navigator:
        Netscape Navigator was a proprietary web browser that was popular in the 1990s. It was the flagship product of the Netscape Communications Corporation and the dominant web browser in terms of usage share. It can run Java Applets
        It has many useful features such as visual display about downloading process and indication of the number bytes downloaded. It also supports JavaScript, a scripting language used in HTML documents.

Internet Explorer:
        Windows Internet Explorer (formerly Microsoft Internet Explorer, commonly abbreviated IE or MSIE) is a series of graphical web browsers developed by Microsoft and included as part of the Microsoft Windows line of operating systems, starting in 1995. It use a just-in-time (JIT) compiler which greatly increase the speed of execution.

Java as an Internet Language


Java is an object oriented language and a very simple language. Because it has no space for complexities. At the initial stages of its development it was called as OAK. OAK was designed for handling set up boxes and devices. But later new features were added to it and it was renamed as Java. Java became a general purpose language that had many features to support it as the internet language. Few of the features that favors it to be an internet language are:
Cross Platform Compatibility:  The java source files (java files with .java extension) after compilation generates the bytecode (the files with .class extension) which is further converted into the machine code by the interpreter. The byte code once generated can execute on any machine having a JVM. Every operating system has it's unique Java Virtual Machine (JVM) and the Java Runtime Environment (JRE).
Support to Internet Protocols: Java has a rich variety of classes that abstracts the Internet protocols like HTTP , FTP, IP, TCP-IP, SMTP, DNS etc .
Support to HTML: Most of the programming languages that are used for web application uses the html pages as a view to interact with the user. Java programming language provide it's support to html. For example. Recently the extension package jipxhtml is developed in java to parse and create the html 4.0 documents.
Support to Java Reflection APIs: To map the functionalities, Java Reflection APIs provides the mechanism to retrieve the values from respective fields and accordingly creates the java objects. These objects enables to invoke methods to achieve the desired functionality.
Support to  XML parsing: Java has JAXP-APIs to read the xml data and create the xml document using different xml parsers like DOM and SAX. These APIs provides mechanism to share data among different applications  over the internet.
Support to  Web Services : Java has a rich variety of APIs to use xml technology in diverse applications that supports  N-Tiered Enterprise applications over the internet. Features like JAXB , JAXM, JAX-RPC , JAXR etc enables to implement web services in java applications. It  makes java a most suited internet language.
Support to java enabled Mobile devices: Java programming language is made in such a way so that it is compatible with mobile devices also. Java language also works with any java enabled mobile devices that support MIDP 1.0/2.0 including the symbian OS mobile devices. 
Support to Personal Digital Assistants: Java language is compatible with Personal Java 1.1 such as chaiVM, Jeode, CrEME, and JV-Lite2 or with all the later version and it also support PDAs like HP/Compaq, iPAQ, Fujitsu-Siemens Pocket Loox and SimPad, HHP, NEC, Samsung, Sharp Electronics, Toshiba, psion m5, and any other device with Windows CE/Pocket PC 2002/2003/2005)

Features of Java


Simple:
        The syntax for Java is like a cleanup version of the syntax of C++. Their is no need for header file pointer arithmetic structures, union , operator overloading and virtual base class and so on...
        Another aspect for being simple is being small. Java enable the construction of software that can run stand alone in a small machine. The size of the basic interpreter and class support is only 40 KB (approx).

Object oriented:
        Java is a object oriented language. Almost everything in java is an object. All program code and data reside within class and objects. The objects model in java is simple and easy to extend.
Distributed :
        Java is designed as a distributed ;language for creating application of networks. It has the ability to share bot data and programs. Java application can open and access a remote object on internet as easy as they can do in a local system. This enables multiple programs at multiple remote locations to collaborate and work together in a single project.

Robust:
        Java is a robust language. It provides many save guards to ensure many reliable code. It has strict compile time and run time checking for data types. This feature is also very useful. The java compiler detects many problems that in other language would show up only at run time.

Secure:
        Security becomes an important issue for a language that is used for programming on internet. Threat of viruses and abuse of resource are everywhere. Java system not only verify all memory access but also ensure that no viruses are communicated with an applet . The absence of pointer in Java ensure that programs can not gain access to memory location without proper authorization.

Architecture Neutral:
        The compiler generate an architecture-neutral file format.  The compiled code is executable in many processors, if given the presence of the java run time system. The Java compiler does this by generating bytecode instruction, which have nothing to do a particular computer architecture rather they are designed to both easy to interpret and easily translated to native machine code in the fly.

Portable:
        Unlike C and C++ there are no "implementation dependents" - aspect of the specification. The size of the preemptive data types are specified as is the behavior of arithmetic on them. For example an int in Java is always a 32 bit Integer. In C/C++ int can mean a 16 bit Integer, a 32 bit Integer or any other size that the compiler vendor likes.

Compiled & Interpreted :
        Usually a Computer language is either compiled or Interpreted. Java combines both of these approaches. Thus making Java a two state system. First Java Compiler translate secure code into bytecode instruction. Bytecode are not machine instruction and therefore in the second stage Java interpreter generates machine code that can be directly executed by the machine, that is running the Java program.

High performance:
        Java performance is impressive for an interpreted language, mainly due to the use of intermediate bytecode. Java architecture is also deigned to reduce overhead during run-time, further the incorporation of multireading enhances the overall execution speed of Java programs.

Multithreaded :
        Multithreaded means handling multiple tasks simultaneously. java supports multithreaded programs, this means that we need not wait for the application to finish one task before beginning another. For example we can listen to any audio clip while scrolling a page and at the same time download an applet from a distant computer. The benefits of multithreding are better interactive responsiveness and real time behavior. Threads in Java also can take advantages of multiprocessor system, if the base operating system does so.

Dynamic :
        Java is a dynamic language. Java is capable of dynamic linking in new class libraries, methods, objects. Java can also determine the type of class through a query, making it possible to either dynamically link of abort the program, depending on the response.

Difference between Java & C++

Java is a true object oriented language while C++ is basically C with object-oriented extension. That is what exactly the increment operator ++ indicates. C++ has maintained backward compatibility with C. It is therefore possible to write and old style C program and run it successfully in C++. Java appears to be simile to C++ when we consider only the "extension" part of C++. However, some object-oriented features of C++ make the C++ code extremely difficult to follow and maintain. 

Difference between Java & C


Java i s lot like C but the major difference between Java and C is that Java is an object-oriented langugae and has mechanism to define classes and objects. To build a simple and safe language, the Java team did not include some of the C features in Java.


  • Java does not include the C unique statement keywords sizeof, and typedef.
  • Java does not contain the data types struct and union.
  • Java does not define the type modifiers keywords auto,extern,register,signed, and unsigned
  • Java does not support an explicit pointer type.
  • Java does not have a preprocessor and therefore we can not use #define, #include, and #ifdef statements.
  • Java requires that the function with no arguments must be declared with empty parenthesis and not with the void keyword as done in C.
  • Java adds new operators such as instanceof and >>>.
  • Java adds labelled break and continue statements.
  • Java adds many features required for object oriented programming.

Saturday, November 12, 2011

Basic Concept of Object Oriented Programming

Objects & Classes:

Objects are the basic runtime entities in an Object-Orients System. They may represent a person, a bank, a car etc… Each object has its own properties and behavior.  For example if we chose a CAR as an object then its properties will be number of wheels, height, width, length, body material etc, and its behavior will be run, turn left, turn right, turn backward etc..

j1                                                                                                                                                     

But in a programming domain objects interacts with each other by sending massages. Like a User account interact with a Bank Account…

 

In programming view an object is a combination of some data and code.  These data and code of an object can be made a user defined data type using the concept of a Class.  So what is class?

 

1.       If we taught class as a Data type then objects will be the variable of this Data type.

2.       If we taught class as a blueprint of a building then the building is an object.

3.       If we taught class as a recipe then the cocked food is an object.