Java By Sai NagaVenkata BuchiBabu Manepalli.
Web: msnvbbabu.blogspot.com
FB.com/IdeaForAnyProblem
Contact if you want more information !!
ALL THE BEST
THANK YOU !!
2. INTRODUCTION TO JAVA
1. IN 1991 JAMES GOSLING (PROJECT LEADER) WANTS TO DEVELOP A
SOFTWARE WHICH IS USED IN TV REMOTES, MICRO WOVENS,
REFRIGIRATORS.
2. JAMES GOSLING FIRST SELECTED 'C++' LANGUAGE TO DEVELOP THAT
SOFTWARE. AFTER SOME DEVELOPMENT, HE FINDS SOME PROBLEMS TO
DEVELOP SOFTWARE IN 'C++'.
3. THE PROBLEMS ARE POINTERS AND OPERATOR OVERLOADING. THE
MAIN PROBLEM BY USING C++ IS THAT IS SYSTEM DEPENDENT.
4. THEN HE WANTS FIRST TO DEVELOP A NEW LANGUAGE WHICH IS
SIMILAR TO C++, WHICH ELIMINATES POINTERS AND OPERATOR
OVERLOADING AND DIFFICULT TOPICS IN 'C++' LANGUAGE AND WHICH
IS SYSTEM INDEPENDENT.
5. THEN HE DEVELOPS NEW LANGUAGE CALLED "OAK" (TREE NAME). BUT
THE NAME IS ALREADY REGISTERED IN SOFTWARE INDUSTRY. SO IT WAS
RENAMED AS JAVA (COFFE) IN 1995.
6. AFTER SOME MODIFICATIONS FINALLY JAVA WAS DEVELOPED BY SUN
MICRO SYSTEMS OF USA.
4. 'C', C++ Vs JAVA
1. C, C++ ARE CALLED PLATFORM DEPENDENT
LANGUAGES. BECAUSE THESE LANGUAGES
PRODUCES EXECUATABLE FILES. THESE EXECUTABLE
FILES EXECUTES ONLY ON PARTICULAR PLAFORM
(OPERATING SYSTEM).
2. AFTER COMPILING JAVA PRODUCES CLASS FILE
WHICH CONTAINS BYTE CODES. THESE BYTE CODES
ARE INTERMEDIATE CODE, WHICH IS NOT RELATED
TO ANY OPERATING SYSTEM. BUT EXECUTES ON ANY
OPERATING SYSTEM WITH THE HELP OF JVM (JAVA
VIRTUAL MACHINE).
3. JVM IS THE INTERPRETER FOR BYTE CODES. JVM
CONVERTS THE BYTE CODES INTO APPROPRIATE
OPERATING SYSTEM INSTRUCTIONS.
4. THE SLOGAN OF JAVA IS "WRITE ONCE, RUN
ANYWHERE (WORA)".
Sai NagaVenkata BuchiBabu Manepalli
msnvbbabu.blogspot.com
FB.com/IdeaForAnyProblem
5. EDITIONS OF JAVA
1) J2SE (JAVA 2 STANDARD EDITION)
2) J2EE (JAVA 2 ENTERPRISE EDITION)
3) J2ME (JAVA 2 MICRO / MOBILE EDITION)
• J2SE :- IT DEALS WITH DEVELOPING STANDALONE APPLICATIONS,
FUNDAMENTAL APPLICATIONS FOR A NETWORK.
• J2EE :- IT DEALS WITH DEVELOPING BUSINESS SOLUTIONS ON
INTERNET.
• J2ME :- IT DEALS WITH DEVELOPING EMBEDDED SYSTEMS AND
WIRELESS APPLICATIONS.
• EMBEDDED SYSTEMS :- STORING PROGRAMS IN HARDWARE OR
CHIP. USING EMBEDDED SYSTEMS WE CAN WRITE PROGRAMS
DIRECTLY IN CHIPS.
Sai NagaVenkata BuchiBabu Manepalli
msnvbbabu.blogspot.com
FB.com/IdeaForAnyProblem
6. FEATURES OF JAVA
1.SIMPLE :- JAVA IS A SIMPLE PROGRAMMING LANGUAGE. LEARNING JAVA
IS EASY. BECAUSE ALMOST JAVA SYNTAX IS SIMILAR TO 'C' AND 'C++'.
DIFFICULT TOPICS ARE ELIMINATED IN JAVA LIKE POINTERS AND
OPERATOR OVERLOADING. THE FOLLOWING TOPICS ARE ALSO
ELIMINATED FROM JAVA. (GOTO, TYPEDEF, SIZEOF, UNSIGNED INTEGER,
STRUCTURES, UNIONS, HEADER FILES, MULTIPLE INHERITANCE).
2.WHY POINTERS ARE ELIMINATED FROM JAVA ?
1) POINTERS LEAD TO CONFUSION TO THE JAVA PROGRAMMER.
2) POINTERS CRASH A PROGRAM EASILY.
3) USING POINTERS HARMFUL PROGRAMS LIKE VIRUS AND HACKING
PROGRAMS CAN BE DEVELOPED.
3.OBJECT ORIENTED :- JAVA IS PURELY OBJECT ORIENTED LANGUAGE.
WHEREAS C++ IS NOT PURELY OBJECT ORIENTED LANGUAGE. ANOTHER
EXAMPLE FOR PURELY OBJECT ORIENTED LANGUAGE IS SMALL TALK.
OBJECT :- REAL THINGS THAT WE CAN SEE AND TOUCH ARE CALLED
OBJECTS. AN OBJECT IS ANYTHING THAT EXISTS PHYSICALLY IN THE
WORLD. AN OBJECT CAN PERFORM ACTIVITIES.
Sai NagaVenkata BuchiBabu Manepalli
msnvbbabu.blogspot.com
FB.com/IdeaForAnyProblem
7. • IN PROGRAMMING LANGUAGES, OBJECTS ARE INSTANCES (VARIABLES)
OF CLASSES. AN OBJECT CONTAINS PROPERTIES (VARIABLES) AND
ACTIONS (METHODS).
– METHOD :- IT IS NOTHING BUT A FUNCTION. BUT COMPARING WITH
FUNCTION THE DIFFERENCE IS, IT MUST BE WRITEN INSIDE A CLASS. WE
DON'T HAVE FUNCTIONS IN JAVA, ONLY METHODS ARE THERE.
– CLASS :- A CLASS IS A MODEL OR BLUE PRINT FOR CREATING OBJECTS. A
CLASS IS A GROUP NAME GIVEN TO OBJECTS. IT SPECIFIES THE PROPERTIES
AND ACTIONS OF OBJECTS.
• IN PROGRAMMING LANGUAGES, A CLASS IS AN USER-DEFINED DATA
TYPE. BY USING CLASS CONCEPT WE CAN CREATE NEW DATA TYPES.
• IN C++, WITHOUT USING CLASS WE CAN WRITE A PROGRAM. SO IT IS
NOT A PURELY OBJECT ORIENTED. IN JAVA, WE MUST WRITE ATLEAST
ONE CLASS TO PERFORM ANYTHING.
4.DISTRIBUTED :- USING JAVA WE CAN DEVELOP NETWORK APPLICATIONS.
NETWORK APPLICATION IS USED BY ALL SYSTEMS IN THAT NETWORK.
DISTRIBUTED APPLICATION MEANS, IT CAN ACCESS INFORMATION
FROM MULTIPLE SYSTEMS AT A TIME. USING JAVA, WE CAN DEVELOP
DISTRIBUTED APPLICATION.
Sai NagaVenkata BuchiBabu Manepalli
msnvbbabu.blogspot.com
FB.com/IdeaForAnyProblem
8. 5.ROBUST (STRONG / UNBREAKABLE) :- JAVA PROGRAMS WILL NOT CRASH EASILY.
BECAUSE OF ITS MEMORY MANAGEMENT AND EXCEPTION HANDLING
FEATURES, WE CAN WRITE BREAK FREE PROGRAMS. GENERALLY PROGRAMS
ARE BREAK DUE TO MEMORY INSUFFICIENCE. IN JAVA, MEMORY IS ALLOTED BY
JVM'S CLASS LOADER SUB SYSTEM AND DEALLOCATION IS DONE BY JVM'S
GARBAGE COLLECTOR.
6.GARBAGE COLLECTOR :- IT REMOVES UNUSED VARIABLES & OBJECTS FROM THE
MEMORY. THIS MEMORY CAN BE USED BY ANOTHER VARIABLES OR OBJECTS.
7.SECURE :- JAVA IS A SECURE LANGUAGE BECAUSE JAVA CONTAINS FILEWALLS.
FILEWALLS STRICTLY CHECKS EVERYTHING BEFORE DOWNLOADING INTO OUR
SYSTEM. JAVA ENABLES THE CONSTRUCTION OF VIRUS FREE APPLICATIONS.
8.ARCHITECURE NEUTRAL :- JAVA'S BYTE CODE IS NOT MACHINE DEPENDENT. IT
CAN RUN ON ANY MACHINE WITH ANY PROCESSOR AND ANY OPERATING
SYSTEM.
9.PORTABLITY :- JAVA PROGRAMS GIVE SAME RESULTS ON ALL MACHINES.
10.INTERPRETED :- JAVA PROGRAMS ARE COMPILED TO GENERATED THE BYTE
CODE. THIS BYTE CODE CAN BE DOWNLOADED AND IS EXECUTED BY THE
INTERPRETER. BOTH COMPILER AND INTERPRETER PRESENT IN JAVA.
Sai NagaVenkata BuchiBabu Manepalli
msnvbbabu.blogspot.com
FB.com/IdeaForAnyProblem
10. 11.HIGH PERFORMANCE :- ALONG WITH INTERPRETER, THERE WILL BE A JIT (JUST IN
TIME) COMPILER, WHICH ENHANCES THE SPEED OF EXECUTION. SO THAT BOTH
COMPILER AND INTERPRETER RUN THE PROGRAM SIMULTANEOUSLY.
CLASS LOADER SUB SYSTEM WILL LOAD THE CLASS FILE INTO THE MEMORY. AFTER
LOADING IT WILL SEND THAT FILE TO BYTE CODE VERIFIER. IT VERIFIES THE BYTE
CODE INSTRUCTIONS. IF THERE FINDS SOME CODE IT IS NOT BYTE CODE, THEN IT
WILL COMMUNICATE WITH SECURITY MANAGER. THEN SECURITY MANAGER
TELLS THE BYTE CODE VERIFIER TO REJECT THE VIRUS CODE.
SECURITY MANAGER :- IT IS A PROGRAM WHICH IMPLEMENTS THE SECURITY POLICY
AND PROVIDES SECURITY FOR SYSTEM.AFTER VERIFYING THE BYTE CODE IS
GIVEN TO INTERPRETER AND JIT COMPILER SIMULTANOUSLY.
HOTSPOT :- BLOCK OF CODE ALLOTED FOR THE JIT COMPILER FOR INCREASING THE
SPEED OF EXECUTION. INDIVIDUAL STATEMENTS ALLOTED TO INTERPRETER.
INTERPRETER AND JIT COMPILER WORKS SIMALTUEOUNASLY
MEMORY AREAS :- AFTER VERIFYING THE BYTE CODES CLASS LOADER SUB SYSTEM
WILL ALLOT THE MEMORY REQUIRED BY THE JVM. THIS MEMORY IS DIVIDED
INTO FIVE PARTS CALLED RUNTIME DATA AREAS.
• NATIVE MEHOD STACKS AREA :- NATIVE METHODS ARE EXECUTED IN THIS AREA.
• NATIVE METHODS :- METHODS WRITTEN IN OTHER LANGUAGE LIKE C AND C++.Sai NagaVenkata BuchiBabu Manepalli
msnvbbabu.blogspot.com
FB.com/IdeaForAnyProblem
11. 12.MULTI THREADED :- THREAD MEANS PROCESS OR EXECUTION. EXECUTING
DIFFERENT PARTS OF A PROGRAM SIMULTANEOUSLY IS CALLED MULTITHREADING.
THIS IS AN ESSENTIAL FEATURE TO DESIGN SERVER SIDE PROGRAMS.
13.DYNAMIC :- WE CAN DEVELOP PROGRAMS IN JAVA WHICH DYNAMICALLY INTERACT
WITH THE USER ON INTERNET.
14.COMMENTS :- COMMENTS ARE USED TO WRITE AIM OF THE PROGRAM. THESE ARE
ALSO USED TO WRITE REFERENCES. THE MAIN ADVANTAGE OF COMMENTS IS
READABILITY (UNDERSTANDABLE). THESE ARE NOT EXECUTABLE STATEMENTS.
JAVA SUPPORTS THREE TYPES OF COMMENTS.
1) SINGLE LINE COMMENT :- WHICH STARTS WITH // AND NEED NOT TO END.
2) MULTI LINE COMMENT :- WHICH STARTS WITH /* AND ENDS WITH */
3) DOCUMENTAION COMMENT :- WHICH STARTS WITH /** AND ENDS WITH */.
THESE COMMENTS ARE USEFUL TO CONVERT A JAVA PROGRAM INTO A HTML
DOCUMENT THAT CONTAINS DESCRIPTION OF JAVA PROGRAM FEATURES. THAT
CONVERTED HTML DOCUMENT IS CALLED API (APPLICATION PROGRAM
INTERFACE) DOCUMENT.
15.API DOCUMENT :- IT IS A HTML FILE THAT CONTAINS DESCRIPTION OF ALL THE
FEATURES OF A SOFTWARE. Sai NagaVenkata BuchiBabu Manepalli
msnvbbabu.blogspot.com
FB.com/IdeaForAnyProblem
12. TOOLS OF JDK (JAVA DEVELOPMENT KIT)
• JAVAC (COMPILER):- IT IS USED TO CONVERT JAVA PROGRAM INTO CLASS
FILE WHICH CONTAINS BYTE CODES.
• JAVA (INTERPRETER) :- IT IS USED TO EXECUTE CLASS FILE MEANS BYTE
CODES.
• JAVAP (PROFILER COMPILER) :- IT IS USED TO CONVERT CLASS FILE INTO
JAVA PROGRAM. IT GIVES ONLY STRUCTURE OF THE JAVA PROGRAM. IF
WE USE "JAD" UTILITY WE GET ENTIRE JAVA PROGRAM FROM CLASS
FILE.
• JAVAH (HEADER FILE COMPILER) :- IT IS USED TO INCLUDE NATIVE
METHODS, HEADER FILES INTO JAVA PROGRAM.
• JAVADOC (DOCUMENTATION COMPILER) :- IT IS USED TO CONVERT JAVA
PROGRAM INTO HTML DOCUMENT. THE GENERATED HTML DOCUMENT
IS CALLED API DOCUMENT.
• APPLETVIEWER :- IT IS USED TO EXECUTE APPLETS (SMALL WEB
PROGRAMS).
Sai NagaVenkata BuchiBabu Manepalli
msnvbbabu.blogspot.com
FB.com/IdeaForAnyProblem
13. • METHOD :- SET OF STATEMENTS.
• CLASS / INTERFACE :- SET OF METHODS.
• PACKAGE :- SET OF CLASSES & INTERFACES.
• JSL (JAVA STANDARD LIBRARY) :- SET OF PACKAGES.
• JRE (JAVA RUNTIME ENVIRONMENT) : JVM + JSL.
• STANDALONE APPLICATIONS :- THESE ARE GENERAL PROGRAMS
WHICH ARE NOT RELATED TO INTERNET. THESE APPLICATIONS ARE
EXECUTED BY JAVA INTERPRETER (JAVA TOOL). THESE APPLICATIONS
CONTAINS MAIN( ) METHOD. SO PROGRAM EXECUTION STARTS
FROM MAIN( ) METHOD.
• APPLETS :- THESE ARE SMALL WEB PROGRAMS. APPLETS ARE
EXECUTED BY WEB BROWSER (INTERNET EXPLORER, MOZILLA
FIREFOX, GOOGLE CHROME) OR APPLETVIEWER TOOL. BECAUSE
THESE APPLICATIONS DON'T HAVE MAIN( ) METHOD.Sai NagaVenkata BuchiBabu Manepalli
msnvbbabu.blogspot.com
FB.com/IdeaForAnyProblem
14. A SAMPLE PROGRAM
// First.java
class First
{
public static void main(String args[ ])
{
System.out.print("Welcome to Java Programming by Sai Butchi ");
}
}
OUTPUT
========
Welcome to Java Programming by Sai Butchi
Note :- THE ABOVE PROGRAM MUST BE SAVED AS "First.java". BECUASE
CLASS NAME AND FILE NAME MUST BE SAME. IN JAVA ALL CLASS
NAMES MUST START WITH UPPER CASE ALPHABET.Sai NagaVenkata BuchiBabu Manepalli
msnvbbabu.blogspot.com
FB.com/IdeaForAnyProblem
15. • IDE :- IT STANDS FOR INTEGRATED DEVELOPMENT ENVIRONEMNT, WHICH ALLOWS TO WRITE,
SAVE, COMPILE, DEBUG AND EXECUTE A PROGRAM. UPTO JAVA 1.5 THERE IS NOT IDE
AVAILABLE FOR JAVA. FROM JAVA 1.6 NET BEANS (IDE) IS AVAILABLE FOR JAVA. ECLIPSE IS THE
FAMOUS IDE FOR JAVA.
• EDITOR :- WHICH IS USED TO ADD, MODIFY AND REMOVE TEXT. THE FAMOUS EDITOR FOR
MS-DOS IS "edit" AND WINDOWS IS "notepad".
• Steps to Run with out Environment Veriables In Windows:
1. START ====> RUN (CMD / COMMAND)
2. C:WINDOWS> cd
3. C:> cd program files
4. C:PROGRAM FILES> cd java
5. C:PROGRAM FILESJAVA> dir
6. C:PROGRAM FILESJAVA> cd jdk1.5.0
7. C:PROGRAM FILESJAVAJDK1.5.0> cd bin
8. C:PROGRAM FILESJAVAJDK1.5.0BIN>
9. edit First.java / Notepad First.java
• WRITE PROGRAM
• SAVE & EXIT Sai NagaVenkata BuchiBabu Manepalli
msnvbbabu.blogspot.com
FB.com/IdeaForAnyProblem
16. • COMPILE PROGRAM : javac First.java
• EXECUTE PROGRAM : java First
• System.out :- SYSTEM IS A CLASS AND OUT IT A DATA MEMBER(VARIABLE). IT
REFERS TO MONITOR. PRINT( ) IS A METHOD (FUNCTION) OF SYSTEM CLASS.
IT IS USED TO DISPLAY INFORMATION ON THE SCREEN.
• PUBLIC :- MAIN( ) IS CALLED OUTSIDE THE CLASS. SO IT IS DECLARED AS
PUBLIC. PUBLIC MEMBERS CAN ACCESS FROM ANYWHERE.
• STATIC :- GENERALLY ANY METHOD IS CALLED BY USING AN OBJECT. A STATIC
METHOD IS A METHOD WHICH IS CALLED WITHOUT CREATING AN OBJECT
THROUGH CLASS.
• VOID :- MAIN( ) DOES NOT RETURN ANY VALUE.
• STRING ARGS[] :- ARGS IS AN ARRAY OF STRING DATA TYPE. ARGS STORES
COMMAND LINE ARGUMENTS.
• MAIN,PRINT & PRINTLN METHODS
Sai NagaVenkata BuchiBabu Manepalli
msnvbbabu.blogspot.com
FB.com/IdeaForAnyProblem
Editor's Notes
Sai NagaVenkata BuchiBabu Manepalli msnvbbabu.blogspot.com FB.com/IdeaForAnyProblem