Introduction to Java. Lecture 1

Introduction to Java Lecture 1 School of Computer Science [email protected] Topics • • • • • • About JAVA Features of Java How it is diffe...
Author: Ashley Smith
0 downloads 0 Views 187KB Size
Introduction to Java Lecture 1

School of Computer Science

[email protected]

Topics • • • • • •

About JAVA Features of Java How it is different from C, C++ Introduction to Java Virtual Machine Present the syntax of Java Data types Example programs

28 March 2007

Java : Lecture 1

2

History of Java • Java – Originally for intelligent consumer-electronic devices – Then used for creating Web pages with dynamic content – Now also used to: • Develop large-scale enterprise applications • Enhance WWW server functionality • Provide applications for consumer devices (cell phones, etc.)

28 March 2007

Java : Lecture 1

3

Why Java? • Because of its design goals , which are summarized in the form of several keywords: – Java is simple – It’s almost entirely object-oriented – It’s distributed – It’s more platform independent & architectural neutral • this makes it great for Web programming

– – – – –

It’s more secure It’s robust It’s multithreaded It’s Portable It’s Interpreted

28 March 2007

Java : Lecture 1

4

Java Programs : Applets, Servlets and Applications • An applet is designed to be embedded in a Web page and run by a browser • Applets run in a sandbox with numerous restrictions; for example, they can’t read files • A servlet is designed to be run by a web server • An application is a conventional program

28 March 2007

Java : Lecture 1

5

How it is different from C++ No preprocessor.

Heavy reliance on preprocessor.

No goto

goto

No global variables.

Global variables.

Pure object-oriented language.

Hybrid between procedural and object-oriented.

All functions (methods) are part of a class.

Can have stand-along functions.

No multiple inheritance.

Multiple inheritance.

No operator overloading.

Operator overloading.

All methods (except final methods) are dynamically bound.

Virtual functions are dynamically bound.

All nonprimitive types are objects.

Separate types for structs, unions, enums, and arrays.

All numeric types are signed.

Signed and unsigned numeric types.

All primitive types are a fixed size for all platforms.

Primitive type size varies by platform.

16-bit Unicode characters.

8-bit ASCII characters.

Boolean data type primitive.

No explicit boolean data type.

28 March 2007

Java : Lecture 1

6

How it is different from C++ Variables are automatically initialized.

No automatic initialization of variables.

References, with no explicit pointer manipulation and no pointer arithmetic.

Pointers, with dereferencing (* or ->) and address (&) operators.

Array references are not translated to pointer arithmetic.

Array references translate to pointer arithmetic.

Strings are objects.

Strings are null-terminated character arrays.

Built-in string concatenation operator(+).

String concatenation through a library function.

No typedef.

typedef to define types.

Specifically attuned to network and Web processing.

No relationship to networks or the Web.

Automatic garbage collection.

No automatic garbage collection.

Combination of compiled and interpreted.

Compiled.

Slower execution when interpreted.

Fast execution.

Architecture neutral.

Architecture specific.

Supports multithreading.

No multithreading.

28 March 2007

Java : Lecture 1

7

Java Compilers & Tools • Sun Microsystems' Java Development Kit (JDK) (Java 2 Platform Second Edition, J2SE) – for a number of platforms (Windows, Linux, Solaris SPARC, Solaris x86) from the creator of Java. The kits include the Java compiler, Java debugger and Java class libraries for generating Java bytecode

• Other compiler and IDE vendors - Symantec's Visual Cafe, Borland's JBuilder, IBM's VisualAge, Asymetrix's Supercede and Microsoft's Visual J++ : provide Java compilers that have the JIT compilation option. – eg. JBuilder is a cross-platform Java development environment for Windows, Linux, Solaris and Mac OS.

28 March 2007

Java : Lecture 1

8

Java Development Kit

• • • •

javac java jdb Appletviewer -

28 March 2007

The Java Compiler The Java Interpreter The Java Debugger Tool to run the applets

Java : Lecture 1

9

Java Products & Technologies • Java SE - Java Platform, Standard Edition (also known as Java 2 Platform) lets you develop and deploy Java applications on desktops and servers, as well as today's demanding Embedded and Real-Time environments. • Java EE - Java Platform, Enterprise Edition (Java EE) is the industry standard for developing portable, robust, scalable and secure server-side Java applications. • Java ME - Java™ Platform, Micro Edition (Java ME) is the most popular application platform for mobile devices across the globe. It provides a robust, flexible environment for applications running on a broad range of embedded devices, such as mobile phones, PDAs, TV set-top boxes, and printers. • Java Card - Java Card technology provides a secure environment for applications that run on smart cards and other devices with very limited memory and processing capabilities. 28 March 2007

Java : Lecture 1

10

Java Virtual Machine • The .class files generated by the compiler are not executable binaries – so Java combines compilation and interpretation

• Instead, they contain “byte-codes” to be executed by the Java Virtual Machine – other languages have done this, e.g. UCSD Pascal

• This approach provides platform independence, and greater security 28 March 2007

Java : Lecture 1

11

JVM • Java is independent only for one reason: – Only depends on the Java Virtual Machine (JVM), – code is compiled to bytecode, which is interpreted by the resident JVM, – JIT (just in time) compilers attempt to increase speed.

28 March 2007

Java : Lecture 1

12

How it works…! Compile-time Environment

Compile-time Environment Class Loader

Java Class Libraries

Java Source (.java)

Java Compiler

Java Bytecodes move locally or through network

Java Interpreter

Just in Time Compiler

Java Virtual machine

Runtime System

Java Bytecode (.class ) 28 March 2007

Operating System Java : Lecture 1

Hardware

13

28 March 2007

Java : Lecture 1

14

JRE • The Java Virtual Machine forms part of a large system, the Java Runtime Environment (JRE). Each operating system and CPU architecture requires a different JRE. • The JRE comprises a set of base classes, which are an implementation of the base Java API, as well as a JVM. • The portability of Java comes from implementations on a variety of CPUs and architectures. Without an available JRE for a given environment, it is impossible to run Java software. 28 March 2007

Java : Lecture 1

15

Building Standalone JAVA Programs

28 March 2007

Java : Lecture 1

16

JAVA Program • Prepare the file HelloWorld.java using an editor • Invoke the compiler:javac HelloWorld.java • This creates HelloWorld.class • Run the java interpreter: java HelloWorld

28 March 2007

Java : Lecture 1

17

HelloWorld (standalone) public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } }

• Note that String is built in • println is a member function for the System.out class 28 March 2007

Java : Lecture 1

18

Comments are almost like C++ • /* This kind of comment can span multiple lines */ • // This kind is to the end of the line • /** * This kind of comment is a special * ‘javadoc’ style comment */

28 March 2007

Java : Lecture 1

19

Primitive data types are like C  Main data types are int, double, boolean, char  Also have byte, short, long, float  boolean has values true and false  Declarations look like C, for example, – double x, y; – int count = 0;

28 March 2007

Java : Lecture 1

20

Primitive data types • Integers : – Byte : occupies 1 byte , Range : -128 to +127 – short : occupies 2 byte , Range : -32768 to +32767 – int : occupies 4 byte , Range : -231 to + (231 -1) – Long : occupies 8 byte , Range : -263 to + (263 -1)

• Floating-Point Numbers : – Float : occupies 4 byte , Range : ± 3.4E+38 – Double : occupies 8 byte , Range : ± 1.8E+308

• Character : char :16-bit unicode representation • boolean : has values true and false 28 March 2007

Java : Lecture 1

21

Constants • Symbolic constants are initialized final variables: private final int stepLength = 48; private static final int BUFFER_SIZE = 1024; public static final int PIXELS_PER_INCH = 6;

28 March 2007

Java : Lecture 1

22

Java identifier • Series of characters consisting of letters, digits, underscores ( _ ) and dollar signs ( $ ) • Does not begin with a digit, has no spaces • Examples: Welcome1, $value, _value, button7  7button is invalid

• Java is case sensitive (capitalization matters)  a1 and A1 are different

28 March 2007

Java : Lecture 1

23