Εισαγωγή στον προγραμματισμό Java. Java και το Διαδίκτυο

Ηλεκτρονική 06.04.2019
Επισκόπηση προγράμματος Η έκδοση υπολογιστή του Microsoft Excel Viewer θα επιτρέψει...

Chercher ΗλεκτρονικήΙάβα. Θα μάθετε για τις δυνατότητες της πλατφόρμας, την εφαρμογή της και πώς να αρχίσετε να μαθαίνετε σωστά την Java.

Τι είναι η γλώσσα προγραμματισμού Java;

Το 1991, η «Green Team», ένα τμήμα της Sun Microsystems, με επικεφαλής τον Τζέιμς Γκόσλινγκ, δημιούργησε μια γλώσσα για τον προγραμματισμό καταναλωτικών ηλεκτρονικών συσκευών. Τότε ονομαζόταν Δρυς («Βελανιδιά»). Γιατί «Oak»; Απλά επειδή αυτό το δέντρο φύτρωσε έξω από το παράθυρο του γραφείου του Γκόσλινγκ.

Η Green Team έδειξε τη χρήση του Oak σε μια διαδραστική τηλεόραση. Αλλά για την ψηφιακή καλωδιακή τηλεόραση εκείνων των χρόνων, αυτή η τεχνολογία ήταν πολύ προηγμένη. Ταυτόχρονα, το Διαδίκτυο κέρδιζε δημοτικότητα, για το οποίο η νέα γλώσσα προγραμματισμού ταίριαζε καλύτερα.

Μετά από λίγο καιρό, η νέα γλώσσα μετονομάστηκε σε Πράσινη, και μετά από αυτό - Java, προς τιμήν του καφέ από το νησί της Ιάβας. Γι' αυτό το λογότυπο Java διαθέτει μια κούπα καφέ.

Κατά την ανάπτυξη της Java, η C/C++ ήταν δημοφιλής, έτσι ο Gosling έκανε τη σύνταξη της γλώσσας παρόμοια με την C/C++ και εφάρμοσε το " γράψτε μια φορά - τρέξτε οπουδήποτε" Το 1995, η Sun Microsystems κυκλοφόρησε το πρώτο επίσημη έκδοσηΙάβα. Και την ίδια στιγμή ανακοινώθηκε ότι η Java θα συμπεριληφθεί στο πρόγραμμα περιήγησης Netscape Navigator.

Το 2010, η Sun Microsystems, μαζί με τη γλώσσα προγραμματισμού Java, εξαγοράστηκε από την Oracle Corporation.

Ιστορικό έκδοσης Java

  1. Ιούνιος 1991 – έναρξη του αναπτυξιακού έργου γλώσσα προγραμματισμούΙάβα.
  2. JDK 1.0 – Ιανουάριος 1996.
  3. JDK 1.1 – Φεβρουάριος 1997.
  4. J2SE 1.2 – Δεκέμβριος 1998.
  5. J2SE 1.3 – Μάιος 2000.
  6. J2SE 1.4 – Φεβρουάριος 2002.
  7. J2SE 5.0 – Σεπτέμβριος 2004.
  8. Java SE 6 - Δεκέμβριος 2006.
  9. Java SE 7 – Ιούλιος 2011.
  10. Java SE 8 – 18 Μαρτίου 2014.
  11. Java SE 9 – 21 Σεπτεμβρίου 2017.

Χαρακτηριστικά γλώσσας προγραμματισμού Java

Η Java είναι μια γλώσσα πολλαπλών πλατφορμών

Κώδικας Java γραμμένο σε μία πλατφόρμα ( δηλαδή το λειτουργικό σύστημα), μπορεί να εκτελεστεί χωρίς τροποποίηση σε άλλες πλατφόρμες.

Για Java launcherΧρησιμοποιείται εικονική μηχανή Java ( Java VirtualΜηχανή, JVM). Το JVM επεξεργάζεται τον κώδικα byte, μετά τον οποίο ο επεξεργαστής επεξεργάζεται τον κώδικα που έλαβε από το JVM. Όλες οι εικονικές μηχανές λειτουργούν παρόμοια, επομένως ο ίδιος κώδικας λειτουργεί το ίδιο σε όλους λειτουργικά συστήματαΑ, αυτό είναι που κάνει την Java μια γλώσσα προγραμματισμού πολλαπλών πλατφορμών.

Αντικειμενοστραφής γλώσσα προγραμματισμού

Υπάρχουν διαφορετικά στυλ προγραμματισμού και ένα από τα πιο δημοφιλή είναι ο αντικειμενοστραφής προγραμματισμός. Με αυτή την προσέγγιση σύνθετο πρόβλημααναλύεται σε μικρότερα δημιουργώντας αντικείμενα. Χάρη σε αυτό, ο κωδικός μπορεί να επαναχρησιμοποιηθεί.

Αντικειμενοστρεφείς συναρτήσεις βρίσκονται σε πολλές γλώσσες προγραμματισμού, συμπεριλαμβανομένων των Java, Python και C++. Εάν σκέφτεστε σοβαρά να μάθετε να προγραμματίζετε, αξίζει να προσθέσετε αντικειμενοστρεφείς προσεγγίσεις στο μαθησιακό σας σχέδιο.

Η Java είναι γρήγορη

Πρώιμες εκδόσεις γλώσσα προγραμματισμούΗ Java έχει συχνά επικριθεί ότι είναι αργή. Σήμερα όμως η κατάσταση έχει αλλάξει δραματικά. Οι νέες εκδόσεις του JVM τρέχουν πολύ πιο γρήγορα και οι επεξεργαστές που τις ερμηνεύουν γίνονται όλο και πιο γρήγοροι.

Σήμερα η Java είναι μια από τις πιο γρήγορες γλώσσες προγραμματισμού. Ο καλά βελτιστοποιημένος κώδικας Java εκτελείται σχεδόν τόσο γρήγορα όσο οι γλώσσες προγραμματισμού χαμηλού επιπέδου όπως η C/C++ και πολύ πιο γρήγορα από την Python, την PHP κ.λπ.

Η Java είναι μια ασφαλής πλατφόρμα

Η Java είναι:

  • μια ασφαλή πλατφόρμα για την ανάπτυξη και την εκκίνηση εφαρμογών·
  • παρέχει εργαλεία για αυτόματη διαχείριση μνήμης, η οποία μειώνει την ευπάθεια κώδικα.
  • εξασφαλίζει ασφαλή μεταφορά δεδομένων.

Εκτεταμένη βασική βιβλιοθήκη

Ένας από τους λόγους για τους οποίους η Java είναι τόσο διαδεδομένη είναι η τεράστια τυπική βιβλιοθήκη της. Περιέχει εκατοντάδες κλάσεις και μεθόδους από διάφορα πακέτα που κάνουν τη ζωή πιο εύκολη για τους προγραμματιστές. Για παράδειγμα,

Το java.lang είναι προηγμένες συναρτήσεις για συμβολοσειρές, πίνακες κ.λπ.

java.util – βιβλιοθήκη για εργασία με δομές δεδομένων, κανονικές εκφράσεις, ημερομηνία και ώρα κ.λπ.

kava.io - βιβλιοθήκη για είσοδο/έξοδο αρχείων, χειρισμό εξαιρέσεων κ.λπ.

Εφαρμογή της πλατφόρμας Java

Πριν μάθετε Java προγραμματισμός από την αρχή, πρέπει να γνωρίζετε ότι πάνω από 3 δισεκατομμύρια συσκευές σε όλο τον κόσμο λειτουργούν σε αυτήν την πλατφόρμα. Σε τι ακριβώς μπορεί να χρησιμοποιηθεί:

  1. Εφαρμογές Android - Για την ανάπτυξη εφαρμογών Android, η γλώσσα προγραμματισμού Java χρησιμοποιείται συχνά σε συνδυασμό με Android SDK (από αγγλικό κιτ ανάπτυξης λογισμικού - κιτ ανάπτυξης λογισμικού).
  2. Εφαρμογές Ιστού - Η Java χρησιμοποιείται για τη δημιουργία εφαρμογών Ιστού χρησιμοποιώντας προγράμματα διακομιστή, Struts framework και JSP. Μερικές δημοφιλείς διαδικτυακές εφαρμογές γραμμένες σε Java είναι: Google.com, Facebook.com, eBay.com, LinkedIn.com.

Αξίζει να σημειωθεί ότι αυτοί οι ιστότοποι δεν είναι απαραίτητα γραμμένοι αποκλειστικά σε Java και ενδέχεται να χρησιμοποιούν και άλλες γλώσσες προγραμματισμού.

  1. Ανάπτυξη λογισμικού– προγράμματα όπως το Eclipse, το OpenOffice, το Vuze, το MATLAB και πολλά άλλα είναι γραμμένα σε Java.
  2. Επεξεργασία μεγάλων δεδομένων – για την επεξεργασία «μεγάλων δεδομένων» μπορείτε να χρησιμοποιήσετε το πλαίσιο Hadoop γραμμένο σε Java.
  3. Συστήματα συναλλαγών– χρήση της πλατφόρμας Oracle Extreme Java Trading Platform, μπορείτε να γράψετε προγράμματα για συναλλαγές.
  4. Ενσωματωμένες συσκευές– δισεκατομμύρια συσκευές, όπως τηλεοράσεις, κάρτες SIM, λειτουργούν σήμερα με βάση την τεχνολογία Java Embedded της Oracle, Blu-ray playerκαι τα λοιπά.

Επίσης προγραμματισμός σεΗ Java χρησιμοποιείται για την ανάπτυξη παιχνιδιών, επιστημονικών εφαρμογών ( για παράδειγμα, για επεξεργασία φυσικής γλώσσας) και σε πολλούς άλλους τομείς.

Ορολογία Java που πρέπει να γνωρίζετε

Η Java είναι ένα σύνολο τεχνολογιών ( γλώσσα προγραμματισμού και πλατφόρμα υπολογιστών), έχει σχεδιαστεί για τη δημιουργία και εκτέλεση λογισμικού. Ωστόσο, ο όρος Java αναφέρεται συχνά στην ίδια τη γλώσσα προγραμματισμού.

Γλώσσα προγραμματισμούΗ Java είναι μια αντικειμενοστραφή γλώσσα προγραμματισμού πολλαπλών πλατφορμών γενικού σκοπούμε ευρείες δυνατότητες.

Η Java 9 είναι η πιο πρόσφατη έκδοση της Java τη στιγμή που γράφεται αυτό το άρθρο.

Java EE, Java Me και Java SE - αυτά τα ονόματα αντιπροσωπεύουν Java Enterprise Edition, Micro Edition και Standard Edition, αντίστοιχα.

Το Java EE απευθύνεται σε εφαρμογές που εκτελούνται σε διακομιστές. Το Java ME έχει σχεδιαστεί για συσκευές με περιορισμό ισχύος, όπως ενσωματωμένες συσκευές. Η Java SE είναι η τυπική έκδοση της Java για τη σύνταξη γενικών προγραμμάτων.

Εάν είστε νέος σε Προγραμματισμός Java, συνιστούμε να ξεκινήσετε με Java SE.

JVM - Java Virtual Machine (" Java εικονική μηχανή") είναι ένα πρόγραμμα που επιτρέπει σε έναν υπολογιστή να εκτελεί προγράμματα γραμμένα σε Java.

JRE – Java Runtime Environment (“ Χρόνος εκτέλεσης Java") περιλαμβάνει το JVM, τις σχετικές βιβλιοθήκες και άλλα στοιχεία που απαιτούνται για την εκτέλεση προγραμμάτων. Αλλά το JRE δεν διαθέτει μεταγλωττιστή, εντοπισμό σφαλμάτων ή άλλα εργαλεία ανάπτυξης.

JDK – Java Development Kit προγραμματιστής Java) περιέχει το JRE και άλλα εργαλεία ανάπτυξης, όπως μεταγλωττιστές, προγράμματα εντοπισμού σφαλμάτων κ.λπ.

Πώς να εκτελέσετε Java στο λειτουργικό σας σύστημα

Πώς να εκτελέσετε Java σε Mac OS

Δείτε τι πρέπει να κάνετε για την Java προγραμματισμός από την αρχήκαι εγκατάσταση της πλατφόρμας σε Mac OS X ή macOS:

  1. Κατεβάστε την πιο πρόσφατη έκδοση της Java ( JDK) με Σελίδες λήψης Java SE.
  2. Κάντε διπλό κλικ στο ληφθέν αρχείο DMG και ακολουθήστε τις οδηγίες του προγράμματος εγκατάστασης.
  3. Για να επαληθεύσετε την εγκατάσταση, ανοίξτε ένα τερματικό και πληκτρολογήστε την ακόλουθη εντολή:

javac – έκδοση

Εάν η Java έχει εγκατασταθεί σωστά, η έκδοση του προγράμματος θα εμφανιστεί στην οθόνη ( για παράδειγμα javac 1.8.0_60).

Το επόμενο βήμα είναι να εγκαταστήσετε το IDE ( ολοκληρωμένο περιβάλλον ανάπτυξης) για τη σύνταξη και εκτέλεση κώδικα Java. Θα εγκαταστήσουμε τη δωρεάν έκδοση του IntelliJ IDEA και θα εκτελέσουμε Java σε αυτήν. Εδώ είναι τι πρέπει να κάνετε για να το κάνετε αυτό:

  1. Μεταβείτε στο Σελίδα λήψης IntelliJκαι κατεβάστε τη δωρεάν Community Edition.
  1. Ανοίξτε το αρχείο DMG που κατεβάσατε και ακολουθήστε τις οδηγίες εγκατάστασης. Για γρήγορη πρόσβαση, μπορείτε να μετακινήσετε το IntelliJ IDEA στο φάκελο Εφαρμογές.
  2. Ανοίξτε το IntelliJ IDEA. Επιλέξτε την επιλογή "Μην εισάγετε ρυθμίσεις" (" Μην εισάγετε ρυθμίσεις") και κάντε κλικ στο "Ok". Μετά από αυτό, αποδεχτείτε την πολιτική απορρήτου της Jetbrains κάνοντας κλικ στο κουμπί «Αποδοχή».
  3. Τώρα μπορείτε να προσαρμόσετε τη διεπαφή για τον εαυτό σας. Μπορείτε επίσης να παραλείψετε αυτό το βήμα και να αφήσετε τα πάντα ως προεπιλογή. Εάν δεν είστε σίγουροι, απλώς παραλείψτε αυτό το βήμα κάνοντας κλικ στο κουμπί "Παράλειψη όλων και ορισμός προεπιλογών" (" Παραλείψτε τα πάντα και ορίστε τις προεπιλεγμένες ρυθμίσεις»).


  1. Το πρόγραμμα θα σας δείξει μια σελίδα καλωσορίσματος. Κάντε κλικ στο κουμπί "Δημιουργία νέου έργου" (" Δημιουργήστε ένα νέο έργο»).
  2. Στο επόμενο παράθυρο, επιλέξτε "Java" στο αριστερό παράθυρο και κάντε κλικ στο "Νέο" στο επάνω μέρος του παραθύρου του προγράμματος για να επιλέξετε "JDK". Εδώ πρέπει να επιλέξετε τη θέση όπου εγκαταστήσατε το JDK και, στη συνέχεια, κάντε κλικ στο κουμπί Επόμενο.


  1. Θα έχετε την επιλογή να δημιουργήσετε ένα έργο από πρότυπο ("Δημιουργία έργου από πρότυπο"). Το αγνοούμε και κάνουμε κλικ στο κουμπί "Επόμενο".
  2. Στο επόμενο βήμα εγκατάστασης γλώσσα προγραμματισμού Java εισάγετε το όνομα του έργου και κάντε κλικ στο κουμπί "Τέλος".
  3. Στο αριστερό πλαίσιο θα δείτε το έργο σας. Εάν το πλαίσιο δεν είναι ορατό, μεταβείτε στο μενού Προβολές > Εργαλείο Windows > Έργο.
  4. Μεταβείτε στο Hello > New > Java και δώστε στην τάξη ένα όνομα. Το λέγαμε Πρώτα.


  1. Για να εκτελέσετε το πρόγραμμα που μόλις γράψατε, μεταβείτε στο Run > Run... Κάντε κλικ στο First ( δηλαδή το όνομα του αρχείου που δημιουργήσαμε


Πώς να εκτελέσετε Java σε Linux

Για να εκτελέσετε παραδείγματα από Μαθήματα προγραμματισμού από την αρχήΗ Java στο Linux θα χρειαστεί το κιτ ανάπτυξης JAVA SE ( JDK) και IDE για την ανάπτυξη των έργων σας. Ακολουθήστε τις οδηγίες βήμα προς βήμα για να ξεκινήσετε με την Java.

Εγκαταστήστε Java

  1. Ανοίξτε ένα τερματικό και πληκτρολογήστε την ακόλουθη εντολή Εγκαταστάσεις Java:

    sudo add-apt-repository ppa:webupd8team/java


    sudo apt ενημέρωση? sudo apt install oracle-java8-installer

  1. Αποδέχομαι άδεια χρήσηςκαι τους όρους χρήσης κάνοντας κλικ στο «OK» και «Ναι», αντίστοιχα.
  2. Έχετε εγκαταστήσει Java. Για να βεβαιωθείτε ότι η εγκατάσταση ήταν επιτυχής, πληκτρολογήστε την ακόλουθη εντολή σε ένα τερματικό:

java – έκδοση

Εάν εμφανίζεται η τρέχουσα έκδοση, η εγκατάσταση ήταν επιτυχής. Εάν όχι, ελέγξτε με Σελίδα βοήθειας Oracle.

Εγκατάσταση IntelliJ IDEA

  1. Μεταβείτε στο .


  1. Κατεβάστε τη δωρεάν Έκδοση Κοινότητας κάνοντας κλικ στο κουμπί "Λήψη".
  2. Μετά τη λήψη αλλάξτε τον κατάλογο στο τερματικόστον κατάλογο λήψεων και εξαγάγετε το αρχείο Java tar στον φάκελο /opt με την ακόλουθη εντολή:

sudo tar xf .tar.gz -C /opt/

  1. Μετά την αποσυσκευασία, αλλάξτε τον κατάλογο στον φάκελο bin του προγράμματος IntelliJ IDEA:

    cd /opt/ /αποθήκη

  2. Για να ξεκινήσετε το IDE, πληκτρολογήστε την ακόλουθη εντολή:
  3. Επιλέξτε "Μην εισάγετε ρυθμίσεις" (" Μην εισάγετε ρυθμίσεις") και κάντε κλικ στο "OK". Μετά από αυτό, αποδεχόμαστε την πολιτική απορρήτου της Jetbrains κάνοντας κλικ στο κουμπί «Αποδοχή».
  4. Τώρα για το πέρασμα μαθήματα προγραμματισμού Java, μπορείτε να προσαρμόσετε τη διεπαφή για τον εαυτό σας. Δημιουργήστε μια συντόμευση στην επιφάνεια εργασίας σας για γρήγορη πρόσβαση στο πρόγραμμα. Μετά από αυτό, για να ξεκινήσετε το IDE, κάντε κλικ στο «Επόμενο» σε όλα τα ακόλουθα στάδια.
  5. Το πρόγραμμα θα εμφανίσει τη σελίδα καλωσορίσματος. Κάντε κλικ στο "Δημιουργία νέου έργου" (" Δημιουργήστε ένα νέο έργο»).
  6. Στο επόμενο παράθυρο, επιλέξτε "Java" στο αριστερό παράθυρο και βεβαιωθείτε ότι η Java είναι επιλεγμένη στη γραμμή Project SDK. Εάν όχι, επιλέξτε τη θέση όπου εγκαταστήσατε JDK: /usr/lib/jvm/java-8-oracle.


  1. Κάντε κλικ στο «Επόμενο» δύο φορές και δημιουργήστε ένα έργο.
  2. Στο επόμενο βήμα, εισαγάγετε ένα όνομα έργου και κάντε κλικ στο κουμπί "Τέλος". Τώρα θα δείτε το έργο σας στον αριστερό πίνακα. Εάν αυτό το πλαίσιο δεν είναι ορατό, μεταβείτε στο μενού Προβολές > Εργαλείο Windows > Έργο.
  3. Προσθέστε μια νέα τάξη Java. Επιλέξτε src στο αριστερό παράθυρο με το δεξί κλικ και μεταβείτε στο New > Java Class. Δώστε ένα όνομα τάξης. Το όνομα της κλάσης δεν πρέπει να περιέχει κενά.


  1. Γράψτε τον κώδικα Java και αποθηκεύστε το έργο.
  2. Για να εκτελέσετε το πρόγραμμα, μεταβείτε στο Run > Run... Κάντε κλικ στο HelloWorld ( όνομα έργου) - το πρόγραμμα θα μεταγλωττίσει το αρχείο και θα το εκτελέσει.


Τρόπος εκτέλεσης Java σε Windows (XP, 7, 8 και 10)

Για να κατακτήσετε την Java βασικά προγραμματισμούκαι τρέχοντας την πλατφόρμα σε Windows, θα χρειαστείτε ένα κιτ ανάπτυξης JAVA SE (JDK) και ένα IDE για την ανάπτυξη έργων. Ακολουθώ οδηγίες βήμα προς βήμαδίνεται παρακάτω:

Εγκατάσταση Java

  • Μεταβείτε στο σελίδα λήψης Java Standard Edition Development Kit.
  1. Στην ενότητα Java SE Development Kit στην κορυφή του πίνακα, κάντε κλικ στην επιλογή "Αποδοχή άδειας χρήσης" (" Αποδεχτείτε τη συμφωνία άδειας χρήσης"). Στη συνέχεια, κάντε κλικ στη σύνδεση Windows (x64) εάν έχετε λειτουργικό σύστημα 64-bit ή Windows (x86) εάν έχετε λειτουργικό σύστημα 32-bit.

  1. Μετά τη λήψη, εκτελέστε το αρχείο εγκατάστασης και ακολουθήστε τις οδηγίες που εμφανίζονται στην οθόνη. κάντε κλικ στο " Επόμενος" Επιλέξτε όλες τις λειτουργίες πατώντας " Αυτή η δυνατότητα θα εγκατασταθεί σε τοπικό επίπεδο σκληρό δίσκο " και αντιγράψτε τη θέση εγκατάστασης ( επισημαίνεται με κίτρινο χρώμα) στο Σημειωματάριο και μετά κάντε ξανά κλικ Επόμενος».


  1. Κατά τη διαδικασία εγκατάστασης, θα σας ζητηθεί να εγκαταστήσετε το JRE. Κάντε κλικ στο «Επόμενο» και μετά στο «Τέλος» για να ολοκληρώσετε την εγκατάσταση.
  2. Τώρα πρέπει να επεξεργαστείτε τη μεταβλητή PATH. Μεταβείτε στο Πίνακας ελέγχου > Σύστημα και ασφάλεια > Σύστημα. Στο αριστερό παράθυρο, επιλέξτε " Πρόσθετες παράμετροι συστήματος».

  1. κάντε κλικ στο " Μεταβλητές Περιβάλλοντος". Στην ενότητα " μεταβλητές συστήματος"Βρείτε τη μεταβλητή PATH και στο επόμενο παράθυρο κάντε κλικ στο "Επεξεργασία".

  1. Επιλέξτε όλο το κείμενο στο " Μεταβλητή τιμή"και αντιγράψτε το σε ξεχωριστό αρχείο κειμένου. Αυτό θα διευκολύνει την επεξεργασία και τον έλεγχο για σφάλματα. Δείτε αν το αντιγραμμένο κείμενο περιέχει τη γραμμή: C: ProgramData Oracle Java javapath; . Εάν ναι, τότε μπορείτε να προχωρήσετε στο επόμενο βήμα. Εάν όχι, τότε επικολλήστε τη θέση εγκατάστασης που αντιγράψατε νωρίτερα στην αρχή της μεταβλητής και προσθέστε bin στο τέλος της γραμμής ως εξής: C : Program Files (x 86) Java jdk 1.8.0_112 bin ;


  1. κάντε κλικ στο " Λάβετε υπόψη ότι η έκδοση JDK (jdk 1.8.0_112) μπορεί να είναι διαφορετική. Αντιγράψτε την τιμή της μεταβλητής και επικολλήστε την στο πλαίσιο PATH.ΕΝΤΑΞΕΙ
  2. " για να αποθηκεύσετε τις αλλαγές σας. Για να ελέγξετε εάν η πλατφόρμα έχει εγκατασταθεί σωστάεισαγωγή στον προγραμματισμό Java, ανοίξτε γραμμή εντολών πληκτρολογώντας cmd στη γραμμή αναζήτησης των Windows ή μέσω της εντολής «Εκτέλεση…» ( Windows - R Σελίδα βοήθειας Oracle.

Εγκατάσταση IntelliJ IDEA

  1. Μεταβείτε στο ). Εισαγάγετε την εντολή java -version. Εάν εμφανίζεται η τρέχουσα έκδοση της Java, η εγκατάσταση ήταν επιτυχής. Εάν όχι, ελέγξτε με.
  2. Σελίδα λήψης IntelliJ IDEA


  1. Κατεβάστε τη δωρεάν Έκδοση Κοινότητας κάνοντας κλικ στο "Λήψη".


  1. Μετά τη λήψη, εκτελέστε το αρχείο εγκατάστασης και ακολουθήστε τις οδηγίες που εμφανίζονται στην οθόνη. Στη συνέχεια, δημιουργήστε μια συντόμευση επιφάνειας εργασίας για την έκδοση 64-bit και προσθέστε συσχετίσεις με την επέκταση .java. Κάντε κλικ στο "Επόμενο" και συνεχίστε με την εγκατάσταση.
  2. Μόλις εγκατασταθεί, ανοίξτε το IntelliJ IDEA κάνοντας κλικ στο εικονίδιο της επιφάνειας εργασίας. Μην εισάγετε ρυθμίσειςΕπιλέξτε "Να μην γίνεται εισαγωγή ρυθμίσεων" ("
  3. ") και κάντε κλικ στο "OK". Μετά από αυτό, αποδεχόμαστε την πολιτική απορρήτου της Jetbrains κάνοντας κλικ στο «Αποδοχή».
  4. Τώρα μπορείτε να προσαρμόσετε τη διεπαφή για τον εαυτό σας. Μπορείτε επίσης να παραλείψετε αυτό το βήμα και να αφήσετε τα πάντα ως προεπιλογή κάνοντας κλικ στο κουμπί "Παράλειψη όλων και ορισμός προεπιλογών". Δημιουργήστε ένα νέο έργο»).


  1. Το πρόγραμμα θα εμφανίσει τη σελίδα καλωσορίσματος. Κάντε κλικ στο "Δημιουργία νέου έργου" ("
  2. Το IntelliJ IDEA θα βρει το JDK και θα το αναγνωρίσει. Δεν χρειάζεται να επισημάνετε άλλες επιλογές, απλώς κάντε κλικ στο «Επόμενο».
  3. Στην επόμενη οθόνη, πληκτρολογήστε το όνομα του έργου: HelloWorld και κάντε κλικ στο Τέλος. Εάν το πρόγραμμα λέει ότι ο κατάλογος δεν υπάρχει, κάντε κλικ στο OK. Εάν δεν βλέπετε το αριστερό παράθυρο, μεταβείτε στις Προβολές > Εργαλείο Windows > Έργο.
  4. Για να ορίσετε το όνομα της τάξης, επιλέξτε το φάκελο src στο αριστερό παράθυρο. Κάντε δεξί κλικ πάνω του, μεταβείτε στο New > Java και ορίστε το όνομα της τάξης. Το όνομα της κλάσης δεν πρέπει να περιέχει κενά.


  1. Γράψτε τον κωδικό και αποθηκεύστε Έργο Java μάθημα προγραμματισμού.
  2. Για να εκτελέσετε το πρόγραμμα, μεταβείτε στο μενού Εκτέλεση > Εκτέλεση... Κάντε κλικ στο HelloWorld - το πρόγραμμα θα μεταγλωττίσει το αρχείο και θα το εκτελέσει.


Το πρώτο σας πρόγραμμα Java

Για να εισαγάγουν τους χρήστες σε μια νέα γλώσσα προγραμματισμού, χρησιμοποιούν το πρόγραμμα Hello World («Hello, world!»). Αυτό είναι ένα απλό πρόγραμμα που εμφανίζει τις λέξεις Hello, World! Σε αυτήν την ενότητα, θα σας διδάξουμε πώς να γράφετε αυτό το πρόγραμμα σε Java χρησιμοποιώντας το IntelliJ IDEA.

  1. Ανοίξτε το IntelliJ IDEA.
  2. Μεταβείτε στο Αρχείο > Νέο > Έργο… > Java ( στην αριστερή γραμμή πλοήγησης).
  3. Ορίστε το όνομα έργου από μάθημα προγραμματισμού J a va. Θα το ονομάσουμε Hello World και θα κάνουμε κλικ στο Finish.
  4. Τώρα πρέπει να δημιουργήσουμε μια νέα τάξη Java.
  5. Επιλέξτε το φάκελο src στο αριστερό παράθυρο και, στη συνέχεια, μεταβείτε στο Αρχείο > Νέο > Κατηγορία Java και ονομάστε τη νέα τάξη HelloWorld.
  6. Αντιγράψτε τον παρακάτω κώδικα στο αρχείο HelloWorld.java και αποθηκεύστε τον.

δημόσια τάξη HelloWorld ( δημόσιο static void main (String args) (


// εκτυπώνει "Hello, World!"


System.out.println("Hello, World!");

  1. Κάντε κλικ στο κουμπί έναρξης ( Τρέξιμο). Εάν όλα είναι εντάξει, θα δείτε το Hello, World στην οθόνη.

Πώς να μάθετε Java;

Επίσημη τεκμηρίωση Java

Η Oracle, η εταιρεία που κατέχει την Java, δημοσιεύει ποιοτικά σεμινάρια. Η επίσημη τεκμηρίωση καλύπτει όλες τις λειτουργίες Java και ενημερώνεται τακτικά.

Σημείωση: το μόνο αρνητικό είναι ότι η επίσημη τεκμηρίωση Java δεν είναι πάντα γραμμένη στην απλούστερη γλώσσα.

Εάν θέλετε πραγματικά να μάθετε προγραμματισμός σε Java, αγοράστε ένα καλό βιβλίο. Φυσικά, 1000 σελίδες δεν διαβάζονται σε μια μέρα. Αλλά ένα καλό σεμινάριο θα σας βοηθήσει να μάθετε προγραμματισμό.

Java: The Complete Guide (10η Έκδοση)

Ένα υπέροχο βιβλίο για όσους μόλις αρχίζουν να μαθαίνουν Java. Η τελευταία έκδοση περιλαμβάνει όλες τις δυνατότητες της έκδοσης Java 8.

Το βιβλίο καλύπτει όλα όσα χρειάζεται να γνωρίζετε για τον προγραμματισμό Java, συμπεριλαμβανομένης της σύνταξης, των λέξεων-κλειδιών και των βασικών αρχών προγραμματισμού, καθώς και της βιβλιοθήκης Java API, των μικροεφαρμογών Java και πολλά άλλα.

Java Philosophy (4η Έκδοση)

Εάν κάνετε εναλλαγή σε Java από άλλη γλώσσα προγραμματισμού, αυτό το βιβλίο είναι για εσάς. Αν ξεκινάτε από το μηδέν, είναι καλύτερο να το διαβάσετε μαζί με το άλλο.

Java 8 Pocket Guide: ΑσθενοφόροΠρογραμματιστές Java

Αυτό το βιβλίο περιέχει σαφείς απαντήσεις σε ερωτήματα που προκύπτουν κατά τη διδασκαλία του J Προγραμματισμός ava από την αρχή. Καλύπτει εν συντομία όλες τις βασικές έννοιες της Java (συμπεριλαμβανομένων Java 9). Δεν θέλετε να ξεφυλλίσετε εκατοντάδες σελίδες αναζητώντας τη σωστή γραμμή; Αγοράστε αυτό το βιβλίο.

Αντί για συμπέρασμα

Εάν αρχίσετε να μαθαίνετε Java, δεν μπορείτε να κάνετε λάθος - είναι μια πολλά υποσχόμενη γλώσσα προγραμματισμού, γεμάτη από μια μεγάλη ποικιλία δυνατοτήτων.

Πριν ξεκινήσετε να μαθαίνετε Java, ακολουθούν μερικές συμβουλές:

  • Μην διαβάζετε εκπαιδευτικά άρθρα και παραδείγματα σαν μυθιστόρημα. Ο μόνος τρόπος για να γίνεις καλός προγραμματιστής είναι να γράψεις πολύ κώδικα.
  • Εάν προέρχεστε από άλλη γλώσσα προγραμματισμού (ας πούμε, C#), δεν χρειάζεται να γράψετε κώδικα σε στυλ C#.
  • Βρείτε κοινότητες Java στο διαδίκτυο. Μόλις μάθετε πώς να γράφετε απλά προγράμματα σε Java, βρείτε δημοφιλείς τοποθεσίες και φόρουμ αφιερωμένα στην Java. Προσπαθήστε να λύσετε προβλήματα που έχουν άλλοι προγραμματιστές. Αυτός είναι ένας πολύ καλός τρόπος για να διευρύνετε τις γνώσεις σας. Επιπλέον, αν κολλήσετε, θα ξέρετε πού να ζητήσετε βοήθεια.

Ελπίζουμε ότι αυτό το άρθρο θα σας ενθαρρύνει να μάθετε Java και θα σας βοηθήσει να ξεκινήσετε να εργάζεστε στα πρώτα σας προγράμματα.

Μετάφραση του άρθρου " Μάθετε προγραμματισμό Java. Ο οριστικός οδηγός” προετοιμάστηκε από τη φιλική ομάδα του έργου

Θα μιλήσουμε για βασική σύνταξη Java για αρχάριους. Η σύνταξη μιας γλώσσας προγραμματισμού είναι ένα σύνολο κανόνων που καθορίζουν πώς...

Η γλώσσα προγραμματισμού Java και το συνοδευτικό σύστημα υποστήριξης εκτέλεσής της σχεδιάστηκαν για να διασφαλίζουν ότι τα προγράμματα, μόλις αναπτυχθούν και μεταγλωττιστούν, θα παραδίδονται μέσω του Διαδικτύου σε δυαδική μορφή και θα εκτελούνται σε οποιοδήποτε μηχάνημα με δυνατότητα Java. Η ασφάλεια ήταν μέρος της ανάπτυξης Java από την αρχή. Αυτή η ενότητα θα συζητήσει τη λειτουργία αυτού του συστήματος ασφαλείας.

Η Java είναι μια γλώσσα ασφαλής για τον τύπο. Αυτό σημαίνει ότι ο μεταγλωττιστής θα απορρίψει κάθε προσπάθεια χρήσης της μεταβλητής με αυτόν τον τρόπο.



Ας ταιριάξουμε τον τύπο της. Για σύγκριση, λάβετε υπόψη τα ακόλουθα

Δημιουργεί έναν τυχαίο αριθμό και τον αποθηκεύει στον δείκτη p. Στη συνέχεια, αποθηκεύει το null byte στη διεύθυνση που περιέχεται στο p, αντικαθιστώντας ό,τι υπήρχε πριν - κωδικός ή δεδομένα. Στην Java, οι κατασκευές που αναμειγνύουν τύπους με αυτόν τον τρόπο απαγορεύονται από την ίδια τη γραμματική. Επιπλέον, η Java δεν έχει μεταβλητές δείκτη, καμία μετάδοση τύπου, καμία κατανομή μνήμης ελεγχόμενη από το χρήστη (όπως malloc και δωρεάν) και όλες οι αναφορές συστοιχιών ελέγχονται κατά το χρόνο εκτέλεσης.

Τα προγράμματα Java μεταγλωττίζονται σε ένα ενδιάμεσο δυάδικος κώδικας, που ονομάζεται bytecode JVM. Το JVM έχει περίπου 100 εντολές, οι περισσότερες από τις οποίες σπρώχνουν αντικείμενα συγκεκριμένου τύπου στη στοίβα, τα βγάζουν από τη στοίβα ή συνδυάζουν αριθμητικά δύο εγγραφές στη στοίβα. Αυτά τα προγράμματα JVM ερμηνεύονται γενικά, αν και σε κάποιο βαθμό
Σε ορισμένες περιπτώσεις μπορούν να μεταγλωττιστούν σε γλώσσα μηχανής για ταχύτερη εκτέλεση. Στο μοντέλο Java applets, που αποστέλλονται μέσω Διαδικτύου για απομακρυσμένη εκτέλεση, είναι προγράμματα JVM.

Όταν φθάνει μια μικροεφαρμογή, υποβάλλεται σε μια διαδικασία που ελέγχει τον bytecode JVM για να δει αν πληροί ορισμένους κανόνες. Μια σωστά μεταγλωττισμένη μικροεφαρμογή θα τα ταιριάξει αυτόματα, αλλά τίποτα δεν εμποδίζει τους εισβολείς να γράψουν μια μικροεφαρμογή JVM στη γλώσσα συγκρότησης JVM. Η διαδικασία επαλήθευσης περιλαμβάνει αναζήτηση απαντήσεων στις ακόλουθες ερωτήσεις:

1. Προσπαθεί η μικροεφαρμογή να πλαστογραφήσει δείκτες;

2. Παραβιάζει τους περιορισμούς πρόσβασης για μέλη ιδιωτικών τάξεων;

3. Προσπαθεί να χρησιμοποιήσει μια μεταβλητή ενός τύπου ως μεταβλητή άλλου τύπου;

4. Δημιουργεί υπερχείλιση ή υπορροή στοίβας;

5. Κάνει παράνομες μετατροπές από μεταβλητές ενός τύπου σε μεταβλητές άλλου τύπου;

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

Ωστόσο, οι μικροεφαρμογές εξακολουθούν να μπορούν να πραγματοποιούν κλήσεις συστήματος καλώντας μεθόδους (διαδικασίες) Java που παρέχονται για αυτούς τους σκοπούς. Οι μέθοδοι που χρησιμοποιούνται για να γίνει αυτό στην Java έχουν βελτιωθεί συνεχώς. Στην πρώτη έκδοση της Java, JDK (Java Development Kit) 1.0, οι μικροεφαρμογές χωρίστηκαν σε δύο κατηγορίες: αξιόπιστες και μη αξιόπιστες. Οι μικροεφαρμογές που ανακτήθηκαν από τον τοπικό δίσκο ήταν αξιόπιστες και είχαν τη δυνατότητα να πραγματοποιήσουν οποιαδήποτε κλήση συστήματος χρειάζονταν. Αντίθετα, οι μικροεφαρμογές που ελήφθησαν μέσω του Διαδικτύου θεωρήθηκαν αναξιόπιστες. Εκτελέστηκαν σε sandbox, όπως φαίνεται στο Σχ. 9.33, και ουσιαστικά δεν τους επιτρεπόταν να κάνουν τίποτα.

Αφού απέκτησε εμπειρία με αυτό το μοντέλο, η Sun αποφάσισε ότι ήταν πολύ περιοριστικό. Το JDK 1.1 εισήγαγε την ψηφιακή υπογραφή κώδικα. Όταν έφτασε μια μικροεφαρμογή από το Διαδίκτυο, έγινε έλεγχος για να διαπιστωθεί εάν ήταν υπογεγραμμένο από άτομο ή οργανισμό τον οποίο εμπιστευόταν ο χρήστης (όπως καθορίζεται από τη λίστα του χρήστη με αξιόπιστους κατόχους ψηφιακών υπογραφών). Εάν η υπογραφή μπορούσε να είναι αξιόπιστη, η μικροεφαρμογή θα μπορούσε να κάνει ό,τι ήθελε, αν όχι, έτρεχε σε ένα sandbox με αυστηρούς περιορισμούς.

Μετά την απόκτηση περισσότερης εμπειρίας, αυτό το σύστημα διαπιστώθηκε επίσης ότι δεν ήταν ικανοποιητικό, επομένως το μοντέλο ασφαλείας άλλαξε ξανά. Το JDK 1.2 εισήγαγε μια ρυθμιζόμενη, λεπτομερή πολιτική ασφαλείας που ισχύει για όλες τις μικροεφαρμογές, τόσο τοπικές όσο και απομακρυσμένες. Αυτό το μοντέλο ασφαλείας είναι τόσο περίπλοκο που του αξίζει ένα ξεχωριστό βιβλίο (Gong, 1999), επομένως θα δώσουμε μόνο μια σύντομη περίληψη ορισμένων από τα κύρια χαρακτηριστικά του. Κάθε μικροεφαρμογή χαρακτηρίζεται από δύο πράγματα: από πού προήλθε και ποιος την υπέγραψε. Η ερώτηση από πού προήλθε απαντάται από τη διεύθυνση URL και η ερώτηση για το ποιος την υπέγραψε απαντάται από το ιδιωτικό κλειδί που χρησιμοποιήθηκε για την ψηφιακή υπογραφή της. Κάθε χρήστης μπορεί να δημιουργήσει μια πολιτική ασφαλείας που αποτελείται από μια λίστα κανόνων. Κάθε κανόνας μπορεί να αναφέρει τη διεύθυνση URL, τον κάτοχο της υπογραφής, το αντικείμενο και την ενέργεια που μπορεί να εκτελέσει η μικροεφαρμογή στο αντικείμενο, εάν η διεύθυνση URL της μικροεφαρμογής

και ο κάτοχος της υπογραφής θα ταιριάζει με αυτά που καθορίζονται στον κανόνα. Εννοιολογικά, οι πληροφορίες που παρέχονται φαίνονται στον Πίνακα. 9.3, αν και στην πραγματικότητα έχει διαφορετική μορφή και σχετίζεται με την ιεραρχία κλάσεων Java.


Ένας τύπος ενέργειας επιτρέπει την πρόσβαση στο αρχείο. Μια ενέργεια μπορεί να καθορίσει ένα συγκεκριμένο αρχείο ή κατάλογο, ένα σύνολο όλων των αρχείων σε έναν δεδομένο κατάλογο ή ένα σύνολο όλων των αρχείων και καταλόγων που περιέχονται αναδρομικά σε έναν δεδομένο κατάλογο. Τρεις γραμμές στον πίνακα. Το 9.3 αντιστοιχεί σε αυτές τις τρεις περιπτώσεις. Στην πρώτη γραμμή, η χρήστης Susan έχει ορίσει το αρχείο αδειών της έτσι ώστε οι μικροεφαρμογές που προέρχονται από το μηχάνημα επεξεργασίας φορολογικών δεδομένων της, που ονομάζεται www.taxprep.com, και είναι υπογεγραμμένες από την εταιρεία επεξεργασίας, έχουν πρόσβαση ανάγνωσης στα φορολογικά της δεδομένα στο 1040.xls αρχείο . Μπορούν να διαβάσουν μόνο αυτό το αρχείο, το οποίο καμία άλλη μικροεφαρμογή δεν μπορεί να διαβάσει. Επιπλέον, όλες οι μικροεφαρμογές από όλες τις πηγές, είτε υπογεγραμμένες είτε όχι, μπορούν να διαβάζουν και να γράφουν αρχεία στον κατάλογο /usr/tmp.

Επιπλέον, η Susan εμπιστεύεται αρκετά τη Microsoft ώστε να επιτρέπει σε μικροεφαρμογές που λαμβάνονται από τον ιστότοπό της και υπογράφονται από την εταιρεία να διαβάζουν, να γράφουν και να διαγράφουν αρχεία κάτω από τον κατάλογο του Office στο δέντρο καταλόγου, για παράδειγμα, για την αντιμετώπιση ελαττωμάτων και την εγκατάσταση νέων εκδόσεων λογισμικού. Για να επαληθεύσει τις υπογραφές, η Susan πρέπει είτε να έχει το απαιτούμενο δημόσιο κλειδί στον δίσκο της είτε να το αποκτήσει δυναμικά, όπως με τη μορφή πιστοποιητικού υπογεγραμμένου από μια εταιρεία που εμπιστεύεται και της οποίας το δημόσιο κλειδί έχει.

Όχι μόνο τα αρχεία μπορούν να λειτουργήσουν ως προστατευμένοι πόροι. Μπορείτε επίσης να προστατεύσετε την πρόσβαση στο δίκτυο. Εδώ το αντικείμενο θα είναι μια συγκεκριμένη θύρα σε έναν συγκεκριμένο υπολογιστή. Ο υπολογιστής καθορίζεται χρησιμοποιώντας τη διεύθυνση IP ή το όνομα DNS του. Οι θύρες σε αυτόν τον υπολογιστή υποδεικνύονται με μια σειρά αριθμών. Οι πιθανές ενέργειες περιλαμβάνουν τη σύνδεση με τον απομακρυσμένο υπολογιστή και την αποδοχή συνδέσεων που προέρχονται από τον απομακρυσμένο υπολογιστή. Έτσι, η μικροεφαρμογή μπορεί να έχει πρόσβαση στο δίκτυο, αλλά αυτή η πρόσβαση περιορίζεται στην επικοινωνία μόνο με εκείνους τους υπολογιστές που αναφέρονται ρητά στη λίστα αδειών. Οι μικροεφαρμογές μπορούν να φορτώνουν δυναμικά πρόσθετο κώδικα (κλάσεις) όπως απαιτείται, αλλά οι φορτωτές κλάσεων που παρέχονται από τον χρήστη μπορούν να ασκούν αυστηρό έλεγχο σχετικά με το ποιες μηχανές μπορούν να προμηθεύονται αυτές τις κλάσεις. Υπάρχουν επίσης πολλά άλλα χαρακτηριστικά ασφαλείας.

Περισσότερα για το θέμα Ασφάλεια στο σύστημα Java:

  1. § 39 Κατάταξη των συμβάσεων σε ορισμένους τύπους. – Ρωμαϊκή ταξινόμηση. – Σύστημα πρωσικού δικαίου, γαλλικός και αυστριακός κώδικας. – Ρωσικό σύστημα καμάρας. – Το σύστημα της παρούσας παρουσίασης.

Η ενότητα Java του developerWorks περιέχει εκατοντάδες άρθρα, σεμινάρια, συμβουλές και πόρους γραμμένα από μέλη της κοινότητας Java για να σας βοηθήσουν να αξιοποιήσετε στο έπακρο την πλατφόρμα Java και τις σχετικές τεχνολογίες καθώς αναπτύσσετε εφαρμογές. Ωστόσο, για τους νέους προγραμματιστές που μόλις αρχίζουν να μαθαίνουν Java, μπορεί να είναι δύσκολο να πλοηγηθούν στον τεράστιο όγκο των πόρων που είναι διαθέσιμοι στο Διαδίκτυο. Γι' αυτό δημιουργήσαμε αυτήν τη σελίδα για να παρέχουμε μια επισκόπηση των βασικών τεχνολογιών Java στο γενικό πλαίσιο των δυνατοτήτων της γλώσσας. Εδώ θα βρείτε συνδέσμους σε πόρους για την περαιτέρω εκμάθηση Java, όπως άρθρα του developerWorks για αρχάριους και άλλους εκπαιδευτικούς πόρους, καθώς και συνδέσμους για λήψη προϊόντων της IBM.

Είστε αρχάριος προγραμματιστής Java; Σε αυτή τη σελίδα θα βρείτε μια επισκόπηση των κύριων τεχνολογιών Java™ και της θέσης τους στη σύγχρονη ανάπτυξη λογισμικού. Με συνδέσμους σε εισαγωγικά άρθρα του προγραμματιστή Works για αυτό και σχετικά θέματα, άλλο εκπαιδευτικό υλικό, λήψεις και προϊόντα IBM, αυτή η σελίδα είναι ένα εξαιρετικό σημείο εκκίνησης για την εκμάθηση Java.

Τι είναι οι «τεχνολογίες Java»;

Η Java είναι και γλώσσα προγραμματισμού και πλατφόρμα.

Πρώτον, η Java είναι αντικειμενοστραφή υψηλού επιπέδου γλώσσα προγραμματισμού. Στο συλλογή, η οποία εκτελείται μία φορά κατά την κατασκευή της εφαρμογής, ο κώδικας Java μετατρέπεται σε κώδικα ενδιάμεσης γλώσσας ( bytecode). Με τη σειρά του, ο bytecode αναλύεται και εκτελείται ( ερμηνεύεται) εικονικό Μηχανή Java(JVM), το οποίο λειτουργεί ως μεταφραστής μεταξύ της γλώσσας Java και του υλικού του λειτουργικού συστήματος. Όλες οι υλοποιήσεις Java πρέπει να μιμούνται το JVM, έτσι ώστε οι εφαρμογές που δημιουργείτε να μπορούν να εκτελούνται σε οποιοδήποτε σύστημα περιλαμβάνει εικονική μηχανή Java.

Δεύτερον, η Java είναι πλατφόρμα λογισμικού, εκδόσεις του οποίου είναι διαθέσιμες για διάφορα συστήματα υλικού. Υπάρχουν τρεις εκδόσεις Java (δείτε τις εκδόσεις Java Platform παρακάτω). Η πλατφόρμα περιλαμβάνει ένα JVM και μια διεπαφή προγραμματισμού εφαρμογών Java (API), η οποία είναι ένα εκτεταμένο σύνολο έτοιμων στοιχείων λογισμικού (κλάσεις) που διευκολύνουν την ανάπτυξη και την ανάπτυξη μικροεφαρμογών και εφαρμογών. Το Java API καλύπτει πολλές πτυχές της ανάπτυξης Java, συμπεριλαμβανομένης της χειραγώγησηςβασικά αντικείμενα πακέτα, που περιέχουν κλάσεις και διεπαφές για την επίλυση σχετικών προβλημάτων.

Εκτός από το API, κάθε πλήρης υλοποίηση της πλατφόρμας Java πρέπει να περιλαμβάνει τα ακόλουθα:

  • Εργαλεία προγραμματιστών για μεταγλώττιση, εκτέλεση, παρακολούθηση, εντοπισμό σφαλμάτων και τεκμηρίωση εφαρμογών.
  • Τυπικοί μηχανισμοί για την ανάπτυξη εφαρμογών στο περιβάλλον χρήστη.
  • Εργαλειοθήκες που σας επιτρέπουν να δημιουργείτε πολύπλοκα γραφικά περιβάλλοντα χρήστη.
  • Βιβλιοθήκες ενσωμάτωσης για προγραμματική πρόσβαση σε βάσεις δεδομένων και απομακρυσμένο χειρισμό αντικειμένων.

Το JVM είναι επίσης ένα αποδεδειγμένο περιβάλλον για την εκτέλεση εφαρμογών γραμμένων σε άλλες γλώσσες εκτός της Java. Συγκεκριμένα, τα Groovy, Scala και εξειδικευμένες υλοποιήσεις των Ruby και Python παρέχουν στους προγραμματιστές τη δυνατότητα να εκτελούν δυναμική και λειτουργικές γλώσσες(Για περισσότερες πληροφορίες, δείτε Τι σχέση έχει η Java με τις δυναμικές γλώσσες και τον λειτουργικό προγραμματισμό;).

Γλώσσα Javaαναπτύχθηκε από την Sun Microsystems. Επί του παρόντος, η ανάπτυξη τεχνολογιών Java, συμπεριλαμβανομένων εργασιών για προδιαγραφές, υλοποιήσεις αναφοράς και δοκιμές συμβατότητας, πραγματοποιείται υπό τον έλεγχο ενός ανοιχτού κώδικα μη κερδοσκοπικού οργανισμού JCP (Java Community Process), που συγκεντρώνει προγραμματιστές Java και κατόχους αδειών. Το 2007, η Sun κυκλοφόρησε μια δωρεάν έκδοση της Java, συμπεριλαμβανομένων των βασικών στοιχείων της πλατφόρμας, υπό την άδεια GNU GPL v2 (GPLv2). Μπορείτε να διαβάσετε περισσότερα για αυτήν την έκδοση στην ενότητα Java και Ανάπτυξη Ελεύθερου Λογισμικού.

Γιατί πρέπει να μάθετε Java;

Το κύριο πλεονέκτημα της γλώσσας Java είναι η φορητότητα των εφαρμογών Java, δηλ. δυνατότητα εκτέλεσης σε οποιεσδήποτε πλατφόρμες υλικού και λειτουργικά συστήματα, αφού όλα τα JVM, ανεξάρτητα από την πλατφόρμα στην οποία λειτουργούν, έχουν τη δυνατότητα να εκτελέσουν τον ίδιο bytecode.

Η γλώσσα και η πλατφόρμα Java είναι εξαιρετικά επεκτάσιμη. Μπορείτε εύκολα να δημιουργήσετε εφαρμογές για συσκευές με περιορισμένους πόρους, προσαρμόζοντας λογισμικό που είχε αρχικά γραφτεί για επιτραπέζιους υπολογιστές. Ταυτόχρονα, η γλώσσα Java είναι ιδανική για την ανάπτυξη εφαρμογών Web από την πλευρά του διακομιστή, μέσω των οποίων ο χρήστης μπορεί να έχει πρόσβαση σε υπολογιστικούς πόρους στον Ιστό. Η δυνατότητα ασφαλούς εκτέλεσης κώδικα που έχει ληφθεί μέσω Διαδικτύου ενσωματώθηκε στη σχεδίαση της Java, επομένως η γλώσσα παρέχει υψηλό επίπεδο ασφάλειας κατά την εργασία μέσω Διαδικτύου. Οι εφαρμογές Ιστού εκτελούνται σε περιβάλλοντα χρόνου εκτέλεσης που ονομάζονται Web κοντέινερ, που παρέχουν πολλά βολικές υπηρεσίες, συμπεριλαμβανομένης της αποστολής αιτημάτων, της ασφάλειας και του συγχρονισμού, της διαχείρισης του κύκλου ζωής και της πρόσβασης σε API, όπως διαχείριση ονομάτων, συναλλαγές και email. Πολλά πράγματα είναι γραμμένα σε Java διακομιστές εφαρμογών, που λειτουργούν ως κοντέινερ Ιστού για άλλα στοιχεία Java, XML και υπηρεσίες Ιστού που αλληλεπιδρούν με βάσεις δεδομένων και δημιουργούν δυναμικά το περιεχόμενο των ιστοσελίδων. Τέτοιοι διακομιστές παρέχουν επίσης ένα περιβάλλον ανάπτυξης εταιρικές εφαρμογέςκαι εργαλεία διαχείρισης συναλλαγών, ομαδοποίησης, ασφάλεια, συνδεσιμότητα και το απαιτούμενο επίπεδο διαθεσιμότητας, απόδοσης και επεκτασιμότητας.

Υποστηρίζοντας τη χρήση ανοιχτών προτύπων σε εταιρικές εφαρμογές, η Java ανοίγει άφθονες ευκαιρίεςνα χρησιμοποιούν υπηρεσίες Ιστού που βασίζονται σε XML για να βοηθούν τους επιχειρηματικούς συνεργάτες να μοιράζονται πόρους πληροφοριών και εφαρμογές. Η Java στηρίζει πολλά από τα προϊόντα και τις υπηρεσίες τεχνικής συμβουλευτικής της IBM Προϊόντα και Τεχνολογίες IBMγια προγραμματιστές Java), και επίσης παίζει βασικό ρόλο σε μια σειρά από τις πιο σημαντικές δραστηριότητες της εταιρείας.

  • Εξερευνήστε την προσέγγιση της IBM και μάθετε πώς το SOA σας βοηθά να δημιουργήσετε ετερογενείς εφαρμογές που αντλούν λειτουργικότητα από πολλαπλές πηγές τόσο εντός όσο και εκτός της επιχείρησης, υποστηρίζοντας έτσι οριζόντιες επιχειρηματικές διαδικασίες.
  • Η προσέγγιση στοιχείων της IBM παρέχει ένα πλήρες φάσμα δυνατοτήτων για την προώθηση της στρατηγικής αλλαγής. Οι λύσεις που παρέχονται βασίζονται σε ευέλικτο, επεκτάσιμο λογισμικό που βασίζεται σε ανοιχτά πρότυπα (συμπεριλαμβανομένης της Java) και υποδομή υλικού.

Εκδόσεις Java Platform
Υπάρχουν τρεις εκδόσεις της πλατφόρμας Java, που επιτρέπουν σε προγραμματιστές εφαρμογών, παρόχους υπηρεσιών και κατασκευαστές μηχανήματα υπολογιστώνδημιουργία λύσεων που ανταποκρίνονται στις απαιτήσεις συγκεκριμένων ομάδων χρηστών.

  • Java SE (Java Platform, Standard Edition). Χρησιμοποιώντας το Java SE, μπορείτε να δημιουργήσετε και να αναπτύξετε εφαρμογές Java για επιτραπέζιους υπολογιστές και διακομιστές και να αναπτύξετε ενσωματωμένο λογισμικό και προγράμματα για συστήματα σε πραγματικό χρόνο. Η έκδοση Java SE περιλαμβάνει τις κλάσεις που απαιτούνται για τη δημιουργία υπηρεσιών Ιστού και τα βασικά στοιχεία της Java EE (Java Platform, Enterprise Edition).Τρέχουσα έκδοση
    • Η πλατφόρμα Java SE είναι η Java SE 6, γνωστή και ως "Mustang". Ωστόσο, πολλοί προγραμματιστές εξακολουθούν να χρησιμοποιούν Java SE 5 (Java 5.0 ή "Tiger").
    • Για μια εξαιρετική επισκόπηση των χαρακτηριστικών του Java SE 5, ανατρέξτε στα άρθρα της στήλης. Πολλές από τις πτυχές προγραμματισμού της πλατφόρμας Java SE 5, για την οποία δημιουργήθηκαν πολλές υπάρχουσες εφαρμογές, εξακολουθούν να είναι σχετικές με το Java SE 6. Το άρθρο περιγράφει νέαΧαρακτηριστικά Java
    • SE 6, που χρησιμοποιείται για την παρακολούθηση και την αξιολόγηση της απόδοσης της εφαρμογής.
    • Αυτό το άρθρο παρέχει μια εισαγωγή σε μια γλώσσα δέσμης ενεργειών που εκτελείται πάνω από την πλατφόρμα Java SE 6 για να απλοποιήσει τον προγραμματισμό πολύπλοκων διεπαφών χρήστη.
  • Αυτή η σειρά δύο μερών παρέχει μια εισαγωγή στο API που παρέχεται από το Java SE 6, το οποίο επιτρέπει στις εφαρμογές Java να εκτελούν δυναμικό κώδικα σεναρίου και αντίστροφα. . Java EE (Java Platform, Enterprise Edition) . Αυτόεταιρική έκδοση
    • Η πλατφόρμα βοηθά τους προγραμματιστές να δημιουργήσουν και να αναπτύξουν φορητές, αξιόπιστες, επεκτάσιμες και ασφαλείς εφαρμογές διακομιστή Java. Με βάση τις δυνατότητες της Java SE, η Java EE παρέχει υπηρεσίες Ιστού, μοντέλα στοιχείων, API απομακρυσμένης διαχείρισης και διαχείρισης για εφαρμογές εταιρικού λογισμικού SOA και Web 2.0. Διαβάστε άρθρα και για μια εισαγωγική επισκόπηση των χαρακτηριστικώντελευταία έκδοση
    • Java EE πλατφόρμες.
    • Για περισσότερες πληροφορίες σχετικά με την Java EE, ανατρέξτε στα άρθρα της στήλης.
    • Τα άρθρα της σειράς Getting Started: Migrating to the Java Platform γράφτηκαν ειδικά για προγραμματιστές εφαρμογών .NET, Windows-πελάτη-διακομιστή και ASP για να τους βοηθήσουν να μετεγκατασταθούν σε Java.
  • Java ME (Java Platform, Micro Edition). Το Java ME παρέχει ένα περιβάλλον για την εκτέλεση εφαρμογών που έχουν κατασκευαστεί για ένα ευρύ φάσμα κινητών και ενσωματωμένων συστημάτων, όπως κινητά τηλέφωνα, PDA, αποκωδικοποιητές και εκτυπωτές. Αυτή η έκδοση της πλατφόρμας παρέχει εργαλεία για τη δημιουργία ευέλικτων διεπαφών χρήστη, ένα αξιόπιστο μοντέλο ασφαλείας, μια πλήρη γκάμα ενσωματωμένων πρωτόκολλα δικτύου, καθώς και ισχυρή υποστήριξη διαδικτυακών και εκτός σύνδεσης δυναμικά φορτωμένων εφαρμογών. Οι εφαρμογές που βασίζονται στις προδιαγραφές Java ME μπορούν να εκτελούνται σε μια ποικιλία συσκευών και να μπορούν να χρησιμοποιούν αποτελεσματικά τις δυνατότητες του συστήματός τους.

Ποιες τεχνολογίες είναι τα κύρια στοιχεία της πλατφόρμας Java;

Η ενότητα Java του developerWorks περιέχει τα στοιχεία της Java. Παρακάτω είναι μερικά από τα στοιχεία, πιθανά πρόσθετα πακέτα και επεκτάσεις που περιλαμβάνονται σε κάθε έκδοση της πλατφόρμας. Για κάθε τεχνολογία που δίνεται σύντομη περιγραφή, καθώς και έναν σύνδεσμο προς υλικά που περιγράφουν τη θέση της στον κόσμο της Java. Σημειώστε ότι πολλά από τα στοιχεία περιλαμβάνονται και στις τρεις εκδόσεις της πλατφόρμας Java.

Τεχνολογίες που περιλαμβάνονται στην Java SE:

  • Java Foundation Classes (Swing)(JFC) είναι ένα σύνολο βιβλιοθηκών κλάσης Java που χρησιμοποιούνται για τη δημιουργία γραφικών διεπαφών χρήστη και την υλοποίηση άλλων γραφικών συναρτήσεων σε εφαρμογές-πελάτες Java. Διαχείριση .
  • JavaHelpείναι ένα ανεξάρτητο από την πλατφόρμα, επεκτάσιμο σύστημα βοήθειας που επιτρέπει στους προγραμματιστές και τους τεχνικούς συγγραφείς να ενσωματώνουν σελίδες βοήθειας σε μικροεφαρμογές, στοιχεία λογισμικού, εφαρμογές, λειτουργικά συστήματα και συσκευές και να δημιουργούν συστήματα βοήθειας Ιστού. Ανατρέξτε στο άρθρο.
  • Χάρις σε Java Native Interface(JNI) Οι εφαρμογές Java που εκτελούνται μέσα στο JVM μπορούν να αλληλεπιδράσουν με προγράμματα και βιβλιοθήκες γραμμένες σε άλλες γλώσσες προγραμματισμού.
  • Τεχνολογία Java Web Startαπλοποιεί την ανάπτυξη εφαρμογών Java επιτρέποντας στους χρήστες να κάνουν λήψη και εκτέλεση πλούσιου λογισμικού, όπως υπολογιστικά φύλλα, με ένα μόνο κλικ, χωρίς εγκατάσταση (βλ. άρθρο).
  • Συνδεσιμότητα βάσεων δεδομένων Java(JDBC) είναι ένα API που παρέχει ένα μέσο πρόσβασης στις περισσότερες πηγές σχεσιακών δεδομένων από εφαρμογές Java. Μπορεί να συνδεθεί με μια ποικιλία βάσεων δεδομένων SQL, καθώς και με άλλες πηγές δεδομένων με πίνακα, όπως υπολογιστικά φύλλα και επίπεδα αρχεία.
  • Java Advanced ImagingΤο (JAI) είναι ένα αντικειμενοστραφή API που παρέχει ένα απλό, υψηλού επιπέδου μοντέλο προγραμματισμού που διευκολύνει τον χειρισμό της εικόνας.
  • Υπηρεσία ελέγχου ταυτότητας και εξουσιοδότησης Java(JAAS) είναι μια τεχνολογία που παρέχει υπηρεσίες με ένα μέσο για τον έλεγχο ταυτότητας των χρηστών και την επαλήθευση των δικαιωμάτων πρόσβασής τους. Περιλαμβάνει μια υλοποίηση Java του τυπικού πλαισίου PAM (Pluggable Authentication Module) και υποστηρίζει εξουσιοδότηση σε επίπεδο χρήστη.
  • Java Cryptography Extension(JCE) είναι ένα σύνολο πακέτων που παρέχουν υποδομή και υλοποιήσεις για κρυπτογράφηση, δημιουργία και ανταλλαγή κλειδιών και αλγόριθμους κωδικού ελέγχου ταυτότητας μηνυμάτων (MAC). Η τεχνολογία περιλαμβάνει επίσης υποστήριξη για συμμετρικούς, ασύμμετρους, μπλοκ και κρυπτογράφηση ροής, καθώς και ασφαλείς ροές και σφραγισμένα αντικείμενα. Περισσότερες λεπτομερείς πληροφορίες μπορείτε να βρείτε στο εγχειρίδιο.
  • Αντικείμενα δεδομένων JavaΤο (JDO) είναι ένα τυπικό, αφηρημένο, βασισμένο σε διεπαφή μοντέλο για μακροπρόθεσμη αποθήκευση αντικειμένων Java. Επιτρέπει στους προγραμματιστές να αποθηκεύουν απευθείας παρουσίες κλάσεων Java domain σε μόνιμη αποθήκευση (όπως μια βάση δεδομένων). Αυτό το μοντέλο σε ορισμένες περιπτώσεις μπορεί να αντικαταστήσει την άμεση εγγραφή σε ένα αρχείο, τη σειριοποίηση, το JDBC, καθώς και τη χρήση στοιχείων διακομιστή EJB, τόσο διαχειριζόμενα από κοντέινερ (Διαχείριση κοντέινερ - CMP) όσο και κατάσταση αυτοαποθήκευσης (Εμμονή Bean Managed - BMP) .
  • Πλαστική σακούλα Επεκτάσεις διαχείρισης Java(JMX) παρέχει εργαλεία για τη δημιουργία κατανεμημένων, αρθρωτών, δυναμικών και προσβάσιμων από τον Ιστό εφαρμογών για τη διαχείριση και την παρακολούθηση συσκευών, λογισμικού και δικτύων που βασίζονται σε υπηρεσίες (βλ. άρθρο).
  • Java Media Framework(JMF) σας επιτρέπει να προσθέτετε πληροφορίες ήχου, βίντεο και άλλων πολυμέσων σε εφαρμογές Java και μικροεφαρμογές (δείτε το εγχειρίδιο).
  • Ονομασία Java και διεπαφή καταλόγου(JNDI) είναι μια ενοποιημένη διεπαφή για την πρόσβαση σε διάφορες υπηρεσίες ονομασίας και καταλόγου σε ένα εταιρικό δίκτυο. Επιτρέπει στις εφαρμογές να συνδέονται αποτελεσματικά με πολλές υπηρεσίες ονοματοδοσίας και καταλόγου σε ένα ετερογενές εταιρικό περιβάλλον.
  • Επεκτάσεις Java Secure Socket(JSSE) είναι ένα σύνολο πακέτων για την ασφαλή ανταλλαγή πληροφοριών στο Διαδίκτυο.
  • Υλοποιούν την έκδοση Java των πρωτοκόλλων SSL (Secure Sockets Layer) και TLS (Transport Layer Security) και παρέχουν εργαλεία για κρυπτογράφηση δεδομένων, έλεγχο ακεραιότητας μηνυμάτων, έλεγχο ταυτότητας διακομιστή και πελάτη (η τελευταία δυνατότητα είναι προαιρετική). Java Speech API
  • (JSAPI) περιλαμβάνει τις προδιαγραφές JSGF (Java Speech Grammar Format) και JSML (Java Speech Markup Language). Αυτό το πακέτο παρέχει δυνατότητες χρήσης τεχνολογιών ομιλίας στη διεπαφή χρήστη.Το JSAPI είναι ένα API πολλαπλών πλατφορμών για υποστήριξη αναγνώρισης φωνής, συστημάτων εισαγωγής ομιλίας και σύνθεσης ομιλίας. Για περισσότερες λεπτομέρειες, ανατρέξτε στην επόμενη ενότητα του άρθρου.
  • Java 3D είναι ένα API που παρέχει δυνατότητες πολλαπλών πλατφορμών και κλιμάκωση για εργασία με τρισδιάστατα γραφικά σε εφαρμογές Java. Το API είναι οργανωμένο ως ένα σύνολο αντικειμενοστρεφών διεπαφών που σχηματίζουν ένα ενιαίο, απλό μοντέλο προγραμματισμού υψηλού επιπέδου.Μηχανισμός
  • Διευκόλυνση μεταδεδομένωνεπιτρέπει στους προγραμματιστές να ορίζουν χαρακτηριστικά για κλάσεις, διεπαφές, πεδία και μεθόδους, ώστε να μπορούν να υπόκεινται σε ειδική επεξεργασία από εργαλεία ανάπτυξης, εργαλεία ανάπτυξης και βιβλιοθήκες τρίτων κατά το χρόνο εκτέλεσης (βλ. άρθρο).
  • Java Content Repository APIείναι ένα API για πρόσβαση σε αποθετήρια περιεχομένου σε Java SE, ανεξάρτητα από την υλοποίησή τους.
  • Τέτοια αποθετήρια είναι συστήματα διαχείρισης πληροφοριών υψηλού επιπέδου και είναι εκτεταμένες εκδόσεις των κλασικών αποθετηρίων δεδομένων.Απαριθμήσεις
  • (απαρίθμηση) είναι ένας τύπος δεδομένων που σας επιτρέπει να περιγράφετε διάφορα στοιχεία δεδομένων ως πληκτρολογημένο σύνολο σταθερών. Γενόσημα(γενικοί τύποι) σας επιτρέπουν να δημιουργήσετε κλάσεις με παραμέτρους (αφηρημένοι τύποι) που καθορίζονται στο στάδιο της προετοιμασίας. Για περισσότερες πληροφορίες, ανατρέξτε σε αυτό το άρθρο και επίσης δείτε αυτό το άρθρο σχετικά με τον τρόπο με τον οποίο οι γενικοί τύποι διευκολύνουν την εργασία με συλλογές στο Java SE 6.0.
  • Βοηθητικά προγράμματα(JAXP) είναι ένα API που επιτρέπει στις εφαρμογές Java να αναλύουν και να μετασχηματίζουν έγγραφα XML, ανεξάρτητα από τον επεξεργαστή XML που χρησιμοποιείται. Αυτό επιτρέπει στις εφαρμογές να εναλλάσσονται εύκολα μεταξύ τους διαφορετικούς επεξεργαστέςχωρίς αλλαγές στον κωδικό εφαρμογής. Με τη σειρά του, η τεχνολογία JAXB ( Java API για XML Binding) παρέχει δυνατότητες αυτοματοποίησης της αντιστοίχισης εγγράφων XML και αντικειμένων Java.
  • SOAP with Attachments API για Java(SAAJ) παρέχει στους προγραμματιστές λειτουργίες για τη δημιουργία και την επεξεργασία μηνυμάτων σύμφωνα με την προδιαγραφή SOAP 1.1 με την ένδειξη SOAP with Attachments (SOAP with attachments). Για περισσότερες λεπτομέρειες, ανατρέξτε στο άρθρο).

Τεχνολογίες που περιλαμβάνονται στο J2EE:

  • Enterprise JavaBeans(EJB) είναι ένα μοντέλο που βασίζεται σε στοιχεία που απλοποιεί την ανάπτυξη ενδιάμεσου λογισμικού παρέχοντας υπηρεσίες όπως διαχείριση συναλλαγών, ασφάλεια και συνδεσιμότητα βάσεων δεδομένων.
  • Προδιαγραφές πύληςορίζει ένα σύνολο API για τη δημιουργία πυλών σε Java, που καλύπτουν πτυχές όπως η συγκέντρωση και παρουσίαση πληροφοριών, η εξατομίκευση και η ασφάλεια (βλ. άρθρο).
  • JavaMailείναι ένα API που παρέχει ένα σύνολο αφηρημένες τάξεις, προσομοίωση του ταχυδρομικού συστήματος.
  • Υπηρεσία μηνυμάτων Java(JMS) είναι ένα API που υποστηρίζει τη δημιουργία φορητών εφαρμογών Java που βασίζονται σε μηχανισμό ανταλλαγής μηνυμάτων. Καθορίζει ένα κοινό σύνολο βασικών εννοιών και στρατηγικών προγραμματισμού για όλα τα συμβατά με JMS συστήματα ανταλλαγής μηνυμάτων.
  • Πρόσωπα JavaServer(JSF) παρέχει ένα μοντέλο προγραμματισμού που σας βοηθά να δημιουργήσετε εφαρμογές Ιστού συναρμολογώντας σελίδες από επαναχρησιμοποιήσιμα στοιχεία διεπαφής χρήστη, συσχετίζοντας αυτά τα στοιχεία με πηγές δεδομένων και συνδέοντας συμβάντα από την πλευρά του πελάτη με προγράμματα χειρισμού διακομιστή. Για περισσότερες πληροφορίες, ανατρέξτε στον οδηγό σε δύο μέρη και στη σειρά άρθρων στηλών.
  • Σελίδες JavaServer(JSP) παρέχει στους προγραμματιστές Ιστού τα μέσα για να δημιουργούν γρήγορα και να διατηρούν εύκολα δυναμικές ιστοσελίδες πολλαπλών πλατφορμών που διαχωρίζουν τη διεπαφή χρήστη και τη δημιουργία περιεχομένου, έτσι ώστε οι σχεδιαστές να μπορούν να αλλάζουν τη σήμανση χωρίς να επηρεάζουν το περιεχόμενο που δημιουργείται δυναμικά (δείτε το σεμινάριο).
  • Τυπική Βιβλιοθήκηετικέτες για σελίδες JavaServer(JSTL) είναι ένα σύνολο εξειδικευμένων ετικετών που παρέχουν μια τυπική μορφή για την εκτέλεση ενεργειών που απαιτούνται από πολλές εφαρμογές Ιστού. Δείτε το άρθρο Ενημερώστε τις σελίδες σας JSP με JSTL και τη σειρά τεσσάρων μερών που ονομάζεται .
  • Java Servletsεπεκτείνετε τη λειτουργικότητα των διακομιστών Ιστού παρέχοντας μια προσέγγιση βασισμένη σε στοιχεία πολλαπλών πλατφορμών για τη δημιουργία εφαρμογών Ιστού χωρίς τους περιορισμούς απόδοσης του CGI.
  • J2EE Connector Architecture(JCA) παρέχει μια τυπική αρχιτεκτονική για τη σύνδεση εφαρμογών J2EE με ετερογενή συστήματα πληροφοριών επιχειρήσεων (EIS). Αυτή η αρχιτεκτονική ορίζει ένα σύνολο επεκτάσιμων και ασφαλών μηχανισμών βασισμένων σε συναλλαγές μέσω των οποίων οι πάροχοι EIS μπορούν να παρέχουν τυπικούς προσαρμογείς πόρων για συμπερίληψη σε έναν διακομιστή εφαρμογών. Για πιο λεπτομερείς πληροφορίες, ανατρέξτε στα άρθρα και το εγχειρίδιο.
  • Προδιαγραφές διαχείρισης J2EE(JMX) ορίζει το μοντέλο πληροφοριών διαχείρισης για την πλατφόρμα J2EE. Αυτό το μοντέλο σχεδιάστηκε ειδικά για διασύνδεση με πολλά συστήματα ελέγχου και πρωτόκολλα. Περιέχει τυπικά μέσαγια σύγκριση με το γενικό μοντέλο πληροφοριών(Κοινό μοντέλο πληροφοριών - CIM), βάση πληροφοριώνΔιαχείριση SNMP (SNMP Management Information Base - MIB) και μοντέλο αντικειμένου Java χρησιμοποιώντας ένα στοιχείο EJB από την πλευρά του διακομιστή (J2EE Management EJB Component - MEJB).
  • Java Transaction API(JTA) είναι ένα API υψηλού επιπέδου υλοποίησης και ανεξάρτητο από πρωτόκολλο που παρέχει ένα μέσο πρόσβασης σε προγράμματα και διακομιστές εφαρμογών στις συναλλαγές. Υπηρεσία συναλλαγών JavaΤο (JTS) ορίζει μια υλοποίηση διαχείρισης συναλλαγών που υποστηρίζει JTA και υλοποιεί μια υποκείμενη αντιστοίχιση στην υπηρεσία συναλλαγών αντικειμένου OMG (Object Transaction Service - OTS 1.1).

Η διάδοση συναλλαγών στο JTS υλοποιείται χρησιμοποιώντας το Πρωτόκολλο Inter-ORB (IIOP). Για περισσότερες λεπτομέρειες, ανατρέξτε στο άρθρο.

Τεχνολογίες Java και Δημιουργία Εφαρμογών Ιστού

Για πολλά χρόνια, η Java ήταν η κύρια γλώσσα για την ανάπτυξη εφαρμογών Ιστού. Πρόσφατα, εμφανίστηκαν πολλά πλαίσια και βιβλιοθήκες που διευκολύνουν τη δημιουργία εφαρμογών Ιστού σε Java, συμπεριλαμβανομένων των πλούσιων διαδραστικών εφαρμογών Web 2.0.

Ελέγξτε τους παρακάτω πόρους για θέματα σχετικά με την ανάπτυξη Ιστού Java.

  • Τα άρθρα στη στήλη μιλούν για Grails - μια σύγχρονη υποδομή για δημιουργία διαδικτυακών εφαρμογών, γραμμένο σε Groovy.
  • Το Grails σάς επιτρέπει να συνδυάζετε απρόσκοπτα τον προηγουμένως γραμμένο κώδικα Java με τη δυνατότητα χρήσης μιας ευέλικτης και δυναμικής γλώσσας σεναρίου. Περισσότερες πληροφορίες για το Groovy παρέχονται παρακάτω στην ενότητα Τι σχέση έχει η Java με τις δυναμικές γλώσσες και τον λειτουργικό προγραμματισμό;.
  • Το Ajax είναι μια μεθοδολογία προγραμματισμού που χρησιμοποιεί γλώσσες δέσμης ενεργειών από την πλευρά του πελάτη για την επικοινωνία με έναν διακομιστή Web, επιτρέποντας στις σελίδες να ενημερώνουν γρήγορα τις πληροφορίες χωρίς να χρειάζεται να τις επαναφορτώσουν πλήρως. Διαβάζοντας αυτήν τη σειρά άρθρων, θα μάθετε πώς ο Ajax μπορεί να σας βοηθήσει ως προγραμματιστής εφαρμογών Java. Για περισσότερες πληροφορίες, μπορείτε να επισκεφτείτε τον ιστότοπο του developerWorks.
  • Το JavaServer Faces (JSF) παρέχει ένα μοντέλο προγραμματισμού που σας βοηθά να δημιουργήσετε εφαρμογές Ιστού συναρμολογώντας σελίδες από επαναχρησιμοποιήσιμα στοιχεία διεπαφής χρήστη, συσχετίζοντας αυτά τα στοιχεία με πηγές δεδομένων και συνδέοντας συμβάντα από την πλευρά του πελάτη με προγράμματα χειρισμού διακομιστή. Για περισσότερες πληροφορίες, ανατρέξτε στον οδηγό σε δύο μέρη και στη σειρά άρθρων στηλών.
  • Η πλατφόρμα Eclipse Web Tools Platform (WTP) επεκτείνει το δημοφιλές περιβάλλον ανάπτυξης Eclipse προσθέτοντας εργαλεία για τη δημιουργία εφαρμογών Web που βασίζονται σε τεχνολογίες Java EE (δείτε τον οδηγό).

Υπάρχει άφθονο άλλο εξαιρετικό υλικό για αυτά τα θέματα στο developerWorks.

Η αρχιτεκτονική προσανατολισμένη στις υπηρεσίες (SOA) είναι ένα μοντέλο συνιστωσών που συνδέει τις λειτουργικές μονάδες μιας εφαρμογής (γνωστές ως υπηρεσίεςαπό όπου προέρχεται ο όρος Υπηρεσίες Ιστού) μέσω αυστηρά περιγραφόμενων διεπαφών και συμβάσεων. Οι ορισμοί της διεπαφής είναι ανεξάρτητοι από το υλικό που χρησιμοποιείται, το λειτουργικό σύστημα και τη γλώσσα προγραμματισμού στην οποία υλοποιείται η υπηρεσία, υποστηρίζοντας έτσι την ενοποιημένη αλληλεπίδραση μεταξύ υπηρεσιών που αποτελούν στοιχεία διαφορετικών συστημάτων. Το SOA είναι ένα παράδειγμα χαλαρής σύζευξης μοντέλο προγράμματος, το οποίο παρέχει μια εναλλακτική στα κλασικά αντικειμενοστραφή μοντέλα στενής συζεύξεως.

Οι υπηρεσίες Ιστού που δημιουργούνται χρησιμοποιώντας αυτήν την αρχή σάς επιτρέπουν να περιγράφετε επιχειρηματικούς κανόνες και διαδικασίες σε XML, έτσι ώστε η αλληλεπίδραση με τις εφαρμογές να μπορεί να πραγματοποιηθεί ανεξάρτητα από τις πλατφόρμες και τις γλώσσες προγραμματισμού που χρησιμοποιούνται. Οι τεχνολογίες XML προωθούν τη φορητότητα των δεδομένων και διευκολύνουν τη σύνταξη μηνυμάτων, ενώ οι τεχνολογίες Java σάς επιτρέπουν να γράφετε φορητό κώδικα. Η XML και η Java συνεργάζονται καλά και επομένως αντιπροσωπεύουν έναν ιδανικό συνδυασμό τεχνολογιών για τη δημιουργία και την ανάπτυξη υπηρεσιών Ιστού.

Πιο αναλυτικές πληροφορίες μπορείτε να λάβετε διαβάζοντας τα παρακάτω υλικά:

  • Οι σελίδες και ο ιστότοπος του developerWorks μπορούν να σας βοηθήσουν να πλοηγηθείτε σε αυτές τις πολύπλοκες τεχνολογίες.
  • Τα άρθρα της σειράς μιλούν για πλαίσια υπηρεσιών Web σε Java, καθώς και για νέα λειτουργικά επίπεδα που δημιουργούνται πάνω από αυτές τις υπηρεσίες.
  • Αυτό το άρθρο παρέχει μια εισαγωγή στο κομψό στυλ σχεδιασμού των υπηρεσιών Ιστού που ονομάζεται Μεταφορά Αντιπροσωπευτικού Κράτους (REST) ​​και εξετάζει τη χρήση της Java για τη δημιουργία υπηρεσιών Ιστού χρησιμοποιώντας τις αρχές REST.
  • Η κατανόηση της τεχνολογίας JAX-RPC (Java XML API-based RPC) είναι απαραίτητη για τη δημιουργία αποτελεσματικών υπηρεσιών Ιστού σε Java.
  • Το JAX-WS είναι το προφανές επόμενο βήμα στην εξέλιξη του JAX-RPC.
  • Μια πρακτική εισαγωγή σε αυτό το νέο API δίνεται στο σεμινάριο.
  • Αυτή η σειρά άρθρων παρέχει καθοδήγηση σχετικά με την Αρχιτεκτονική Στοιχείων Υπηρεσίας (SCA), μια προδιαγραφή που περιγράφει ένα μοντέλο για την ανάπτυξη εφαρμογών και συστημάτων που χρησιμοποιούν αρχές SOA.

Αυτό το άρθρο παρέχει μια εισαγωγή στο πλαίσιο Service Data Objects, το οποίο απλοποιεί το μοντέλο δεδομένων Java EE κατά τη δημιουργία εφαρμογών SOA.

Πολλοί προγραμματιστές που αρχίζουν να μαθαίνουν Java έχουν μεγάλη εμπειρία με άλλες γλώσσες προγραμματισμού. Την ίδια στιγμή, ακόμη και οι πιο έμπειροι προγραμματιστές παραδέχονται ότι η Java δεν είναι ιδανική γλώσσα για επίλυση καθέναςπροβλήματα που συναντώνται στην πράξη. Ευτυχώς, με την υποστήριξη του JVM, μπορείτε να επωφεληθείτε πλήρως από τις σύγχρονες δυναμικές δέσμες ενεργειών και τις λειτουργικές γλώσσες κατά την ανάπτυξη εφαρμογών για την πλατφόρμα Java. Η ευελιξία και ο δυναμισμός αυτών των γλωσσών αποδεικνύεται πολύ χρήσιμη κατά τη δημιουργία πρωτοτύπων και την υλοποίηση ορισμένων τύπων εφαρμογών.

Μπορείτε να διαβάσετε περισσότερα για τις δυνατότητες χρήσης δυναμικών και λειτουργικών γλωσσών στην πλατφόρμα Java στα υλικά που συνδέονται παρακάτω.

  • Η γλώσσα δέσμης ενεργειών Groovy επιτρέπει στους προγραμματιστές Java να χρησιμοποιούν τις πιο κοινές γλωσσικές κατασκευές και βιβλιοθήκες, ενώ παρέχει ένα ευέλικτο, δυναμικό περιβάλλον ανάπτυξης που δεν απαιτεί μεταγλώττιση, απλοποιεί τη σύνταξη και υποστηρίζει δέσμες ενεργειών σε κανονικές εφαρμογές Java. Αναλυτική κριτικήΟι δυνατότητες αυτής της γλώσσας δίνονται στα άρθρα της σειράς.
  • Νέο API δέσμης ενεργειών σε Java SE 6, που παρέχει συμβατότητα προς τα πίσω με Java SE 5 και περιέχει μικρό σετδιεπαφές και κλάσεις, παρέχει έναν εύκολο τρόπο κλήσης σεναρίων γραμμένων σε δεκάδες γλώσσες από κώδικα Java. Με αυτό, μπορείτε να φορτώσετε και να καλέσετε εξωτερικά σενάρια κατά το χρόνο εκτέλεσης, αλλάζοντας δυναμικά τη συμπεριφορά της εφαρμογής. Μπορείτε να διαβάσετε περισσότερα για αυτό το API σε μια σειρά δύο μερών που ονομάζεται .
  • Είστε ένθερμος υποστηρικτής του λειτουργικού προγραμματισμού; Στη συνέχεια, θα πρέπει να δώσετε προσοχή στη στήλη, η οποία μιλά για τη Scala, μια γλώσσα προγραμματισμού για το JVM που συνδυάζει λειτουργικές και αντικειμενοστρεφείς προσεγγίσεις ανάπτυξης.
  • Υποστήριξη VM εναλλακτικές γλώσσεςπρογραμματισμός για μεγάλο χρονικό διάστημα. Στα άρθρα της στήλης μπορείτε να διαβάσετε για υλοποιήσεις για το JVM γλωσσών όπως Rexx, Ruby, JavaScript, Python και κάποιες άλλες.

Java και δημιουργία ελεύθερου λογισμικού

Υπάρχουν αμέτρητες βιβλιοθήκες, εργαλεία, πλαίσια, προγράμματα και διακομιστές εφαρμογών που διατίθενται σε Java που παρέχουν στους προγραμματιστές πρόσθετες ευκαιρίες να χρησιμοποιήσουν αυτήν την ισχυρή πλατφόρμα. Διάφορες δωρεάν τεχνολογίες έχουν ενσωματωθεί στην πλατφόρμα Java με την πάροδο του χρόνου και άλλες παρέμειναν δημοφιλείς μεταξύ των προγραμματιστών Java με τα χρόνια, σε ορισμένες περιπτώσεις λειτουργώντας ως de facto πρότυπα.

  • Το Ίδρυμα Λογισμικού Apache συγκεντρώνει πολλά έργα ανοιχτού κώδικα, τα περισσότερα από τα οποία έχουν αναπτυχθεί με βάση τεχνολογίες Java.
    • Μερικοί εκπρόσωποι αυτής της οικογένειας έργων παρατίθενται παρακάτω.
    • Το Apache Struts είναι ένα πλαίσιο για τη δημιουργία εφαρμογών Web που ακολουθούν την αρχιτεκτονική Model-View-Controller. Apache Shale(EN) - άλλο ένασύγχρονες υποδομές
    • για τη δημιουργία εφαρμογών Web, που είναι ο διάδοχος του Struts και βασίζεται στην τεχνολογία JSP (JavaServer Pages). Μια εισαγωγή στο Shale παρέχεται στα άρθρα της σειράς.
    • Το Apache Ant είναι το de facto πρότυπο για την αυτοματοποίηση της διαδικασίας κατασκευής εφαρμογών Java. Το εργαλείο κατασκευής Apache Maven σχεδιάστηκε με τις απαιτήσειςσύγχρονα έργα
    • προγράμματα ανάπτυξης λογισμικού που χαρακτηρίζονται από δυναμική συνεργασία μεταξύ των ομάδων ανάπτυξης και εξάρτηση από πολλαπλά στοιχεία που υποστηρίζονται ανεξάρτητα (δείτε το εγχειρίδιο).
    • Το Apache Tomcat είναι ένα δημοφιλές κοντέινερ Ιστού που υποστηρίζει servlets και σελίδες διακομιστή Java (JSP).
    • Το έργο Apache Geronimo είναι να δημιουργήσει έναν διακομιστή εφαρμογών Java EE, πλήρως συμβατό με τις προδιαγραφές, βασισμένο εξ ολοκλήρου σε δωρεάν τεχνολογίες. Μπορείτε να διαβάσετε περισσότερα για τον Geronimo σε αυτό το άρθρο, καθώς και στον ιστότοπο developerWorks, ο οποίος περιέχει πολύ χρήσιμο υλικό.
  • Το Eclipse(EN) είναι μια ανοιχτή και ανεξάρτητη πλατφόρμα ανάπτυξης και ένα σύνολο βασικών εργαλείων για τη δημιουργία λογισμικού. Είναι γραμμένο σε Java και παρέχει μια υποδομή που βασίζεται σε plug-in που καθιστά εύκολη την ανάπτυξη, την ενσωμάτωση και τη χρήση εργαλείων λογισμικού. Η IBM είναι ιδρυτικό μέλος του Eclipse.org και συμμετέχει ενεργά στο διοικητικό συμβούλιο και στις υποεπιτροπές του έργου. Μπορείτε να διαβάσετε για μερικές από τις τεχνολογίες στοιχείων της πλατφόρμας Eclipse που στοχεύουν στη δημιουργία εφαρμογών Java στα ακόλουθα υλικά:
    • Το AspectJ(EN) είναι μια επέκταση προσανατολισμένη στις πτυχές της γλώσσας Java που μπορεί να χρησιμοποιηθεί για τη σπονδυλοποίηση της διατομεακής λειτουργικότητας, όπως η καταγραφή ή ο χειρισμός εξαιρέσεων.
    • Το Standard Widget Toolkit(EN) (SWT) είναι μια εργαλειοθήκη που σας επιτρέπει να αξιοποιήσετε τις δυνατότητες του λειτουργικού σας συστήματος για να δημιουργήσετε στοιχεία διεπαφής χρήστη με αποτελεσματικό και φορητό τρόπο.
    • Mylyn(EN) είναι ισχυρό σύστημαδιαχείριση εργασιών για χρήστες του Eclipse. Αναλυτικός Οδηγόςπου περιέχονται στα άρθρα και, παλαιότερα γνωστή ως "Acegi Security for Spring" είναι μια ισχυρή και ευέλικτη λύση για την παροχή ασφάλειας σε εταιρικές εφαρμογές που έχουν δημιουργηθεί πάνω από την υποδομή Spring. Αναλύεται λεπτομερώς σε τέσσερα άρθρα της σειράς.
  • Η Sun Microsystems άρχισε επίσης να εργάζεται στο , λανσάροντας τα ακόλουθα δημόσια έργα στον ιστότοπο java.net(EN):
    • OpenJDK

Πώς να αναπτύξετε δεξιότητες προγραμματισμού Java;

Υπάρχουν δύο βασικοί τρόποι για να αναπτύξετε τις δεξιότητές σας στον προγραμματισμό Java: παρακολουθήστε ένα ειδικό εκπαιδευτικό σεμινάριο (με δυνατότητα πιστοποίησης) ή μάθετε Java μόνοι σας εξασκώντας τη σύνταξη κώδικα. Τα μαθήματα κατάρτισης όχι μόνο σας επιτρέπουν να μάθετε από την εμπειρία των καταρτισμένων προγραμματιστών, αλλά παρέχουν επίσης την ευκαιρία να αποκτήσετε ένα πιστοποιητικό που μπορεί να πείσει έναν πιθανό εργοδότη ότι έχετε τις απαραίτητες δεξιότητες για να λύσετε τα προβλήματα που αντιμετωπίζουμε τεχνικά προβλήματα. Ταυτόχρονα, θα μπορείτε να εμβαθύνετε τις γνώσεις σας σε διάφορους τομείς της Java πειραματιζόμενοι μόνοι σας και χρησιμοποιώντας όλα τα διαθέσιμους πόρους. Όποια διαδρομή κι αν επιλέξετε, οι παρακάτω πόροι θα σας βοηθήσουν.

  • Οδηγοί και άρθρα
    • Το developerWorks διαθέτει μια εκτενή συλλογή εργαλείων που είναι δεύτερα μετά την κωδικοποίηση από μόνοι σας όσον αφορά τη χρησιμότητα στην εκμάθηση Java.
    • Τα άρθρα είναι μια σειρά και είναι εξαιρετικά για τη βελτίωση των δεξιοτήτων σας Java.
    • Η εφαρμογή της θεωρίας σχεδιασμού στη δημιουργία εφαρμογών πραγματικού κόσμου συζητείται στα άρθρα της σειράς.
    • Οι έμπειροι προγραμματιστές Java κατασκευάζουν τις εφαρμογές τους εκ των προτέρων με εργαλεία εντοπισμού σφαλμάτων και δοκιμών. Ο ιστότοπος developerWorks διαθέτει αρκετά άρθρα της σειράς - αυτά είναι παιχνίδια σε πραγματικό χρόνο που βασίζονται στην πλατφόρμα Eclipse, με στόχο την εκμάθηση προγραμματισμού Java. Για μια εισαγωγή στο CodeRuler, ανατρέξτε στο άρθρο Κατακτώντας Μεσαιωνικά Βασίλεια με τον CodeRuler (EN).
  • Τεχνικά Εκπαιδευτικά Μαθήματα IBM
    • Σας παρουσιάζουμε στην προσοχή σας μεγάλη επιλογήδιαδικτυακά, πρόσωπο με πρόσωπο και μαθήματα Java multimedia που αναπτύχθηκαν από την IBM Global Services.
  • Πιστοποίηση
    • Μπορείτε να κάνετε πολλές εξετάσεις για να κερδίσετε πιστοποιήσεις που αποδεικνύουν τις δεξιότητές σας στον προγραμματισμό Java. Υλικό για μαθήματα που οδηγούν στην πιστοποίηση μπορείτε να βρείτε στον ιστότοπο Java Certification(EN).
    • Η IBM παρέχει ευκαιρίες για τις δεξιότητές σας σε τεχνολογίες που σχετίζονται με Java, όπως ανάπτυξη εταιρικών εφαρμογών για WebSphere, λογισμικό Rational, DB2, XML και SOA.
  • Φόρουμ
    • με συντονιστή ειδικούς με πολυετή εμπειρία στις τεχνολογίες Java, αυτός είναι ο πιο διαδραστικός τρόπος εκμάθησης Java.

Προϊόντα και τεχνολογίες της IBM για προγραμματιστές Java

Η IBM είναι ένας από τους ηγέτες στο πρακτική εφαρμογήΤεχνολογίες Java.

  • Ακολουθούν σύνδεσμοι για ορισμένα από τα προϊόντα και τις τεχνολογίες της IBM που είναι διαθέσιμες στους προγραμματιστές εφαρμογών πλατφόρμας Java.
    • Δωρεάν λήψη προϊόντων:
    • Το (Java Developer Kit) είναι ένα σύνολο εργαλείων για τη δημιουργία και τη δοκιμή μικροεφαρμογών και εφαρμογών για Java SE και Java ME σε διάφορα δημοφιλή λειτουργικά συστήματα, συμπεριλαμβανομένων των Windows, Linux και AIX.
    • Το (IBM Development Package for Eclipse) είναι ένα μη υποστηριζόμενο κιτ εργαλείων ανάπτυξης που βασίζεται στο Eclipse, το οποίο σας επιτρέπει να δημιουργείτε και να εκτελείτε εφαρμογές στο δικό σας περιβάλλον ανάπτυξης out-of-the-box.
    • Σημείωση: Μπορείτε να πραγματοποιήσετε λήψη πακέτων δωρεάν λογισμικού Eclipse από την developerWorks, συμπεριλαμβανομένων των παράλληλων προϊόντων Calisto και Europa.
    • . Αυτό το βοηθητικό πρόγραμμα σάς βοηθά να αναλύσετε και να δημιουργήσετε σενάρια Ant με δυνατότητα δοκιμής για την κατασκευή έργων που έχουν αναπτυχθεί με Eclipse, Rational και WebSphere IDE για τις πλατφόρμες Java EE και SCA.
    • (IBM Pattern Modeling and Analysis Tool for Java Garbage Collector). Αυτό το βοηθητικό πρόγραμμα αναλύει λεπτομερή αρχεία ανίχνευσης GC, αναλύει τη χρήση της δυναμικής μνήμης (σωρού) και συνιστά ρυθμίσεις εφαρμογής με βάση τα ληφθέντα αποτελέσματα προσομοίωσης μνήμης. (Secure Shell Library for Java) είναι μια ελαφριά υλοποίηση του πρωτοκόλλου SSH-2 που αναπτύχθηκε από την Ομάδα Εργασίας Μηχανικής Διαδικτύου (IETF). Παρέχει ασφαλή έλεγχο ταυτότητας και άλλες ασφαλείς υπηρεσίες μέσω μη ασφαλούς δικτύου. Σας επιτρέπει να ενοποιείτε και να μετασχηματίζετε δεδομένα, αυξάνοντας έτσι την παραγωγικότητα, την ευελιξία και την απόδοση της επιχείρησής σας μέσω της γρήγορης πρόσβασης στις πληροφορίες που χρειάζεστε.

Αυτή η ενότητα αποτελείται από έξι μέρη. Συζητούνται γενικά τα θέματα ασφάλειας των κατανεμημένων υπολογιστών και εξετάζεται το πρόβλημα ασφάλειας που σχετίζεται με τον εκτελέσιμο κώδικα. Προτείνονται έξι βήματα για τη δημιουργία ενός λειτουργικού και ευέλικτου μηχανισμού ασφαλείας. Συζητείται επίσης η εφαρμογή μηχανισμών ασφαλείας στην αρχιτεκτονική γλώσσας Java. Όπως συμβαίνει με κάθε νέα τεχνολογία, υπάρχουν ανοιχτά ερωτήματα σχετικά με την ασφάλεια στην Java που εξακολουθούν να συζητούνται στον Ιστό και σε άλλα φόρουμ.

Αυτή η ενότητα εξετάζει την έννοια της ασφάλειας στο γενικό πλαίσιο της αλληλεπίδρασης στον Ιστό και την υλοποίηση της ασφάλειας μέσω εκτελέσιμου κώδικα.

Ας δούμε πρώτα τη δυαδικότητα της ασφάλειας όσον αφορά τον Ιστό και την εξέλιξη του Ιστού ως μέσου στο πλαίσιο αυτής της δυαδικότητας. Στη συνέχεια, μπορείτε να αρχίσετε να περιγράφετε το πρόβλημα ασφαλείας στο πλαίσιο του εκτελέσιμου κώδικα.

Ένα πρόγραμμα που λαμβάνεται από το δίκτυο πρέπει να εμπνέει ένα ορισμένο επίπεδο εμπιστοσύνης από την πλευρά του χρήστη. Της δίνονται κάποιοι πόροι υπολογιστή, διαφορετικά δεν θα είναι σε θέση να εκτελέσει καμία χρήσιμη ενέργεια. Ωστόσο, αυτό το πρόγραμμα γράφτηκε από κάποιον που δεν έχει επίσημες υποχρεώσεις προς τον χρήστη. Εάν αυτό το άτομο είναι χάκερ, τότε ο εκτελέσιμος κώδικας που προκύπτει θα μπορούσε να είναι ένα δυνητικά επικίνδυνο πρόγραμμα με τις ίδιες δυνατότητες με ένα τοπικό πρόγραμμα.

Πρέπει ο χρήστης να απομονώσει πλήρως το εξωτερικό πρόγραμμα από πόρους υπολογιστή; Φυσικά και όχι. Σε μια τέτοια περίπτωση, ο εκτελέσιμος κώδικας δεν θα μπορούσε να κάνει τίποτα χρήσιμο. Μια πιο ολοκληρωμένη και αποτελεσματική λύση στο πρόβλημα ασφάλειας μπορεί να χωριστεί σε έξι στάδια:

1. Προβλέψτε τυχόν επικίνδυνες ενέργειες και μεθόδους εισβολής.

2. Μειώστε τυχόν επικίνδυνες ενέργειες σε ένα ελάχιστο σύνολο απλών λειτουργιών.

3. Δημιουργήστε ένα περιβάλλον προγραμματισμού και μια γλώσσα υπολογιστή που το απαγορεύει ρητά ελάχιστο σετεπικίνδυνες λειτουργίες και συνεπώς τυχόν κακόβουλες ενέργειες.

4. Αποδείξτε λογικά ή, εάν είναι δυνατόν, δείξτε όσο προφανές ότι η γλώσσα και το περιβάλλον προστατεύονται πράγματι από μεθόδους σκόπιμης εισβολής.

5. Εφαρμόστε τη γλώσσα και επιτρέψτε στα εκτελέσιμα προγράμματα να χρησιμοποιούν μόνο την εγκεκριμένη ασφαλή γλώσσα.

Τα σενάρια εξωτερικών επιθέσεων μπορούν να χωριστούν στις ακόλουθες ομάδες (η λίστα δεν είναι πλήρης):

· Βλάβη ή παραβίαση της ακεραιότητας των δεδομένων ή/και της κατάστασης του προγράμματος που εκτελείται.

· Συλλογή ή αντιγραφή εμπιστευτικών πληροφοριών.

· Αποκλεισμός πόρων, με αποτέλεσμα να γίνονται απρόσιτοι σε νόμιμους χρήστες και προγράμματα.

· Καταγραφή πόρων και χρήση τους από εξωτερικό μη εξουσιοδοτημένο πρόγραμμα.

· Δημιουργία μη θανατηφόρων καταστάσεων που μειώνουν την απόδοση, ειδικά σε συσκευές εξόδου.

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

Στον πίνακα 1.1 παραθέτει δυνητικά ευάλωτους πόρους, καθώς και τους τύπους επιπτώσεων που μπορούν να χρησιμοποιηθούν σε σχέση με αυτούς. Μια καλή στρατηγική ασφαλείας εκχωρεί μια βαθμολογία κινδύνου σε κάθε πόρο και αναπτύσσει μεθόδους για εξωτερικά εκτελέσιμα προγράμματα για πρόσβαση σε αυτά.

Πίνακας 1.1 Δυνητικά ευάλωτα αντικείμενα και τύποι κρούσης

Παραβίαση ακεραιότητας

Υποκλοπή πληροφοριών

Αποκλεισμός/Αλλαγή δικαιωμάτων

Καταγραφή πόρων

Μη θανατηφόρες παρεμβολές

Κατάληψη εξουσιών

Σύστημα αρχείων

Παραβίαση ακεραιότητας

Υποκλοπή πληροφοριών

Αποκλεισμός/Αλλαγή δικαιωμάτων

Καταγραφή πόρων

Μη θανατηφόρες παρεμβολές

Κατάληψη εξουσιών

Εμπιστευτικές πληροφορίες

Κεντρικός

CPU

Συσκευές εξόδου

Συσκευές εισόδου

ΛΣ, κατάσταση προγράμματος

Αντί να κοιτάς τα πάντα πιθανούς τρόπουςπαρεμβολές, το σύστημα προστασίας στη γλώσσα Java προσδιορίζει τα ευάλωτα αντικείμενα των κύριων δυνητικά επικίνδυνων λειτουργιών, κάτι που είναι πολύ κοντά στην προσέγγιση που περιγράφεται παραπάνω.

Συγκεκριμένα, το σχήμα ασφαλείας γλώσσας Java λαμβάνει υπόψη τα ακόλουθα ευάλωτα αντικείμενα:

· Μνήμη;

· Κατάσταση λειτουργικού συστήματος/προγράμματος.

· Σύστημα αρχείων πελάτη.

· Αυτό λαμβάνει υπόψη ακόλουθους τύπουςπαρεμβάσεις που αναφέρονται στον πίνακα. 1.1;

· Παραβίαση της ακεραιότητας των προγραμμάτων στο μηχάνημα πελάτη. Συνήθως προκαλείται από ιούς που εγγράφονται στη μνήμη και καταστρέφουν ορισμένα αρχεία όταν συμβαίνει κάποιο συμβάν ή επιτυγχάνεται μια συγκεκριμένη ημερομηνία.

· Αποκλεισμός/αλλαγή δικαιωμάτων χρήσης των πόρων του υπολογιστή-πελάτη. Συνήθως προκαλείται από ιούς.

· Υποκλοπή πληροφοριών στο μηχάνημα πελάτη.Για παράδειγμα, γίνεται εύκολα χρησιμοποιώντας την εντολή UNIX SENDMAIL.

· Κατάληψη των προνομίων της μηχανής πελάτη. Αυτό επιτυγχάνεται με την αντικατάσταση διευθύνσεων IP. Αυτός ο τύπος επίθεση υπολογιστήεφευρέθηκε από τον Kevin Mitnick όταν χακάρισε ένα από τα προσωπικούς υπολογιστέςο ειδικός σε συστήματα ασφαλείας Sutumo Shimura. Ολόκληρο το περιστατικό περιγράφεται λεπτομερώς στο βιβλίο των New York Times με τις μεγαλύτερες πωλήσεις Showdown, γραμμένο από τον Sutumo Shimura.

Το πρώτο επίπεδο ασφάλειας στην Java είναι η αρχιτεκτονική της ίδιας της γλώσσας, οι συντακτικές και σημασιολογικές κατασκευές της γλώσσας. Στη συνέχεια, η δομή της γλώσσας Java συζητείται από την άποψη της ασφάλειας.

Η Java είναι μια πλήρης αντικειμενοστραφής γλώσσα. κάθε δομή δεδομένων (και επομένως προέρχεται από αυτήν) είναι ένα αληθινό, πλήρως λειτουργικό αντικείμενο. Το γεγονός ότι κάθε πρωτόγονη δομή δεδομένων πλαισιώνεται ως αντικείμενο διασφαλίζει ότι όλα τα θεωρητικά οφέλη ασφαλείας των γλωσσών OOP είναι παρόντα σε προγράμματα γραμμένα σε Java, συμπεριλαμβανομένης της σύνταξης και της σημασιολογίας τους:

· Ενθυλάκωση και απόκρυψη δεδομένων σε ιδιωτικές διαφημίσεις.

· Ελεγχόμενη πρόσβαση σε δομές δεδομένων, στις οποίες χρησιμοποιούνται μόνο δημόσιες μέθοδοι.

· Επεκτασιμότητα και ιεραρχική κατασκευή μιας σύνθετης δομής προγράμματος.

· Χωρίς υπερφόρτωση λειτουργιών.

Οι κλάσεις και οι μέθοδοι μπορούν να δηλωθούν οριστικές, απαγορεύοντας έτσι τη δημιουργία υποκλάσεων και μεθόδων παράκαμψης. Αυτή η δήλωση αποτρέπει την κακόβουλη τροποποίηση του δοκιμασμένου κώδικα.

Για λόγους ασφαλείας, το typecasting ελέγχεται τόσο στατικά όσο και δυναμικά. Αυτό διασφαλίζει ότι ο τύπος ενός αντικειμένου που δηλώνεται κατά τη στιγμή της μεταγλώττισης θα ταιριάζει ακριβώς με τον τύπο του αντικειμένου κατά το χρόνο εκτέλεσης, ακόμα κι αν έχουν εκτελεστεί λειτουργίες μετατροπής τύπου σε αυτό το αντικείμενο. Τα στοιχεία ελέγχου μετατροπής τύπων αποτρέπουν την σκόπιμη αντικατάσταση τύπων δεδομένων.

Αυτή η δυνατότητα, που εφαρμόζεται απευθείας στη γλώσσα Java, είναι πιθανώς η κύρια εγγύηση ασφάλειας. Η απουσία δεικτών σε ένα πρόγραμμα Java διασφαλίζει ότι όλα τα στοιχεία δεδομένων έχουν πάντα ένα όνομα. Κάθε απλή δομή δεδομένων ή κομμάτι κώδικα έχει ένα αναγνωριστικό που σας επιτρέπει να το ελέγχετε πλήρως.

Η Java είναι μια γλώσσα πολλαπλών νημάτων και παρέχει πρόσβαση με ασφάλεια σε νήματα σε δομές δεδομένων και αντικείμενα. Στο Κεφάλαιο 14 Νήματα Javaσυζητούνται αναλυτικά, δίνονται παραδείγματα προγραμμάτων εφαρμογής.

Κάθε αντικείμενο στη γλώσσα Java έχει έναν μοναδικό κωδικό κατακερματισμού που σχετίζεται με αυτό. Αυτό σημαίνει ότι η κατάσταση ενός προγράμματος Java μπορεί να παρακολουθείται ανά πάσα στιγμή.

Ο χρόνος μεταγλώττισης εξετάζει όλους τους μηχανισμούς προστασίας που υπάρχουν στη σύνταξη της γλώσσας Java, συμπεριλαμβανομένου του ελέγχου ότι οι ιδιωτικές και δημόσιες δηλώσεις είναι συνεπείς, ότι οι τύποι είναι σωστοί και ότι όλες οι μεταβλητές αρχικοποιούνται σε προκαθορισμένες τιμές.

Οι τάξεις πηγής Java μεταγλωττίζονται σε bytecode. Ο επαληθευτής bytecode εκτελεί πολλούς ελέγχους συνέπειας και ασφάλειας στον μεταγλωττισμένο κώδικα. Κατά την επαλήθευση των bytecode, εκτελούνται οι ακόλουθες λειτουργίες:

· Ελέγξτε για υπερχείλιση στοίβας και υπορροή του δείκτη στοίβας.

· Ανάλυση της πρόσβασης στα μητρώα.

· Έλεγχος της ορθότητας των παραμέτρων bytecode.

· Ανάλυση ροών bytecode που δημιουργούνται με μεθόδους, η οποία διασφαλίζει την ακεραιότητα της στοίβας, ελέγχοντας τα αντικείμενα που λαμβάνονται και τα αντικείμενα που επιστρέφονται από τις μεθόδους.

Οι κλάσεις Java περιγράφονται μέσα στα πακέτα. Τα ονόματα κλάσεων συσχετίζονται με ονόματα πακέτων. Τα πακέτα διασφαλίζουν ότι ο κωδικός που λαμβάνεται από το δίκτυο είναι διαφορετικός από τον τοπικό κώδικα. Μια αποδεκτή βιβλιοθήκη κλάσεων δεν μπορεί κατά λάθος ή σκόπιμα να αντικαταστήσει ή να παραβιάσει τοπικές βιβλιοθήκες επικυρωμένων κλάσεων, ακόμα κι αν αυτές οι βιβλιοθήκες έχουν το ίδιο όνομα. Αυτό προστατεύει επίσης από μη δοκιμασμένες, τυχαίες αλληλεπιδράσεις μεταξύ των τοπικών και των αποδεκτών τάξεων.

Η καθυστερημένη δέσμευση διασφαλίζει ότι η ακριβής θέση των πόρων κατά το χρόνο εκτέλεσης εμφανίζεται την τελευταία στιγμή. Το όψιμο δέσιμο αποτελεί σοβαρό εμπόδιο εξωτερικές επιθέσειςχάρη σε ειδικές συμβάσεις σχετικά με την κατανομή μνήμης για αυτούς τους πόρους.

Προεπιλεγμένος μηχανισμός λειτουργική φόρτωσηΤο Java-ioiaccoB χρησιμοποιείται για την ανάκτηση μιας καθορισμένης κλάσης από ένα αρχείο που βρίσκεται στον τοπικό κεντρικό υπολογιστή.

Οποιεσδήποτε άλλες μέθοδοι φόρτωσης κλάσεων, συμπεριλαμβανομένης της μεταφοράς μέσω του δικτύου, απαιτούν την παρουσία κατάλληλης κλάσης ClassLoader. Το ClassLoader είναι μια υποκλάση της τυπικής κλάσης Java ClassLoader, η οποία έχει μεθόδους που υλοποιούν όλους τους μηχανισμούς συνέπειας και ασφάλειας και εκτελούνται για κάθε κλάση που φορτώθηκε πρόσφατα.

Για λόγους ασφαλείας, η κλάση ClassLoader δεν μπορεί να εκτελέσει ενέργειες προοπτικής σε bytecodes. Οι bytecodes μπορούν να ληφθούν από ένα πρόγραμμα Java μεταφρασμένο από έναν μεταγλωττιστή Java ή έναν μεταγλωττιστή C++ που τροποποιήθηκε για να παράγει bytecode. Αυτό σημαίνει ότι το ClassLoader εκτελείται μόνο αφού επαληθευτεί ο εισερχόμενος bytecode. αυτή η κλάση είναι υπεύθυνη για τη δημιουργία ενός χώρου ονομάτων για τον φορτωμένο κώδικα και την επίλυση αναφορών ονόματος κλάσης που απευθύνονται στον κώδικα που προκύπτει. Αυτό δημιουργεί ξεχωριστούς χώρους ονομάτων για κάθε πακέτο.

Στη C και τη C++, ο προγραμματιστής εκχωρεί ρητά τη μνήμη, την ελευθερώνει και παρακολουθεί όλους τους δείκτες στην εκχωρημένη μνήμη. Αυτό συχνά περιπλέκει τη συντήρηση του προγράμματος και είναι μια σημαντική πηγή σφαλμάτων που οδηγούν σε κρέμονται αναφορές που προκαλούνται από τη χρήση μηδενικών δεικτών και εσφαλμένων λειτουργιών εκχώρησης και εκχώρησης μνήμης.

Η Java δεν έχει δείκτες, επομένως ο προγραμματιστής δεν χρειάζεται να διαχειρίζεται ρητά τη μνήμη. Η εκχώρηση και η απονομή μνήμης εκτελούνται αυτόματα, με δομημένο τρόπο και με ακριβή συνέπεια τύπου Για την απελευθέρωση της αχρησιμοποίητης μνήμης, χρησιμοποιείται η συλλογή απορριμμάτων (ανασυγκρότηση μνήμης) αντί για ρητές προγραμματιζόμενες λειτουργίες. Αυτό εξαλείφει την πιθανότητα σφαλμάτων εκχώρησης μνήμης και πιθανών ζητημάτων ασφάλειας. Κατά τη μη αυτόματη εκχώρηση και απελευθέρωση μνήμης, είναι δυνατές παράνομες λειτουργίες αντιγραφής, κλωνοποίησης και κατάσχεσης εξουσιών διαθέσιμων αντικειμένων, καθώς και παραβίαση της ακεραιότητας των δεδομένων.

Η κλάση SecurityManager είναι ένα βασικό, επεκτάσιμο μέσο για τη δημιουργία συστημάτων ασφαλείας και την παροχή μηχανισμών προστασίας για άλλα στοιχεία της γλώσσας Java, συμπεριλαμβανομένων βιβλιοθηκών κλάσεων και εξωτερικών περιβαλλόντων (για παράδειγμα, προγράμματα περιήγησης συμβατά με Java και μεθόδους που εξαρτώνται από τη μηχανή). Η ίδια η κλάση SecurityManager δεν προορίζεται για άμεση χρήση (από προεπιλογή, κάθε ένας από τους ελέγχους δημιουργεί κάποιο είδος εξαίρεσης ασφαλείας). Αυτή είναι μια βασική κλάση για τη δημιουργία υποκλάσεων που εφαρμόζουν ένα δεδομένο σύνολο μεθόδων προστασίας.

Μεταξύ άλλων δυνατοτήτων, η κλάση SecurityManager διαθέτει μεθόδους για την αναγνώριση των διαδικασιών ελέγχου ασφαλείας, καθώς και μεθόδους για την εκτέλεση των ακόλουθων ελέγχων:

· Προστασία από την εγκατάσταση πρόσθετων φορτωτών κλάσης ClassLoader.

· Δυνατότητα σύνδεσης δυναμικών βιβλιοθηκών (χρησιμοποιείται για κώδικα που εξαρτάται από τη μηχανή).

· Ανάγνωση από αρχείο τάξης και εγγραφή σε αρχείο τάξης.

· Δημιουργία σύνδεσης δικτύου.

· Δυνατότητα σύνδεσης σε κάποια θύρα δικτύου.

· Επιτρέποντας την εισερχόμενη σύνδεση δικτύου.

· Διαθεσιμότητα κάποιου πακέτου.

· Προσθήκη νέας κλάσης στο πακέτο.

Η κύρια πηγή κινδύνου για το Java-nporpaMM είναι ο κώδικας Java που προέρχεται από το δίκτυο και εκτελείται στον υπολογιστή-πελάτη. Τέτοια μεταφερόμενα Java-nporpaMMbi ονομάζονται μικροεφαρμογές. Μια μικροεφαρμογή Java έχει ένα καλά καθορισμένο σύνολο δυνατοτήτων και περιορισμών σε επίπεδο γλώσσας, ειδικά όσον αφορά τους μηχανισμούς ασφαλείας.

Οι μικροεφαρμογές που λαμβάνονται μέσω του δικτύου υπόκεινται στους ακόλουθους περιορισμούς:

· Δεν μπορείτε να δημιουργήσετε, να μετονομάσετε ή να αντιγράψετε αρχεία και καταλόγους στο τοπικό σύστημα αρχείων.

· Δεν μπορείτε να δημιουργήσετε αυθαίρετες συνδέσεις δικτύου, με εξαίρεση τις συνδέσεις με τον κεντρικό υπολογιστή από τον οποίο έγινε ανάγνωση των μικροεφαρμογών. Το όνομα κεντρικού υπολογιστή πρέπει να καθοριστεί στη διεύθυνση URL της σελίδας HTML που περιείχε την ετικέτα , ή καθορίζεται στην παράμετρο βάσης κώδικα της ετικέτας . Δεν επιτρέπεται μια αριθμητική διεύθυνση IP μηχανής κεντρικού υπολογιστή.

Οι αναφερόμενοι αυστηροί περιορισμοί για την πρόσβαση στο τοπικό σύστημα αρχείων ισχύουν για μικροεφαρμογές που εκτελούνται στο περιβάλλον του προγράμματος περιήγησης Netscape Navigator 3.0. Στο JDK 1.0 Appletviewer, οι περιορισμοί είναι λιγότερο περιοριστικοί και ο χρήστης μπορεί να ορίσει ρητά μια λίστα αρχείων στα οποία μπορούν να λειτουργήσουν οι μικροεφαρμογές.

Οι μικροεφαρμογές μπορούν να διαβάσουν ορισμένες ιδιότητες του συστήματος καλώντας το system.getProperty(κλειδί συμβολοσειράς). Οι μικροεφαρμογές στο Netscape 3.0 έχουν απεριόριστη πρόσβαση σε αυτές τις ιδιότητες. Το JDK 1.0 Appletviewer της Sun σάς επιτρέπει να ελέγχετε μεμονωμένα την πρόσβαση σε κάθε ιδιοκτησία. Στον πίνακα 1.2 παραθέτει τις πληροφορίες για τις οποίες επιστρέφονται διαφορετικές έννοιεςκλειδί

πρόγραμμα εφαρμογής διασύνδεσης java

Πίνακας 1.2 Διαθεσιμότητα μεταβλητών συστήματος

Στον πίνακα Ο Πίνακας 1.3 παραθέτει επιλογές που δεν είναι διαθέσιμες σε μικροεφαρμογές στο περιβάλλον του προγράμματος περιήγησης Netscape 3.0. Το JDK 1.0 Appletviewer και το πρόγραμμα περιήγησης HotJava επιτρέπουν στο χρήστη να ελέγχει την πρόσβαση σε ορισμένους από τους καθορισμένους πόρους.

Πίνακας 1.3 Οι μεταβλητές συστήματος δεν είναι διαθέσιμες σε μικροεφαρμογές

Το σύστημα Java φορτώνει τις μικροεφαρμογές με δύο τρόπους. Η μικροεφαρμογή μπορεί να μεταφερθεί μέσω του δικτύου ή να ληφθεί από το τοπικό σύστημα αρχείων. Ο τρόπος φόρτωσης του applet καθορίζει τις δυνατότητες που του παρέχεται.

Από την άποψη της ασφάλειας, οι τοπικές μικροεφαρμογές επιτρέπεται να κάνουν τα εξής:

· Φόρτωση βιβλιοθηκών στον υπολογιστή-πελάτη.

· Εκτελέστε εξωτερικές διεργασίες στο τοπικό μηχάνημα.

· Διακοπή της λειτουργίας της εικονικής μηχανής Java.



Συνιστούμε να διαβάσετε

Κορυφή