Java

Reviews
Shared by: vixycn
Stats
views:
48
rating:
not rated
reviews:
0
posted:
10/11/2009
language:
ENGLISH
pages:
0
Algorithm Programming 1 (using Java) 89-210 Bar-Ilan University 2007-2008 ‫תשס"ח‬ by Moshe Fresko Course objectives  Learning Professional Programming  by Algorithmic Examples       Learning Java Object Oriented Programming Design Patterns Multithreaded Programming GUI Run-time Class Information Course Requirements  Exercises/Projects, 25 % of the grade      Programming Exercises One step-by-step Project Time schedules are strict, no late exercises are accepted. They will be handed on via the Department Submitec utility Cheating is punished by Discipline Assembly ( Very strictly )  Exam 75 % What is Java ?     (Almost) Fully OO Programming Language. Syntax: Similar to C++, Different in some Semantics and Internals. Architecture Neutral World-Wide-Web programming language History     Early 1990s, Oak, by Sun  For embedded systems in Consumer Electronic Devices 1994, Sun decided to adapt Oak to Web January 1995, renamed as Java,   Building Web based applications With HotJava capable of running Applets May 1995, Sun’s first JDK (Java Development Kit)  1998, Sun released Java 2 SDK (J2SDK)  By time Bunch of Libraries are added Object Oriented Reminders      Abstraction Encapsulation Inheritance Abstract classes Polymorphism    By Inheritance By Overloading Interfacing  Constructors and Finalizers Design Patterns      Design Patterns help you learn from others’ successes, instead of your failures Separate things that change, from the things that doesn’t change Elegant and Cheap-to-Maintain Inheritance can be thought as a DP, and so Composition, etc. Iterator (Enumeration in Java 1.0 and 1.1) Resources  Internet      http://java.sun.com For Tutorials and Downloads http://java.sun.com/j2se/1.4.2/docs/api/ API of Java 1.4 http://java.sun.com/j2se/1.5.0/docs/api/ API of Java 1.5 http://java.sun.com/docs/books/tutorial/reallybigindex.html Development Environment    NetBeans ide Symantec’s Cofe Borland’s JBuilder  Books      Developing Java Software Russel Winder & Graham Roberts 2nd Edition, 2000 John Wiley and Sons, Ltd. Java 2 Complete Gemma O’Sullivan 1998, Sybex Thinking in Java Bruce Eckel 3rd Edition (free to download) Design Patterns Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides 1995, Addison Wesley Other Java Books … JDK, J2SE     J2SE, J2EE and J2ME JFC : Java Foundation Classes Java2D : 2D Graphics JavaBeans : Java object component technology Servlets : Web Server JavaHelp : For creating help systems etc. javac : Compiler to Byte-Code java : Loads a byte-code into JVM and executes javap : Byte-code viewer javadoc : Creates HTML documentation for the code. jdb : Java debugger appletviewer : To view applets from within an HMTL page          Application Example  Programs   Applications Applets   Programs are Case Sensitive Example: HelloWorldApp.java file public class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); } } Application Example  javac HelloWorldApp.java  Compiles and creates ByteCode in file “HelloWorldApp.class” Looks for the file “HelloWorldApp.class” and for the class “HelloWorldApp” in it, and starts to run the static “main” function.  java HelloWorldApp  Applet Example // HelloWorld.java file import java.applet.*; import java.awt.*; public class HelloWorld extends Applet { public void paint(Graphics g) { g.drawString("Hello world!", 50, 25); } } // Hello.html file A Simple Program Here is the output of my program: JVM    Source Code Java Compiler (javac) -> ByteCode Java Interpreter (java) - Java VM JVM   java -classpath …;…;… for providing paths of class libraries, and .jar files .jar files are a set of class files compressed into a single file Class Class Class Class Execution Engine JNI Adapter Interface Adapter OS Java Bytecode  Like C++ Assembly, JavaByteCode We need to check ByteCode     For Performance and Memory Usage Tuning Size and Execution Speed Debugging Java Bytecode - Example class Employee { private String name ; private int idNumber ; public Employee(String strName, int num) { name = strName ; idNumber = num ; storeData(strName,num) ; } public String employeeName() { return name ; } public int employeeNumber() { return idNumber ; } private void storeData(String s, int num) { // ... } } javac Employee.java javap –c Employee creates Employee.class to print to string the byte-code in visual form Java Bytecode - Example Compiled from "Employee.java" class Employee extends java.lang.Object{ public Employee(java.lang.String,int); Code: 0: aload_0 1: invokespecial #1; //Method java/lang/Object."":()V 4: aload_0 5: aload_1 6: putfield #2; //Field name:Ljava/lang/String; 9: aload_0 10: iload_2 11: putfield #3; //Field idNumber:I 14: aload_0 15: aload_1 16: iload_2 17: invokespecial #4; //MethodstoreData:(Ljava/lang/String;I)V 20: return public java.lang.String employeeName(); Code: 0: aload_0 1: getfield #2; //Field name:Ljava/lang/String; 4: areturn public int employeeNumber(); Code: 0: aload_0 1: getfield #3; //Field idNumber:I 4: ireturn } Java Bytecode - opcodes  opcodes      a... : opcode is manipulating type object ref. i… : opcode is manipulation type integer b… : byte, c... : char, d… : double, etc. Java Bytecode - JVM  JVM     Stack-based machine Each thread has a JVM stack which stores Frames A frame is created each time a method is invoked Each Frame has    Operand Stack An array of Local variables A reference to Runtime constant pool of the class of the current method Java Bytecode – JVM diagram Java Bytecode  Local variables    0th : this (for constructors or instant methods) Then parameters Then local variables LIFO stack, to pop and push values Used to receive return values  Operand stack    Example public string employeeName() { return name ; } public java.lang.String employeeName(); Code: 0: aload_0 1: getfield #2; //Field name:Ljava/lang/String; 4: areturn     aload_0 : pushes this pointer into stack getfield #2 : this popped+2 added and get reference (for name) from runtime constant pool of the class. This is loaded to the stack areturn : returns the top value of the stack (name). It is popped from operand stack and pushed to the operand stack of calling method The real machine code is : 2A B4 00 02 B0 Java Bytecode public Employee(String strName, int num) { name = strName ; idNumber = num ; storeData(strName,num) ; } public Employee(java.lang.String,int); Code: 0: aload_0 1: invokespecial #1; //Method java/lang/Object."":()V 4: aload_0 5: aload_1 6: putfield #2; //Field name:Ljava/lang/String; 9: aload_0 10: iload_2 11: putfield #3; //Field idNumber:I 14: aload_0 15: aload_1 16: iload_2 17: invokespecial #4; //Method storeData:(Ljava/lang/String;I)V 20: return String and StringBuffer    In package java.lang StringBuffer is modifiable version of String class String has           length substring extraction Finding and matching String comparison Uppercase and lowercase conversion Leading and trailing whitespace elimination Conversion to/from char arrays Conversion from primitive types to String Appending strings Inserting strings

Related docs
java
Views: 610  |  Downloads: 13
JAVA
Views: 131  |  Downloads: 24
java
Views: 669  |  Downloads: 72
Java
Views: 75  |  Downloads: 11
Java-and-UML
Views: 14  |  Downloads: 4
Pengenalan Bahasa JAVA
Views: 139  |  Downloads: 12
webDynpro for java
Views: 780  |  Downloads: 43
Java Basics
Views: 471  |  Downloads: 63
Java
Views: 113  |  Downloads: 14
java
Views: 23  |  Downloads: 5
Java Interview Questions
Views: 285  |  Downloads: 77
Java
Views: 272  |  Downloads: 53
JAVA generics
Views: 116  |  Downloads: 36
premium docs
Other docs by vixycn
User v
Views: 8  |  Downloads: 0
Computer Security The Security Kernel
Views: 9  |  Downloads: 0
Frame_ Reproducing Kernel and Learning
Views: 2  |  Downloads: 0
kernel _1_ _ Error - EMF-FEM
Views: 3  |  Downloads: 0
Self stabilizing Linux Kernel Mechanism
Views: 3  |  Downloads: 0
Object-Oriented Programming_12_
Views: 5  |  Downloads: 0
Object-Oriented Programming_11_
Views: 4  |  Downloads: 0
Behaviour in object-oriented database systems
Views: 3  |  Downloads: 0
Chapter 1_ Object-Oriented Thinking
Views: 6  |  Downloads: 0