Download Java - Introduction

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Compiler wikipedia , lookup

Class (computer programming) wikipedia , lookup

Go (programming language) wikipedia , lookup

Library (computing) wikipedia , lookup

Object-oriented programming wikipedia , lookup

C Sharp syntax wikipedia , lookup

C++ wikipedia , lookup

Java syntax wikipedia , lookup

Name mangling wikipedia , lookup

Interpreter (computing) wikipedia , lookup

Scala (programming language) wikipedia , lookup

Java (programming language) wikipedia , lookup

C Sharp (programming language) wikipedia , lookup

Java performance wikipedia , lookup

Transcript
Java - Introduction
Sung-Dong Kim,
Dept. of Computer Engineering,
Hansung University
Introduction
 Origin
 A part of a development of an advanced software for consumer
electronics
 Small, reliable, portable, distributed, real-time embedded systems
 Problems
 Compiler technology
 Several other problems
 Solution
 Changing language  Java
2
(2012-1) Java
Features (1)











3
Simple
Object-oriented
Distributed
Interpreted
Robust
Secure
Architecture neutral
Portable
high-performance
Multithreaded
Dynamic
(2012-1) Java
Features (2)
 Simple
 Omitted features from C++
 Operator overloading
 Multiple inheritance
 Extensive automatic coercions
 Added features
 Auto garbage collection: easy programming, reduction of bugs
4
(2012-1) Java
Features (3)
 Being small
 Construction of software the can run stand-alone in small machines
 Size of basic interpreter and class support: 40K bytes
 + basic standard libraries and thread support: additional 175K
 Object-Oriented
 Clean definition of interfaces
 Provide reusable “software ICs”
 Design for data (object) and interface to it
5
(2012-1) Java
Features (4)
 Distributed
 Extensive library of routines for TCP/IP protocols: HTTP, FTP, …
 Robust
 Java is intended to write reliable programs
 Early checking for possible problems  dynamic (runtime) checking
 eliminate situations that are error prone
 Strongly typed language: compile time checking
 Pointer model: eliminates the possibility of overwriting memory and
corrupting data
6
(2012-1) Java
Features (5)
 Secure
 Java is intended to be used in networked/distributed environments
 Authentication techniques based on public-key encryption
 Architecture Neutral
 Java is designed to support applications on networks
 Compiler generates an architecture neutral object file format
 Bytecode instructions
 Easy to interpret on any machine
 Easily translated into native machine code on the fly
7
(2012-1) Java
Features (6)
 Portable
 No implementation dependent aspects of the specifications
 “int”: a signed two’s complement 32 bit integer
 “float”: 32-bit IEEE 754 floating point number
 Libraries of the system define portable interfaces
 Abstract Window class
 Implementations of it for Unix,Windows, and the Macintosh
8
(2012-1) Java
Features (7)
 Interpreted
 Java interpreter: execute Java bytecode
 More compile-time information is available at runtime
 Linker’s type checking
 RPC protocol derivation
 Easy to debugging
9
(2012-1) Java
Features (8)
 High performance
 Bytecode can be translated on the fly into machine code
 Automatic register allocation
 Complier does some optimization
 Reasonably good code
 The performance of bytecodes converted to machine code is
almost indistinguishable from native C or C++
10
(2012-1) Java
Features (9)
 Multithreaded
 Threads: lightweight processes or execution contexts
 Doing many things at the same time
 Sophisticated set of synchronization primitives based on the
monitor and condition variable paradigm
 Better interactive responsiveness and real-time behavior
11
(2012-1) Java
Summary
 Java language provides a powerful addition to the tools that
programmers have at their disposal
 Java makes programming easier: OO, automatic garbage
collection
 Java applications are ideal for a diverse environment like
Internet
12
(2012-1) Java
Java’s Running Environment
 Java bytecode
 Machine code instruction for Java Virtual Machine
 “write once, run anywhere” philosophy
 Java Platform
 JavaVirtual Machine (JavaVM)
 Java Application Programming Interface (Java API)  package
13
(2012-1) Java
14
(2012-1) Java
15
(2012-1) Java
Java program Creation Process
 Application
 Create a source file: HelloWorld.java
 Compile the source file: javac HelloWorld.java
 Run the program: java HelloWorld
 Applet
 Create a source file: HelloWorld.java
 Create a html file: HelloWorld.html
 Compile the source file: javac HelloWorld.java
 Run the program: appletviewer HelloWorld.html
16
(2012-1) Java
Getting Started (1)
 Class: blueprint
 Object
 Members
 Fields: state
 Methods: behavior, collections of statements
17
(2012-1) Java
Getting Started (2)
 HelloWorld program
 main: method of class, public, static, void
 static: belongs to class, not associated with a particular instnace
 Signature: name of method + parameter list
 Method declaration: signature + body
 Method invocation: object reference
18
(2012-1) Java
class HelloWorld {
public static void main(String[] args) {
System.out.println(“Hello, world”);
}
}
19
(2012-1) Java
Getting Started (3)
 Compile
 javac HellowWorld.java
 javac is Java compiler
 Run
 java HelloWorld
 java is the Java bytecode interpreter
20
(2012-1) Java
Java Compile and Runtime Environment
 Java source code  bytecodes
 Bytecodes: instructions for JVM
 Applets
 Store byte code files on an HTTP server
 <applet code=filename>
 When an user runs applets
 Bytecodes are loaded into memory and verified for security
21
22