Ensimmäinen painos julkaistu nimellä Java-ohjelmointi Pro Training



Samankaltaiset tiedostot
Ensimmäinen painos julkaistu nimellä Java-ohjelmointi Pro Training

asuntoosakeyhtiölaki Jyrki Jauhiainen Timo A. Järvinen Tapio Nevala

Ensimmäinen painos julkaistu nimellä Java-ohjelmointi Pro Training

Jussi Tapani & Matti Tolvanen. RIKOSOIKEUS Rangaistuksen määrääminen ja täytäntöönpano

Tilinpäättäjän käsikirja

osakeyhtiö- laki II Manne Airaksinen Pekka Pulkkinen Vesa Rasinaho

Perhe- varallisuus- oikeus. Aulis Aarnio Urpo Kangas

TEKIJÄNOIKEUS. Kristiina Harenko Valtteri Niiranen Pekka Tarkela

TILINPÄÄTTÄJÄN KÄSIKIRJA

Janne Kaisto Tapani Lohi JOHDATUS VARALLISUUSOIKEUTEEN

Jukka Pellinen KUSTANNUSLASKENTA JA KANNATTAVUUSAJATTELU

YRITYSTALOUTTA ESIMIEHILLE

KIINTEISTÖJEN JA HUONEISTO-OSAKKEIDEN VEROTUS. Timo Räbinä Janne Myllymäki

HENKILÖYHTIÖT JA OSAKEYHTIÖ

19/20: Ikkuna olio-ohjelmoinnin maailmaan

Timo Kaisanlahti Jarmo Leppiniemi RATKAISUJA TILINPÄÄTTÄJÄN ONGELMIIN

Virpi Hämäläinen, Hanna Maula, Kimmo Suominen DIGIAJAN STRATEGIA

maakaaren järjestelmä I

TYÖSOPIMUSLAKI KÄYTÄNNÖSSÄ

NÄIN TEEN PERUKIRJAN. Pertti Puronen

Ohjelmointi 1 / syksy /20: IDE

Ensimmäinen painos julkaistu nimellä Java-ohjelmointi Pro Training

Oikeudenkäynnin perusteet, periaatteet ja instituutiot

Mauri Saarinen TYÖSUHTEEN PELISÄÄNNÖT

Työsopimuslaki. käytännössä. Harri Hietala Tapani Kahri Martti Kairinen Keijo Kaivanto

Osakkeen arvonmääritys. Onnistunut sijoituspäätös

Harri Hietala ja Keijo Kaivanto TYÖAIKALAKI KÄYTÄNNÖSSÄ

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Mr & Mrs. Future. kysymystä. Mika Aaltonen & Rolf Jensen. Talentum Helsinki 2012

KIRJANPITOLAKI. kommentaari

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

SELVIÄ VOITTAJANA LAMASTA tästä ja seuraavasta. Olli E. Juvonen

EU:N JA SUOMEN KILPAILUVALVONTA. Mika Oinonen

Maakaari. Marjut Jokela Leena Kartio Ilmari Ojanen

Erkki J. Hollo Tuomas Kuokkanen Robert Utter ILMASTO-OIKEUS

Yksityisyyden suoja työsuhteessa

Elinkeinoverolaki käytännössä. Matti Kukkonen Risto Walden

Harri Hietala Keijo Kaivanto. Vuosilomalaki käytännössä

ULLA SANNIKKA. SENIORIN TIETOKONEOPAS Windows 10

Euroopan ihmisoikeussopimus. Matti Pellonpää Monica Gullans Pasi Pölönen Antti Tapanila

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS CT10A Kandidaatintyö ja seminaari

Alkuraportti. LAPPEENRANNAN TEKNILLINEN YLIOPISTO TIETOJENKÄSITTELYN LAITOS Ti Kandidaatintyö ja seminaari

CODEONLINE. Monni Oo- ja Java-harjoituksia. Version 1.0

Avio - varallisuusoikeus. Tapani Lohi

PERL. TIE Principles of Programming Languages. Ryhmä 4: Joonas Lång & Jasmin Laitamäki

asianosaiset ja valmistelu

Helka Pirinen. Esimies muutoksen johtajana

Lataa Suomen sudenkorennot - Sami Karjalainen. Lataa

Pilveä standardisoidaan monessa ryhmässä

Henrietta Aarnikoivu

Jarmo Leppiniemi Timo Kaisanlahti OIKEAT JA RIITTÄVÄT KIRJAUKSET

HALLINTOLAIN- KÄYTTÖ. Mirjami Paso Petri Saukko Veijo Tarukannel Matti Tolvanen

Työpaikan lait ja työsuhdeopas

Tuomas Honkamäki, Marko Reponen, Lotta Mäkelä, Sari Pohjonen KONSERNITILINPÄÄTÖKSEN LAADINTA

Maankäyttöja rakennuslaki. Pekka Hallberg Auvo Haapanala Ritva Koljonen Hannu Ranta Jukka Reinikainen

Reijo Laatikainen & Henna Rannikko. Toimistotyöläisen ruokapäivä

Kuntalaki. Tausta ja tulkinnat. Heikki Harjula Kari Prättälä

Lataa Lääketieteen termit 1-2. Lataa

Pääkäsittely, todistelu ja tuomio

HOVIOIKEUS- MENETTELY. Antti Jokela

Ohjelmistoteknologioiden koulutus: Web-sovelluskehitys, Java Server. Infotilaisuus klo 10:00

Arto Hiltunen JOHTAMISESTA

Lataa Meille tulee vauva (50 kpl) Lataa

4. Lausekielinen ohjelmointi 4.1

Takaisinsaanti. Jarmo Tuomisto

P e d a c o d e ohjelmointikoulutus verkossa

11/20: Konepelti auki

T Ohjelmistotekniikan seminaari

Joonas Orava, Olli Turunen Osta, vuokraa, vaurastu

Eva Tammi-Salminen ESINEVAKUUSOIKEUDEN PERUSTEET

W. Chan Kim Renée Mauborgne SINISEN MEREN STRATEGIA

Ennakkoperintälaki käytännössä. Tomi Peltomäki

Tom Vapaavuori. Yrityssalaisuudet, liikesalaisuudet ja salassapitosopimukset

KIVENISTUTUS. Jalokivien istutus kultasepän työssä. Immo Lahtela

Ohje kehitysympäristöstä. Dokumentti: Ohje kehitysympäristöstä.doc Päiväys: Projekti : AgileElephant

Kilpailunrajoitusvahinko. Antti Aine

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset


Lataa Lastentautien päivystyskirja. Lataa

Perunkirjoitus ja perinnön veroseuraamukset. Aulis Aarnio Urpo Kangas Pertti Puronen Timo Räbinä

Tentissä ratkaistaan neljä ohjelmointitehtävää Javalla. Tehdään sähköisesti mikroluokan Windows-koneilla.

E-kirjat tulee - oletko valmis? Pohdintaa e-kirjojen käytöstä sekä niihin liittyvistä odotuksista

IT-SOPIMUKSET Käytännön käsikirja Pekka Takki Sakari Halonen ALMA TALENT Helsinki 2017

Oikeuden perusteokset. Prosessioikeus

Timo Kaisanlahti Jarmo Leppiniemi Raili Leppiniemi TILINPÄÄTÖKSEN TULKINTA

TermBase NET versio (Beta)

Kirja on jaettu kahteen osaan: varsinaiseen- ja lisätieto-osioon. Varsinainen

13/20: Kierrätys kannattaa koodaamisessakin

Java-kielen perusteet

YRITYSVASTUU- RAPORTOINTI

Tähtitieteen käytännön menetelmiä Kevät 2009

Arto Hiltunen JOHTAMISESTA

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Timo Ritakallio Timo O. Vuori. Elävä strategia Kyky nähdä, taito tarttua tilaisuuteen

TULOSROHMUT. Yrityksen kannattavuuden suojaaminen. Alma Talent Helsinki 2017

Pedacode Pikaopas. Web Service asiakasohjelman luominen

Pedacode Pikaopas. Web-sovelluksen luominen

VUOSILOMALAKI Tarja Kröger Pekka Orasmaa TALENTUM Helsinki 2015

ISÄNNÄN ÄÄNI Juhlakirja Erkki Kustaa Rintala / Toimittajat Petteri Korhonen Timo Saranpää

Finto-tilannekatsaus. Osma Suominen Kansalliskirjaston asiantuntijaseminaari

Transkriptio:

Talentum Helsinki 2015

9., uudistettu painos Ensimmäinen painos julkaistu nimellä Java-ohjelmointi Pro Training 2015 Talentum Media Oy ja tekijät Kansi: Outi Pallari Taitto: Sirpa Puntti ISBN 978-952-14-2520-2 ISBN 978-952-14-2632-2 (sähkökirja) ISBN 978-952-14-2521-9 (verkkokirja) BALTO print, Liettua 2015 Palaute kirjasta: www.talentumshop.fi

Esipuhe Java on vakiinnuttanut asemansa ohjelmointikielten joukossa, vaikka kilpailu onkin kovaa. Javan voittokulku alkoi web-sivuilla ajettavista sovelmista, josta kielen käyttöalueet ovat laajenneet esimerkiksi verkkopalveluihin ja muihin palvelinpään ohjelmistoihin sekä matkapuhelimiin ja tabletteihin. Nyt sovelmat on jo lähes haudattu, muiden web-teknologioiden alle, mutta Java on silti vahvasti mukana monissa ohjelmistoprojekteissa. Javan nousu näkyy luonnollisesti myös kirjatarjonnassa. Tämän Javakirjan syntyhistoria juontaa kesään 2000, jolloin allekirjoittaneilta tiedusteltiin, voisimmeko tehdä Java-kirjan. Haasteeseen tarttuessamme opetimme vielä molemmat Java-ohjelmointia Jyväskylän yliopiston informaatioteknologian tiedekunnassa. Silloin emme voineet aavistaa, millaisen suosion kirja saisi, sillä käsissäsi on jo kirjan yhdeksäs, uudistettu painos. Kirja on suunnattu sekä ohjelmointia aloitteleville että jo hieman pidemmälle ehtineille. Kirjan ensimmäisen painoksen tavoitteena oli opettaa Java-ohjelmointia kielen perusteista lähtien. Tämä alkutavoite lienee saavutettu, sillä kirjaa on käytetty jo useana vuotena paitsi Javan opiskeluun niin myös ohjelmoinnin perusopetuksessa, ja saadut kokemukset ovat olleet myönteisiä. Kirja on kirjoitettu lukijaa ajatellen helposti omaksuttavaksi, vaikka asiat joskus olisivatkin vaikeita. Otamme erityisen mielellämme vastaan kaiken palautteen kirjasta. Tällä alalla kehityskulku on huimaa, joten lukijaa kehotetaankin seuraamaan kirjan kotisivuja, jonne kokoamme painosten välillä merkittävimmät asiat osoitteeseen http://javakirja.fi. Vantaalla ja Jyväskylässä 1.3.2015 mika.vesterholm@iki.fi Jorma Kyppö jorma@it.jyu.fi 5

JAVA-OHJELMOINTI Esipuhe ensimmäiseen painokseen Yhteistyöni in kanssa juontaa juurensa kolmen vuoden taakse. Tuolloin hän ryhtyi ohjelmoimaan Javalla kehittämääni kolmen pelaajan shakkipeliä, johon Javan olioihin perustuva ohjelmointifilosofia istui täydellisesti. Mikan tapa työskennellä valkeni allekirjoittaneelle nopeasti. Hänen tapoihinsa ei kuulu ainoastaan tarttua kursailematta vaikeaankin aiheeseen vaan myös tehdä aina hieman enemmän kuin on pyydetty. Tämä on harvinainen ominaisuus. Mikan tyyliin kuuluu myös uusien luovien näkökulmien haku aiheeseen kuin aiheeseen, mikä antaa ihanteellisen lähtökohdan tiimityöskentelyyn tutkijalle, joka tarvitsee tuekseen itsenäiseen työskentelyyn kykenevän kollegan. Kun tätä kirjaa ryhdyttiin työstämään, oli mielessäni huomattavasti vaatimattomampi teos. Mika on perehtynyt syvällisemmin kirjan aihealueeseen, ja työn edistyessä kävikin varsin pian ilmi, että lopputuloksesta tulisi huomattavasti laajempi. Tämä oppikirja on pitkälti Mikan luomus, ja allekirjoittanut voi vain todeta, että oli ilo olla mukana kirjoittamassa kuitenkin muutamaa lukua ja muutoinkin edesauttaa sellaisen Java-kirjan syntymistä, josta toivon mukaan on vielä paljon iloa myös lukijoille. Jyväskylässä 2.1.2001 Jorma Kyppö Yliassistentti, tietojenkäsittelytieteiden laitos Esipuhe toiseen painokseen Tämän kirjan toisen painoksen työstäminen aloitettiin välittömästi ensimmäisen painoksen valmistuttua noin vuosi sitten. Uusia Javaan liittyviä asioita lisättiin ja parannusehdotuksia kirjattiin muistiin sekä lukijoiden käyttöön kotisivuilleni. Suurimmat rakenteelliset muutokset on kokenut kirjan alkuosa, jossa lähdetään nyt liikkeelle yleisesti suunnittelusta, ja vasta sen jälkeen aletaan opiskella Javan alkeita. Alkeiden osuutta on lisätty, jotta kirja soveltuisi entistä paremmin ohjelmoinnin perusteiden opettamiseen. Joitakin termejä on vaihdettu parempiin, Javan uusia ominaisuuksia on lisätty mukaan ja käytettäväksi tietokannaksi on vaihdettu osittain ilmainen MySQL. Toisessa painoksessa työvälineenä on JBuilderin versio 6, kun se ensimmäisessä pai- 6

ESIPUHE noksessa oli vielä JBuilder 4. Väliin on siis vuoden aikana jäänyt jo versio 5. Muutosvauhti kuvastaa sitä, miten Java kehittyy ja valtaa uusia alueita! Haluan myös kiittää lukijoita, jotka ovat lähettäneet kommentteja ja huomioita kirjasta. Otamme edelleenkin ideoita ja kommentteja mielellään vastaan. Vantaalla 1.5.2002 Esipuhe kolmanteen painokseen Se, että kirjoitamme jo toista esipuhetta saman vuoden aikana, kertoo kirjan vastanneen lukijoiden odotuksia ja motivoi kehittämään sitä edelleen. Merkittävimmin tämän painoksen muutoksiin ja korjauksiin vaikuttivat kokemukset, joita saimme kirjan käytöstä ohjelmoinnin perusopetuksessa Jyväskylän yliopistossa kuluneen syksyn aikana. Haluammekin erityisesti kiittää opetuksesta vastannutta lehtori Pertti Hirvosta arvokkaista kommenteista. Rakenteellisesti kirja on pysynyt melkein ennallaan. Uusina asioina kirjaan on sisällytetty Javan metapiirteet sekä Javaan tulossa olevat geneeriset tyypit. Aloittelijan taivalta helpottamaan liitteeksi on lisätty yleisiä virhetilanteita ratkaisuehdotuksineen, ja rompulla on pieni opas komentokehotteen käytöstä. Opiskelun tukemiseksi kirjaan on lisätty yli 50 uutta harjoitustehtävää. JBuilder on vaihdettu uunituoreeseen versioon 8, ja kirjan rompulla on nyt myös Sun Microsystemsin Java 2 SDK. Ikaalisissa ja Jyväskylässä 31.12.2002 ja Jorma Kyppö Esipuhe viidenteen painokseen Tämä vuosi on historiallinen sekä Javan että kirjan osalta. Molemmista ilmestyy viides, merkittävästi uudistunut versio. Javan 5.0 versioon on lisätty uusia ohjelmointia helpottavia ominaisuuksia, kuten primitiivityyppien automaattinen käärintä, paranneltu for-silmukka sekä geneeriset tyypit. Nämä uudet 7

JAVA-OHJELMOINTI asiat on lisätty myös kirjaan, minkä seurauksena sen rakenteeseen on tehty joitakin muutoksia. Uutuutena on lisäksi Java-ohjelmien optimointia koskeva osuus. Kirjan tiedot Java 2 Standard Edition 5.0:sta perustuvat kirjoitushetken tietoihin. Kerään tarvittaessa tietoja viimehetken muutoksista kotisivuilleni. Jotta kirja säilyttäisi luettavuutensa, on rompun käyttöä laajennettu. Siellä on lisämateriaalina sellaiset asiat, joita ei ole enää painettuna kirjassa esimerkiksi luku vanhoista AWT-käyttöliittymistä. Myös ohjelmat on päivitetty uusimpiin versioihin. Kiitokset tämän painoksen osalta kuuluvat aktiivisille lukijoille, jotka ovat lähettäneet meille hyödyllisiä kommentteja ja parannusehdotuksia. Erityiskiitos palautteesta kuuluu jälleen lehtori Pertti Hirvoselle. Vantaalla 1.5.2004 Esipuhe kuudenteen painokseen Javan kymmenvuotissynttärit on juhlittu ja sen kunniaksi myös kirjaa on jälleen uudistettu. Painokseen on lisätty esimerkkejä ja etenkin säikeistä kertovaa lukua on päivitetty J2SE 5.0:n muutosten osalta. Mukaan on otettu muotoiltu tulostus, Scanner-luokka tietojen lukemiseen sekä säännölliset lausekkeet. Kirjan työkaluna on nyt ilmainen Eclipse, joka on yksi parhaista työkaluista Java-ohjelmien tekemiseen. Olemme jälleen saaneet lukijoilta palautetta, jonka ansiosta tekstiin on tehty tarkennuksia. Kiitos tästä kaikille! Vantaalla 8.4.2006 Esipuhe seitsemänteen painokseen Seitsemännessä painoksessa käytössä on Java SE 6, jonka uusia ominaisuuksia on lisätty kirjaan. Verkkopalvelujen rakentamisesta kertovaa lukua on uudistettu ja mukana on nyt myös JavaServer Faces eli JSF-teknologia. Tietokantalukuun on otettu mukaan Java Persistence API ja kirjassa käytetään nyt JDK:n 8

ESIPUHE mukana tulevaa Java DB -tietokantaa. Kolmas lisäys on luku Java Enterprise Edition -teknologiasta. Luvun painopiste on www-sovelluspalvelujen (Web Services) toteuttamisessa. Vantaalla 6.4.2008 Esipuhe kahdeksanteen painokseen Kahdeksanteen painokseen on tehty pieniä korjauksia. Muun muassa sisäluokkiin liittyvää terminologiaa on tarkennettu ja mukaan on liitetty uusi esimerkki. Kirjan oheisrompun sisältö on myös päivitetty. Vantaalla 21.2.2010 Esipuhe yhdeksänteen painokseen Yhdeksäs painos on kokenut osin suuriakin muutoksia, esimerkiksi käyttöliittymiä ja web-sovelluksia koskevat luvut on kirjoitettu lähes uudelleen teknologioiden uudistumisen myötä. Kirjaan on lisätty Java SE 7:n uutuudet, kuten merkkijonojen käyttö switch-lauseessa, timatti-operaattori sekä resurssit sulkeva try ja monen poikkeustyypin käsittely samassa catch-lohkossa. Java SE 8:ssa kieleen lisättiin tuki funktionaaliselle ohjelmoinnille, jolle on kirjassa varattu oma lukunsa. Rinnakkaisuutta koskevassa luvussa käsitellään tehtävien ajastamista ja Java SE 8:ssa lisättyjä tehtävien rinnakkaistamista helpottavia metodeja. Tiedostojen käsittelyn yhteydessä käydään läpi myös Javan uuden IO-kirjaston mukainen tiedostojen käsittely. Kirjaan on myös lisätty JUnit-testaustyökalun esittely ja kirjan lopussa käydään läpi joitakin avoimen lähdekoodin työkaluja ja kirjastoja. Oheisromppu on korvattu kirjan verkkosivuilla. Vantaalla 1.3.2015 9