[Etusivu] Java-ohjelmointi Mika Vesterholm
Jorma Kyppö
Java-ohjelmointi
Sisällys
Cd-rom
Uudistukset
Linkkejä

Osta
Talentumshop.fi

Aiemmat painokset
7. painos
6. painos
5. painos
4. & 3. painos
2. painos
1. painos

Sisällys

[Kansikuva]
1 Johdanto Javaan
1.1 Taustaa
1.2 JavaScript ja Ajax
1.3 Java ja C/C++
1.4 Javan ominaisuuksia pähkinänkuoressa
1.5 Javan kehittyminen
2 Ohjelmoinnin historiasta
2.1 Ohjelmointikielten historiasta
2.2 Oliokielten historiasta
3 Ensimmäiset ohjelmat
3.1 Ohjelman kirjoittaminen ja kääntäminen
3.2 Ensimmäinen sovellus
3.2.1 Ohjelmakoodin kirjoittaminen
3.2.2 Koodin rakenne
3.2.3 Välikielelle kääntäminen
3.2.4 Sovelluksen ajaminen
3.3 Työskentely Eclipsellä
3.3.1 Eclipseen tutustuminen
3.3.2 Ensimmäinen projekti
3.3.3 Sovellus Eclipsellä
3.4 Tehtäviä
4 Olioperustainen ohjelman kehittäminen
4.1 Johdatus olioperustaiseen ohjelman kehittämiseen
4.2 Esitutkimus
4.3 Vaatimusanalyysi
4.3.1 Käyttötapaukset
4.3.2 Luokkien ja attribuuttien tunnistaminen
4.3.3 Tietohakemisto
4.3.4 Assosiaatiot
4.3.5 Luokkakaavio
4.4 Järjestelmäsuunnittelu
4.4.1 Arkkitehtuuri
4.4.2 Suunnittelumallit
4.5 Oliosuunnittelu
4.5.1 Luokkien toimintojen määrittäminen
4.5.2 Assosiaatioiden tarkastelu ja suunnittelu
4.5.3 Luokkakaavion viimeistely
4.5.4 Algoritmien suunnittelu
4.6 Toteutuksen kautta ylläpitoon
4.6.1 Toteutus ja testaus
4.6.2 Käyttöönotto ja ylläpito
4.7 Tehtäviä
5 Luokat ja oliot
5.1 Olio-ohjelmoinnin peruskäsitteitä
5.2 Luokkien määrittely
5.3 Tunnukset ja Javan avainsanat
5.4 Muuttujat ja attribuutit
5.4.1 Muuttujien määrittely ja tietotyypit
5.4.2 Muuttujien arvojen tulostaminen
5.4.3 Muotoiltu tulostus
5.4.4 Tyyppimuunnokset primitiivityyppien välillä
5.4.5 Literaalit ja lukujärjestelmät
5.4.6 Muunnokset lukujärjestelmien välillä
5.4.7 Attribuuttien määrittely
5.4.8 Operaattorit
5.4.9 Käyttäjän kanssa keskusteleva ohjelma
5.5 Metodit
5.5.1 Metodien määrittely
5.5.2 Metodien kutsuminen
5.5.3 Metodien kuormittaminen
5.6 Olioiden elinkaari
5.6.1 Olioiden luonti
5.6.2 Olion tilan alustaminen
5.6.3 Olioihin viittaavat muuttujat
5.6.4 Olion metodien kutsuminen
5.6.5 Olioiden tuhoaminen
5.6.6 Muistinhallinta
5.7 Koodin muotoilusta
5.8 Luokkakaavion luokan toteuttaminen
5.9 Tehtäviä
6 Kontrollirakenteet
6.1 Logiikkaa ja ehtolausekkeita
6.1.1 Yhtäsuuruusoperaattorit
6.1.2 Vertailuoperaattorit
6.1.3 Loogiset operaattorit
6.2 Valintalauseet
6.2.1 if-lauseet
6.2.2 Ehto-operaattori
6.2.3 switch-lause
6.3 Toistolauseet
6.3.1 while
6.3.2 do-while
6.3.3 for
6.3.4 Parannettu for-silmukka
6.3.5 Yleisiä virheitä
6.4 Hyppylauseet
6.4.1 return-lause
6.4.2 break-lause
6.4.3 continue-lause
6.5 Tehtäviä
7 Merkit ja merkkijonot
7.1 Merkit ja merkistöt
7.2 Merkkijonot ja String-luokka
7.3 Merkkien ja merkkijonojen käsittely
7.3.1 Character-luokka
7.3.2 StringBuilder ja StringBuffer
7.3.3 StringTokenizer
7.4 Merkkijonojen muuntaminen primitiivityypeiksi
7.5 Säännölliset lausekkeet
7.5.1 Merkkijoukot ja toisto
7.5.2 Javan regexp API
7.5.3 Rajahahmot ja tunnistajan ahneus
7.6 Tehtäviä
8 Taulukot
8.1 Taulukkoon viittaavat muuttujat ja taulukon luonti
8.2 Taulukon alkioon viittaaminen
8.3 Taulukko metodin parametrina
8.4 Taulukon sisällön kopiointi toiseen taulukkoon
8.5 2-ulotteiset taulukot
8.6 Vaihteleva määrä metodin parametreja
8.7 Esimerkki: ajat järjestyksessä
8.8 Tehtäviä
9 Javan perusteet
9.1 Luokkakohtaiset piirteet
9.1.1 Vakioarvot ja vakiomuuttujat
9.1.2 Tehdasmetodit ja ainokaiset
9.2 Pakkaukset ja luokkien tuonti
9.3 Luokkakohtaisten piirteiden tuonti
9.4 Kääreluokat ja primitiivityyppien automaattinen käärintä
9.5 Liittymät
9.6 Periytyminen
9.6.1 Abstraktit luokat
9.6.2 Dynaaminen sidonta ja monimuotoisuus
9.6.3 Rakentajien kutsuminen
9.6.4 Luokan muiden rakentajien kutsuminen
9.6.5 this ja super
9.6.6 Object-luokan metodit
9.7 Tyyppimuunnokset ja olion tyypin tutkiminen
9.8 Geneeriset tyypit
9.8.1 Geneeristen tyyppien määrittely
9.8.2 Geneeristen tyyppien alityypitys ja jokerityyppi
9.8.3 Uuden ja vanhan koodin yhteiskäyttö
9.9 Sisäluokat
9.10 Lueteltu tietotyyppi
9.11 Rekursio
9.12 Metaluokka Class
9.13 Sivuhuomautukset
9.14 Tehtäviä
10 Kokoelmat - olioiden säilyttäjät
10.1 Tiedon lajittelu
10.1.1 Kuplalajittelu
10.1.2 Valintalajittelu
10.1.3 Lisäyslajittelu
10.1.4 Lomituslajittelu
10.1.5 Pikalajittelu
10.2 Tiedon haku
10.3 Algoritmien vaativuus
10.4 Yleisiä tietorakenteita
10.5 Kokoelmat ja olioiden vertailu
10.5.1 Object.equals
10.5.2 Object.hashCode
10.5.3 Comparable
10.5.4 Comparator
10.6 Kokoelmakehys
10.7 Yleinen kokoelma - Collection
10.8 Iteraattori - Iterator
10.9 Joukot - HashSet ja TreeSet
10.10 Javan listarakenteet - ArrayList ja LinkedList
10.11 Avainnetut kokoelmat - HashMap ja TreeMap
10.12 Yhteenveto kokoelmista
10.13 Kokoelmakehyksen algoritmit
10.14 Luokkakaavion viittausten toteuttaminen
10.15 Ohjelman suorituskyvyn parantaminen
10.15.1 Pullonkaulojen tunnistaminen
10.15.2 Yleisiä ohjeita
10.15.3 Turhien olioiden välttäminen
10.15.4 Merkkijonojen käsittely
10.15.5 Vältä muistin turhaa varaamista
10.15.6 Välimuistit ja resurssivarannot
10.16 Tehtäviä
11 Kun jokin menee kuitenkin pieleen - poikkeukset
11.1 Erilaisia poikkeuksia
11.2 Poikkeuksen aiheuttajan paikallistaminen
11.3 Poikkeustilanteen käsittely - try, catch ja finally
11.4 Käsiteltävät poikkeukset
11.5 Omat poikkeukset ja poikkeuksen aiheuttaminen
11.6 Ohjeita poikkeusten käyttämiseen
11.7 Tehtäviä
12 Testaus ja virheiden etsintä
12.1 Käännösaikaiset virheet
12.2 Ajonaikaiset ja loogiset virheet - bugit
12.3 Virheiden etsintää testaamalla
12.4 Ohjelman virheiden korjaaminen
12.5 Assert ja sopimuspohjainen suunnittelu
12.6 Tehtäviä
13 Mistä apua?
13.1 JDK:n dokumentaatio
13.2 Omien luokkien dokumentointi
13.3 Tehtäviä
14 Graafiset käyttöliittymät
14.1 Tapahtumapohjainen ohjelmointi
14.2 Swingin komponentit
14.3 Ensimmäinen ohjelma
14.4 Tapahtumien käsittely
14.5 Säiliöt ja asettelijat
14.5.1 FlowLayout
14.5.2 BorderLayout
14.5.3 GridLayout
14.5.4 GridBagLayout
14.5.5 BoxLayout
14.6 Muut komponentit
14.6.1 Ikkuna
14.6.2 Viestiruudut
14.6.3 Tekstikomponentit
14.6.4 Painikkeet ja napit
14.6.5 Luettelo- ja yhdistelmäruutu
14.6.6 Puukomponentti JTree
14.6.7 Taulukkokomponentti JTable
14.7 Valikot ja välinepalkki
14.7.1 Valikkopalkki JMenuBar
14.7.2 Ponnahdusvalikko JPopupMenu
14.7.3 Välinepalkki JToolBar
14.7.4 Komponenttien yhdistetyt toimet
14.8 Näytölle piirtäminen
14.8.1 Komponentin piirtämisen pelisäännöt
14.8.2 Piirtämisen perusteet
14.8.3 Java 2D API
14.8.4 Tekstin piirtäminen
14.8.5 Kuvien piirtäminen
14.8.6 Animointi
14.9 Tehtäviä
15 Käyttöliittymän ohjelmointi Eclipsellä
15.1 Ohjelman perustukset
15.2 Komponenttien lisäys käyttöliittymään
15.3 Komponenttien ominaisuuksien muuttaminen
15.4 Asettelijoiden muuttaminen
15.5 Tapahtumien käsitteleminen
15.6 Oma dialogi
15.7 Tehtäviä
16 Sovelmat
16.1 JApplet-luokka
16.2 Sovelman tekeminen
16.3 Kuvat ja äänet
16.4 Sovelma sovelluksena
16.5 Luokkien paketointi
17 Ohjelman kansainvälistäminen
17.1 Kielen ja maan määrittely
17.2 Merkkijonojen eristäminen
17.3 Tulostuksen muotoilu
17.4 Merkkijonojen vertailu
17.5 Esimerkki: Lintubongari
17.6 Tehtäviä
18 JavaBeans
18.1 Ominaisuudet
18.2 Tapahtumat
18.3 Pavun paketointi ja käyttö Eclipsessä
18.4 Tehtäviä
19 Tehtävien samanaikainen suorittaminen - säikeet
19.1 Johdatus rinnakkaisuuteen
19.2 Prosessit ja säikeet
19.3 Säikeiden suorituksen hallinta
19.4 Tehtävien ajastaminen
19.5 Kommunikointi
19.6 Toiminnan tahdistaminen
19.7 Rinnakkaisuuden sudenkuopat
19.8 Swing ja säikeet
19.9 Tehtäviä
20 Tiedostot ja tietovirrat
20.1 Tietovirtaan kirjoittaminen
20.2 Tiedostosta lukeminen
20.3 Muita tietovirtoja
20.4 Olioiden tallentaminen ja lukeminen
20.5 Tiedostojen käsittelyä
20.6 Tehtäviä
21 Tietoliikenne verkossa
21.1 Johdatus tietoliikenteeseen
21.2 Tietoliikenne HTTP-protokollaa käyttäen
21.3 Asiakas ja palvelin
21.4 Rupattelusovellus
21.5 Tehtäviä
22 Järjestelmäohjelmointi
22.1 Sovelluksen parametrit
22.2 Sovelman parametrit
22.3 System ja Runtime
22.4 Tehtäviä
23 Tietokantojen käyttö
23.1 Johdatus tietokantoihin
23.2 JDBC - yhteys tietokantaan Javalla
23.3 Johdatus SQL-kieleen
23.4 Java DB
23.5 Tietokantayhteyden muodostaminen
23.6 Tietokannan tietojen muuttaminen
23.7 Tietojen hakeminen kannasta
23.8 Valmistellut kyselyt
23.9 SQL ja sovelluksen tietoturva
23.10 Tapahtumat
23.11 Taulujen väliset liitokset
23.12 Java Persistence API
23.12.1 Sovelluksen arkkitehtuuri
23.12.2 Entiteettiolioiden suhde tietokantaan
23.12.3 Optimistinen lukitus
23.12.4 Olioiden etsiminen kyselyin
23.12.5 Suhteet
23.13 Tehtäviä
24 Verkkopalvelut
24.1 Johdatus HTTP-protokollaan
24.2 Javan Web-sovelluksen rakenne
24.3 Johdatus palvelinsovelmiin
24.4 Ensimmäinen palvelinsovelma
24.5 Pyynnön otsikon tiedot
24.6 POST-viestin käsittely ja parametrit
24.7 Evästeet
24.8 Istunnot
24.9 Tietokannan käyttö palvelinsovelmassa
24.10 Johdatus JSP-teknologiaan
24.11 Yksinkertainen JSP-sivu
24.12 Sivua koskevat attribuutit
24.13 Sivulla käytössä olevat oliot
24.14 Sivujen sisällyttäminen
24.15 Olioiden käyttäminen sivuilla
24.16 Olioiden arvojen tulostus ja automaattinen asettaminen
24.17 Virheiden käsittely
24.18 JavaServer Faces
24.19 Tehtäviä
25 Java Enterprise Edition
25.1 Enterprise JavaBeans
25.1.1 Session Beans
25.1.2 Message Driven Beans
25.1.3 Ajoympäristön palvelut
25.2 Web Services - Www-sovelluspalvelut
25.2.1 Www-sovelluspalvelujen standardit
25.2.2 Www-sovelluspalvelun toteuttaminen
25.2.3 Www-sovelluspalvelun käyttäminen
26 Viimeinen luku
26.1 Javan juuret
26.2 Java ja C#
26.3 Javan tulevaisuus
26.4 Loppulause
Liite 1: Eclipsen asentaminen
Liite 2: UML Yhdellä sivulla
Liite 3: Yleisiä virheitä