ebook img

Εισαγωγή στη Γλώσσα Προγραμματισμού Java PDF

302 Pages·2015·13.814 MB·Greek
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Εισαγωγή στη Γλώσσα Προγραμματισμού Java

Εργαστήριο Τεχνολογίας Πολυμέσων ΕΜΠ Εισαγωγή στη Γλώσσα Προγραμματισμού Java Εργαστήριο Τεχνολογίας Πολυμέσων ΕΜΠ 1.5 Πηγές Γνώσης 1. Βιβλιογραφία Το βιβλίο που έχετε ήδη προμηθευτεί είναι ένα πολύ καλό βιβλίο για εκμάθηση της Java από αρχάριους και θα σας βοηθήσει αρκετά στην πορεία του εξαμήνου. Στην αγορά υπάρχει υπερπληθώρα επιλογών για όποιον ενδιαφέρεται να προμηθευτεί έναν ακόμα τίτλο. Ένα από τα καλύτερα βιβλία (ξενόγλωσσο) που έχουν γραφτεί για την Java είναι το: • Effective Java (2nd Edition), Joshua Bloch, Pearson Education, 2008 Για όσους ενδιαφέρονται να συμμετέχουν στο τεστ πιστοποίησης της Sun, ένας δεύτερος εξειδικευμένος τίτλος θα βοηθήσει πάρα πολύ. Τα παρακάτω βιβλία έχουν γραφτεί με γνώμονα την προετοιμασία του υποψηφίου για το τεστ και αποτελούν εξαιρετικό βοήθημα. • SCJP Sun Certified Programmer for Java 6 Study Guide, Katherine Sierra, McGraw-Hill, 2008 • Programmer's Guide to Java SCJP Certification: A Comprehensive Primer, Khalid Mughal, Addison Wesley, 2008 2. Online παραδείγματα Στο διαδίκτυο οι πηγές που σχετίζονται με την εκμάθηση της Java είναι πραγματικά αμέτρητες. Ένα καλό site με tutorial στα Ελληνικά είναι το: http://conta.uom.gr/conta/ekpaideysh/seminaria/Tutorials-Java.html 3. Websites Το site της Sun Microsystems για τη Java ήταν και παραμένει το σημείο αναφοράς σε ό,τι έχει να κάνει με τη γλώσσα Java. Στο site αυτό θα βρείτε κάθε είδους υλικό συμπεριλαμβανομένων online παραδειγμάτων, άρθρων, case studies, software, τεκμηρίωσης κλπ. Η διεύθυνση είναι: http://www.oracle.com/technetwork/java/index.html 1.6 Ιστορία της Java Η ανάπτυξη της Java ξεκίνησε το 1991, όταν στην Sun Microsystems βρίσκονταν σε αναζήτηση ενός κατάλληλου εργαλείου που θα μπορούσε να χρησιμοποιηθεί ως πλατφόρμα ανάπτυξης λογισμικού για «έξυπνες» μικροσυσκευές. Οι αρχικοί πειραματισμοί έγιναν από τον James Gosling (ο πατέρας της Java) κάνοντας χρήση της C++ η οποία όμως έδειχνε να είναι ακατάλληλη. Ως συνέπεια, ο Gosling αποφάσισε να πειραματιστεί με τη δημιουργία μιας νέας γλώσσας η οποία θα έφερε αρκετά από τα χαρακτηριστικά της C++ και θα προσέθετε τα χαρακτηριστικά εκείνα που χρειάζονταν για τον προγραμματισμό μικροσυσκευών. Ύστερα από μία σειρά ενδιάμεσων γλώσσων (C++ ++) καταλήγει στην Oak (βελανιδιά). Η γλώσσα ονομάστηκε έτσι από μία βελανιδιά που βρισκόταν έξω από το γραφτείο του και που έβλεπε καθημερινά. Η συγκεκριμένη γλώσσα διατηρούσε μεγάλη συγγένεια με τη C++ αλλά είχε πιο έντονο αντικειμενοστρεφή χαρακτήρα και χαρακτηριζόταν από την απλότητά της. Όταν λίγο αργότερα η ομάδα ανάπτυξης της Oak ενημερώνεται πως το συγκεκριμένο όνομα είναι ήδη κατοχυρωμένο Εισαγωγή στη Γλώσσα Προγραμματισμού Java 9 Εργαστήριο Τεχνολογίας Πολυμέσων ΕΜΠ αναγκάζεται να την μετονομάσει σε Java (είδος καφέ). Το όνομα προέκυψε από τις συχνές συναντήσεις τους σε τοπικές καφετέριες. Τη δεδομένη χρονική περίοδο το project δείχνει να βρίσκεται σε αδιέξοδο μιας και ο αρχικός στόχος που ήταν η προώθηση μικροσυσκευών δεν έχει κεντρίσει το ενδιαφέρον των επενδυτών και συνεπώς δεν υπάρχει χρηματοδότηση, ενώ η αγορά την περίοδο εκείνη δείχνει να κινείται σε διαφορετικές κατευθύνσεις. Το ηθικό της ομάδας βρίσκεται στο ναδίρ και ενώ η Sun είναι έτοιμη να εγκαταλείψει το project, μια ευτυχής συγκυρία δημιουργείται με το ξεπέταγμα και την ευρεία διάδοση του internet. Οι ιθύνοντες του project βλέπουν αμέσως την ευκαιρία που τους παρουσιάζεται και κάνουν στροφή στο project προσαρμόζοντας τη γλώσσα στις νέες απαιτήσεις που δημιουργούνται για την ανάπτυξη διαδικτυακών εφαρμογών. Έτσι, το 1996 έχουμε την πρώτη επίσημη παρουσίαση της Java από την Sun Microsystems, όπου τυγχάνει ευρείας αποδοχής. Γνωρίζοντας πως η δημιουργία προτύπου είναι απαραίτητη για κάθε σοβαρή γλώσσα προγραμματισμού, η Sun προσεγγίζει την επιτροπή ISO με σκοπό τη δημιουργία ενός τέτοιου standard για τη Java, αλλά για άγνωστους λόγους σύντομα αποσύρεται. Από εκείνη τη στιγμή και έως σήμερα, η Java παραμένει αυτό που στη βιομηχανία ονομάζεται de facto standard. Το 1998 παρουσιάζεται η έκδοση 2 της Java η οποία περιέχει αρκετές προσθήκες σε σχέση με την πρώτη έκδοση. Από πολλούς προγραμματιστές ακόμη και σήμερα, η συγκεκριμένη έκδοση θεωρείται και η καλύτερη. Η επόμενη έκδοση της Java θα καθυστερήσει έξι χρόνια, αλλά το 2004 θα γίνει η επίσημη παρουσίαση της έκδοσης 5 με την κωδική ονομασία Tiger. Δύο χρόνια αργότερα (2006) λανσάρεται η Java 6 με κωδική ονομασία Mustang, που είναι και η πιο πρόσφατη. Τέλος, το 2007 η Sun Microsystems αποφασίζει να κάνει όλον τον πηγαίο κώδικα της Java open source με μοναδική εξαίρεση ένα μικρό κομμάτι, του οποίου τα πνευματικά δικαιώματα δεν κατείχε η ίδια. 1.7 Χαρακτηριστικά της Java Τα πιο βασικά χαρακτηριστικά της Java είναι τα ακόλουθα: • Είναι σχετικά απλή: Το συγκεκριμένο χαρακτηριστικό αναφέρεται σε πολλές πηγές σχετικές με τη γλώσσα Java, αλλά είναι καθαρά υποκειμενικό. Η Java είναι όσο απλή μπορεί να είναι μία γλώσσα προγραμματισμού. Συγκρινόμενη με τη C++, είναι απλούστερη μιας και έχει εξαλειφθεί η χρήση δεικτών (pointers) ενώ η διαχείριση της μνήμης γίνεται από την ίδια τη γλώσσα. • Είναι μεταγλωττιζόμενη (compiled) και ερμηνευόμενη (interpreted): Σε αντίθεση με τις C/C++ που είναι compiled γλώσσες, η διαδικασία παραγωγής εκτελέσιμου κώδικα στη Java κάνει χρήση και των δύο αυτών τεχνικών. Η διαδικασία αυτή περιγράφεται αναλυτικά σε επόμενη υποενότητα. • Είναι αμιγώς αντικειμενοστρεφής (pure OOD): Η Java υποστηρίζει αποκλειστικά το μοντέλο αντικειμενοστρεφούς προγραμματισμού (object-oriented paradigm) και δεν υπάρχει δυνατότητα χρήσης της σύμφωνα με κάποιο άλλο μοντέλο (π.χ. διαδικαστικό). • Είναι φορητή σε επίπεδο μεταγλωττισμένου κώδικα: Ένα από τα πιο ισχυρά χαρακτηριστικά της Java. Αυτό πρακτικά σημαίνει πως ένας προγραμματιστής μπορεί να γράψει και μεταγλωττίσει ένα πρόγραμμα π.χ. σε Windows και στη συνέχεια να πάρει το αρχείο που παράχθηκε από τη μεταγλώττιση και να το τρέξει σε ένα μηχάνημα Unix χωρίς καμία αλλαγή. Εισαγωγή στη Γλώσσα Προγραμματισμού Java 10 Εργαστήριο Τεχνολογίας Πολυμέσων ΕΜΠ Απαραίτητη προϋπόθεση είναι στο μηχάνημα αυτό (Unix) να είναι εγκατεστημένο το αντίστοιχο JRE. • Κάνει αυστηρό έλεγχο τύπων (strongly typed): Η Java απαιτεί από τον προγραμματιστή να κάνει σωστή χρήση των τύπων (περισσότερα για τους τύπους στην ενότητα 2) και δεν επιτρέπει αυθαίρετες μετατροπές όπως οι C/C++. • Είναι γλώσσα υψηλού επιπέδου: Η εκμάθηση της Java και η σύνταξη κώδικα είναι σχετικά απλή μιας και η γλώσσα κάνει χρήση λέξεων που βρίσκονται πιο κοντά στη φυσική γλώσσα (Αγγλικά) παρά στη γλώσσα μηχανής. • Παρέχει υψηλό επίπεδο ασφάλειας: Η εκτέλεση προγραμμάτων ελέγχεται από μηχανισμούς ασφαλείας που αποτρέπουν την κακόβουλου κώδικα. • Υποστηρίζει πολυμέσα: Η Java είναι από τις ελάχιστες γλώσσες της κατηγορίας που παρέχουν έμφυτη υποστήριξη για την ανάπτυξη πολυμεσικών (multimedia) εφαρμογών. • Είναι κατάλληλη για προγραμματισμό δικτυακών εφαρμογών: Όπως αναφέρθηκε σε προηγούμενη υποενότητα, η Java διευκολύνει την υλοποίηση τόσο δικτυακών (network) όσο και διαδικτυακών (web) εφαρμογών. • Υποστηρίζει πολυνηματική επεξεργασία (multi-threaded processing): Και στην περίπτωση αυτή, η Java είναι μία από τις ελάχιστες γλώσσες της κατηγορίας της που παρέχει έμφυτη υποστήριξη για την ανάπτυξη multi-threaded εφαρμογών. • Κάνει αυτόματη διαχείριση μνήμης: Στη Java, η διαχείριση της μνήμης ελέγχεται αποκλειστικά από αυτήν μέσω ενός υποπρογράμματος που ονομάζεται garbage collector (αποκομιστής απορριμάτων) και ο προγραμματιστής δεν εμπλέκεται ποτέ στη διαδικασία αυτή. • Είναι δυναμική: Προσαρμόζεται εύκολα σε διαφορετικά περιβάλλοντα και απαιτήσεις και είναι ιδανική για τη διασύνδεση και επικοινωνία ετερογενών συστημάτων. Η Java ενημερώνεται συνεχώς ενσωματώνοντας και υποστηρίζοντας τις τελευταίες τεχνολογικές εξελίξεις. • Κάνει αποκλειστική χρήση της δυναμικής διασύνδεσης (dynamic binding): Στη Java η διασύνδεση των δεδομένων και των μεθόδων που αυτά υποστηρίζουν γίνεται κατά την εκτέλεση του προγράμματος (run-time). Γενικά, η φιλοσοφία της γλώσσας όσον αφορά το προγραμματιστικό μοντέλο που υιοθετεί είναι πως ο προγραμματιστής θα πρέπει να προστατεύεται από τη γλώσσα και τα προγράμματα να είναι ασφαλή και αξιόπιστα. Η Java έχει αντλήσει όλη τη συσσωρευμένη γνώση και εμπειρία προγραμματισμού συστημάτων και έχει ενσωματώσει τις σωστές πρακτικές προγραμματισμού με αποτέλεσμα να θεωρείται σήμερα από πολλούς η πιο ολοκληρωμένη και καλά δομημένη γλώσσα της αγοράς. Δεν είναι άλλωστε τυχαίο πως είχε ευρεία αποδοχή αμέσως μετά από το λανσάρισμά της ενώ στις ημέρες μας η συντριπτική πλειονότητα των business projects παγκοσμίως υλοποιούνται σε Java. Εξαίρεση αποτελούν οι εφαρμογές όπου η ταχύτητα εκτέλεσης αποτελεί παράγοντα υψίστης σημασίας όπως π.χ. games, λειτουργικά συστήματα, βάσεις δεδομένων κλπ. Η ταχύτητα παραμένει η Αχίλλειος πτέρνα της Java παρά τις διάφορες βελτιώσεις που έχουν γίνει κατά καιρούς ενώ το παράδοξο είναι πως αυτή η συγκεκριμένη αδυναμία είναι συνέπεια ενός από τα πιο ισχυρά χαρακτηριστικά της γλώσσας, της φορητότητας. Το γεγονός πως η Java παράγει ενδιάμεσο κώδικα ο οποίος στη συνέχεια ερμηνεύεται σε κώδικα μηχανής και όχι απ’ ευθείας κώδικα μηχανής όπως η C++ χαρίζει μεν την ιδιότητα της φορητότητας στη γλώσσα, κάνοντάς την όμως να υστερεί σε ταχύτητα. Εισαγωγή στη Γλώσσα Προγραμματισμού Java 11 ΕΕρργγαασσττήήρριιοο ΤΤεεχχννοολλοογγίίααςς ΠΠοολλυυμμέέσσωωνν ΕΕΜΜΠΠ 1.8 ΑΑρρχχιιττεεκκττοοννιικκήή ττηηςς Java SE 6 ΓΓιιαα νναα εεκκττεελλέέσσοουυμμεε έένναα ππρρόόγγρρααμμμμαα γγρρααμμμμέέννοο σσεε Java σσεε κκάάπποοιιοονν υυπποολλοογγιισσττήή,, εείίννααιι ααππααρρααίίττηηττοο σσττοονν υυπποολλοογγιισσττήή ααυυττόόνν νναα εείίννααιι εεγγκκααττεεσσττηημμέέννοο ττοουυλλάάχχιισσττοονν ττοο ααννττίίσσττοοιιχχοο JRE (Java RRuunnttiimmee Environment) γγγιιιααα τττοοοννν εεεπππεεεξξξεεερρργγγααασσστττήήή ππποοουυυ δδδιιιαααθθθέέέτττεεειιι κκκαααιιι τττοοο λλλεεειιιτττοοουυυρρργγγιιικκκόόό σσσύύύσσστττηηημμμααα ππποοουυυ χχχρρρηηησσσιιιμμμοοοππποοοιιιεεείίί... ΣΣΣτττοοο σσσχχχήήήμμμααα 111 διακρίνονται τα συσττααττιικκάά ττηηςς ααρρχχιιττεεκκττοοννιικκήήςς πποουυ χχρρηησσιιμμοοπποοιιοούύνν ττόόσσοο ττοο JRE ττηηςς έέκκδδοοσσηηςς 66 ττηηςς Java, όσο και το JDK (Java DDeevveellooppmmeenntt Kit). Σχήμα 1 Το SDK και το JRE δδδιιιααατττίίίθθθεεενννττταααιιι ξξξεεεχχχωωωρρριιισσστττάάά κκκαααιιι τττοοο μμμεεεννν πππρρρώώώτττοοο αααπππεεευυυθθθύύύνννεεεττταααιιι σσσεεε όόόσσσοοουυυςςς εεενννδδδιιιαααφφφέέέρρροοονννττταααιιι νννααα ππρροογγρρααμμμμααττίίσσοουυνν κκααιι νναα ττρρέέξξοουυνν Java ππρροογγρράάμμμμαατταα σσττοονν υυπποολλοογγιισσττήή ττοουυςς,, ττοο δδεε δδεεύύττεερροο σσεε όόσσοουυςς αααπππλλλάάά θθθέέέλλλοοουυυννν νννααα έέέχχχοοουυυννν τττηηη δδδυυυνννααατττόόότττηηητττααα νννααα τττρρρέέέχχχοοουυυννν πππρρροοογγγρρράάάμμμμμμααατττααα γγγρρραααμμμμμμέέένννααα σσσεεε Java στο μηχάνημά ττοουυςς.. ΌΌππωωςς φφααίίννεεττααιι κκααιι ααππόό ττοο σσχχήήμμαα,, ττοο JDK περιέχει και το JRE,, εείίννααιι δδηηλλααδδήή υυππεερρσσύύννοολλόό ττοουυ.. ΑΑςς δδοούύμμεε όόμμωωςς τταα ππιιοο σσηημμααννττιικκάά κκοομμμμάάττιιαα ττηηςς ααρρχχιιττεεκκττοοννιικκήήςς ττηηςς Java. Java Virtual Machine (JVM): ΗΗ εικονική μηχανή (virtual machine) είναι ίίσσωωςς ττοο ππιιοο σημαντικό σσσυυυσσστττααατττιιικκκόόό τττηηηςςς αααρρρχχχιιιτττεεεκκκτττοοονννιιικκκήήήςςς μμμιιιαααςςς κκκαααιιι εεείίίννναααιιι υυυπππεεεύύύθθθυυυνννηηη γγγιιιααα τττηηηννν εεεκκκτττέέέλλλεεεσσσηηη τττοοουυυ εεενννδδδιιιάάάμμμεεεσσσοοουυυ κκκώώώδδδιιικκκααα (bytecode) κκκαααιιι τττηηη μμμεεετττααατττρρροοοπππήήή τττοοουυυ σσστττηηη γγγλλλώώώσσσσσσααα ππποοουυυ ‘‘‘κκκαααττταααλλλαααβββαααίίίνννεεειιι’’’ τττοοο λλλεεειιιτττοοουυυρρργγγιιικκκόόό σσσύύύσσστττηηημμμααα κκκαααιιι οοο εεππεεξξεερργγαασσττήήςς ττοουυ σσυυγγκκεεκκρριιμμέέννοουυ μμηηχχααννήήμμααττοοςς.. ΟΟρριισσμμέέννεεςς ααππόό ττηηςς πποολλλλέέςς λλεειιττοουυρργγίίεεςς ττοουυ JVM είναι ττοο φφόόρρττωωμμαα ττωωνν κκλλάάσσεεωωνν σσττηη μμννήήμμηη ααππόό ττοονν class loader,, οο έέλλεεγγχχοοςς εεγγκκυυρρόόττηηττααςς ττοουυ bytecode και η ααπποοττρροοππήή εεκκττέέλλεεσσηηςς κκαακκόόββοουυλλοουυ κκώώδδιικκαα από τον bytecode verifier, ηη δδιιααχχεείίρριισσηη ττηηςς μμννήήμμηηςς,, ηη λλεειιττοουυρργγίίαα ττοουυ μμεεττααγγλλωωττττιισσττήή ττεελλεευυττααίίας στιγμής (JIT compiler), οο ααυυττόόμμααττοοςς χχεειιρριισσμμόόςς εεξξααιιρρέέσσεεωωνν (automated exception handling) κλπ. Java SE API (Application PPrrooggrraammmmiinngg Interface): Ένα σετ κλάσεις και iinntteerrffaacceess που παρέχουν όλη τη λειτουργικότητα της γλώσσας. Εισαγωγή στη Γλώσσα Πρροογγρρααμμμμααττιισσμμοούύ Java 12 Εργαστήριο Τεχνολογίας Πολυμέσων ΕΜΠ Deployment Technologies: Τεχνολογίες που διευκολύνουν το deployment (εγκατάσταση και εκτέλεση) εφαρμογών Java είτε αυτόνομα (stand-alone) είτε μέσα από κάποιον browser (π.χ. εκτέλεση κάποιου applet). Tools: Ένα σετ από εργαλεία για τον προγραμματιστή που περιέχονται μόνο στο JDK. Τα πιο σημαντικά από αυτά είναι: • javac: O compiler της Java • java: Ο διερμηνέας της Java • javadoc: Το εργαλείο που δημιουργεί HTML τεκμηρίωση σε στυλ API • jar: Το εργαλείο που δημιουργεί και διαχειρίζεται αρχεία τύπου JAR • jdb: Ο Java debugger • javap: Disassembler αρχείων τύπου .class 1.9 Κύκλος Υλοποίησης Ο κύκλος υλοποίησης στη Java αρχίζει με τη σύνταξη του κώδικα από τον προγραμματιστή και την αποθήκευσή του σε ένα αρχείο πηγαίου κώδικα (source code file). Ένα από τα χαρακτηριστικά της Java όπως και των περισσοτέρων γλώσσων προγραμματισμού είναι η μη απαίτηση συγκεκριμένου λογισμικού για τη δημιουργία προγραμμάτων. Πράγματι, τα μόνα που χρειαζόμαστε για να γράψουμε ένα απλό πρόγραμμα σε κάποιον υπολογιστή είναι ένας οποιοσδήποτε κειμενογράφος (π.χ. notepad) και ένα πρόσφατο JDK. Σχήμα 2 Στο σχήμα 2 γίνεται χρήση του notepad των Windows για τη σύνταξη του κώδικα μιας απλής εφαρμογής, του διάσημου Hello world. Προσπαθήστε να ακολουθήσετε ένα ένα τα βήματα που περιγράφονται ώστε να γράψετε και να τρέξετε το πρώτο σας πρόγραμμα στη Java. Προσέξτε κατά την πληκτρολόγηση του κώδικα να μην κάνετε συντακτικά λάθη και ο κώδικάς σας να είναι ακριβώς ίδιος με αυτόν του σχήματος 2. Αποθηκεύστε το αρχείο με το όνομα HelloWorld.java. Έχοντας γράψει τον κώδικα, το επόμενο βήμα είναι να τον μεταγλωττίσουμε. Ανοίξτε τη γραμμή εντολών (command) και θέστε ως τοποθεσία τον φάκελο που περιέχει το αρχείο που μόλις δημιουργήσατε. Στη συνέχεια πληκτρολογήστε javac HelloWorld.java Εισαγωγή στη Γλώσσα Προγραμματισμού Java 13 Εργαστήριο Τεχνολογίας Πολυμέσων ΕΜΠ και πατήστε Enter. Αυτό δίνει εντολή καλεί τον compiler της Java να ελέγξει το αρχείο μας για σφάλματα. Αν υπάρχουν σφάλματα (συντακτικά λάθη κλπ) τότε ο compiler θα μας τα υποδείξει, διαφορετικά θα παράξει ένα αρχείο με όνομα HelloWorld.class. Αν η απόκριση του συστήματος στην εντολή που δώσατε είναι η javac: file not found τότε δεν έχετε θέσει σωστά το command να βλέπει τον φάκελο που περιέχει το αρχείο πηγαίου κώδικα και ο compiler δεν το βρίσκει. Το αρχείο HelloWorld.class είναι αυτό που περιέχει τον ενδιάμεσο κώδικα (bytecode). Για να εκτελέσετε το πρόγραμμά σας πληκτρολογήστε στο command java HelloWorld και πατήστε Enter. Το πρόγραμμά σας θα εκτελεστεί και θα πρέπει η έξοδός του να είναι αντίστοιχη με αυτή του σχήματος 3, που δείχνει όλη τη διαδικασία μεταγλώττισης και εκτέλεσης. Ανακεφαλαιώντας λοιπόν, η εντολή για να μεταγλωττίσουμε ένα αρχείο πηγαίου κώδικα από το command είναι η: javac onoma_arxeiou.java Για να εκτελέσουμε ένα αρχείο ενδιάμεσου κώδικα, προσέχουμε πως η εντολή είναι: java onoma_klashs Σχήμα 3 Στο σχήμα 4 απεικονίζεται όλη η παραπάνω διαδικασία με τα επιμέρους της βήματα. Το αρχείο πηγαίου κώδικα μεταγλωττίζεται και παράγεται ένα νέο αρχείο ενδιάμεσου κώδικα. Στη συνέχεια το πρόγραμμα εκτελείται και η διαδικασία που ακολουθείται είναι αρχικά να φορτωθούν οι κλάσεις από τον class loader, στη συνέχεια να γίνει ο έλεγχος εγκυρότητας από τον bytecode verifier και τέλος να ξεκινήσει η μετατροπή του bytecode σε κώδικα μηχανής από τον διερμηνέα της Java. Μία από τις πρόσφατες προσθήκες στην JVM είναι ο μεταγλωττιστής τελευταίας στιγμής (JIT compiler) ο οποίος βοηθάει στην πιο γρήγορη εκτέλεση του κώδικα με το να μεταγλωττίζει κομμάτια που επαναλαμβάνονται. Η JVM φαίνεται στο γραμμοσκιασμένο κομμάτι του σχήματος. Εισαγωγή στη Γλώσσα Προγραμματισμού Java 14 Εργαστήριο Τεχνολογίας Πολυμέσων ΕΜΠ Σχήμα 4 1.10 Integrated Development Environments (IDEs) Φανταστείτε τώρα πως δουλεύετε σε ένα project που περιλαμβάνει δεκάδες κλάσεις και μερικές χιλιάδες γραμμές κώδικα. Είναι προφανές πως θα ήταν αδύνατο να υλοποιήσετε μια εφαρμογή ακολουθώντας τη διαδικασία που περιγράφηκε στην προηγούμενη υποενότητα, δηλαδή χρησιμοποιώντας έναν απλό κειμενογράφο και τη γραμμή εντολών. Ο απλός κειμενογράφος δε ‘γνωρίζει’ τη σύνταξη της γλώσσας και δε μπορεί να κάνει διαχωρισμό μεταξύ λέξεων που έχουν ειδική σημασία για τη γλώσσα και του λοιπού κώδικα. Ο προγραμματιστής θα έπρεπε να συντάξει τον κώδικα χωρίς κανένα ουσιαστικό βοήθημα από τον κειμενογράφο, στη συνέχεια να τον μεταγλωττίσει φεύγοντας από τον κειμενογράφο και πηγαίνοντας σε κάποιο άλλο παράθυρο (αυτό του command), ενώ στην περίπτωση που υπήρχαν λάθη, θα έπρεπε να τα εντοπίσει και να τα διορθώσει ελέγχοντας μία μία τις λέξεις του κώδικα που βρίσκονται κοντά στη γραμμή που του υπέδειξε ο compiler. Κάτι τέτοιο είναι εντελώς αντιπαραγωγικό και φυσικά, για αρκετές δεκαετίες τώρα η ανάπτυξη εφαρμογών γίνεται με τη βοήθεια εξειδικευμένων εφαρμογών που ονομάζονται Ενιαία Περιβάλλοντα Υλοποίησης (Integrated Development Environments) ή απλά IDEs. Τα IDEs κάνουν τη ζωή του developer πιο εύκολη προσφέροντάς του μεγάλη ποικιλία βοηθημάτων τόσο σε βασικό όσο και σε σε πιο προχωρημένο επίπεδο. Έτσι λοιπόν, ακόμη και τα πιο απλά IDEs προσφέρουν έναν editor που ‘γνωρίζει’ τις λέξεις που έχουν ειδική σημασία για τη γλώσσα, προβάλλει με ξεχωριστό χρώμα τα διάφορα στοιχεία του κώδικα (δεσμευμένες λέξεις, σχόλια, αλφαριθμητικά) και μαρκάρει τις γραμμές που του υποδεικνύει ο compiler πως υπάρχουν σφάλματα. Επίσης, αναλαμβάνουν τη διαχείριση των αρχείων μας και μας επιτρέπουν να δουλεύουμε επάνω σε διαφορετικά projects ταυτόχρονα. Εισαγωγή στη Γλώσσα Προγραμματισμού Java 15 Εργαστήριο Τεχνολογίας Πολυμέσων ΕΜΠ Το πιο ισχυρό χαρακτηριστικό τους όμως είναι η δυνατότητα που δίνουν στον προγραμματιστή να εκτελεί όλα τα βήματα του κύκλου υλοποίησης μέσα από ένα και μόνο περιβάλλον, αυτό του IDE. Τόσο η σύνταξη, η μεταγλώττιση η εκτέλεση και αποσφαλματοποίηση του κώδικα (debugging) γίνονται μέσα από το ίδιο περιβάλλον και όπως είναι φυσικό αυτό αυξάνει την παραγωγικότητα των ομάδων υλοποίησης. Στα προχωρημένα βοηθήματα των IDEs ανήκουν ο έλεγχος εκδόσεων (version control), το refactoring, η διατήρηση αρχείου ιστορικότητας, οι συμβουλές προς τον προγραμματιστή κατά τη σύνταξη με τη μορφή smart tags, οι προτάσεις για την επιδιόρθωση λαθών κλπ. Στις μέρες μας είναι αυτονόητο για κάποιον που θέλει να ασχοληθεί σοβαρά με τον προγραμματισμό πως θα χρησιμοποιήσει ένα τέτοιο IDE για τη συγκεκριμένη γλώσσα. Δεδομένης της ευρείας διάδοσης της Java, υπάρχουν αρκετά IDEs για να επιλέξει κανείς, τα πιο δημοφιλή και ποιοτικά από αυτά θεωρούνται το Eclipse και το NetBeans. Και τα δύο αυτά IDEs είναι open source που σημαίνει πως μπορούμε να τα προμηθευτούμε και να τα χρησιμοποιήσουμε εντελώς δωρεάν. Τόσο το Eclipse όσο και το NetBeans σας παρέχονται στο συνοδευτικό CD μαζί με οδηγίες για την εγκατάστασή τους και τη βασική χρήση τους. Και τα δύο αυτά περιβάλλοντα είναι εξαιρετικά ποιοτικά και μπορούν να χρησιμοποιηθούν όχι μόνο για ανάπτυξη σε Java αλλά και σε πολλές άλλες γλώσσες, γεγονός που τα κάνει ακόμα περισσότερο ελκυστικά. Το Eclipse είναι προγενέστερο του NetBeans και έχει φτάσει σε ένα πολύ ικανοποιητικό επίπεδο ωρίμανσης, αν και ανά τακτά χρονικά διαστήματα λανσάρονται νέες εκδόσεις που το βελτιώνουν και του προσθέτουν λειτουργικότητα. Είναι το εργαλείο επιλογής της πλειονότητας των Java developers παγκοσμίως, συμπεριλαμβανομένου και του γράφοντος. Για τον λόγο αυτόν, τα διάφορα screenshots που θα συναντήσετε στις σημειώσεις σας αλλά και στις παρουσιάσεις θα προέρχονται από το συγκεκριμένο περιβάλλον. Διατίθεται τόσο για την πλατφόρμα των Windows όσο και για άλλες πλατφόρμες όπως το Linux και το Unix. Στο σχήμα 5 φαίνεται ένα screenshot του Eclipse. Το NetBeans αποτελεί το αντίπαλο δέος του Eclipse αλλά ακόμη δεν έχει φτάσει στο απαιτούμενο επίπεδο ωρίμανσης μιας και πρόκειται για μεταγενέστερο project. Παρόλα αυτά πρόκειται για ένα επίσης πολύ καλό IDE και δεδομένου πως από το 2008 η ίδια η Sun το προτείνει για την ανάπτυξη Java εφαρμογών και το διαθέτει από το ίδιο της το site, αφήνει υποσχέσεις για το μέλλον. Όπως το Eclipse, έτσι και το NetBeans διατίθεται για διαφορετικά λειτουργικά συστήματα. Άλλα γνωστά IDEs για ανάπτυξη σε Java είναι ο JDeveloper της Oracle (open source) και ο JBuilder της Codegear (πρώην Borland) το οποίο όμως είναι εμπορικό. Η επιλογή είναι δική σας. Συμβουλή για το διαγώνισμα της Oracle: Παρόλο που θα χρησιμοποιείτε κάποιο από τα δύο IDEs που σας προτάθηκαν για την ανάπτυξη των εφαρμογών σας και που αυτοματοποιούν τη διαδικασία μεταγλώττισης, θα πρέπει οπωσδήποτε να γνωρίζετε για το διαγώνισμα της Sun τη διαδικασία όπως περιγράφηκε στην υποενότητα 1.9, δηλαδή τη χρήση των javac και java. Εισαγωγή στη Γλώσσα Προγραμματισμού Java 16 Εργαστήριο Τεχνολογίας Πολυμέσων ΕΜΠ Σχήμα 5 1.11 Δομή Αρχείων στη Java Σε αντίθεση με τις C/C++ όπου έχουμε αρχεία πηγαίου κώδικα αλλά και βιβλιοθήκες, στη Java υπάρχουν μόνο αρχεία πηγαίου κώδικα. Τα αρχεία αυτά έχουν πάντοτε κατάληξη .java, π.χ. MyClass.java. Κανόνας σωστής πρακτικής: Κάθε αρχείο πηγαίου κώδικα θα πρέπει να περιέχει μία μόνο κλάση. Το αρχείο θα πρέπει να έχει ακριβώς το ίδιο όνομα με την κλάση. Σημείωση: Η Java είναι case sensitive δηλαδή κάνει διαχωρισμό μεταξύ πεζών και κεφαλαίων χαρακτήρων. Αυτό σημαίνει πως για τη Java οι λέξεις myClass και MyClass αναφέρονται σε ξεχωριστές οντότητες. Βάσει αυτού και του παραπάνω κανόνα σωστής πρακτικής, αν δημιουργήσετε ένα αρχείο πηγαίου κώδικα στο IDE που χρησιμοποιείτε και το ονομάσετε MyClass.java, θα πρέπει το όνομα της κλάσης που περιέχει να είναι το MyClass. Γενικά, για την ονομασία αρχείων πηγαίου κώδικα στη Java ισχύουν οι εξής κανόνες σωστής πρακτικής: Εισαγωγή στη Γλώσσα Προγραμματισμού Java 17

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.