http://macedonia.uom.gr/~misprog1



Σχετικά έγγραφα
Υποστηρικτικό υλικό Σημειώσεις

Αντικειμενοστρεφής Προγραμματισμός

JAVA TUTORIAL ΠΕΡΙΕΧΟΜΕΝΑ. ΚΕΦΑΛΑΙΟ 1. Τί κάνει τη Java να ξεχωρίζει; Εγκαθιστώντας τη Java

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 18/10/07

HelloApplet. Παύλος Εφραιμίδης Java Applets 1

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

ΕΠΛ 233: Αντικειμενοστρεφής Προγραμματισμός (Object-oriented programming)

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE)

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #1 ο : Εισαγωγή στο Περιβάλλον Ανάπτυξης (IDE)

Ειδικά Θέματα Προγραμματισμού

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Αντικειµενοστρεφής Προγραµµατισµός

Διάλεξη 1: Αντικειμενοστρεφής Προγραμματισμός -Εισαγωγή. Διδάσκων: Παναγιώτης Ανδρέου

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

1. Ξεκινώντας. 1.1 Τι είναι η Java. PDF created with FinePrint pdffactory Pro trial version

03 Η ιδεατή μηχανή της Java

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

Αντικειμενοστρεφής Προγραμματισμός

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

05β Η ιδεατή μηχανή της Java

Εργαλεία του JDK. Β.1 Εργαλεία του JDK. Β.2 Μεταγλωττιστής javac. Τα πιο βασικά εργαλεία του JDK είναι τα παρακάτω.

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

Βρίγκας Μιχαήλ Α.Μ.744 Μπράχος Χ. Ευάγγελος Α.Μ.795

Η ιδεατή μηχανή της Java

Εισαγωγή στον Προγραμματισμό

Είναι μια αλληλουχία κατάλληλων οδηγιών(εντολών) που εκτελεί ο υπολογιστής για την επίλυση ενός προβλήματος.

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 1: Εισαγωγικές έννοιες

Ειδικά Θέματα Προγραμματισμού

HelloWorld. Παύλος Εφραιμίδης. Java Το πρόγραμμα HelloWorld 1

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Remote Method Invocation (RMI)

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008

2.1 Αντικειµενοστρεφής προγραµµατισµός

ΚΕΦΑΛΑΙΟ 6. Περιβάλλοντα Ανάπτυξης Εφαρμογών. ΚΕΦΑΛΑΙΟ 6 Περιβάλλοντα Ανάπτυξης Εφαρμογών. Α Γενικού Λυκείου

οµή της παρουσίασης Στατιστικά στοιχεία Άδειες χρήσης Γενικά στοιχεία Βασικά χαρακτηριστικά του browser

Δημιουργία μιας εφαρμογής Java με το NetBeans

Οντοκεντρικός Προγραμματισμός

Γενικά (για τις γραπτές εξετάσεις)

Οντοκεντρικός Προγραμματισμός

. Μεθοδολογία Προγραμματισμού. Εισαγωγή στη Java. Νικόλαος Πεταλίδης. Εισαγωγή Εαρινό Εξάμηνο 2014

Εισαγωγή στην αντικειµενοστρεφή τεχνολογία

Το λειτουργικό σύστημα. Προγραμματισμός II 1

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java

Εισαγωγή στον Προγραµµατισµό, Αντώνιος Συµβώνης, ΣΕΜΦΕ, ΕΜΠ,, Slide 6

Ευφυείς Τεχνολογίες ----Πράκτορες

B. Ενσωμάτωση Ιθαγενών Μεθόδων

Java sessions. Part 1 - Βασικά έννοιες - μέθοδοι

Λειτουργικά Συστήματα. Εισαγωγή

Σύστηµα µετάδοσης µετεωρολογικών δεδοµένων σε πραγµατικό χρόνο µέσω του Internet

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Αρχιτεκτονική του πληροφοριακού συστήµατος Cardisoft Γραµµατεία 2003 ιαχείριση Προσωπικού

Ανάπτυξη Διεπαφών Χρήστη σε Λειτουργικά Συστήματα Κινητών Συσκευών

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

Εργαλεία ανάπτυξης εφαρμογών internet Ι

FORTRAN και Αντικειμενοστραφής Προγραμματισμός

Εισαγωγή ΕΙΣΑΓΩΓΗ. Γεώργιος Παπαϊωάννου ( )

ηµιουργία ιαλογικών Προγραµµάτων για το Web

Εισαγωγή στο προγραμματιστικό περιβάλλον ANSI

Python και Android. Νίκος Νοδαράκης. 17 Μαΐου 2010

6. Εξαιρέσεις στη γλώσσα Java

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2

Αντικειμενοστρεφής Προγραμματισμός

Visual Basic Γλώσσα οπτικού

02 Αντικειμενοστρεφής Προγραμματισμός

Η γλώσσα προγραμματισμού C

Περιεχόμενα ΜΕΡΟΣ ΠΡΩΤΟ. Πρόλογος... 13

ΚΑΤΑΝΟΗΣΗ ΑΝΑΛΥΣΗ ΕΠΙΛΥΣΗ. Ο προγραμματισμός ασχολείται με το σύνολο των εντολών που δίνονται στον υπολογιστή ώστε να υλοποιείται ο αλγόριθμος.

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΗΣ ΠΡΑΓΜΑΤΙΚΟΥ ΧΡΟΝΟΥ ΓΙΑ ΕΠΙΚΟΙΝΩΝΙΑ ΠΕΛΑΤΩΝ ΜΕΣΩ ΙΑ ΙΚΤΥΟΥ

Cloud Computing with Google and Microsoft. Despoina Trikomitou Andreas Diavastos Class: EPL425

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Αλγοριθμική και Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 12 : ΜΙΚΡΟΕΦΑΡΜΟΓΕΣ (APPLETS)

Information Technology for Business

ΘΕΜΑΤΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Εισαγωγικές έννοιες. Ιωάννης Γ. Τσούλος 2014

Κεφάλαιο 6 ο. Διαχείριση στοιχείων λογισμικού

(Logic Gate Simulator)

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Διάλεξη #1 η : Εισαγωγή: Λογισμικό, Γλώσσες Προγραμματισμού, Java

Δομημένος Προγραμματισμός

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Κεφάλαιο 6 Λογισμικό Εφαρμογών. Εφαρμογές Πληροφορικής Κεφ.6 Καραμαούνας Πολύκαρπος 1

Βασικές Έννοιες Web Εφαρμογών

ΚΕΦΑΛΑΙΟ 1. Εισαγωγή στην Python. 1.1 Εισαγωγή

Πανεπιστήµιο Πειραιά Τµήµα Εκπαιδευτικής Τεχνολογίας και Ψηφιακών Συστηµάτων. Εισαγωγή στη γλώσσα προγραµµατισµού. Java. Βασίλειος Βεσκούκης

<<ΔΗΜΗΤΡΗΣ ΜΑΝΩΛΗΣ ΦΥΣΙΚΟΣ ΜCs>> 1


ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς

Αρχές Τεχνολογίας Λογισμικού Εργαστήριο

Βασίλειος Κοντογιάννης ΠΕ19

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Κεφάλαιο 1. Νήματα (Threads). Time Sharing

Το λειτουργικό σύστημα. Προγραμματισμός II 1

Προγραμματισμός Διαδικτύου

Αρχιτεκτονικές Υπολογιστών

Transcript:

ΣΧΕ ΙΑΣΗ & ΑΝΑΠΤΥΞΗ ΛΟΓΙΣΜΙΚΟΥ A Εξαµήνου Μεταπτυχιακού ΠρογράµµατοςσταΠληροφοριακάΣυστήµατα http://macedonia.uom.gr/~misprog1 Πρόγραµµα Μαθηµάτων : ΤΡΙΤΗ 19:00 21:30, Εργαστήριο MIS 4oς όροφος Λογ. & Χρηµ/κής Εαρινό εξάµηνο 2003-2004 ιδάσκουσες : Μ. Σατρατζέµη - Α. Βακάλη

Περιεχόµενα Μαθήµατος (1) Εισαγωγή στην Τεχνολογία Java Βασικός Προγραµµατισµός σε Java Είδη Εφαρµογών Java Αντικειµενοστραφής Προγραµµατισµός και Java Κλάσεις στη Java Γραφικές διεπαφές χρηστών

Περιεχόµενα Μαθήµατος (2) Προγραµµατισµός µε Java στο ιαδίκτυο ιαχείριση Σφαλµάτων ιαχείριση Γεγονότων και GUI Νήµατα Τεχνικές Εισόδου-Εξόδου. Σύστηµα Ι/Ο Οι εξαιρέσεις στην Java.

ιδακτικό Υλικό Βασικό Βιβλίο Μαθήµατος : Γιώργος Λιακέας, " Εισαγωγή στην Java", Εκδόσεις Κλειδάριθµος, 2001 J. Bishop, "Java Gently", 3rd edition, Addison-Wesley, 2001. B. Cornelius, "Understanding Java", Addison-Wesley, March 2001. Σηµειώσεις (Σε ηλεκτρονική µορφή.pdf, στο: http://www.csd.auth.gr/~avakali/uom/shmeiwseis.pdf ανάγνωση µε Acrobat Reader, δωρεάν στο www.adobe.com ) Thinking in Java, 2nd edition, Revision 11 2000 by Bruce Eckel (http://www.mindview.net/tij2/index.html) Deitel & Deitel, "JAVA, How to Program", 2 nd ed., Prentice Hall, 1997 D.Bell and M.Parr, "JAVA for Students", Prentice Hall, 1997

Τι είναι η Java; Πλατφόρµα Java Γλώσσα Προγραµµατισµού Java (νέα, αντικειµενοστραφής, παράγει ενδιάµεσο κώδικα µηχανής) (λογισµικό ή και υλικό που υποστηρίζει την εκτέλεση προγραµµάτων Java) Τεχνολογία Java (αρχιτεκτονική, προδιαγραφές, υλοποίηση πλατφόρµας, εργαλείων ανάπτυξης εφαρµογών Java)

JAVA : µια σύντοµη ιστορική αναδροµή (1) Από πού προέρχεται το όνοµα JAVA ; Το όνοµα JAVA επιλέχθηκε από την οµάδα σχεδίασης και ανάπτυξης αυτής της γλώσσας. Η οµάδα αυτή ήθελε να βρει ένα όνοµα που να έχει µια τεχνολογική χροιά αλλά και µία «αίσθηση» ανανέωσης, κινητικότητας και επικοινωνίας. Έτσι το όνοµα JAVA δεν είναι ένα ακρωνύµιο αλλά αναφέρεται στο είδος του ζεστού και αρωµατικού καφέ από την Ιάβα που πίνουν σε µεγάλες ποσότητες κατά την εργασία τους οι προγραµµατιστές, ειδικά στις Η.Π.Α. Η Java ξεκίνησε από την εταιρία Sun το 1991 στα πλαίσια ενός ερευνητικού προγράµµατος που είχε θέµα την ανάπτυξη λογισµικού για δικτυωµένες κοινές ηλεκτρονικές συσκευές καθηµερινής χρήσης (τηλεοράσεις, video, τοστιέρες κλπ).

JAVA : µια σύντοµη ιστορική αναδροµή (2) Η Java χρησιµοποιήθηκε από την Sun σε διάφορα ενδο-εταιρικά αναπτυξιακά και ερευνητικά της έργα χωρίς να αποκτήσει ιδιαίτερο εµπορικό ενδιαφέρον ως το 1994 οπότε και αναπτύχθηκε σε διάστηµα λίγων µηνών το πρόγραµµα πλοήγησης HotJava που έδωσε τη δυνατότητα της εκτέλεσης και µεταφοράς των Java εφαρµογών. Παράλληλα αναπτύχθηκε υποστηρικτικό υλικό που αποτέλεσε το πακέτο ανάπτυξης Java εφαρµογών (Java Developer s Kit - JDK), το οποίο περιλαµβάνει ένα σύνολο εργαλείων για την ανάπτυξη των Java εφαρµογών. Σήµερα κυκλοφορεί η πλατφόρµα έκδοσης Java 2 από την εταιρία Sun η οποία περιλαµβάνει και το πρόγραµµα επισκόπησης των µίνι-εφαρµογών (appletviewer) που δίνει τη δυνατότητα ελέγχου των Java εφαρµογών κατά τη σύνταξη τους

JAVA : µια σύντοµη ιστορική αναδροµή (3) Στη Java 2 υπάρχει προσανατολισµός και προς τις επιχειρηµατικές δραστηριότητες µε µεγαλύτερη ευρύτητα και ασφάλεια στην ανάπτυξη και υλοποίηση διαδικτυακών εφαρµογών. Προβλέπεται υποστήριξη διαφορετικών εκδόσεων σχετικά µε το είδος των εφαρµογών: µία έκδοση για µικρο συσκευές (Micro edition), µία έκδοση για υπολογιστικές συσκευές γραφείου (Standard edition) και µία έκδοση για συστήµατα εξυπηρετών και σταθµούς εργασίας που είναι συνήθως εγκατεστηµένοι σε επιχειρηµατικά περιβάλλοντα (Enterprise edition).

Πλατφόρµα Java Γλώσσα προγραµµατισµού Application Programming Interface (API): βιβλιοθήκες compiled code προς χρήση Java Virtual Machine (JavaOS, JavaChip)

Java API Στάνταρτ Interface ανάµεσα σε εφαρµογές και λειτουργικό σύστηµα, µέσω JVM. Συµπεριλαµβάνει τα: Java Core API (utilities, I/O, network, GUI) Java Standard Extension API (Security, 3D, Telephony, Management κλπ

Java Virtual Machine Ένας virtual Η/Υ Παράδειγµα εντολών(iadd, ladd, fload, bipush) Oρίζει format των binary αρχείων (.class files), τα οποία περιέχουν εντολές για τον virtual Η/Υ σε µορφή bytecodes Τα bytecodes χρησιµοποιούνται από την JVM για βελτιστοποίηση και παραγωγή native machine code

Πλατφόρµα Java

ύο Βασικοί Τύποι Εφαρµογών Java Εφαρµογές (applications): Stand-alone προγράµµατα που τρέχουν από το command line µέσω του Java interpreter και έχουν main method Μίνι-εφαρµογές (applets): Προγράµµατα ενσωµατωµένα σε ιστοσελίδες που εκτελούνται µόλις «ανοίξει» η σελίδα. Εκτελούνται από Java enabled web browsers και δεν περιέχουν main method

Μίνι - εφαρµογή ( applet ) : Ορισµός Οι σύγχρονες ιστοσελίδες απαιτείται να είναι πιο αποδοτικές, µε δυνατότητα διαλογικών στοιχείων και κυρίως µε δυνατότητα ενσωµάτωσης εφαρµογών. Έτσι, προέκυψε ένα νέο είδος εφαρµογών, οι επονοµαζόµενες µίνι-εφαρµογές ή applets. Με τον όρο µίνιεφαρµογή (applet) αναφερόµαστε στις εφαρµογές που έχουν γραφεί στη γλώσσα προγραµµατισµού Java και µπορούν να συµπεριληφθούν σε µία ιστοσελίδα. Η ενσωµάτωση µίας µίνι-εφαρµογής σε µία ιστοσελίδα γίνεται µε παρόµοιο τρόπο όπως και η ενσωµάτωση µίας εικόνας σε µία ιστοσελίδα. Η γενική ιδέα είναι ότι κατά την επίσκεψη (µέσω κατάλληλου browser) µίας ιστοσελίδας που περιέχει Java µίνι εφαρµογές, µεσολαβεί µία διαδικασία µεταφοράς του κώδικα της µίνιεφαρµογής στο σύστηµα σας και εκτέλεση της από το browser..

Τρόπος λειτουργίας JAVA Εφαρµογών (1) Τι είναι το JVM Το ακρωνύµιο JVM προέρχεται από τα αρχικά των λέξεων Java Virtual Machine και αναφέρεται στο είδος µετατροπής του Java κώδικα σε κώδικα ανεξάρτητο συσκευών. JAVA JVM

Τρόπος λειτουργίας JAVA - Εφαρµογών (2) Τα Java προγράµµατα έχουν τη δυνατότητα να εκτελούνται σε διαφορετικά υπολογιστικά συστήµατα κυρίως λόγω ενός συνθετικού του Java περιβάλλοντος που είναι γνωστό µε το όνοµα Java ιδεατή µηχανή (JVM). H ιδεατή µηχανή της Java δίνει τη δυνατότητα µετάφρασης του κώδικα σε ένα σύνολο εντολών που είναι ανεξάρτητο της συσκευής στην οποία θα εκτελεσθεί το Java πρόγραµµα. Ο Java κώδικας σχεδιάζεται για την ιδεατή µηχανή και ο JVM έχει την αρµοδιότητα µετατροπής του κώδικα στις εντολές που η κάθε συσκευή µπορεί να κατανοήσει και να εκτελέσει.

Πλήρης Ανεξαρτησία Πλατφόρµας JAVA COMPILER (translator) JAVA BYTE CODE (same for all platforms) JAVA INTERPRETER (one for each different system) Windows 95 Macintosh Solaris Windows NT

Κώδικας compiler ( Pentium ) binary file compiler ( Power PC ) binary file compiler ( Sparc ) binary file

Κώδικας compiler ( Pentium ) java interpeter ( Pentium ) compiler ( Power PC ) JAVA Byte- Code java interpeter (Power PC ) compiler ( Sparc ) java interpeter (Sparc )

Hardware Java Environment / Life Cycle of Java Code Compile-time Environment Java Source (.java) Runtime Environment Class Loader Bytecode Verifier Java Class Libraries Java Compiler Java Bytecodes move locally or through network Java Interpreter Runtime System Just in Time Compiler Java Virtual machine Java Bytecode (.class ) Operating System

Lifecycle of Java Code

Παράδειγµα Byte codes lass vector { int arr[]; int sum() { int la[] = arr; int S = 0; for (int i=la.length;--i>=0;) S += la[i]; return S;}}

Security Manager Εµποδίζει την µη εξουσιοδοτηµένη πρόσβαση στο δίσκο (read/writes), περιορίζει την πρόσβαση στο δίκτυο και θέτει άλλους περιορισµούς (native methods) Για applets ξενικά αυτόµατα, αλλιώς πρέπει να οριστεί από την εφαρµογή Η φόρτωση κλάσεων από εξωτερικές πηγές (εκτός CLASSPATH) χωρίς την ύπαρξη security manager δεν είναι δυνατή

Χαρακτηριστικά της γλώσσας Java Simple : απλοποίηση πολλών σύνθετων χαρακτηριστικών της C++ (π.χ. operator overloading, multiple inheritance) Προσθήκη νέων τεχνικών διευκόλυνσης προγραµµατισµού (π.χ. garbage collection from heap). Μικρότερο µέγεθος κώδικα σε σχέση µε C++. Network-Savvy : η Java διαθέτει εκτενή βιβλιοθήκη ρουτινών για τις λειτουργίες του πρωτόκολλου TCP/IP (HTTP and FTP ).Ετσι οι υπηρεσίες δικτύου είναι πολύ ευκολότερες από ότι στη C και C++. Οι Java εφαρµογές µπορούν να έχουν πρόσβαση σε αντικείµενα του δικτύου µέσω URLs µε τον ίδιο τρόπο που έχουν πρόσβαση σε κάποιο τοπικό αρχείο.

Χαρακτηριστικά (συνέχεια) Robust : η Java σχεδιάστηκε για προγράµµατα που πρέπει να είναι αξιόπιστα (strong typing, compile-time & run-time checking, strict pointer model, exception handling) Secure : η Java σχεδιάστηκε για networked /distributed περιβάλλοντα κι έτσι έχει δοθεί µεγάλη βαρύτητα στην ασφάλεια (bytecode verification, PK-encryption based authentication, applet-sandboxing). Architecture Neutral & portable: Ο compiler παράγει architecture-neutral object κώδικα (bytecodes) που είναι εκτελέσιµος από πολλά είδη επεξεργαστών. Το µέγεθος και format των βασικών τύπων δεδοµένων είναι ορισµένο.

Χαρακτηριστικά (συνέχεια) Interpreted: οι Java bytecodes µεταφράζονται τη τρέχουσα στιγµή (on the fly ) σε εντολές µηχανής και δεν αποθηκεύονται κάπου. Ετσι η διαδικασία ανάπτυξης γίνεται πολύ γρηγορότερα. Multithreaded: Υποστηρίζεται ο πολυ-νηµατισµός (Multithreading ) απευθείας από τη γλώσσα (απαιτείτι βέβαια ιδιαίτερη µέριµνα στη συγγραφή του κώδικα). Non-real-time: Ακατάλληλη για εφαρµογές πραγµατικού χρόνου, λόγω ανεξέλεγκτου garbage-collection, και ελλιπούς σηµασιολογίας της διαχείρισης νηµάτων.

Σύγκριση Αντικειµενοστραφών Γλωσσών Feature C++ Objective C Ada Java Encapsulation Yes Yes Yes Yes Inheritance Yes Yes No Yes Multiple Inherit. Yes Yes No No Polymorphism Yes Yes Yes Yes Binding (Early/Late) Both Both Early Late Concurrency Poor Poor Difficult Yes Garbage Collection No Yes No Yes Class Libraries Yes Yes Limited Yes

Ξεκίνηµα µε την Java Java Development Kit javac - The Java Compiler java - The Java Interpreter Jdb - The Java Debugger appletviewer -Tool to run the applets javap - to print the Java bytecodes javaprof - Java profiler javadoc - documentation generator javah - creates C header files

ιαθέσιµο σήµερα : J2SE 1.4.2 Download Java 2 Platform, Standard Edition, v 1.4.2 (J2SE) http://java.sun.com/j2se/1.4.2/download.html JavaTM 2 SDK, Standard Edition, version 1.4.2 Summary of New Features and Enhancements http://java.sun.com/j2se/1.4.2/docs/relnotes/features.html

Java Development Kit - 1 χρόνος πριν : Φεβρουάριος 2003 http://java.sun.com/j2se/1.3/images/standard.sdk.html

Αρχιτεκτονική της Java Πλατφόρµας 2, έκδοση 1.4

Java πλατφόρµα 2, Έκδοση 1.3. 2 χρόνια πριν Φεβρουάριος 2002 http://java.sun.com/j2se/1.3/images/standard.sdk.html

SDK Java(TM) 2 SDK, Standard Edition, v1.3, for MS Windows αρχείο j2sdk-1_3_1_02-win.ex IDE Integrated Development Environments JBuilder, Borland Visual Café, Symantec Java Workshop, Sun

ηµιουργία µίας Java εφαρµογής Βήµα 1 : ηµιουργία πηγαίου κώδικα σε Java hello.java hello.java class hello { public static void main (String args[ ]) { System.out.println( Hello World!!! ); } } Βήµα 2 : Μεταγλώττιση ήµα 3 : Εκτέλεση java hello javac hello.java hello.class Hello World!!!

ηµιουργία µίας Java µίνι- εφαρµογής Η διαδικασία ανάπτυξης των µίνι-εφαρµογών περιλαµβάνει τα παρακάτω στάδια 1. σύνταξη του προγράµµατος, δηµιουργία.java αρχείου 2. µετάφρασή του µε τον javac, δηµιουργία.class αρχείου 3. αναφορά της εφαρµογής σε όλα τα html αρχεία των Web σελίδων µέσω των οποίων θα εκτελείται από κάθε αναγνώστη στο τοπικό του µηχάνηµα 4. Οι html σελίδες εγκαθίστανται σε κάποιον Web κόµβο. Όταν κάποιος χρήστης αναφέρεται στη συγκεκριµένη html σελίδα µέσω κάποιου προγράµµατος πλοήγησης, βλέπει την εκτέλεση της αναφερόµενης Java εφαρµογής. Αυτό γίνεται διότι το πρόγραµµα πλοήγησης κατεβάζει (downloads) την εφαρµογή στο τοπικό σύστηµα και την εκτελεί τοπικά ώστε ο χρήστης να δει το αποτέλεσµα της εκτέλεσης της.

Εκτέλεση µίνι-εφαρµογών 1 2 3 4 5 Remote Access APPLET Development hello.java Hello Java hello.class AT WEB SERVER <app= Hello > Create Applet tag in HTML documen t The Internet The browser creates a new window and a new thread and then runs the code Hello

Παράδειγµα µίας Java µίνι- εφαρµογής (1) import java.awt.graphics; public class HelloWorldApplet extends java.applet.applet { Public void paint (Graphics g) { g.drawstring ( Γειά σου, κόσµε!, 5, 25); } } HelloWorld Applet java import εντολή (ανάλογη της #include της C) επιτρέπει στην µίνι-εφαρµογή την πρόσβαση στις κλάσεις του JDK πακέτου που αφορούν στη δηµιουργία µίνιεφαρµογών και στη χρήση γραφικών στην οθόνη. µετάφραση µε την εντολή : javac HelloWorld Applet.java οποία δηµιουργεί το αρχείο HelloWorldApplet.class ήλωση της εφαρµογής στη Web σελίδα που την αφορά.

Παράδειγµα µίας Java µίνι- εφαρµογής (2) Για να εκτελεστεί η µίνι-εφαρµογή και να δούµε τα αποτελέσµατα χρειάζεται το κατάλληλο πρόγραµµα πλοήγησης που να υποστηρίζει την Java. Επίσης υπάρχει η δυνατότητα να δούµε τα αποτελέσµατα µίας µίνι-εφαρµογής µε χρήση του εργαλείου appletviewer που περιέχεται στο πακέτο JDK. Η εντολή για να χρησιµοποιήσουµε αυτό το εργαλείο είναι : appletviewer HelloWorldApplet.html <HTML> <HEAD><TITLE> Hello to the World </ TITLE></HEAD> <BODY> Η Java εφαρµογή µας παρουσιάζει το µήνυµα : <APPLET CODE= HelloWorldApplet.class WIDTH=150 HEIGHT=25> </ APPLET> </BODY></HTML>

Παράδειγµα 2 : H µίνι εφαρµογή Το ΡΟΛΟΙ 1. Η µίνι-εφαρµογή αυτή βρίσκεται στην ιστοσελίδα http://www.javasoft.com/openstudio/applets/clock.html

Παράδειγµα 2 : ΠΑΡΑΜΕΤΡΟΙ -H µίνι εφαρµογή Το ΡΟΛΟΙ ΠΑΡΑΜΕΤΡΟΙ Bgcolor Ncolor Ccolor Nradius: Border Cfont Hhcolor link Delay Shcolor Mhcolor The background color of the applet in RGB hexadecimal. The color of the numbers in RGB hexadecimal. The color of the clock in RGB hexadecimal. The radius in pixels at which to draw the clock numbers. The surrounding clock border in pixels. A " " delimited string that represents the name, type (PLAIN,BOLD, ITALIC), and the point size of the clock number font. The color of the hour hand in RGB hexadecimal URL to load if the applet is clicked. The delay between frames in milliseconds The color of the second hand in RGB hexadecimal The color of the minute hand in RGB hexadecimal.

Παράδειγµα 2 : Η ετικέτα APPLET για Το ΡΟΛΟΙ APPLET codebase="classes" code="javaclock.class" width="150" height="150" > param name="bgcolor" value="ffffff"> param name="border" value="5"> param name="ccolor" value="dddddd"> param name="cfont" value="timesroman BOLD 18"> param name="delay" value="100"> param name="hhcolor" value="0000ff"> param name="link" value="http://java.sun.com/"> param name="mhcolor" value="00ff00"> param name="ncolor" value="000000"> param name="nradius" value="80"> param name="shcolor" value="ff0000"> /APPLET> θα έχουµε την εµφάνιση ενός ρολογιού µε γαλάζιο φόντο, µπλε και γκρι, κόκκινο δείκτη δευτερολέπτων, πράσινο δείκτη λεπτών και σκούρο µπλε δείκτη των ωρών ενώ οι αριθµοί για τις ώρες θα είναι σε µαύρο χρώµα

Παράδειγµα 2 : Το ΡΟΛΟΙ από browsers

Κατηγορίες JAVA Εφαρµογών (1) JAVA και εµπορικές εφαρµογές Επιχειρήσεις τόσο του ηµόσιου όσο και του Ιδιωτικού φορέα χρησιµοποιούν την Java για την υποστήριξη των δραστηριοτήτων τους : η Ταχυδροµική Υπηρεσία των Η.Π.Α. χρησιµοποιεί τη Java τεχνολογία για την υποστήριξη συµπλήρωση φορµών µε άµεσο ηλεκτρονικό τρόπο (online) ώστε να πετυχαίνει τη γρηγορότερη διαχείριση του µεγάλου όγκου εργασιών της. Τον περασµένο χρόνο η εταιρία 21 st Century Telecom κέρδισε περί τα 300 εκατοµµύρια δολάρια λόγω της εγκατάστασης ενός Java κέντρου για την υποστήριξη του δικτύου οπτικών ινών της. Η εταιρία αυτοκινήτων Saab διαθέτει ένα σύστηµα πώλησης βασισµένο στη Java τεχνολογία για να επιτρέπει στους πωλητές να διαχειρίζονται τις πωλήσεις, την ασφάλειες, τις εγγυήσεις κλπ Η αλυσίδα εµπορικών πολυκαταστηµάτων Service Merchandise υποστηρίζει µία Java εφαρµογή για την ηλεκτρονική παρακολούθηση παραγγελιών και τη διάθεση του καταλόγου της µε online τρόπο.

Κατηγορίες JAVA Εφαρµογών (2) JAVA και επιστηµονικές εφαρµογές Το διαστηµικό τηλεσκόπιο Hubble η διαθέτει ένα σύστηµα κέντρου ελέγχου το οποίο αποτελείται από µία συλλογή Java µίνι εφαρµογών που επιτρέπει στους επιστήµονες και τους µηχανικούς να ρυθµίζουν και να ελέγχουν το τηλεσκόπιο Hubble από τη γη. Η κυβερνητική διαστηµική υπηρεσία των Η.Π.Α.(NASA) κατασκεύασε µία συσκευή µε το όνοµα Ιχνηλάτης (Mars Pathfinder) που προσεδαφίστηκε στον πλανήτη Άρη τον Ιούνιο του 1997. Ο έλεγχος και η διαχείριση της ροµποτικής αυτής συσκευής γινόταν µέ χρήση Java µίνι εφαρµογών που αναπτύχθηκαν ειδικά για αυτό τον σκοπό. Στο Πανεπιστήµιο Harvard των Η.Π.Α έχει σχεδιαστεί και είναι σε στάδιο πιλοτικής λειτουργίας, ένα σύστηµα ενοποίησης της δήλωσης και υποστήριξης µαθηµάτων, Πανεπιστηµιακών υπηρεσιών και σχεδιασµού σπουδών. Οι ερευνητικές προσπάθειες και τα εργαλεία απεικόνισης δοµών και συστατικών στη γενετική έχει διευκολυνθεί από σχετικό Java λογισµικό που έχει βελτιώσει τον τρόπο αναπαράστασης και την αποµακρυσµένη πρόσβαση σε δεδοµένα της γενετικής έρευνας που µεταβάλλονται µε δυναµικό, σύνθετο και πολύπλοκο ρυθµό.