



<html>
<head>
  <title>javabog.dk -  - Forord</title>
  <link rev="stylesheet" type="text/css" href="../typografi.css">
  <meta name="description" content="Lærebog i Java. Af Jacob Nordfalk. Udkommet hos Forlaget Globe">
  <meta name="keywords" content="designmønster, programmering, OOP, objekter, klasser, objektorienteret programmering, Java, JSP, lærebog, UML, IT">
</head>
<body bgcolor="#ffffff">



<a href='http://javabog.dk/'>javabog.dk</a>&nbsp;&nbsp;|&nbsp;&nbsp;&lt;&lt; forrige&nbsp;&nbsp;|&nbsp;&nbsp;<a href='indhold.jsp'>indhold</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href='kapitel1.jsp'>n&aelig;ste &gt;&gt;</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href='kode/'>programeksempler</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href='../index_VP.html'>om bogen</a>

<H1 CLASS="western" STYLE="">0 <a name='afsn0'></a>Forord</H1>
<P CLASS="western">Denne bog henvender sig til de, der allerede har
kendskab til Java eller grundl&aelig;ggende objektorienteret
programmering p&aring; et vist niveau, men som &oslash;nsker at vide
mere.</P>
<P CLASS="western">Bogen udspringer af noter fra kurset &quot;Videreg&aring;ende
Programmering&quot;, som jeg begyndte at undervise i i efter&aring;ret
2001 p&aring; IT-Diplomuddannelsen p&aring; Ingeni&oslash;rh&oslash;jskolen
i K&oslash;benhavn. De er senere blevet udbygget under videre
undervisning i kurset.</P>
<H2 CLASS="western">0.1 <a name='afsn0.1'></a>Form&aring;l og indhold</SPAN></H2>
<P CLASS="western">Det, du kan opn&aring; med denne bog, er:</P>
<UL>
  <LI><P CLASS="western">Bedre kendskab til almindeligt anvendte
  datastrukturer/samlinger af data og algoritmer</P>
  <LI><P CLASS="western">At kunne lave komponentbaseret
  udvikling<BR>(afgr&aelig;nsede programdele, der kan genanvendes i
  flere sammenh&aelig;nge)</P>
  <LI><P CLASS="western">At f&aring; kendskab og kunne anvende
  forskellige hyppigt anvendte designm&oslash;nstre (eng.: reusable
  design patterns), s&aring;som Singleton, Adapter, Iterator, Fabrik,
  Proxy, ... osv.</P>
  <LI><P CLASS="western">At f&aring; bedre forst&aring;else for Javas
  standardbibliotek<BR>(hvor designm&oslash;nstrene er vidt anvendte)</P>
  <LI><P CLASS="western">At blive mere rutineret i programmering</P>
  <LI><P CLASS="western">At f&aring; kendskab til forskellige konkrete
  teknologier i Java<BR>(javadoc, introspektion, Swing, Java2D, JNI,
  JDBC, J2SE, J2ME, J2EE, EJB, ... ) osv.</P>
</UL>
<H3 CLASS="western">0.1.1 <a name='afsn0.1.1'></a>Bogens opbygning og indhold</H3>
<P CLASS="western">Bogen best&aring;r af 2 dele. Hver del best&aring;r
af nogle emner, der behandles i hvert sit kapitel. Det er i stor
udstr&aelig;kning muligt at l&aelig;se kapitlerne uafh&aelig;ngigt
af hinanden.</P>
<P CLASS="western"><SPAN STYLE="font-weight: medium">Forrest i hvert
kapitel beskrives foruds&aelig;tningerne for at l&aelig;se kapitlet,
s&aring; her kan du vurdere, om der er et andet kapitel du eventuelt
b&oslash;r se i f&oslash;rst</SPAN>.</P>
<H4 CLASS="western">F&oslash;rste&nbsp;del: Videreg&aring;ende Java</H4>
<P CLASS="western">F&oslash;rste&nbsp;del giver en introduktion til
nogle af de vigtigste teknologier inden for java.</P>
<P CLASS="western"><SPAN STYLE="font-weight: medium"><a href='kapitel1.jsp'>Kapitel 1</a>, Samlinger af data,</SPAN>
beskriver de almindeligt anvendte datastrukturer og algoritmer
(Collections-klasserne - stakke, lister, m&aelig;ngder, afbildninger,
hashtabeller, s&oslash;getr&aelig;er...)</P>
<P CLASS="western" STYLE="font-weight: medium"><a href='kapitel2.jsp'>Kapitel 2</a>, Dokumentation,
beskriver brugen af javadoc, der er standarden for dokumentation af
javakode.</P>
<P CLASS="western"><SPAN STYLE="font-weight: medium"><a href='kapitel3.jsp'>Kapitel 3</a>, Rekursion,
giver en introduktion til rekursive algoritmer (metoder der kalder
sig selv).</SPAN></P>
<P CLASS="western" STYLE="font-weight: medium"><a href='kapitel4.jsp'>Kapitel 4</a>, Komponentbaseret programmering,
handler om javab&oslash;nner (eng.: JavaBeans) som er genbrugelige
programkomponenter som kan manipuleres visuelt i et
udviklingsv&aelig;rkt&oslash;j.</P>
<P CLASS="western"><SPAN STYLE="font-weight: medium"><a href='kapitel5.jsp'>Kapitel 5</a>, Grafiktegning (Java2D),</SPAN>
giver en introduktion til den avancerede 2D-grafik i Java.</P>
<P CLASS="western"><SPAN STYLE="font-weight: medium"><a href='kapitel6.jsp'>Kapitel 6</a>, Grafiske brugergr&aelig;nseflader (Swing),
behandler nogle af de mere avancerede aspekter af brugergr&aelig;nseflader
og Swing, bl.a. <SPAN LANG="da-DK">JTable</SPAN> og
Model-View-Controller-arkitekturen brugt i Swing.</SPAN></P>
<P CLASS="western" STYLE="font-weight: medium"><a href='kapitel7.jsp'>Kapitel 7</a>, Internationalisering,
diskuterer, hvordan man f&aring;r sine programmer til at kunne k&oslash;re
p&aring; flere sprog.</P>
<P CLASS="western"><SPAN STYLE="font-weight: medium"><a href='kapitel8.jsp'>Kapitel 8</a>, Databaser (JDBC),
uddyber JDBC og databaser, bl.a. m.h.t. optimering og metadata</SPAN>.</P>
<P CLASS="western" STYLE="font-weight: medium"><a href='kapitel9.jsp'>Kapitel 9</a>, Optimering,
giver en r&aelig;kke r&aring;d og vejledning i, hvordan man kan
optimere sit javaprogram, s&aring; det k&oslash;rer hurtigere.</P>
<P CLASS="western" STYLE="font-weight: medium"><a href='kapitel10.jsp'>Kapitel 10</a>, Eksterne kald og JNI,
beskriver, hvordan man kalder eksterne programmer, og hvordan man
bruger JNI (Java Native Interface) til at kalde f.eks. C- eller
C++-kode fra Java.</P>
<P CLASS="western"><SPAN STYLE="font-weight: medium"><a href='kapitel11.jsp'>Kapitel 11</a>, Introspektion,
beskriver, hvordan man unders&oslash;ger et vilk&aring;rligt objekts
variabler og metoder under k&oslash;rslen (ogs&aring; kaldet
reflection), og hvordan man l&oslash;bende kan generere nye klasser
og indl&aelig;se dem under k&oslash;rslen.</SPAN></P>
<P CLASS="western" STYLE="font-weight: medium"><a href='kapitel12.jsp'>Kapitel 12</a>, Standardbiblioteket (J2SE),
giver et overblik over hele standardbiblioteket (kaldet J2SE - Java 2
Standard Edition).</P>
<P CLASS="western" STYLE="font-weight: medium"><a href='kapitel13.jsp'>Kapitel 13</a>, Mobiltelefoner (J2ME),
beskriver, hvordan man programmerer til J2ME (Java 2 Micro Edition)
og midletter til sm&aring;, indlejrede systemer (bl.a.
mobiltelefoner).</P>
<P CLASS="western"><SPAN STYLE="font-weight: medium"><a href='kapitel14.jsp'>Kapitel 14</a>, Servere (J2EE &amp; EJB),
beskriver J2EE (Java 2 Enterprise Edition), der er beregnet til
st&oslash;rre </SPAN><SPAN LANG="da-DK">serversystemer</SPAN> og
<SPAN LANG="da-DK">webservere.</SPAN></P>

<H4 CLASS="western">Anden del: Videreg&aring;ende objektorienteret programmering
</H4>
<P CLASS="western">Anden del beskriver en r&aelig;kke af de mest
anvendte designm&oslash;nstre og strategier for, hvordan man skal
designe sit program.</P>
<P CLASS="western" STYLE="font-weight: medium"><a href='kapitel15.jsp'>Kapitel 15</a>, Videreg&aring;ende OOP,
diskuterer nogle af de begreber og tankegange, der g&oslash;r sig
g&aelig;ldende inden for objektorienteret programmering, og
introducerer designm&oslash;nstre.</P>
<P CLASS="western"><SPAN STYLE="font-weight: medium"><a href='kapitel16.jsp'>Kapitel 16</a>, Skabende designm&oslash;nstre,
beskriver designm&oslash;nstre til at mindske bindingen mel</SPAN>lem
den del af programmet som bruger nogle objekter, og den del af
programmet, der bestemmer, hvordan disse objekter
oprettes/fremskaffes.  <BR>Abstrakt Fabrik, Fabrik,  Singleton,
Bygmester,  Prototype og <SPAN LANG="da-DK">Objektpulje</SPAN>
gennemg&aring;s.</P>
<P CLASS="western" STYLE="font-weight: medium"><a href='kapitel17.jsp'>Kapitel 17</a>, Hyppigt anvendte designm&oslash;nstre,
beskriver de designm&oslash;nstre, der ofte ses anvendt i i
standardbiblioteket og i lidt st&oslash;rre programmer.<BR>Proxy, 
Adapter, Iterator, Facade, Observat&oslash;r/Lytter og Dynamisk
Binding gennemg&aring;s.</P>
<P CLASS="western" STYLE="font-weight: medium"><a href='kapitel18.jsp'>Kapitel 18</a>, Andre designm&oslash;nstre,
beskriver nogle lidt mere eksotiske designm&oslash;nstre, der
sj&aelig;ldnere ses anvendt, men som er velegnede i visse
situationer.<BR>Uforanderlig, Fluev&aelig;gt, Filter, Lagdelt
Initialisering, Komposit/Rekursiv komposition og Kommando gennemg&aring;s.</P>
<P CLASS="western"><SPAN STYLE="font-weight: medium"><a href='kapitel19.jsp'>Kapitel 19</a>, Model-View-Controller-arkitekturen,</SPAN>
beskriver, hvordan man kan opdele programmer med en brugergr&aelig;nseflade
i en model, en pr&aelig;sentation og en kontrol-del.</P>

<H2 CLASS="western" STYLE="">0.2 <a name='afsn0.2'></a>Foruds&aelig;tninger
for at l&aelig;se bogen</SPAN></H2>
<P CLASS="western">For at f&aring; fuld nytte af hele bogen skal du
p&aring; forh&aring;nd have kendskab til nogle emner, som er kendte
fra grundkurser i Java og objektorienteret programmering:</P>
<UL>
  <LI><P CLASS="western">Vector-klassen og andre almindeligt kendte
  objekter</P>
  <LI><P CLASS="western">Arv og polymorfi</P>
</UL>
<UL>
  <LI><P CLASS="western">Indkapsling (public/private)</P>
</UL>
<UL>
  <LI><P CLASS="western">Lokale variabler, objektvariabler og
  klassevariabler og deres virkefelt (eng.: scope)</P>
  <LI><P CLASS="western">H&aelig;ndelser i grafiske brugergr&aelig;nseflader</P>
  <LI><P CLASS="western">Programmering af grafiske brugergr&aelig;nseflader
  p&aring; et basalt niveau</P>
</UL>
<P CLASS="western">Hvis du er usikker i et eller flere af emnerne,
kan du l&aelig;se om dem p&aring; <SPAN STYLE="font-weight: medium"><A CLASS="western" HREF="http://javabog.dk/">http://<SPAN LANG="da-DK">javabog.dk</SPAN></A></SPAN><SPAN LANG="da-DK">.</SPAN></P>
<H3 CLASS="western">0.2.1 <a name='afsn0.2.1'></a>UML: Klassediagrammer</H3>
<P CLASS="western">Klassediagrammer foruds&aelig;ttes kendt. Vigtige
relationer mellem klasser er <SPAN STYLE="font-weight: medium"><I>har</I></SPAN>-relationen
og <I>er-en</I>-relationen. Eksempel (et <SPAN LANG="da-DK">matadorspil</SPAN>):</P>
<P CLASS="western"><IMG SRC="bog1_html_m1c572219.gif" NAME="Objekt24" ALIGN=MIDDLE></P>
<P CLASS="western">Rederi og Gade <I>har</I><SPAN STYLE="font-style: normal">
en Sp</SPAN>iller.</P>
<P CLASS="western">Helle, Start, Rederi og Gade <SPAN STYLE="font-weight: medium"><I>er-et</I></SPAN>
Felt.</P>
<H4 CLASS="western" STYLE="">Har-relationen</H4>
<P CLASS="western">At X <I>har</I> Y betyder: i klassen X er
defineret en variabel af type Y. Et X-objekt har derfor en reference
til et Y-objekt, og derfor har X-objektet mulighed for at kalde
metoder og bruge variabler fra Y-objektet gennem denne reference.
Y-objekter kender ikke n&oslash;dvendigvis noget til X-objekters
eksistens.</P>
<P CLASS="western"><IMG SRC="bog1_html_259b61a3.gif" NAME="Grafik39" ALIGN=RIGHT BORDER=0>Eksempel
(det v&aelig;sentlige i fed):</P>
<PRE CLASS="ikke-javakode-western">public class X
{
  private <B>Y <SPAN LANG="da-DK">yobj</SPAN></B> = new Y();
  ...
}</PRE>

<H4 CLASS="western"><IMG SRC="bog1_html_6ffe5690.gif" NAME="Grafik68" ALIGN=RIGHT BORDER=0>Er-en-relationen</H4>
<P CLASS="western">At X <I>er-en</I> Y betyder: i klassen X er
defineret, at X arver fra klassen Y. Et X-objekt indeholder derfor
(mindst) alle de metoder og variabler, som et Y-objekt indeholder.</P>
<P CLASS="western">Eksempel:</P>
<PRE CLASS="ikke-javakode-western">public class X <B>extends Y</B>
{
  ...
}</PRE><P CLASS="western">
Det er ogs&aring; en er-en-relation, n&aring;r man implementerer et
interface.</P>


<H2 CLASS="western">0.3 <a name='afsn0.3'></a>Netudgaven af bogen</SPAN></H2>
<P CLASS="western">St&oslash;rstedelen af bogen (opgaver og
avancerede emner er sk&aring;ret v&aelig;k) findes ogs&aring; p&aring;
adressen <SPAN STYLE="font-weight: medium"><A CLASS="western" HREF="http://javabog.dk/VP">http://javabog.dk/VP</A></SPAN>,
der frit kan bruges af enhver.</P>
<P CLASS="western">Her kan du ogs&aring; hente:</P>
<UL>
  <LI><P CLASS="western">Programeksemplerne fra bogen
  (<SPAN STYLE="font-weight: medium"><A CLASS="western" HREF="http://javabog.dk/VP/kode">http://javabog.dk/VP/kode</A></SPAN>)</P>
  <LI><P CLASS="western">Undervisningsmateriale, s&aring;som
  lektionsplaner, ugesedler, opgaver og transparenter</P>
  <LI><P CLASS="western">Foredrag om udvalgte kapitler (som lydfiler)</P>
  <LI><P CLASS="western">Rettelser og tilf&oslash;jelser til bogen</P>
</UL>
<P CLASS="western">Netudgaven, dvs. alt hvad der kan findes p&aring; 
<SPAN STYLE="font-weight: medium"><A CLASS="western" HREF="http://javabog.dk/VP">http://javabog.dk/VP</A></SPAN>,
er frigivet under &Aring;ben Dokumentlicens (&Aring;DL). Det betyder
at du kan udskrive og kopiere netudgaven, som du lyster.</P>
<P CLASS="western">Den pr&aelig;cise ordlyd af &Aring;ben
Dokumentlicens kan l&aelig;ses p&aring; n&aelig;ste side. 
</P>
<P CLASS="western">I netudgaven er avancerede afsnit, l&oslash;sninger
p&aring; opgaver samt k<SPAN STYLE="font-weight: medium">apitel 14,
Servere (J2EE &amp; EJB), og <a href='kapitel18.jsp'>kapitel 18</a>, Andre designm&oslash;nstre,</SPAN>
sk&aring;ret v&aelig;k.</P>

<P CLASS="western">Bidrag og rettelser til bogen og hjemmesiden er
meget velkomne. Send dem til: nordfalk@mobilixnet.dk</P>
<H2 CLASS="western" STYLE="">0.4 <a name='afsn0.4'></a>&Aring;ben
Dokumentlicens (&Aring;DL)</SPAN></H2>
<P CLASS="western" ALIGN=CENTER><IMG SRC="bog1_html_18b0f25c.png" NAME="Grafik3" ALIGN=BOTTOM BORDER=0></P>
<H4 CLASS="western" STYLE="margin-bottom: 0.5cm">Version 1.0 (25.
januar 2002)</H4>
<HR>
<H4 CLASS="western">1. Kopiering og distribution af v&aelig;rket i
u&aelig;ndret form</H4>
<P CLASS="western">Du m&aring; frit kopiere dette v&aelig;rk u&aelig;ndret
og distribuere det p&aring; ethvert medium, forudsat at du sammen med
hver kopi bibeholder denne licens og en henvisning til v&aelig;rkets
kilde. 
</P>
<P CLASS="western">Du kan v&aelig;lge at kr&aelig;ve penge for
kopiering og distribution af indholdet, for undervisning i indholdet,
for <SPAN LANG="da-DK">brugerst&oslash;tte</SPAN> og garantier i
forbindelse med indholdet. Hvis du videregiver v&aelig;rket til
andre, har du pligt til at se til, at du selv eller andre giver
modtageren gratis adgang i minimum 3 &aring;r til en elektronisk
udgave af indholdet - i et &aring;bent <SPAN LANG="da-DK">redig&eacute;rbart</SPAN>
format - for eksempel via <SPAN LANG="da-DK">internettet</SPAN>, og
at der i hvert eksemplar tydeligt angives, hvordan man kan f&aring;
den elektroniske udgave. 
</P>
<H4 CLASS="western">2. &AElig;ndring af indholdet</H4>
<P CLASS="western">Du m&aring; gerne &aelig;ndre i dette v&aelig;rk
eller dele af det (og dermed lave et nyt v&aelig;rk <SPAN LANG="da-DK">baseret</SPAN>
p&aring; dette v&aelig;rk) og distribuere det som n&aelig;vnt
ovenfor, forudsat at du opfylder alle f&oslash;lgende krav: 
</P>
<OL TYPE=a>
  <LI><P CLASS="western" STYLE="margin-bottom: 0cm">Du skal s&oslash;rge
  for, at det nye v&aelig;rk indeholder en tydelig anm&aelig;rkning
  om, at du &aelig;ndrede det, hvad du &aelig;ndrede og datoen for
  &aelig;ndringerne. 
  </P>
  <LI><P CLASS="western">Det skal v&aelig;re omfattet af samme
  rettigheder og betingelser (&quot;licens&quot;) som det oprindelige
  v&aelig;rk. 
  </P>
</OL>
<P CLASS="western">Alternativt kan det nye v&aelig;rk b&aelig;re en
anden licens eller almindelig ophavsretlig beskyttelse, forudsat at
samtlige dele, der oprindeligt stammer fra dette v&aelig;rk, tydeligt
er markeret (<SPAN LANG="da-DK">f.eks.</SPAN> i sidefoden p&aring;
hver side) som v&aelig;rende under denne licens, og at licensen
f&oslash;lges for disse dele af v&aelig;rket, herunder at der gives
gratis elektronisk adgang som n&aelig;vnt under afsnittet om
kopiering og distribution. 
</P>
<H4 CLASS="western">3. Pligter</H4>
<P CLASS="western">Enhver anvendelse, kopiering eller distribuering
betragtes som en accept af denne licens og dens betingelser. Ved
overtr&aelig;delse af licensbetingelserne, vil almindelig
ophavsretlig beskyttelse v&aelig;re g&aelig;ldende for hele v&aelig;rket
og vil dermed g&oslash;re person eller personer <SPAN LANG="da-DK">erstatningspligtige</SPAN>
for enhver uautoriseret anvendelse. 
</P>
<H4 CLASS="western">4. Garanti</H4>
<P CLASS="western" STYLE="border-top: none; border-bottom: 1px solid #000000; border-left: none; border-right: none; padding-top: 0cm; padding-bottom: 0.07cm; padding-left: 0cm; padding-right: 0cm">
Indholdet leveres &quot;som det er&quot;, uden nogen form for garanti
for k&oslash;bs-, brugs- eller nyttev&aelig;rdi, medmindre der er
givet en s&aelig;rskilt skriftlig garanti herom. 
</P>

<P CLASS="western">Denne bog er under &Aring;DL, med undtagelse af
avancerede afsnit, l&oslash;sninger p&aring; opgaver samt k<SPAN STYLE="font-weight: medium">apitel
14, Servere (J2EE &amp; EJB), og <a href='kapitel18.jsp'>kapitel 18</a>, Andre designm&oslash;nstre</SPAN>.
Disse dele er under almindelig ophavsretlig beskyttelse.</P>
<H2 CLASS="western">0.5 <a name='afsn0.5'></a>Tak</SPAN></H2>
<P CLASS="western">F&oslash;rst og fremmest en speciel tak til Tina
Modvig Frederiksen, f&oslash;rst kursist i faget Videreg&aring;ende
Programmering, senere <SPAN LANG="da-DK">medunderviser</SPAN> i det.
Hun er kommet med mange vigtige bidrag til bogen, bl.a. <a href='kapitel15.jsp#afsn15.6'>afsnit 15.6</a>,
Ansvarsomr&aring;der, og en meget stor del af <a href='kapitel13.jsp'>kapitel 13</a>, Mobiltelefoner (J2ME).</P>
<P CLASS="western">Tak til Troels Nordfalk og de mange andre
kursister, der gennem tiden har p&aring;peget fejl og mangler i
noterne, bl.a. Kenn Thisted, Florin-Gabriel <SPAN LANG="da-DK">Badea</SPAN>,
Jon <SPAN LANG="da-DK">Axelsson</SPAN>, Anita Mygind og Jan
Christiansen.</P>
<P CLASS="western">Sidst men ikke mindst - tak til Linux-samfundet
for at lave et styresystem, der styrer!</P>
<P CLASS="western">Denne bog er skrevet med <SPAN LANG="da-DK">OpenOffice.org</SPAN>
under Mandrake Linux. Begge er projekter med &aring;ben kildekode
(Open Source) og kan gratis hentes p&aring; henholdsvis
<SPAN LANG="da-DK">www.openoffice.org</SPAN> og
<SPAN LANG="da-DK">www.linux</SPAN>-<SPAN LANG="da-DK">mandrake.com.</SPAN></P>

<P CLASS="western"><I><SPAN LANG="da-DK">Bonan</SPAN> <SPAN LANG="da-DK">plezuron</SPAN>
<SPAN LANG="da-DK">legi</SPAN> la <SPAN LANG="da-DK">libron</SPAN>!<BR></I>(det
er esperanto og betyder &quot;god forn&oslash;jelse med at l&aelig;se
bogen&quot;)</P>

<P CLASS="western">Jacob Nordfalk</P>
<P CLASS="western">Valby, maj 2003.</P>
















<P ALIGN=CENTER STYLE="margin-top: 0.42cm; margin-bottom: 0.3cm; page-break-after: avoid">
<FONT FACE="Avant Garde, sans-serif"><FONT SIZE=7><B>F&oslash;rste&nbsp;del:
Videreg&aring;ende Java</B></FONT></FONT></P>



<a href='http://javabog.dk/'>javabog.dk</a>&nbsp;&nbsp;|&nbsp;&nbsp;&lt;&lt; forrige&nbsp;&nbsp;|&nbsp;&nbsp;<a href='indhold.jsp'>indhold</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href='kapitel1.jsp'>n&aelig;ste &gt;&gt;</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href='kode/'>programeksempler</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href='../index_VP.html'>om bogen</a>
<hr>
<font size=-2>http://javabog.dk/ - <b></b> af Jacob Nordfalk.
<br>
  Licens og kopiering under <a href='http://www.linuxbog.dk/licens.html'>&Aring;ben Dokumentlicens</a> (&Aring;DL)
  hvor intet andet er nævnt (71% af værket).
</font>
<br>
Ønsker du at se de sidste 29% af dette værk (362838 tegn)
skal du købe bogen. Så får du pæne figurer og layout, stikordsregister og en trykt bog med i købet.
<!-- netlæser: Wget/1.10, autoHent: true  -->
     

</body>
</html>
