Professional Documents
Culture Documents
BITS Pilani
Hyderabad Campus
BITS Pilani
Hyderabad Campus
Todays Agenda
Course Logistics Course Motivation Course Outline Basics components of computers
Course Logistics
Instructor-in-charge Dr.Aruna Malapati (Email: arunam@bits-hyderabad.ac.in) Instructors Mrs.Kavitha Mr. M.Sadasiva Rao
Course Logistics
Evaluations
Test 1, 20% Comprehensi ve, 35% Test 2, 20% Weekly lab evaluations, 10%
Make-Up Policy NO Make Up for Online test and weekly labs. Makeup for other components is granted on prior permissions and valid document.
Course Logistics
Tutorials
Weekly twice as per the time table Should attend registered section only Focus on practical aspects of programming and complex problem solving
Self learning requirements Class work will require students further exploration Chamber consultation hours : Monday (4.00 5.00 Pm) Course Notices:
CSIS Notice board(B-Block)
Text Books
T1
R1
R2
Why Java?
The answer is that Java enables users to develop and deploy applications on the Internet for servers, desktop computers, and small hand-held devices. The future of computing is being profoundly influenced by the Internet, and Java promises to remain a big part of that future. Java is the Internet programming language. Java is a general purpose programming language.
Javas History
James Gosling and Sun Microsystems
Oak
Java, May 20, 1995, Sun World HotJava
The first Java-enabled Web browser
Characteristics of Java
Java is partially modeled on C++, but greatly Java Is Simple simplified and improved. Some people refer Java Is Object-Oriented to Java as "C++--" because it is like C++ but with more functionality and fewer negative Java Is Distributed aspects. Java Is Interpreted Java Is Robust Java Is Secure Java Is Architecture-Neutral Java Is Portable Java's Performance Java Is Multithreaded Java Is Dynamic
Characteristics of Java
Java is partially modeled on C++, but greatly Java Is Simple simplified and improved. Some people refer Java Is Object-Oriented to Java as "C++--" because it is like C++ but with more functionality and fewer negative Java Is Distributed aspects. Java Is Interpreted Java Is Robust Java Is Secure Java Is Architecture-Neutral Java Is Portable Java's Performance Java Is Multithreaded Java Is Dynamic
Characteristics of Java
Java Is Simple Java is inherently object-oriented. Although Java Is Object-Oriented many object-oriented languages began strictly Java Is Distributed as procedural languages, Java was designed from the start to be object-oriented. ObjectJava Is Interpreted oriented programming (OOP) is a popular Java Is Robust programming approach that is replacing Java Is Secure traditional procedural programming techniques. Java Is Architecture-Neutral Java Is Portable One of the central issues in software Java's Performance development is how to reuse code. ObjectJava Is Multithreaded oriented programming provides great flexibility, modularity, clarity, and reusability Java Is Dynamic
through encapsulation, polymorphism. inheritance, and
Characteristics of Java
Java Is Simple Distributed computing involves several Java Is Object-Oriented computers working together on a network. Java Is Distributed Java is designed to make distributed computing easy. Since networking capability is Java Is Interpreted inherently integrated into Java, writing Java Is Robust network programs is like sending and Java Is Secure receiving data to and from a file. Java Is Architecture-Neutral Java Is Portable Java's Performance Java Is Multithreaded Java Is Dynamic
Characteristics of Java
Java Is Simple You need an interpreter to run Java programs. Java Is Object-Oriented The programs are compiled into the Java Java Is Distributed Virtual Machine code called bytecode. The bytecode is machine-independent and can Java Is Interpreted run on any machine that has a Java Java Is Robust interpreter, which is part of the Java Virtual Java Is Secure Machine (JVM). Java Is Architecture-Neutral Java Is Portable Java's Performance Java Is Multithreaded Java Is Dynamic
Characteristics of Java
Java Is Simple Java Programs do not crash like C or C++. Java Is Object-Oriented Java Is Distributed Java has a runtime exception-handling feature to provide programming support for Java Is Interpreted robustness. Java Is Robust Java Is Secure Memory allocation and de allocation is automatic. Java Is Architecture-Neutral Java Is Portable Java's Performance Java Is Multithreaded Java Is Dynamic
Characteristics of Java
Java Is Simple Java Is Object-Oriented Java Is Distributed Java Is Interpreted Java implements several security mechanisms Java Is Robust to protect your system against harm caused Java Is Secure by stray programs. Java Is Architecture-Neutral Java Is Portable Java's Performance Java Is Multithreaded Java Is Dynamic
Characteristics of Java
Java Is Simple Java Is Object-Oriented Java Is Distributed Write once, run anywhere Java Is Interpreted With a Java Virtual Machine (JVM), you Java Is Robust can write one program that will run on Java Is Secure any platform. Java Is Architecture-Neutral Java Is Portable Java's Performance Java Is Multithreaded Java Is Dynamic
Characteristics of Java
Java Is Simple Java Is Object-Oriented Java Is Distributed Java Is Interpreted Java Is Robust Java Is Secure Java Is Architecture-Neutral Because Java is architecture neutral, Java Java Is Portable programs are portable. They can be run Java's Performance on any platform without being Java Is Multithreaded recompiled. Java Is Dynamic
Characteristics of Java
Java Is Simple Java Is Object-Oriented Java Is Distributed Java Is Interpreted Java Is Robust Java Is Secure Java Is Architecture-Neutral Javas performance Because Java is Java Is Portable architecture neutral, Java programs are Java's Performance portable. They can be run on any platform Java Is Multithreaded without being recompiled. Java Is Dynamic
Characteristics of Java
Java Is Simple Java Is Object-Oriented Java Is Distributed Java Is Interpreted Java Is Robust Java Is Secure Java Is Architecture-Neutral Multithread programming is smoothly Java Is Portable integrated in Java, whereas in other Java's Performance languages you have to call procedures Java Is Multithreaded specific to the operating system to enable multithreading. Java Is Dynamic
Characteristics of Java
Java Is Simple Java Is Object-Oriented Java Is Distributed Java Is Interpreted Java Is Robust Java Is Secure Java Is Architecture-Neutral Java was designed to adapt to an evolving Java Is Portable environment. New code can be loaded on Java's Performance the fly without recompilation. There is no Java Is Multithreaded need for developers to create, and for users to install, major new software Java Is Dynamic
versions. New features can be incorporated transparently as needed.
Use Pointers
Memory allocation done by programmer Allows unstructured Programming Automatic typecasting Operator overloading available Constructors and destructors are used
JDK Versions
JDK 1.02 (1995) JDK 1.1 (1996) JDK 1.2 (1998) JDK 1.3 (2000) JDK 1.4 (2002) JDK 1.5 (2004) a. k. a. JDK 5 or Java 5 JDK 1.6 (2006) a. k. a. JDK 6 or Java 6 JDK 1.7 (possibly 2010) a. k. a. JDK 7 or Java 7
JDK Editions
Java Standard Edition (J2SE)
J2SE can be used to develop client-side standalone applications or applets. Contains basic core Java classes, used to develop standard applications and applets.
Java applications
Applets Stand-alone programs Network servers Network clients Embedded designs
Mobile telephones Portable Digital Assistants (PDAs) Set-top boxes Digital Signal Processing (DSP)
H Hello.class
Interpreter H Runtime
Hardware
Not all low-level system manipulations are available through standard Java APIs.
Low-level system manipulations are available in the form of native (non-Java) extensions.
Internationalization
Programs can automatically adapt to specific locales and be displayed in the appropriate language.
Security
Electronic signatures Public and private key management Access control Certificates
Summary
Course related issues Basic components JAVA language