150 likes | 260 Views
Föreläsning 3. Kort Översikt Över Javaspråket, forts. Standardpaket. Paket grupperar ihop klasser Standardbiblioteken ligger i olika paket: java.net (nätverk, kommunikation) java.io (in- och utdata, filhantering) java.awt (grafiska användargränssnitt) Egna klassbibliotek kan skapas
E N D
Föreläsning 3 Kort Översikt Över Javaspråket, forts.
Standardpaket • Paket grupperar ihop klasser • Standardbiblioteken ligger i olika paket: • java.net (nätverk, kommunikation) • java.io (in- och utdata, filhantering) • java.awt (grafiska användargränssnitt) • Egna klassbibliotek kan skapas • Importeras genom satsen import import java.awt.*; // alla klasser i paketetimport java.awt.Button; // endast klassen Button • Åtkomsten till klasserna kan regleras
Applets • Ingen main-metod • Ritas på en yta i webbläsaren import java.applet.*;import java.awt.*;publicclass FirstApplet extends Applet{publicvoid paint(Graphics g) { g.drawString("Java!", 100, 100); g.drawLine(0, 0, 100, 100); }}
HTML-sidan • Startas i en webbläsare……eller med AppletViewer <html> <applet code="FirstApplet.class" width="200" height="200"> </applet></html> c:>appletviewer FirstApplet.html
Appletviewer • ”minimal” webbläsare • Kan stoppa och starta om appleten • Inga säkerhetskontroller utförs • Kan t.ex. läsaoch skriva filer
Läsa Från Tangentbord Lugn!Det är inte meningen ni ska behöva förstå denna kod (än) • Alternativ 1- från kommandoprompten • Använder ett objekt av klassen BufferedReader BufferedReader input = new BufferedReader(new InputStreamReader(System.in));String svar = input.readLine();
Läsa Från Tangentbord Lugn!Det är inte meningen ni ska behöva förstå denna kod (än) • Alternativ 2- med dialogrutor • Använder klassen JOptionPane för att visa dialogrutor String svar = JOptionPane.showInputDialog("Din ålder?");JOptionPane.showMessageDialog(null, svar);
Filer IKompileringsprocessen KlassA.java KlassB.java KlassC.java KlassB.class KlassA.class KlassB.class Virtuell Java Maskin C:>java KlassC • Enkel struktur med endast två filer: • Källkodsfil (.java) • Bytekodsfil (.class) • Inga s.k. objekt-filer behövs
Den Virtuella Javamaskinen läser Bytekod-filer Virtuell Java Maskin anropar Underliggande Operativ System • Läser, tolkar och exekverar bytekod • Är skrivet för aktuell plattform • Måste skaffas om den inte finns
Den Virtuella Javamaskinen • Liknar en ”virtuell”-processor • Exekverar som ett program • Specifikationen är helt öppen • Laddar in klasser dynamiskt • Verifierar klasser från Internet • Verktyg för att läsa bytekod • I JDK finns javap
Java och Prestanda • Javaprogram har dåliga prestanda? • Virtuell maskin = prestandakostnader • Språket i sig är inte långsamt • Olika sätt att uppnå högre prestanda: • hög nivå – förbättra sin design • mellannivå – ”tricks” på språknivå • låg nivå – snabbare exekvering
Just-In-Time kompilatorer läser anropar Bytekod-filer Virtuell Java Maskin Just-In-Time Kompilator genererar Operativ System specifik kod (binär) Underliggande Operativ System exekverar • Översätter bytekod till plattforms-specifik kod under körning
Rena kompilatorer läser Bytekod-filer Bytekod-kompilator genererar Operativ System specifik kod (binär) Underliggande Operativ System exekverar • Javakod kompileras direkt till plattformsspecifik kod.
Virtuell HotSpot-maskin läser Bytekod-filer Virtuell Java Maskin HotSpot Analys anropar anropar Underliggande Operativ System • Utför adaptiv optimering av ett program under körning
Sammanfattning • Javaspråkets grundblock är klasser och objekt • Ett antal fördefinierade primitiva typer (int, long, float, boolean, m.fl.) • Javaprogram styrs av kontrollflödes-konstruktioner • Till Javaspråket finns en mängd standardbibliotek • Den virtuella Javamaskinen tolkar bytekoden och exekverar denna