Nye features i Java 1.6/6.0

Størrelse: px
Starte visningen fra side:

Download "Nye features i Java 1.6/6.0"

Transkript

1 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 til Java. Skrevet den 14. Feb 2010 af arne_v I kategorien Programmering / Java Historie: V1.0-26/03/ original V1.1-27/03/ tilføj desktop eksempel V1.2-20/05/ tilføj lidt flere småændringer V1.3-04/07/ ret prompt og tilret for beta 2 V1.4-11/01/ noter at den er ude i endelig udgave V1.5-21/03/ tilret og udvid JC16.java V1.6-26/12/ små ændringer og tilføj links V1.7-14/02/ smårettelser Kodenavn Mustang Java 1.6/6.0 med kodenavnet Mustang udkom i december Den afløser Java 1.5/5.0 med kodenavnet Tiger (se evt. artikel "Nye features i Java 1.5/5.0"). Den er stadig gal med versionsnummeret. For at citere fra docs: "Both version numbers (1.6.0 and 6) are used to identify this release of the Java Platform. Version 6 is the product version, while is the developer version. The number 6 is used to reflect the evolving level of maturity, stability, scalability and security of Java SE." "Version 6 is used in the platform and product names as given in this table:" "Java SE keeps the version number (or 1.6) in some places that are visible only to developers, or where the version number is parsed by programs. As mentioned, refers to exactly the same platform and products numbered 6. Version numbers and 1.6 are used at:" Jeg er gammeldags og vil fortsætte med at kalde den 1.6! Indledning Jeg vil opremse nogle af de nye features i 1.6 og illustrere med små kode eksempler. Det er dog ikke sikkert at jeg har opdaget alle de

2 interessante nyheder. Console Der er tilføjet en ny klasse for at give visse ekstra muligheder for console IO. Mest relevant er nok læsning af passwords uden echo. Eksempel: C16.java import java.io.console; public class C16 { public static void main(string[] args) { Console c = System.console(); String un = c.readline("enter username: "); String pw = new String(c.readPassword("Enter password: ")); System.out.println(un + " " + pw); Nyttigt men ikke revolutionerende. Disk info Der er tilføjet nogle muligheder til File klassen for at få information om disk space. Eksempel: DI16.java import java.io.file; public class DI16 { public static void main(string[] args) { File f = new File("C:\\"); long free = f.getfreespace(); long tot = f.gettotalspace(); System.out.println(free + " " + tot); Nyttigt og længe efterspurgt.

3 Netkort info Man har siden 1.4 kunnet hente alle IP adresser på systemet. Nu kan man også hente ethernet adresserne. Gammel kode: NI15.java import java.net.networkinterface; import java.net.inetaddress; import java.util.enumeration; public class NI15 { Enumeration e = NetworkInterface.getNetworkInterfaces(); while(e.hasmoreelements()) { NetworkInterface ni = (NetworkInterface)e.nextElement(); System.out.println("Net interface: " + ni.getname()); Enumeration e2 = ni.getinetaddresses(); while (e2.hasmoreelements()){ InetAddress ip = (InetAddress)e2.nextElement(); System.out.println("IP address: " + ip.gethostaddress()); Ny kode: NI16.java import java.net.networkinterface; import java.net.inetaddress; import java.util.enumeration; public class NI16 { Enumeration e = NetworkInterface.getNetworkInterfaces(); while(e.hasmoreelements()) { NetworkInterface ni = (NetworkInterface)e.nextElement(); System.out.println("Net interface: " + ni.getname()); Enumeration e2 = ni.getinetaddresses(); while (e2.hasmoreelements()){ InetAddress ip = (InetAddress)e2.nextElement(); System.out.println("IP address: " + ip.gethostaddress()); byte[] mac = ni.gethardwareaddress(); if(mac!= null) {

4 System.out.printf("%02X:%02X:%02X:%02X:%02X:%02X\n",mac[0],mac[1],mac[2],mac[3 ],mac[4],mac[5]); Nyttigt i nogle tilfælde. Callable compiler Det har længe været ønsket at kunne kalde compileren fra kode. Hidtil har man måttet være nødt til at starte den eksterne javac kommando, men nu kan man kalde compileren direkte. Eksempel på brug af javac: JC15.java import java.io.printwriter; import java.io.filewriter; public class JC15 { PrintWriter pw = new PrintWriter(new FileWriter("Temp1.java")); pw.println("public class Temp1 {"); pw.println(" public void test() {"); pw.println(" System.out.println(\"Temp1 OK\");"); pw.println(" "); pw.println(""); pw.close(); Runtime.getRuntime().exec(new String[] { "javac", "Temp1.java" ); Class c = Class.forName("Temp1"); Object o = c.newinstance(); c.getmethod("test", new Class[] { ).invoke(o, new Object[] { ); Eksempel på brug af callable compiler: JC16.java import java.io.bytearrayinputstream; import java.io.bytearrayoutputstream; import java.io.filewriter; import java.io.ioexception; import java.io.inputstream;

5 import java.io.outputstream; import java.io.printstream; import java.io.printwriter; import java.net.uri; import java.util.arrays; import java.util.hashmap; import java.util.map; import javax.tools.diagnostic; import javax.tools.diagnosticcollector; import javax.tools.fileobject; import javax.tools.forwardingjavafilemanager; import javax.tools.javacompiler; import javax.tools.javafileobject; import javax.tools.simplejavafileobject; import javax.tools.standardjavafilemanager; import javax.tools.toolprovider; import javax.tools.javacompiler.compilationtask; public class JC16 { testfilefile(); testmemoryfile(); testfilememory(); testmemorymemory(); public static void testfilefile() throws Exception { PrintWriter pw = new PrintWriter(new FileWriter("Temp2.java")); pw.println("public class Temp2 {"); pw.println(" public void test() {"); pw.println(" System.out.println(\"Temp2 OK\");"); pw.println(" "); pw.println(""); pw.close(); compilefilefile("temp2.java", System.err); Class<?> c = Class.forName("Temp2"); Object o = c.newinstance(); c.getmethod("test", new Class[] { ).invoke(o, new Object[] { ); public static void compilefilefile(string fnm, PrintStream err) { JavaCompiler javac = ToolProvider.getSystemJavaCompiler(); DiagnosticCollector<JavaFileObject> diacol = new DiagnosticCollector<JavaFileObject>(); StandardJavaFileManager sjfm = javac.getstandardfilemanager(diacol, null, null); CompilationTask compile = javac.gettask(null, sjfm, diacol, Arrays.asList(new String[] { ), null, sjfm.getjavafileobjects(new String[] { fnm )); boolean status = compile.call(); if(err!= null) { err.println("compile status: " + status); for(diagnostic<? extends JavaFileObject> dia : diacol.getdiagnostics()) { err.println(dia);

6 public static void testmemoryfile() throws Exception { String src = "public class Temp3 { public void test() { System.out.println(\"Temp3 OK\"); "; compilememoryfile(src, "Temp3", System.err); Class<?> c = Class.forName("Temp3"); Object o = c.newinstance(); c.getmethod("test", new Class[] { ).invoke(o, new Object[] { ); public static void compilememoryfile(string src, String name, PrintStream err) { JavaCompiler javac = ToolProvider.getSystemJavaCompiler(); DiagnosticCollector<JavaFileObject> diacol = new DiagnosticCollector<JavaFileObject>(); StandardJavaFileManager sjfm = javac.getstandardfilemanager(diacol, null, null); CompilationTask compile = javac.gettask(null, sjfm, diacol, Arrays.asList(new String[] { ), null, Arrays.asList(new JavaFileObject[] { new MemorySource(name, src) )); boolean status = compile.call(); if(err!= null) { err.println("compile status: " + status); for(diagnostic<? extends JavaFileObject> dia : diacol.getdiagnostics()) { err.println(dia); public static void testfilememory() throws Exception { PrintWriter pw = new PrintWriter(new FileWriter("Temp4.java")); pw.println("public class Temp4 {"); pw.println(" public void test() {"); pw.println(" System.out.println(\"Temp4 OK\");"); pw.println(" "); pw.println(""); pw.close(); SpecialClassLoader xcl = new SpecialClassLoader(); compilefilememory("temp4.java", xcl, System.err); Class<?> c = Class.forName("Temp4", true, xcl); Object o = c.newinstance(); c.getmethod("test", new Class[] { ).invoke(o, new Object[] { ); public static void compilefilememory(string fnm, SpecialClassLoader xcl, PrintStream err) { JavaCompiler javac = ToolProvider.getSystemJavaCompiler(); DiagnosticCollector<JavaFileObject> diacol = new DiagnosticCollector<JavaFileObject>(); StandardJavaFileManager sjfm = javac.getstandardfilemanager(diacol, null, null); SpecialJavaFileManager xfm = new SpecialJavaFileManager(sjfm, xcl); CompilationTask compile = javac.gettask(null, xfm, diacol, Arrays.asList(new String[] { ), null,

7 sjfm.getjavafileobjects(new String[] { fnm )); boolean status = compile.call(); if(err!= null) { err.println("compile status: " + status); for(diagnostic<? extends JavaFileObject> dia : diacol.getdiagnostics()) { err.println(dia); public static void testmemorymemory() throws Exception { String src = "public class Temp5 { public void test() { System.out.println(\"Temp5 OK\"); "; SpecialClassLoader xcl = new SpecialClassLoader(); compilememorymemory(src, "Temp5", xcl, System.err); Class<?> c = Class.forName("Temp5", true, xcl); Object o = c.newinstance(); c.getmethod("test", new Class[] { ).invoke(o, new Object[] { ); public static void compilememorymemory(string src, String name, SpecialClassLoader xcl, PrintStream err) { JavaCompiler javac = ToolProvider.getSystemJavaCompiler(); DiagnosticCollector<JavaFileObject> diacol = new DiagnosticCollector<JavaFileObject>(); StandardJavaFileManager sjfm = javac.getstandardfilemanager(diacol, null, null); SpecialJavaFileManager xfm = new SpecialJavaFileManager(sjfm, xcl); CompilationTask compile = javac.gettask(null, xfm, diacol, Arrays.asList(new String[] { ), null, Arrays.asList(new JavaFileObject[] { new MemorySource(name, src) )); boolean status = compile.call(); if(err!= null) { err.println("compile status: " + status); for(diagnostic<? extends JavaFileObject> dia : diacol.getdiagnostics()) { err.println(dia); class MemorySource extends SimpleJavaFileObject { private String src; public MemorySource(String name, String src) { super(uri.create("string:///" + name + ".java"), Kind.SOURCE); this.src = src; public CharSequence getcharcontent(boolean ignoreencodingerrors) { return src; public OutputStream openoutputstream() { throw new IllegalStateException();

8 public InputStream openinputstream() { return new ByteArrayInputStream(src.getBytes()); class MemoryByteCode extends SimpleJavaFileObject { private ByteArrayOutputStream baos; public MemoryByteCode(String name) { super(uri.create("byte:///" + name + ".class"), Kind.CLASS); public CharSequence getcharcontent(boolean ignoreencodingerrors) { throw new IllegalStateException(); public OutputStream openoutputstream() { baos = new ByteArrayOutputStream(); return baos; public InputStream openinputstream() { throw new IllegalStateException(); public byte[] getbytes() { return baos.tobytearray(); class SpecialJavaFileManager extends ForwardingJavaFileManager<StandardJavaFileManager> { private SpecialClassLoader xcl; public SpecialJavaFileManager(StandardJavaFileManager sjfm, SpecialClassLoader xcl) { super(sjfm); this.xcl = xcl; public JavaFileObject getjavafileforoutput(location location, String name, JavaFileObject.Kind kind, FileObject sibling) throws IOException { MemoryByteCode mbc = new MemoryByteCode(name); xcl.addclass(name, mbc); return mbc; class SpecialClassLoader extends ClassLoader { private Map<String,MemoryByteCode> m; public SpecialClassLoader() { m = new HashMap<String, MemoryByteCode>(); protected Class<?> findclass(string name) { MemoryByteCode mbc = m.get(name); return defineclass(name, mbc.getbytes(), 0, mbc.getbytes().length); public void addclass(string name, MemoryByteCode mbc) { m.put(name, mbc);

9 NB: Dette eksempel virker ikke med beta 1 og beta 2 - kun med final. Og eksemplet som virkede med beta 1 og beta 2 virker ikke med final. Man har lavet en del om i dette mellem beta 1 og beta 2 samt mellem beta 2 og final. Og ikke til det bedre efter min mening. Særdeles nyttigt og formentligt vil dette erstatte mange af de byte code generatorer som eksisterer idag. Script evaluation Der er blevet indbygget support for at embedded script engines i Java programmer, så man f.eks. kan få udført en stump JavaScript inde fra sit Java program. Eksempel: S16.java import javax.script.scriptenginemanager; import javax.script.scriptengine; public class S16 { ScriptEngineManager mgr = new ScriptEngineManager(); ScriptEngine js = mgr.getenginebyname("js"); System.out.println(js.eval("(1+2)*(3+4)")); js.put("a", 1); js.put("b", 2); js.put("c", 3); System.out.println(js.eval("a+b+c")); System.out.println(js.eval("var x = 1; var y = 4; var z = 9; x+y+z")); Java shipper med JavaScript engine, men det er muligt at tilføje andre script engines. Jeg ved ikke om det er nyttigt. JDBC 4.0 Der er mange forbedringer til JDBC i forbindelse med version 4.0, som kommer med Java 1.6. Nogle af de mest interessante er: * man behøver ikke længere bruge Class.forName til at loade driveren med * SQLException har fået sub klasser, så man kan teste mere præcist på hvilken fejl man har * der er en ny SQLXML data type som opfører sig lidt ligesom CLOB/BLOB * Connection har fået create metoder til at lave CLOB/BLOB/SQLXML objekter

10 Alt sammen yderst interessant. Problemet er at der stort set ikke er nogen JDBC 4.0 compliant drivere og at det derfor vil tage nogle år inden man kan udnytte disse features. Og derfor vil jeg heller ikke vise kode eksempler. SQL annotations Denne feature hører egentligt med i JDBC 4.0, men bør kunne bruges uafhængigt af driveren fordi logikken ligger i kode som kommer med selve Java. Featuren tillader at man laver data gateways ved hjælp af kun et interface og annotations med SQL sætninger. Traditionel kode (uden data gateway): A15.java import java.sql.drivermanager; import java.sql.connection; import java.sql.statement; import java.sql.resultset; public class A15 { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost/Test", "", ""); Statement stmt = con.createstatement(); ResultSet rs = stmt.executequery("select * FROM t1"); while(rs.next()) { int f1 = rs.getint(1); String f2 = rs.getstring(2); System.out.println(f1 + " " + f2); rs.close(); stmt.executeupdate("insert INTO t1 VALUES (6, 'FFF')"); stmt.executeupdate("update t1 SET f2 = 'FFFFFF' WHERE f1 = " + 6); ResultSet rs2 = stmt.executequery("select * FROM t1 WHERE f1 > " + 3); while(rs2.next()) { int f1 = rs2.getint(1); String f2 = rs2.getstring(2); System.out.println(f1 + " " + f2); rs2.close(); stmt.executeupdate("delete FROM t1 WHERE f1 = " + 6); stmt.close(); con.close();

11 Data gateway via annotations med SQL: A16.java import java.sql.drivermanager; import java.sql.connection; import java.sql.queryobjectfactory; import java.sql.dataset; public class A16 { Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost/Test", "", ""); T1Gate t1 = QueryObjectFactory.createDefaultQueryObject(T1Gate.class, con); DataSet<T1> ds = t1.getall(); for(t1 row : ds) { System.out.println(row.f1 + " " + row.f2); t1.insertnew("6","fff"); t1.updateone(6,"ffffff"); DataSet<T1> ds2 = t1.getsome(3); for(t1 row : ds2) { System.out.println(row.f1 + " " + row.f2); t1.deleteone(6); con.close(); T1.java public class T1 { public int f1; public String f2; T1Gate.java import java.sql.basequery; import java.sql.dataset; import java.sql.select; import java.sql.update; public interface T1Gate extends BaseQuery {

12 @Select(sql="SELECT * FROM t1") DataSet<T1> INTO t1 VALUES(?1,?2)") int insertnew(string f1, String t1 SET f2 =?2 WHERE f1 =?1") int updateone(int f1, String FROM t1 WHERE f1 =?1") int deleteone(int * FROM t1 WHERE f1 >?1") DataSet<T1> getsome(int minf1); To bemærkninger: 1) QueryObjectFactory.createDefaultQueryObject(T1Gate.class, con) skal erstattes af con.createqueryobject(t1gate.class) når driveren bliver JDBC 4.0 compliant 2) Eksemplet virkede ikke beta 1 (tilsyneladende bliver tallene efter? ikke fjernet som de skal når der skal genereres PreparedStatement), men det gør det i beta 2 Nogle vil nok sige at det er en nyttig feature. Jeg er ikke glad for den. Det er faktisk lykkes at putte implementations logic i et interface! Array resize Det er nu blivet nemmere at resize et array. Gammel kode: AR15.java public class AR15 { public static void main(string[] args) { int[] ia = new int[2]; ia[0] = 1; ia[1] = 2; int[] ia2 = new int[4]; System.arraycopy(ia, 0, ia2, 0, 2); ia2[2] = 3; ia2[3] = 4; for(int i = 0; i < ia2.length; i++) { System.out.println(ia2[i]); Ny kode: AR16.java

13 import java.util.*; public class AR16 { public static void main(string[] args) { int[] ia = new int[2]; ia[0] = 1; ia[1] = 2; int[] ia2 = Arrays.copyOf(ia, 4); ia2[2] = 3; ia2[3] = 4; for(int i = 0; i < ia2.length; i++) { System.out.println(ia2[i]); Meget praktisk. IDN support Java understøtter nu IDN. IDN klassen i java.net har en toascii og en tounicode metode til at konvertere domain navne med non-ascii tegn i. IDN16.java import java.net.*; public class IDN16 { public static void main(string[] args) { System.out.println(IDN.toASCII(" Næppe specielt vigtigt. Wildcard i classpath En * i classpath betyder alle jar filer i det pågældende dir. Windows eksempel: java -classpath.;c:\foobar\lib\* MainClass vil tilføje alle jar filer i C:\foobar\lib til classpath.

14 Helt klart praktisk. Andet Der er tilføjet to nye XML API'er: StAX og JAXB. For mere info se artikel: "Nye Java XML API'er" Efter at UNISYS'es patent på LZW komprimering er udløbet, så er skrivning af GIF filer nu muligt uden eksterne libraries. Java web service API'erne er blevet indlemmet i J2SE. Jeg vil ikke komme med kode eksempler, da det mere er en flytning af funktionalitet end ny funktionalitet. Der er en del ændringer til AWT og Swing plus support for brug af desktop og systray. Jeg vil kun komme med et eksempel på brug af desktop til start af default browser. Før Java 1.6 måtte man lave en windows specific og browser specific løsning som: B15.java public class B15 { Runtime.getRuntime().exec(new String[] { "C:\\Program Files\\Mozilla Firefox\\firefox.exe", " ); Med Java 1.6 kan man lave en generel løsning: B16.java import java.net.uri; import java.awt.desktop; public class B16 { if(desktop.isdesktopsupported()) { Desktop dsktop = Desktop.getDesktop(); if(dsktop.issupported(desktop.action.browse)) { dsktop.browse(new URI("

15 Kommentar af jensgram d. 27. Mar Velskrevet artikel, men det var da nogle kedelige features... Kommentar af krukken d. 27. Jul God og hurtig oversigt. Som altid ved arve_v hvad han snakket om. Kommentar af mysitesolution d. 14. Jun Holder hvad den lover og fin som dine andre artikler...der er dog en lille fejl, du skriver "Enter username:" 2 gange? dette er vel ikke meningen... Næstne ligegyldigt men... Kommentar af o-zone d. 22. Feb Velskrevet og lige til at gå til! Kommentar af stich d. 19. May Synes eksemplerne kunne være mere illustrative, og ser fx ikke den store grund til at medtage NI15 - ej heller samme kode i NI16. Der er en god del andre tilføjelser, ændringer osv. (viser et par hurtige Googlinger), men hvor vigtige de hver især er, kommer selvfølgelig an på ens interesseområder (et godt eksempel herpå er nok elliptisk kurve-kryptografi). Der er dog, som forventet, øjensynligt ikke tale om en nær så interessant udgivelse for alm. udviklere, som Java (1.)5 var. Kommentar af imago-dei d. 28. Mar Artiklen er fin nok, men hvis denne artikel lægger vægt på højdepunkterne i den nye udgave af Java, er virkelig ikke meget at hente ved at opgradere. Kommentar af 2c d. 12. Apr God artikel. Den holder hvad den lover, og de nye features demonstreres på en god måde. Java 6 virker umiddelbart ikke så revolutionerende. Kommentar af jlykkegaard d. 27. Mar udmærket :) Kommentar af psycosoft-funware d. 02. Apr artiklen er godt skrevet, selvom jeg ikke fatter en brik af java ;-) /FunteX! :-)

Prepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.

Prepared 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

Geografisk lokalisering i JSP

Geografisk 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 mere

Nye features i Java 1.7/7.0

Nye features i Java 1.7/7.0 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 2011. Den forudsætter et vist kendskab til

Læs mere

RMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).

RMI 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 mere

RMI avanceret. Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer.

RMI 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 mere

Parameters. Denne artikel beskriver hvorfor parameters er gode. Den forudsætter lidt kendskab til C# og ADO.NET.

Parameters. 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 mere

Databaseadgang fra Java

Databaseadgang 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 mere

I profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen eller

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 mere

Send fra Java. Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende fra Java.

Send  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 mere

Skrevet den 18. Feb 2010 af arne_v I kategorien Programmering / Visual Basic.NET

Skrevet 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 mere

//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!

//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 mere

Den forudsætter kendskab til C++ og lidt kendskab til SQL og MySQL C API.

Den 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 mere

Singleton pattern i Java

Singleton 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 mere

Nye Java XML API'er

Nye 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 mere

XML parsning i Java. Denne artikel beskriver hvordan man parser XML i Java. Den beskriver W3C DOM, SAX og JDOM.

XML 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 mere

Singleton pattern i C#

Singleton 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 mere

Test med JUnit 3. Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det.

Test 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 mere

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

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 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 mere

Web- og serverprogrammering

Web- 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 mere

Logging i Java. Den forudsætter kendskab til Java og noget generel udviklings erfaring. Denne guide er oprindeligt udgivet på Eksperten.

Logging 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 mere

Java web applikationer med Tomcat

Java 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 mere

Den forudsætter kendskab til XML og C# men ikke til brug af XML i C#.

Den 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 mere

applikation----x----odbc driver manager----foobar ODBC driver----foobar database

applikation----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 mere

University of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11

University 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 mere

Forskellige databaser

Forskellige databaser Denne guide er oprindeligt udgivet på Eksperten.dk Forskellige databaser Denne artikel beskriver kort forskellige database typer, produkter og API'er. Målet er at give et overblik over hvad der findes

Læs mere

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.

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. 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 mere

MySQL 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 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 mere

Anvendelse af metoder - Programmering

Anvendelse 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 mere

Undtagelseshåndtering i C#

Undtagelseshå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

MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere.

MySQL C API. Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere. Denne guide er oprindeligt udgivet på Eksperten.dk MySQL C API Denne artikel beskriver hvordan man bruger MySQL C API. Der er beskrivelse af build med forskellige compilere. Den forudsætter lidt kendskab

Læs mere

Arkitektur for begyndere

Arkitektur 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 mere

9.8 Kildekode. side 88. Pakke Klasse Sidenummer. fortsætter..

9.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 mere

Introduktion til SQL queries

Introduktion til SQL queries Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til SQL queries Denne artikel beskriver nogle forskellige muligheder i SQL queries. Eksemplerne skulle gerne være standard SQL og virke i

Læs mere

Offset til terminalskærm i Java

Offset 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 mere

Den forudsætter kendskab til XML og VB.NET men ikke til brug af XML i VB.NET.

Den 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 mere

Eksempel på en database: studenter, kurser, eksamener

Eksempel 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 mere

Introduktion til ant. Denne artikel beskriver Apache ant, som er et værktøj til at builde Java applikationer med.

Introduktion 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 mere

Løsning af møntproblemet

Løsning af møntproblemet Løsning af møntproblemet Keld Helsgaun RUC, oktober 1999 Antag at tilstandene i problemet (stillingerne) er repræsenteret ved objekter af klassen State. Vi kan da finde en kortest mulig løsning af problemet

Læs mere

SigmaT.

SigmaT. 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 mere

Som sagt kræves der helst lidt viden om OOP hvis man virkelig vil lærer noget, og ikke bare lave copypaste

Som 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 mere

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.

Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen. Indledning...2 Variabler...13 Eksempel: 1...13 Eksempel 2:...13 Eksempel 3:...15 Eksempel 4:...16 Metoder...17 Metode (intet ind og intet ud)...17 Metode (tekst ind)...18 Metode (tekst ind og tekst ud)...19

Læs mere

b) 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.

b) 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 mere

Hvordan vælger jeg dokumentprofilen?

Hvordan 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 mere

Hvad er Objekter - Programmering

Hvad 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 mere

DANMARKS TEKNISKE UNIVERSITET

DANMARKS 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 mere

Videregående programmering i Java

Videregående programmering i Java Videregående programmering i Java Dag 3 Skabende designmønstre Skabende designmønstre: Fabrikeringsmetode/Fabrik, Singleton, Abstrakt fabrik (Toolkit), Prototype, Objektpulje Eksempel: Forskellige slags

Læs mere

Google App Engine. Google App Engine som platform. Claus Myglegaard Vagner og Jacob von Eyben

Google 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 mere

Endnu mere om tilfældige tal

Endnu 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 mere

Java Klasse nedarvninger

Java 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 mere

Forskellige Java versioner

Forskellige 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 mere

Geografisk lokalisering i ASP.NET

Geografisk 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 mere

Database design for begyndere

Database 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 mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2

University 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 mere

A Profile for Safety Critical Java

A 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 mere

Introduction til.net remoting i C#

Introduction 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 mere

Database programmerings tips

Database 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 mere

Hvilket sprog er hurtigst

Hvilket 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 mere

Delphi - CrackMe og Keygen

Delphi - CrackMe og Keygen Denne guide er oprindeligt udgivet på Eksperten.dk Delphi - CrackMe og Keygen Dette er min første artikel! :) Men jeg synes nu den er blevet meget god! :D Jeg giver et et eksempel på hvordan man kan lave

Læs mere

I denne artikel vil vi bruge en User klasse som vi så vil gruppere på forskellige måder.

I 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 mere

Netværk & elektronik

Netvæ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 mere

Løsning af skyline-problemet

Lø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 mere

Eksamens spørgsmål i Java HTML - DataBase 3. Semester (i)

Eksamens 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 mere

Nye features i Java 1.5/5.0

Nye 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 mere

Loginsystem med PHP4, klasser, sessions og MySQL database

Loginsystem med PHP4, klasser, sessions og MySQL database Denne guide er oprindeligt udgivet på Eksperten.dk Loginsystem med PHP4, klasser, sessions og MySQL database Artiklen indeholder et simpelt loginsystem, der benytter en klasse. Den er med vilje simplificeret,

Læs mere

Bits, bit operationer, integers og floating point

Bits, 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 mere

Webserverprogrammering

Webserverprogrammering 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 mere

I mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online.

I mit script tager jeg højde for det problem ved, at gemme et unikt tal mellem 0-9 på 6 cifre og derved vil de så blive vist som 2 online. Denne guide er oprindeligt udgivet på Eksperten.dk Hvem er online? Online script, som tager højde for at der kan være flere personer, som har den samme IP-adresse. Scriptet viser hvor lang tid brugeren

Læs mere

Overblik. Class Loader. Java. Class Libraries. Bytecode. Verifier Java. Source (.java) Just in Time Compiler. Java

Overblik. Class Loader. Java. Class Libraries. Bytecode. Verifier Java. Source (.java) Just in Time Compiler. Java OOP1 Java intro. Klasser, objekter, interfaces, nedarvning, Association, Aggregation og Composition mvh. Try and catch exceptions. Package Intro. til jar filer. Overblik Compile-time Environment Run-time

Læs mere

Bilagsrapport til specialet Flash-light

Bilagsrapport til specialet Flash-light Bilagsrapport til specialet Flash-light Af Filip Nicolaisen og Kasper Storm Afleveret Maj 2006 Vejledere: Mads Rosendahl (Datalogi) Bjørn Laursen (Kommunikation) Indholdsfortegnelse - Bilag Bilag 1. 1

Læs mere

Test med NUnit. Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det.

Test 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 mere

Kursus i OOP og Java. Kursus i Objektorienteret programmering i Java

Kursus 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 mere

Derfor vil jeg bygge dette eksempel på een table hvor der kan tilkyttes personer til ALLE noder og der kan tilføjes et vilkårligt antal niveauer

Derfor vil jeg bygge dette eksempel på een table hvor der kan tilkyttes personer til ALLE noder og der kan tilføjes et vilkårligt antal niveauer Denne guide er oprindeligt udgivet på Eksperten.dk TreeView i Access II Jeg vil i denne anden udgave af treeview føljetonen begynde på et mere brugbart eksempel med et TreeView. Vi laver en ny database

Læs mere

SAX Simple API for XML.

SAX 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 mere

Ratingsystem i PHP og MySQL

Ratingsystem 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 mere

Serialization i Java

Serialization 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 mere

DM502. 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/ 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 mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Delphi og Databaser for begyndere

Delphi og Databaser for begyndere Denne guide er oprindeligt udgivet på Eksperten.dk Delphi og Databaser for begyndere Denne artikel handler om hvordan man udnytter noget af det bedste i Delphi: Dets gode muligheder for integrering med

Læs mere

Introduction til.net remoting i VB.NET

Introduction 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 mere

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk

Database tips. Den forudsætter lidt kendskab til SQL men er for mindre erfarne. Denne guide er oprindeligt udgivet på Eksperten.dk Denne guide er oprindeligt udgivet på Eksperten.dk Database tips Denne artikel vil give nogle forskellige små praktiske råd om ting man skal tænke på når man arbejder med databaser og applikationer som

Læs mere

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:...

Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:... Indholdsfortegnelse Databaser og PHP... 3 Opgave... 4 Opgave... 5 Opgave... 6 Sidste opgave er en lille gæstebog... 7 Kilder og nyttige links:... 9 Nogle HTML tags... 9 Databaser og PHP Når vi snakker

Læs mere

Introduktion til funktioner, moduler og scopes i Python

Introduktion til funktioner, moduler og scopes i Python Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til funktioner, moduler og scopes i Python Denne artikel er fortsættelsen af "I gang med Python", som blevet publiceret her på sitet for

Læs mere

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4

University 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 mere

Kontrol-strukturer i PHP

Kontrol-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 mere

Kursus navn: Indledende programmering Kursus nr. 02101

Kursus navn: Indledende programmering Kursus nr. 02101 Danmarks Tekniske Universitet Side 1 af 8 sider Skriftlig prøve, den 15. december 2007 Kursus navn: Indledende programmering Kursus nr. 02101 Tilladte hjælpemidler: Alle skriftlige hjælpemidler Vægtning

Læs mere

Eksempel: Skat i år 2000

Eksempel: Skat i år 2000 Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)

Læs mere

Hvilket sprog skal jeg lære?

Hvilket sprog skal jeg lære? Denne guide er oprindeligt udgivet på Eksperten.dk Hvilket sprog skal jeg lære? Denne artikel snakker lidt løst og fast om den kendte problem stilling med hvilket sprog man skal lære (generelle programmerings

Læs mere

Dag 10 Flertrådet programmering

Dag 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 mere

Mozilla Firefox (tidligere Firebird): Fremhæve ord

Mozilla Firefox (tidligere Firebird): Fremhæve ord Denne guide er oprindeligt udgivet på Eksperten.dk Mozilla Firefox (tidligere Firebird): Fremhæve ord Du kender sikkert Google Værktøjslinjen til Internet Explorer, ellers har du sikkert hørt om den. I

Læs mere

Uploade billeder eller andre filer ved hjælp af php og mysql

Uploade billeder eller andre filer ved hjælp af php og mysql Denne guide er oprindeligt udgivet på Eksperten.dk Uploade billeder eller andre filer ved hjælp af php og mysql Denne artikel viser hvordan man kan uploade et billede eller en anden fil, og tilknytte det

Læs mere

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1

IBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1 IBM Network Station Manager esuite 1.5 / NSM Integration IBM Network Computer Division tdc - 02/08/99 lotusnsm.prz Page 1 New esuite Settings in NSM The Lotus esuite Workplace administration option is

Læs mere

I denne arktikle går jeg gennem Slet, Ret og Opret data i en MySQL database. der er også en lille del i den hvor den postere datanen ud i en løkke

I denne arktikle går jeg gennem Slet, Ret og Opret data i en MySQL database. der er også en lille del i den hvor den postere datanen ud i en løkke Denne guide er oprindeligt udgivet på Eksperten.dk MySQL for nybegynder I denne arktikle går jeg gennem Slet, Ret og Opret data i en MySQL database. der er også en lille del i den hvor den postere datanen

Læs mere

Tredjepart webservices

Tredjepart 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 mere

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel:

Listen over reserverede ord er meget lang, men de væsentligste vil jeg beskrive her i denne artikel: Denne guide er oprindeligt udgivet på Eksperten.dk SQL og ASP En artikel omkring simpel SQL og hvordan disse opbygges, udformes og udføres, sådan at man kan få et brugbart resultat i ASP. Dette ligefra

Læs mere

.NET 4.5 og C# 5.0. Denne artikel beskriver nogle af de nye features i.net 4.5 og C# 5.0. Den forudsætter et vist kendskab til.net og C#.

.NET 4.5 og C# 5.0. Denne artikel beskriver nogle af de nye features i.net 4.5 og C# 5.0. Den forudsætter et vist kendskab til.net og C#. Denne guide er oprindeligt udgivet på Eksperten.dk.NET 4.5 og C# 5.0 Denne artikel beskriver nogle af de nye features i.net 4.5 og C# 5.0. Den forudsætter et vist kendskab til.net og C#. Skrevet den 11.

Læs mere

Introduktion til NAnt

Introduktion til NAnt Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til NAnt Denne artikel beskriver NAnt, som er et værktøj til at builde.net applikationer med. Den beskriver nogle af de mest brugte NAnt

Læs mere

DM507 Algoritmer og datastrukturer

DM507 Algoritmer og datastrukturer DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således

Læs mere

Introduktion til AOP i C#

Introduktion 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 mere

DM01 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 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 mere

RMI 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 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 mere