Nye features i Java 1.7/7.0
|
|
- Helena Paulsen
- 6 år siden
- Visninger:
Transkript
1 Denne guide er oprindeligt udgivet på Eksperten.dk Nye features i Java 1.7/7.0 Denne artikel beskriver nye features i Java 1.7/7.0, som blev releaset 28. juli Den forudsætter et vist kendskab til Java. Skrevet den 23. jun 2013 af arne_v I kategorien Programmering / Java Historie: V1.0-17/07/ original V1.1-30/07/ add JavaDoc, ForkJoin og faktisk release Kodenavn Dolphin Java 1.7/7.0 med kodenavnet Dolphin blev releaset 28. juli Den afløser Java 1.6/6.0 med kodenavnet Mustang (se evt. artikel "Nye features i Java 1.6/7.0"). Jeg er gammeldags og vil fortsætte med at kalde den 1.7 selvom 7.0 efterhånden er blevet det gængse! 1.7 er blevet forsinket i flere omgange (bl.a. fordi SUN blev opkøbt af Oracle mit i forløbet) og resultatet er fire et halvt år mellem 1.6 og 1.7. På trods af de mange år er ændringerne ikke så store. Indledning Jeg vil opremse nogle af de nye features i 1.7 og illustrere med små kode eksempler. Det er dog ikke sikkert at jeg har opdaget alle de interessante nyheder. Tal konstanter Java 1.7 tillader binære konstanter og brug af understreg til at gøre tal mere læselige. Lit16.java public class Lit16 { int v1 = 0x ; System.out.println(Integer.toString(v1, 2)); int v2 = ; System.out.println(v2);
2 Lit17.java public class Lit17 { int v1 = 0b ; System.out.println(Integer.toString(v1, 2)); int v2 = 123_456_789; System.out.println(v2); Jeg tvivler på at disse features vil blive brugt meget. switch på String Java 1.7 tillader switch på String. StrSwi16.java public class StrSwi16 { public static void test(string s) { if(s.equals("aa")) { System.out.println("called with AA"); else if(s.equals("bb")) { System.out.println("called with BB"); else { System.out.println("Called with something else"); test("bb"); StrSwi17.java public class StrSwi17 { public static void test(string s) { switch(s) { case "AA": System.out.println("called with AA"); break;
3 case "BB": System.out.println("called with BB"); break; default: System.out.println("Called with something else"); break; test("bb"); Denne feature eksisterer i mange andre sprog og vil formentligt blive brugt i stor stil. Type inferens for generiske constructorer Java 1.7 tillader at man bruger <> for constructor hvis Java kan gætte hvilken/hvilke typer der skal bruges. GenCon16.java import java.util.list; import java.util.arraylist; import java.util.map; import java.util.hashmap; public class GenCon16 { List<String> list = new ArrayList<String>(); Map<String,String> map = new HashMap<String,String>(); GenCon17.java import java.util.list; import java.util.arraylist; import java.util.map; import java.util.hashmap; public class GenCon17 { List<String> list = new ArrayList<>(); Map<String,String> map = new HashMap<>();
4 Multi catch Java 1.7 tillader at man catcher flere exceptions i en enkelt catch. MulCat16.java public class MulCat16 { public static void test() throws SomeException, SomeOtherException { throw new SomeOtherException(); try { test(); catch(someexception ex) { ex.printstacktrace(); catch(someotherexception ex) { ex.printstacktrace(); class SomeException extends Exception { class SomeOtherException extends Exception { MulCat17.java public class MulCat17 { public static void test() throws SomeException, SomeOtherException { throw new SomeOtherException(); try { test(); catch(someexception SomeOtherException ex) { ex.printstacktrace(); class SomeException extends Exception { class SomeOtherException extends Exception {
5 En ganske praktisk feature som nok skal blive brugt. try with ressource Java 1.7 gør det muligt automatisk at få kaldt close uanset exception eller ej. Præcis samme ide som using i C#/VB.NET men med en lidt anden implementation. Lad os først prøve med noget standard Java IO kode. TryResStd16.java import java.io.filereader; import java.io.bufferedreader; import java.io.ioexception; public class TryResStd16 { public static void main(string[] args) throws IOException { BufferedReader br = null; try { br = new BufferedReader(new FileReader("java17.txt")); String line; while((line = br.readline())!= null) { System.out.println(line); finally { if(br!= null) { br.close(); TryResStd17.java import java.io.filereader; import java.io.bufferedreader; import java.io.ioexception; public class TryResStd17 { public static void main(string[] args) throws IOException { try (BufferedReader br = new BufferedReader(new FileReader("java17.txt"))) { String line; while((line = br.readline())!= null) { System.out.println(line);
6 Man kan det samme med sin egen kode. TryResCus17.java public class TryResCus17 { public static void main(string[] args) throws Exception { try (MyRes r = new MyRes(false)) { r.test(); try (MyRes r = new MyRes(true)) { r.test(); class MyRes implements AutoCloseable { private boolean willthrow; public MyRes(boolean willthrow) { this.willthrow = willthrow; System.out.println("constuctor called"); public void test() throws Exception { if(willthrow) { throw new Exception("Ooops"); public void close() { System.out.println("close called"); Ovenstående ignorerer en del specialtilfælde: - traditionel try og finally - exceptions i close metoden Nedenstående viser mere præcist hvad der sker. TryResTricky17.java public class TryResTricky17 { public static void main(string[] args) throws Exception { try (MyRes r = new MyRes()) { r.test(); catch(exception ex) {
7 System.out.println("catch of: " + ex.getmessage()); for(throwable t : ex.getsuppressed()) { System.out.println("suppressed: " + t.getmessage()); finally { System.out.println("traditional finally"); class MyRes implements AutoCloseable { public MyRes() { System.out.println("constuctor called"); public void test() throws Exception { System.out.println("test called - will throw exception"); throw new Exception("exception in test"); public void close() throws Exception { System.out.println("close called - will throw exception"); throw new Exception("exception in close"); Jeg tror at det vil tage tid inden folk vænner sig til denne feature, men efter noget tid tror jeg nok at den skal blive populær. Og som det sidste kode viser, så skal man altså lige forstå de finere finesser først! IO utility metoder Java 1.7 har fået nogle utility metoder som gør det nemt at lave diverse trivielle fil operationer. Svarende til hvad man kender fra Visual Basic,.NET etc.. Læse og skrive filer. Files16.java import java.io.inputstream; import java.io.fileinputstream; import java.io.outputstream; import java.io.fileoutputstream; import java.io.bufferedreader; import java.io.filereader; import java.io.printwriter; import java.io.filewriter; import java.io.file; import java.io.ioexception;
8 public class Files16 { public static void main(string[] args) throws IOException { // binary InputStream is = new FileInputStream("java17.txt"); OutputStream os = new FileOutputStream("z.txt"); byte[] buf = new byte[1000]; int n; while((n = is.read(buf, 0, buf.length)) > 0) { os.write(buf, 0, n); os.close(); is.close(); (new File("z.txt")).delete(); // text BufferedReader br = new BufferedReader(new FileReader("java17.txt")); PrintWriter pw = new PrintWriter(new FileWriter("z.txt")); String line; while((line = br.readline())!= null) { pw.println(line); pw.close(); br.close(); (new File("z.txt")).delete(); Files17.java import java.io.ioexception; import java.nio.charset.charset; import java.nio.file.path; import java.nio.file.paths; import java.nio.file.files; public class Files17 { public static void main(string[] args) throws IOException { Path from = Paths.get("java17.txt"); Path to = Paths.get("z.txt"); // binary Files.write(to, Files.readAllBytes(from)); Files.delete(to); // text Files.write(to, Files.readAllLines(from, Charset.forName("ISO ")), Charset.forName("ISO ")); Files.delete(to); // lazy Files.copy(from, to); Files.delete(to);
9 Avancerede funktioner på fil systemet. FS17.java import java.io.ioexception; import java.nio.file.path; import java.nio.file.paths; import java.nio.file.files; public class FS17 { public static void main(string[] args) throws IOException { Path f = Paths.get("java17.txt"); System.out.println(Files.getOwner(f)); System.out.println(Files.isReadable(f)); System.out.println(Files.isWritable(f)); System.out.println(Files.readAttributes(f, "*")); System.out.println(Files.getFileStore(f).getUnallocatedSpace() + "/" + Files.getFileStore(f).getTotalSpace()); En blanding af praktiske og længe savnede metoder som nok skal blive brugt. Fork join Java 1.6 tilføjede java.util.concurrent, men i 1.7 er der tilføjet fork join til denne pakke. For join er et framework til at løse opgaver parallelt via divide and conquer. FJ16.java public class FJ16 { private int val; private int start; private int end; public FJ16(int val, int start, int end) { this.val = val; this.start = start; this.end = end; public int countmultipla() { int res = 0; for(int i = start; i <= end; i++) { if(i % val == 0) { res++; return res;
10 long t1 = System.currentTimeMillis(); FJ16 o = new FJ16(4, 1, ); int n = o.countmultipla(); long t2 = System.currentTimeMillis(); System.out.println(n + " in " + (t2 - t1)); FJ17.java import java.util.concurrent.forkjoinpool; import java.util.concurrent.recursivetask; public class FJ17 extends RecursiveTask<Integer> { private int val; private int start; private int end; public FJ17(int val, int start, int end) { this.val = val; this.start = start; this.end = end; public int countmultipla() { int res = 0; for(int i = start; i <= end; i++) { if(i % val == 0) { res++; return public Integer compute() { int n = end - start + 1; if(n < 10_000_000) { return countmultipla(); else { FJ17 low = new FJ17(val, start, start + n/2); FJ17 high = new FJ17(val, start+n/2+1, end); // do not use: //invokeall(low, high); //return low.join() + high.join(); // use: high.fork(); return low.compute() + high.join(); ForkJoinPool fjp = new ForkJoinPool(8);
11 long t1 = System.currentTimeMillis(); FJ17 o = new FJ17(4, 1, 1_000_000_000); fjp.invoke(o); int n = o.join(); long t2 = System.currentTimeMillis(); System.out.println(n + " in " + (t2 - t1)); Som man kan se giver brug af fork join mere kode. Men køre tiderne på min PC er 4626 og altså stort set en perfekt reduktion af køre tid til 1/4 på en quad core maskine. Bemærk at ParallelArray klassen er udskudt til Java 8, fordi lambda udtryk blev udskudt til Java 8. Fork join skal nok blive brugt, men det bliver sjovere i Java 8, fordi Java 7 har kun leveret det grundliggende framework, mens det er Java 8 som skal spare udvikleren kode. Det er også først med Java 8 at fork begynder at ligne.net TPL. Men kan man ikke vente så er her en implementation af en del af ParallelArray. PA16.java public class PA16 { public static void addonetoall(int[] a) { for(int i = 0; i < a.length; i++) { a[i] = a[i] + 1; int[] a = new int[1000]; for(int i = 0; i < a.length; i++) { a[i] = i + 1; addonetoall(a); System.out.println(a[0] + " " + a[a.length - 1]); Applier.java public interface Applier<T> { void applytoelement(t[] a, int ix);
12 ParallelArray.java import java.util.concurrent.forkjoinpool; import java.util.concurrent.recursiveaction; public class ParallelArray<T> { public static class ParallelArrayApplier<T> extends RecursiveAction { private T[] a; private int start; private int end; private Applier<T> app; public ParallelArrayApplier(T[] a, int start, int end, Applier<T> app) { this.a = a; this.start = start; this.end = end; this.app = public void compute() { int n = end - start + 1; if(n < 100) { for(int i = start; i <= end; i++) { app.applytoelement(a, i); else { ParallelArrayApplier<T> low = new ParallelArrayApplier<T>(a, start, start + n/2, app); ParallelArrayApplier<T> high = new ParallelArrayApplier<T>(a, start+n/2+1, end, app); high.fork(); low.compute(); high.join(); private ForkJoinPool fjp; private T[] a; public ParallelArray(ForkJoinPool fjp, T[] a) { this.fjp = fjp; this.a = a; public void apply(applier<t> app) { ParallelArrayApplier<T> paa = new ParallelArrayApplier<T>(a, 0, a.length-1, app); fjp.invoke(paa); paa.join();
13 PA17.java import java.util.concurrent.forkjoinpool; public class PA17 { private static ForkJoinPool fjp = new ForkJoinPool(8); public static void addonetoall(integer[] a) { ParallelArray<Integer> pa = new ParallelArray<>(fjp, a); pa.apply(new Applier<Integer>() { public void applytoelement(integer[] a, int ix) { a[ix] = a[ix] + 1; ); Integer[] a = new Integer[1000]; for(int i = 0; i < a.length; i++) { a[i] = i + 1; addonetoall(a); System.out.println(a[0] + " " + a[a.length - 1]); Jeg vil tro at koden kan forbedres, men det skulle gerne kunne sætte folk igang. URLClassLoader URLClassLoader har fået en close metode som: - gør at classloaderen ikke længere kan loade - closer diverse jar filer som den har holdt åben XML Den indbyggede XML support er opdateret til: - JAXP JAXB 2.2a - JAX-WS 2.2 JDBC JDBC er opdateret til version 4.1. Den største ændring er support for try with resource (se tidligere afsnit om dette) for Connection, Statement/PreparedStatement/CallableStatement og ResultSet. Bedre support for dynamiske sprog 1.7 JVM indeholder forbedret support for programmerings sprog med dynamiske typer.
14 Det drejer sig bl.a. om JRuby og Jython. Disse sprog er stigende i popularitet på Java platformen, så det er en væsentlig forbedring, men jeg vil ikke komme mere ind på den her. JavaDoc HTML designet i JavaDoc's er opdateret. Dette er naturligvis kun en kosmetisk ændring, men det er ret synligt. Kommentar af T0M (nedlagt brugerprofil) d. 20. jul Holddaop er der virkelig gået 4½ år! De nye fil-metoder bliver et hit! - de enkelte gange jeg har været tvunget til at lave noget i java, har jeg haft mareridt over de lede bytearray buffere.. Super artikel, tak! Kommentar af FelixGraversNielsen d. 01. sep du er fantastisk håber at du vil hjælpe mig med mit spørgsmål:
I profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen eller
Upload fil Upload fil skal ses som et alternativ til at indsende tællefiler vedhæftet til mails Upload fil kan være en hurtigere og mere håndholdt måde at få data ind i Mastra på. Man starter med via Gennemse
Læs mereThreads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter
Læs mereGeografisk lokalisering i JSP
Denne guide er oprindeligt udgivet på Eksperten.dk Geografisk lokalisering i JSP Denne artikel forklarer lidt om hvorfor og hvordan man laver geografisk lokalisering og viser noget kode. Der er andre artikler
Læs mereRMI avanceret. Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer.
Denne guide er oprindeligt udgivet på Eksperten.dk RMI avanceret Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer. Den forudsætter
Læs merePrepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.
Denne guide er oprindeligt udgivet på Eksperten.dk Prepared Statements Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Skrevet den 18. Feb 2010
Læs mere//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!
Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for
Læs mereRMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).
Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer
Læs mereSingleton pattern i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.
Læs mereNye Java XML API'er
Denne guide er oprindeligt udgivet på Eksperten.dk Nye Java XML API'er Denne artikel beskriver nye XML features i Java 1.6 - StAX og JAXB, samt XStreams. Den forudsætter kendskab til Java og brug
Læs mereSend fra Java. Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende fra Java.
Denne guide er oprindeligt udgivet på Eksperten.dk Send email fra Java Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende email fra Java. Simple eksempler ikke noget vildt
Læs mereXML parsning i Java. Denne artikel beskriver hvordan man parser XML i Java. Den beskriver W3C DOM, SAX og JDOM.
Denne guide er oprindeligt udgivet på Eksperten.dk XML parsning i Java Denne artikel beskriver hvordan man parser XML i Java. Den beskriver W3C DOM, SAX og JDOM. Den forudsætter kendskab til Java og XML.
Læs mereSingleton pattern i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i C# Denne artikel beskriver Singleton pattern og implementation i C#. Den forudsætter kendskab til C# men ikke til Singleton. Der er
Læs mereTilfældige tal. Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge.
Denne guide er oprindeligt udgivet på Eksperten.dk Tilfældige tal Denne artikel introducerer generering af tilfældige tal og viser lidt om hvad man kan og ikke mindst hvad man ikke bør bruge. Den forudsætter
Læs mereNye features i Java 1.5/5.0
Denne guide er oprindeligt udgivet på Eksperten.dk Nye features i Java 1.5/5.0 Denne artikel beskriver nye features i Java 1.5/5.0, som lige er kommet i final (ikke-beta) udgave. Den forudsætter et vist
Læs mereDatabaseadgang fra Java
Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,
Læs mereJava Klasse nedarvninger
Denne guide er oprindeligt udgivet på Eksperten.dk Java Klasse nedarvninger Et let lille overblik i hvordan klasse nedarvning virker i java Skrevet den 07. dec 2011 af mochners I kategorien Programmering
Læs mereDen forudsætter kendskab til XML og C# men ikke til brug af XML i C#.
Denne guide er oprindeligt udgivet på Eksperten.dk Brug af XML i C# Denne artikel vil vise lidt om hvordan man kan bruge XML i C#. Den forudsætter kendskab til XML og C# men ikke til brug af XML i C#.
Læs mereParameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.
Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET. Der findes en tilsvarende artikel med
Læs mereNye features i Java 1.6/6.0
Denne guide er oprindeligt udgivet på Eksperten.dk Nye features i Java 1.6/6.0 Denne artikel beskriver nye features i Java 1.6/6.0, som lige er kommet i endelig udgave. Den forudsætter et vist kendskab
Læs mereHvordan vælger jeg dokumentprofilen?
Hvordan vælger jeg dokumentprofilen? Valget af OIOUBL profil i en konkret dokumentudveksling vil bl.a. afhænge af, hvilke OIOUBL profiler den anden part i udvekslingen understøtter. Et konkret eksempel
Læs mereDen forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.
Denne guide er oprindeligt udgivet på Eksperten.dk Brug af MySQL i C++ Denne artikel bygger ovenpå artiklen "MySQL C API" og forklarer hvordan man kan programmere mere objekt orienteret. Den forudsætter
Læs mereIntroduction til.net remoting i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i C# Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i C#. Den forudsætter kendskab
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3
DM502 Forelæsning 3 Indlæsning fra tastatur Udskrift til skærm Repetition Beregning af middelværdi Gentagelse med stop-betingelse (while) Heltalsdivision Division med nul Type-casting ( (double) ) Betinget
Læs mereMere om tilfældige tal
Denne guide er oprindeligt udgivet på Eksperten.dk Mere om tilfældige tal Denne artikel bygger oven på den forrige artikel om tilfældige tal. Den forudsætter at man har læst den forrige artikel og har
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11
DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void
Læs mereIntroduction til.net remoting i VB.NET
Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i VB.NET Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i VB.NET. Den forudsætter
Læs mereDM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11
DM01 DM01 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 18/3-2003 Side 1 af 11 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DILEMMA:...4 2.1.1 METODER:...4
Læs mereOffset til terminalskærm i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Offset til terminalskærm i Java Ikke en atikkel - men en Classe til java der gør det nemt at skrive ud på avancerede måder når man kun opererer i dosvindue.
Læs mereDag 10 Flertrådet programmering
Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,
Læs mereBits, bit operationer, integers og floating point
Denne guide er oprindeligt udgivet på Eksperten.dk Bits, bit operationer, integers og floating point Denne artikel beskriver hvordan data gemmes som bits og hvordan man kan manipulere med bits. Den forudsætter
Læs mereDatalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 - forstå datastrukturer og algoritmer (teoretisk forståelse og intuition)
Datalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 Datastrukturer og algoritmer Henning Christiansen henning@ruc.dk http://www.ruc.dk/~henning Formål: at kunne - forstå datastrukturer og algoritmer
Læs mereSigmaT.
Java + Groovy Disposition Om SigmaT Eksempel på indlejring af Groovy Overvågning af PEM Ønske om dynamisk loaded Java uden at fifle med classloaderen Groovy til hjælp Opsamling hvad jeg ikke har fortalt
Læs mereGeografisk lokalisering i ASP.NET
Denne guide er oprindeligt udgivet på Eksperten.dk Geografisk lokalisering i ASP.NET Denne artikel forklarer lidt om hvorfor og hvordan man laver geografisk lokalisering og viser noget kode. Der er andre
Læs mereHvilket sprog er hurtigst
Denne guide er oprindeligt udgivet på Eksperten.dk Hvilket sprog er hurtigst Denne artikel forsøger at aflive forskellige myter om hvilke sprog der er hurtigst. Den forudsætter ikke noget særligt. Skrevet
Læs mereTest med JUnit 3. Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det.
Denne guide er oprindeligt udgivet på Eksperten.dk Test med JUnit 3 Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab
Læs mereSerialization i Java
Serialization i Java Tutorial lavet af Jákup W. Hansen TSU 2006 1.semester 06.novemter 2006 Hvad er Serialization? I vores tekstbog Objects First with Java bliver denne del af Java ikke gennemgået. Men
Læs mereDM01 DM01. 4. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 13/5-2003. Side 1 af 7
DM01 DM01 4. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 13/5-2003 Side 1 af 7 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DNA2:...4 2.1.1 METODER:...4
Læs mereMySQL i Java. Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007
MySQL i Java Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007 Hvad er MySQL? Det er et database system, som er gratis for os at bruge. Det er lidt mere besværligt i starten at bruge
Læs mereGoogle App Engine. Google App Engine som platform. Claus Myglegaard Vagner og Jacob von Eyben
GoogleAppEngine GoogleAppEnginesomplatform ClausMyglegaardVagnerogJacobvonEyben Abstract CloudcomputingerenteknologidervinderfremidengenerelleITinfrastruktur. SocialemediersåsomLinkedIn,TwitterogFacebookharøgetbehovetfor
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4
DM502 Forelæsning 4 Flere kontrolstrukturer for-løkke switch-case Metoder Indhold Arrays og sortering af arrays String-funktioner for-løkke Ofte har man brug for at udføre det samme kode, for en sekvens
Læs mereHvad er Objekter - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som
Læs mereSkrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET
Denne guide er oprindeligt udgivet på Eksperten.dk Parameters Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til VB.NET og ADO.NET. Der findes en tilsvarende artikel
Læs mereDen forudsætter kendskab til XML og VB.NET men ikke til brug af XML i VB.NET.
Denne guide er oprindeligt udgivet på Eksperten.dk Brug af XML i VB.NET Denne artikel vil vise lidt om hvordan man kan bruge XML i VB.NET. Den forudsætter kendskab til XML og VB.NET men ikke til brug af
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2
DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld
Læs mere9.8 Kildekode. side 88. Pakke Klasse Sidenummer. fortsætter..
9.8 Kildekode Pakke Klasse Sidenummer db Aktivitetstype 91 Behandler 91 ConnectDB 92 DagensKommentar 93 Helligdag 94 IkkePrimaerTid 94 Patient 96 Patientaftale 96 PatientAktivitet 97 Patientgruppe 98 PatientgruppeItem
Læs mereAAU, Programmering i Java Intern skriftlig prøve 18. maj 2007
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal
Læs mereUndtagelseshåndtering i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Undtagelseshåndtering i C# I modsætning til C++ kan man i C# ikke skrive et program uden undtagelseshåndtering, så derfor har jeg skrevet denne guide
Læs mere.NET 4.0 og C# 4.0. Denne artikel beskriver nogle af de nye features i.net 4.0 og C# 4.0. Den forudsætter et vist kendskab til.net og C#.
Denne guide er oprindeligt udgivet på Eksperten.dk.NET 4.0 og C# 4.0 Denne artikel beskriver nogle af de nye features i.net 4.0 og C# 4.0. Den forudsætter et vist kendskab til.net og C#. Skrevet den 14.
Læs mereEksempel på en database: studenter, kurser, eksamener
Udvidet Programmering 1999 Forelæsning 20, fredag 12. november 1999 Relationsdatabaser: relationer, tupler, attributter Forespørgselssproget SQL Databasesystemet PostgreSQL Tilgang til relationsdatabaser
Læs mereA Profile for Safety Critical Java
A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren
Læs mereSpeciale. Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP)
Speciale Evaluering af Java til udvikling af indlejrede realtidssystemer ved brug af en eksisterende Java Optimized Processor (JOP) Speciale efterår 2005 Teknisk Informationsteknologi Jan Lauritzen & Mads
Læs mereAnvendelse af metoder - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur
Læs mereIntroduktion til ant. Denne artikel beskriver Apache ant, som er et værktøj til at builde Java applikationer med.
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til ant Denne artikel beskriver Apache ant, som er et værktøj til at builde Java applikationer med. Den beskriver nogle af de mest brugte
Læs mereKontrol-strukturer i PHP
Denne guide er oprindeligt udgivet på Eksperten.dk Kontrol-strukturer i PHP Denne artikel gennemgår kontrolstrukturer i PHP. 'if', 'switch', 'while' og 'for' bliver gennemgået. Den forudsætter lidt grundlæggende
Læs mereTest med NUnit. Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det.
Denne guide er oprindeligt udgivet på Eksperten.dk Test med NUnit Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab
Læs mereSom sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste
Denne guide er oprindeligt udgivet på Eksperten.dk Indkøbsvogn i PHP I denne artikel vil jeg prøve at lave en indkøbskurv som let kan udvides, og som ikke er svær at forstå. Det er bedst med viden om OOP(klasser),
Læs mereb) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.
Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning
Læs mereTabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations
Tabelbegrebet Klassediagrammer (III) Tabeller og qualified associations originally by Michael R. Hansen modified/extended by Anne E. Haxthausen Informatics and Mathematical Modelling Technical University
Læs mereRekursion og dynamisk programmering
Rekursion og dynamisk programmering Datastrukturer & Algoritmer, Dat C Forelæsning 12/10-2004 Henning Christiansen Rekursion: at en procedure kalder sig selv eller et antal metoder kalder hinanden gensidigt.
Læs mereDatabase design for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Database design for begyndere Denne artikel beskriver hvordan man kommer fra ide til database design. Den stopper inden normal former. Den forudsætter
Læs mereParallelle algoritmer
Parallelle algoritmer 1 Von Neumann s model John von Neumann 1903-57 Von Neumanns model: Instruktioner og data er lagret i samme lager, og én processor henter instruktioner fra lageret og udfører dem én
Læs mereLogging i Java. Den forudsætter kendskab til Java og noget generel udviklings erfaring. Denne guide er oprindeligt udgivet på Eksperten.
Denne guide er oprindeligt udgivet på Eksperten.dk Logging i Java Denne artikel beskriver baggrunden for logging frameworks og viser hvordan man bruger 2 af de mest almindelige: Apache Log4J og J2SE/Java
Læs mereVideregående programmering i Java
Videregående programmering i Java Dag 6 Komponenter (og lidt Swing og MVC) Læsning: VP 4, evt. VP 6 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Grafiske komponenter
Læs mereArkitektur for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Arkitektur for begyndere Denne artikel beskriver forskellige basale n-tier arkitekturer. Som man bør kende og have valgt inden man går igang med at udvikle
Læs mereIntroduktion til AOP i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til AOP i C# Denne artikel giver en introduktion AOP (Aspect Oriented Programming) i C#. Den forudsætter et pænt kendskab til programmering,
Læs mereRatingsystem i PHP og MySQL
Denne guide er oprindeligt udgivet på Eksperten.dk Ratingsystem i PHP og MySQL Lær at lave et system til at vise rating/bedømmelse på artikler og nyheder. Skrevet den 03. Feb 2009 af virtual1ty I kategorien
Læs mereVideregående Programmering Obligatorisk opgave - 3. semester, efterår 2004
Overvågningssystem Beskrivelse Bagagesorteringssystemet består af et antal skranker (check-in) til modtagelse og registrering af bagage, et automatiseret sorteringsanlæg samt et antal terminaler (gates),
Læs mereTest af It-komponent
Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side
Læs mereKursus i OOP og Java. Kursus i Objektorienteret programmering i Java
Kursus i OOP og Java Kursus i Objektorienteret programmering i Java Åben Dokumentlicens Dette foredragsmateriale er under Åben Dokumentlicens (ÅDL) Du har derfor lov til frit at kopiere dette værk Bruger
Læs mereBRP Tal. Om computer-repræsentation og -manipulation. Logaritmer
BRP 13.9.2006 Tal. Om computer-repræsentation og -manipulation. Logaritmer 1. Opgaverne til i dag dækker det meste af stoffet 2. Resten af stoffet logaritmer binære træer 3. Øvelse ny programmeringsopgave
Læs mereAbstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
Læs mereMere XML i Java. Denne artikel beskriver brug af XML i Java udover parsning (som er beskrevet i artiklen "XML parsning i Java").
Denne guide er oprindeligt udgivet på Eksperten.dk Mere XML i Java Denne artikel beskriver brug af XML i Java udover parsning (som er beskrevet i artiklen "XML parsning i Java"). Den beskriver bl.a. udskrivning
Læs mereDag 10 Flertrådet programmering
Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,
Læs mereDANMARKS TEKNISKE UNIVERSITET
DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler
Læs mereapplikation----x----odbc driver manager----foobar ODBC driver----foobar database
Denne guide er oprindeligt udgivet på Eksperten.dk ODBC i C/C++ Denne artikel beskriver hvordan man bruger ODBC i C/C++. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab
Læs mereWeb- og serverprogrammering
Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Web- og serverprogrammering Databasekommunikation - dag 7 Strategier til databaseadgang JDBC (Java DataBase Connectivity)
Læs mereBilag 1 Rige billeder Ordremodtagelse
Bilag1 Rigebilleder Ordremodtagelse Tværfagligtprojektpå2.Semester Bilag afchristian,kennetogmartin 71 Overordnet Tværfagligtprojektpå2.Semester Bilag afchristian,kennetogmartin 72 Produktionsgulvet Tværfagligtprojektpå2.Semester
Læs mereHvorfor skal vi bruge objekt orienteret databaser?
OODBMS Vs. RDBMS 1 Indholdsfortegnelse Hvorfor skal vi bruge objekt orienteret databaser?... 3 OODBMS i erhvervslivet... 4 Bagsiden af medaljen... 5 OODBMS i praksis... 6 Konklusion... 8 2 Hvorfor skal
Læs mereRMI med BlueJ. Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 11. desember 2007
RMI med BlueJ Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 11. desember 2007 Hvad er RMI? Når man arbejder med Distribuerede Systemer, som igen vil sige at man ønsker at flere end én komputer
Læs mereUgeseddel 4 1. marts - 8. marts
Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,
Læs mereTredjepart webservices
Tredjepart webservices 4. juni 2015 USS Dok. Klik her for at angive tekst. 1/12 Indholdsfortegnelse Introduktion... 3 Miljøer... 3 Adgang... 3 API kald... 4 GET: /authorizations... 4 Input 4 Output 4 Output
Læs mereSAX Simple API for XML.
SAX Simple API for XML. En API (Application Programming Interface) et bibliotek eller et sæt af funktioner eller metoder. SAX er et sådant bibliotek af abstrakte metoder som f. eks. startdocument() eller
Læs merePerspektiverende Datalogi Internetalgoritmer. MapReduce. Gerth Stølting Brodal
Perspektiverende Datalogi Internetalgoritmer MapReduce Gerth Stølting Brodal MapReduce Implementationer Dean, F. and Ghemawat, S. (2004) MapReduce: Simplified Data Processing on Large Clusters. In: Sixth
Læs mere14.1 Internationale programmer
14.1 Internationale programmer Når et program skal anvendes af flere kulturer og sprog opstår behov for at programtekster, beløb og datoangivelser afhænger af landet og sproget, og man må i gang med at
Læs mereLær Python dag 1 - modul 1
Lær Python dag 1 - modul 1 Introduktion, basis python Steffen Berg Klenow Jonas Bamse Andersen Syddansk Universitet Indhold 1. Velkommen 2. Programmering i python 3. Typer, variabler og udtryk 1 Velkommen
Læs mereI denne artikel vil vi bruge en User klasse som vi så vil gruppere på forskellige måder.
Denne guide er oprindeligt udgivet på Eksperten.dk Collections i.net Når du kigger i namespacet System.Collections finder du over 10 forskellige klasser. At vælge den rigtige til netop din applikations
Læs mereclass Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.
Programmering 1999 Forelæsning 4, fredag 10. september 1999 Klasser og objekter Felter, konstruktorer, this Eksempler på klasser: Time, Appointment Eksempler på metoder i Time og Appointment Klassefelter:
Læs mereForskellige Java versioner
Denne guide er oprindeligt udgivet på Eksperten.dk Forskellige Java versioner Denne artikel beskriver lidt om de forskellige Java versioner. Den forklarer J2SE/J2ME/J2EE, plugin/jre/sdk og Sun Java/Microsoft
Læs mereDatabase programmerings tips
Denne guide er oprindeligt udgivet på Eksperten.dk Database programmerings tips Denne artikel vil introducere nogle problem stillinger med flere samtidige brugere, som man skal tænke på, når man udvikler
Læs mereJava web applikationer med Tomcat
Denne guide er oprindeligt udgivet på Eksperten.dk Java web applikationer med Tomcat Denne artikel beskriver hvordan man kan konfigurere container managed security og en database connection pool i Tomcat.
Læs mereLøsning af skyline-problemet
Løsning af skyline-problemet Keld Helsgaun RUC, oktober 1999 Efter at have overvejet problemet en stund er min første indskydelse, at jeg kan opnå en løsning ved at tilføje en bygning til den aktuelle
Læs mereWebserverprogrammering
Webserverprogrammering WSP fortsat - dag 11 Behandling af XML (StAX) Syndikering og RSS med XML JAXB - XML Java-objekter Projekthjælp Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html
Læs mereEndnu mere om tilfældige tal
Denne guide er oprindeligt udgivet på Eksperten.dk Endnu mere om tilfældige tal Denne artikel bygger oven på de to forrige artikler om tilfældige tal. Den indeholder lidt matematik og anvendelse på PHP
Læs mereNetværk & elektronik
Netværk & elektronik Oversigt Ethernet og IP teori Montering af Siteplayer modul Siteplayer teori Siteplayer forbindelse HTML Router (port forwarding!) Projekter Lkaa Mercantec 2009 1 Ethernet På Mars
Læs mereMartin Olsen. DM507 Projekt Del I. 19. marts 2012 FOTO: Colourbox
Martin Olsen DM0 Projekt 0 Del I. marts 0 FOTO: Colourbox Indhold Indledning... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Opgave... Kildekode til SimpleInv.java... Kildekode til MergeSort.java...
Læs mereMed register_globals = On får du automatisk adgang til en række variabelnavne i dit script.
Denne guide er oprindeligt udgivet på Eksperten.dk Register Globals Off Lad os slå en ting fast med det samme - register_globals = Off er en god ting, i hvert fald set ud fra et sikkerhedsmæssigt synspunkt.
Læs mereDM502. Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/
DM502 Peter Schneider-Kamp (petersk@imada.sdu.dk) http://imada.sdu.dk/~petersk/dm502/ 1 DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne!
Læs mereEksamens spørgsmål i Java HTML - DataBase 3. Semester (i)
Eksamens spørgsmål i Java HTML - DataBase 3. Semester (i) 1: KLASSE METODE KONSTRUKTØR EKS. PÅ TYPE (VARIABLE) PUBLIC/PRIVATE OBJECT UD FRA KLASSE KALD METODE TILFØR PARAMETER TIL METODE RETURNERE VARIBEL.
Læs mereBRP 6.9.2006 Kursusintroduktion og Java-oversigt
BRP 6.9.2006 Kursusintroduktion og Java-oversigt 1. Kursusintroduktion 2. Java-oversigt (A): Opgave P4.4 3. Java-oversigt (B): Ny omvendings -opgave 4. Introduktion til næste kursusgang Kursusintroduktion:
Læs mereCVS som KS-værktøj E3-104. Branching, Merging m.v.
CVS som KS-værktøj E3-104 Branching, Merging m.v. Gennemgang af Oprettelse af CVS-træ Tilføj filer Commit Fil forskelle Merging Branching Ekstra værktøjer Avanceret Oprettelse af CVS-træ report graphics
Læs mere