Če želite spremeniti privzeti dokument, ročno uredite datoteko "blank.fb2".
Predgovor 13
Java SE5 in SE6 14
hvala 14
1. poglavje: Uvod v predmete 17
Razvoj abstrakcije 18
Objekt ima vmesnik 20
Objekt nudi storitve 22
Skrita izvedba 23
Ponovna uporaba implementacije 24
Dedovanje 25
Zamenljivi objekti in polimorfizem 29
Enokorenska hierarhija 33
Zabojniki 33
Parametrizirani tipi 35
Nastanek, uporaba predmetov in njihova življenjska doba 36
Obravnava izjem: obravnavanje napak 38
Vzporedna izvedba 38
Java in internet 39
Poglavje 2. Vse je predmet 48
Vsi objekti morajo biti izrecno ustvarjeni 49
Predmetov nikoli ni treba izbrisati 53
Ustvarjanje novih tipov podatkov 54
Metode, argumenti in povratne vrednosti 56
Ustvarjanje programa Java 58
Statična ključna beseda 60
Naš prvi program Java 61
Komentarji in vgrajena dokumentacija 64
Slog oblikovanja programa 70
Poglavje 3. Operaterji 71
Preprosti ukazi za tiskanje 71
Operaterji Java 72
Literali 82
Javi manjka sizeof() 92
Povzetek 100
Poglavje 4. Nadzorne strukture 101
Sintaksa foreach 105
prekini in nadaljuj 108
Slab ukaz goto 109
Povzetek 115
Poglavje 5: Inicializacija in prekinitev 116
Konstruktor zagotavlja inicializacijo 116
Preobremenitev metode 118
Čiščenje: finalizacija in zbiranje smeti 130
Inicializacija članov razreda 137
Inicializacija s konstruktorjem 140
Inicializacija nizov 146
Povzetek 151
Poglavje 6. Nadzor dostopa 152
Paket kot knjižnični modul 153
Specifikatorji dostopa do Java 159
Vmesnik in izvedba 163
Dostop do 164 razredov
Povzetek 167
Poglavje 7: Ponovna uporaba razredov 169
Sintaksa sestave 170
Sintaksa dedovanja 172
Delegacija 176
Kombinacija sestave in dedovanja 178
Sestava proti dedovanju 184
Pretvorba tipa navzgor 186
Končna ključna beseda 188
Povzetek 197
Poglavje 8. Polimorfizem 198
Spet o preobrazbi navzgor. . . > 199
Značilnosti 201
Konstruktorji in polimorfizem 208
Kovarianca vrnjenega tipa 216
Razvoj z dedovanjem 217
Povzetek 220
Poglavje 9. Vmesniki 221
Abstraktni razredi in metode 221
Vmesniki 224
Ločevanje vmesnika od izvedbe 227
Razširitev vmesnika z dedovanjem 233
Vmesniki kot sredstvo prilagajanja 236
Ugnezdeni vmesniki 239
Vmesniki in tovarne 242
Povzetek 244
Poglavje 10. Notranji razredi 245
Ustvarjanje notranjih razredov 245
Komunikacija z zunanjim razredom 246
Konstrukcije.ta in.nova 248
Notranji razredi in pretvorba navzgor 249
Neimenovani notranji razredi 253
Notranji razredi: zakaj? 261
Dedovanje iz notranjih razredov 272
Ali je mogoče preglasiti notranji razred? 272
Lokalni notranji razredi 274
Povzetek 276
Poglavje 11. Zbirke predmetov 277
Parametrirani in tipizirani vsebniki 277
Osnovni pojmi 280
Dodajanje skupin elementov 281
Iteratorji 288
Komplet 294
Čakalna vrsta 298
PriorityQueue 299
Zbirka in iterator 301
Metoda-adapter idiom 306
Povzetek 309
Poglavje 12. Obravnava napak in izjem 310
Glavne izjeme 310
Lovljenje izjem 312
Ustvarjanje lastnih izjem 314
Specifikacije izjem 319
Lovljenje poljubnih izjem 320
Standardne izjeme Java 328
Zaključek s končno 330
Uporaba končno z vrnitvijo 334
Omejitve pri uporabi izjem 336
Konstruktorji 339
Prepoznavanje izjem 343
Alternativne rešitve 344
Povzetek 351
Poglavje 13 Informacije o vrsti 352
Potreba po sklepanju dinamičnega tipa (RTTI) 352
Registracija tovarn 372
Odsev: Informacije o dinamičnem razredu 376
Dinamični posredniki 380
Objekti z nedefiniranim stanjem 384
Vmesniki in informacije o vrsti 390
Povzetek 394
Poglavje 14. Parametriranje 397
Enostavna parametrizacija 398
Parametrirani vmesniki 404
Parametrizirane metode 407
Gradnja kompleksnih modelov 419
Omejitve 437
Metaznaki 440
Povzetek 452
Poglavje 15. Nizi 454
Lastnosti 454 nizov
Niz kot objekt 456
Vrni niz 458
Večdimenzionalni nizi 460
Nizi in parametrizacija 463
Ustvarjanje testnih podatkov 465
Ustvarjanje nizov z uporabo generatorjev 470
Arrays 474 Komplet podpornih orodij
Povzetek 482
Poglavje 16: V/I sistem Java 483
Datoteka razreda 484
Vhod in izhod 489
Dodajanje atributov in vmesnikov 491
Razredi bralca in pisca 494
RandomAccessFile: sama po sebi 497
Tipična uporaba V/I tokov 498
Bralniki in zapisovalci datotek 505
Standardni 507 V/I
Nov V/I (nio) 510
Stiskanje podatkov 531
Serializacija objekta 536
Nastavitve 553
Povzetek 555
Poglavje 17. Vzporedna izvedba 557
Nit 559 razred
Umetniki 561
Skupna raba virov 578
Komunikacija med nitmi 598
Zastoj 602
Nove komponente knjižnice 607
CountDownLatch 607
Ciklična pregrada 609
PriorityBlockingQueue 614
Semaforji 619
Modeliranje 624
Povzetek 629
Abecedno kazalo 631
Uvod v predmete
Naravo seciramo, jo pretvarjamo v koncepte in jim pripisujemo pomen na način, kot to počnemo na mnogo načinov, ker smo vsi udeleženci dogovora, ki velja v družbi, ki jo veže govor, in ki je zapisan v strukturi jezika. . Sploh ne moremo komunicirati, razen če se strinjamo z organizacijo in klasifikacijo podatkov, določeno s to pogodbo.
Benjamin Lee Worf (1897-1941)
Pojav računalniške revolucije dolgujemo stroju. Zato se naši programski jeziki trudijo biti bližje temu stroju.
Toda hkrati računalniki niso toliko mehanizmi, kot so sredstva za širitev misli (»kolesa za um«, kot rad reče Steve Jobe) in drugo sredstvo za samoizražanje. Posledično se programska orodja vse manj nagibajo k strojem in bolj k našemu umu, pa tudi drugim oblikam izražanja človeških teženj, kot so literatura, slikarstvo, kiparstvo, animacija in kinematografija. Objektno usmerjeno programiranje (OOP) je del tega, da računalnik postane sredstvo samoizražanja.
To poglavje vas bo seznanilo z osnovami OOP, vključno z razpravo o osnovnih tehnikah razvoja programov. Ta in knjiga na splošno predpostavlja, da imate izkušnje s programiranjem v proceduralnem jeziku, ne nujno v C. Če menite, da vam pred branjem te knjige primanjkuje znanja o programiranju in sintaksi C, izkoristite multimedijski seminar Thinking in C. ki jih lahko prenesete s spletne strani
Najverjetneje se ne bom zmotil, če domnevam, da je večina tistih, ki so študirali Javo, to začela s pomočjo slavne knjige Brucea Eckela: "Razmišljanje v Javi", v ruski izdaji znan kot "Java filozofija". Na žalost je najbolj razširjena elektronska različica (v ruščini) 2. izdaja te knjige, ki temelji na različici Jave 1.1, ki je že zdavnaj izgubila pomen. Novosti, ki so se pojavile v zaporednih različicah Jave (in še posebej v Javi SE5), so bile zelo pomembne, kar je privedlo do velike revizije knjige v njeni četrti izdaji (katere prevod je bil objavljen v ruščini). Vendar v elektronski obliki, ki je lahko berljiva (in kar je najpomembnejše - za hitro iskanje), ruska različica te publikacije ni obstajala. Zato sem se odločil zapolniti to vrzel in izdelati popolno različico te priljubljene knjige v formatu Wikibook. Verjamem, da bodo te informacije zanimive in uporabne ne samo za učence jezikov, ampak tudi za vse, ki se ukvarjajo z Javo, zaradi ogromnega števila odličnih primerov, ki ponazarjajo skoraj vse vidike programiranja v tem jeziku. Še posebej, ko gre za redko uporabljene funkcije Java.
Wikiknjige "Java filozofija" nahaja se na:
"Pomlad v akciji"
Knjige iz serije "..... v akciji"(običajno v formatu PDF in običajno v angleščini) so v določenih krogih zasluženo priljubljeni :) Med njimi so tudi obsežni Talmudi, kot npr. "JSTL v akciji"(lahko berljiva in z zmernim znanjem angleščine, a primerna za vlogo dobrega referenčnega učbenika na temo), in skromnejše obrti, kot je npr. "Struts v akciji"("ni vse zlato ..."). Knjiga "Pomlad v akciji" na tem seznamu je še vedno iz kategorije "težkih" in v vseh pomenih besede. Verjetno ga ni enostavno brati brez tekoče angleščine. In bistvo verjetno ni v kompleksnosti predstavljenega gradiva (ni zapleteno), ampak v tem, da je izpadlo preveč “angleško-umetniško” ali kaj podobnega ... Polno liričnih stranpoti, fraz, besednih iger in drugih bla bla bla, jezikovnih avtorjev, hitro spremeni branje te referenčne knjige (v izvirnem jeziku) v dolgočasen proces. Po drugi strani pa vam omogoča, da ugotovite, kaj je beseda "žrebanje"(običajno "risati") se lahko uporablja v pomenu "izvleči iz" (lit. - "vleči, povleči"). Kot rezultat (ob upoštevanju splošnega sloga predstavitve, sprejetega v knjigi) razumeti natančen pomen besedne zveze, kot so: "... Pomlad narišite te podatke ...", je lahko hkrati težko in izjemno potrebno. Zato se bodo morali bralci poglavij, ki jih nisem prevedel, spotoma sami odločiti, kaj so avtorji v takšnih primerih želeli: poetično izražanje o nastanku (posnetku) spisa ali hudomušno govoriti o njegovem branju.
To knjigo sem pretvoril iz PDF v Wikibook kot hitro referenco za osebno uporabo. Zato prevod ni totalen, ampak le na mestih, za katera je bilo dovolj navdušenja. Preostala poglavja so bila preprosto predstavljena v obliki, primerni za hitro iskanje. Objavljeno je, VSE v obliki - "kot je", in kakovosti ruskega besedila ni treba kriviti ... Nisem profesionalni prevajalec in nisem imel literarnega urednika. Morda bom koga razočaral, ker nekaterih mest in poglavij knjige nisem prevedel (in jih niti ne nameravam prevesti), ampak sem jo moral pustiti v dediščino za prihodnje generacije
Wikiknjige "Pomlad v akciji " nahaja se na:Marca lani sem se prijavil v podružnico velikega mednarodnega podjetja v Samari (ja, arogance in ambicije imam na pretek že od otroštva). Takrat sem poznal html, css, java, javascript (osnove), pascal, visualbasic6, mysql queries, php, splošna predstavitev: c++. Jave sploh nisem poznal. Ponudili so mi delo oblikovalca postavitev, a sem ga zavrnil. Samo programer! Nato so dali seznam:
Bruce Eckel Thinking in Java (ruski prevod 2. izdaje ali izvirnik 4. - preberite oboje)
-Steve McConnell - popolna koda.
-Gang of Four - Oblikovanje vzorca. (to je skoraj ABC OOP)
- čim bolj jasno razumeti razliko med j2se in j2ee.
decembra se je pojavila potreba po delu. dobil službo v majhnem spletnem studiu Samara. Takoj je bilo jasno, da gre za prevarante, vendar sem potreboval kakršno koli delo, ki bi ga lahko pokazal bodočim delodajalcem. Plačali niso (čeprav so bili vsi obljubljeni na ušesa), so pa kodo spravili v standarde dizajna, predvsem pa so nas naučili, kje iskati in kaj iskati v primeru napak, kakšne malenkosti so enostavno zgrešiti.
Poleg zgornje literature sem opravil tečaj intuit (zdaj razumem, da je smešen po obsegu, ampak načeloma so osnove tam)
Konec februarja sem ponovno poslal življenjepis in prejel vabilo na razgovor. Vseh intervjujev je bilo 6 in so trajali 1,5 meseca. Dva sta potekala preko video povezave z Moskvo. Celotna slika je spominjala na film "Pridi jutri". A na koncu sem dobil ponudbo za službo. Pogodba je bila sestavljena za krajši delovni čas, ker... Takrat še nisem imel diplome. Prejšnji mesec sem prejela diplomo in podaljšala pogodbo za polni delovni čas.
Trenutni položaj: Soft Engineer. Plača je več kot zadovoljiva. Včeraj so ga v zvezi s prehodom na polni delovni čas dvignili za 30 %.
Tudi v tisti pokvarjeni pisarni so prosili za primere dela. Predstavil sem delo, ki sem ga opravljal kot svobodnjak. Tudi dela v drugih jezikih so vedno veliko boljša kot brez dela.
Ps: Modra diploma iz FIZIKE. Sem popolnoma samouk, tako da je vse v tvojih rokah. Angleščino imam samo v brezplačni šoli (7 ur na teden). čeprav ga Američan, ki je prišel k nam med potovanjem po svetu, ne pozna dobro. Zaradi njegovega naglasa sem razumel komaj polovico. vendar to v mojem oddelku ni tako kritično. Vsa dokumentacija je v angleščini - naučili se je boste, tudi če je niste znali)))))
Posebna zahvala temu forumu. Pravzaprav sem študiral tukaj- vsak dan sem preučeval vse teme, na katere sem naletel)
PROGRAMERSKA KNJIŽNICA
Bruce Eckel
4. izdaja
(^PPTER
Moskva - Sankt Peterburg - Nižni Novgorod - Voronež Rostov na Donu - Jekaterinburg - Samara - Novosibirsk Kijev - Harkov - Minsk
BBK 32.973 2-018.1
Ekel B.
E38 Javanska filozofija. Programerjeva knjižnica. 4. izd. - St. Petersburg: Peter, 2009. - 640 e.: ilustr. - (Serija "Programerjeva knjižnica").
ISBN 978-5-388-00003-3
Jave ne moremo razumeti tako, da nanjo gledamo le kot na zbirko nekaterih značilnosti - naloge tega jezika je treba razumeti kot posebne naloge programiranja kot celote. Knjiga r3ia govori o problemih programiranja: zakaj so postali problemi in kakšen pristop uporablja Java za njihovo reševanje. Zato so značilnosti jezika, obravnavane v vsakem poglavju, neločljivo povezane s tem, kako se uporabljajo za reševanje določenih problemov.
Ta knjiga, ki je v izvirniku doživela več kot en ponatis, velja za enega najboljših učbenikov za programerje Java, zahvaljujoč globoki in resnično filozofski predstavitvi zapletenosti jezika.
BBK 32.973.2-018.1 UDK 004.3
Pravice za objavo so bile pridobljene na podlagi pogodbe s Prentice Hall PTR.
Vse pravice pridržane. Nobenega dela te knjige ni dovoljeno reproducirati v nobeni obliki brez pisnega dovoljenja imetnikov avtorskih pravic.
Informacije v tej knjigi so bile pridobljene iz virov, ki jih založnik šteje za zanesljive. Ob upoštevanju morebitnih človeških ali tehničnih napak pa založnik ne more jamčiti za absolutno točnost in popolnost navedenih podatkov in ne odgovarja za morebitne napake, povezane z uporabo knjige.
ISBN 978-0131872486 (angleščina) © Prentice Hall PTR, 2006
ISBN 978-5-388-00003-3 © Prevod v ruščino: Peter Press LLC, 2009
© Izdaja v ruščini, oblikoval Peter Press LLC, 2009
Predgovor............................13
Java SE5 in SE6.....................................14
Zahvala.....................................14
1. poglavje: Uvod v objekte.....................................17
Razvoj abstrakcije.....................................18
Objekt ima vmesnik.....................20
Objekt opravlja storitve............................22
Skrita izvedba.....................................23
Ponovna uporaba implementacije.....................................24
Dedovanje.....................................25
Zamenljivi objekti in polimorfizem......29
Enokorenska hierarhija.....................................33
Posode.....................................33
Parametrizirani tipi.....................35
Nastanek, uporaba predmetov in njihova življenjska doba................................36
Obravnava izjem: obravnavanje napak ................................38
Vzporedna izvedba.....................................38
Java in internet.....................................39
Povzetek.....................................47
Poglavje 2. Vse je predmet...................48
Vsi objekti morajo biti ustvarjeni eksplicitno.................49
Predmetov nikoli ni treba izbrisati......53
Ustvarjanje novih tipov podatkov ............................54
Metode, argumenti in povratne vrednosti 56
Ustvarjanje programa Java.....................58
Statična ključna beseda 60
Naš prvi program Java......61
Komentarji in vgrajena dokumentacija................................64
Slog oblikovanja programa.....................70
Povzetek.....................................70
Poglavje 3. Operaterji............................71
Preprosti ukazi za tiskanje.....................................71
Operaterji Java.....................................72
Literali.....................................82
Javi manjka sizeof()................................92
Povzetek.....................................100
Poglavje 4. Nadzorne strukture..................101
sintaksa foreach.....................................105
vrnitev, .....................107
prekini in nadaljuj............................108
Napačen ukaz goto ........................109
Povzetek.....................................115
Poglavje 5. Inicializacija in prekinitev.....................116
Konstruktor zagotavlja inicializacijo......116
Preobremenitev metode.....................................118
Čiščenje: dokončanje in zbiranje smeti......130
Inicializacija članov razreda.....................137
Inicializacija s konstruktorjem.................................140
Inicializacija matrik............................146
Povzetek.....................................151
Poglavje 6. Nadzor dostopa......152
Paket kot knjižnični modul.....................................153
Specifikatorji dostopa do Java.....................159
Vmesnik in izvedba............................163
Dostop do predavanj.....................164
Povzetek.....................................167
7. poglavje: Ponovna uporaba razredov......169
Skladnja sestave.....................170
Sintaksa dedovanja.................................172
Delegacija.....................................176
Kombinacija sestave in dedovanja......178
Sestava proti dedovanju.................................184
zaščiten.....................................185
Pretvorba tipa navzgor.................................186
Končna ključna beseda.....................................188
Povzetek.....................................197
Poglavje 8. Polimorfizem.....................198
Spet o preobrazbi navzgor. . . >............199
Značilnosti.....................................201
Konstruktorji in polimorfizem.....................................208
Kovarianca vrnjenega tipa......216
Oblikovanje z dedovanjem............................217
Povzetek.....................................220
Poglavje 9. Vmesniki.....................................221
Abstraktni razredi in metode.....................................221
Vmesniki.....................................224
Ločevanje vmesnika od izvedbe......227
Razširitev vmesnika z dedovanjem......233
Vmesniki kot sredstvo prilagajanja...................236
Ugnezdeni vmesniki.....................239
Vmesniki in tovarne............................242
Povzetek.....................................244
Poglavje 10. Notranji razredi..................245
Ustvarjanje notranjih razredov.................................245
Komunikacija z zunanjim razredom.....................................246
Konstrukcije.ta in.nova........................248
Notranji razredi in pretvorba navzgor......249
Neimenovani notranji razredi.................................253
Notranji razredi: zakaj?............................261
Dedovanje notranjih razredov...................272
Ali je mogoče preglasiti notranji razred?......272
Lokalni notranji razredi.....................................274
Povzetek.....................................276
Poglavje 11. Zbirke predmetov.....................................277
Parametrirani in tipizirani vsebniki ............................277
Osnovni pojmi............................280
Dodajanje skupin elementov.....................281
Seznam...................................285
Iteratorji.....................................288
LinkedList.....................................291
Sklad.................................292
Veliko.....................................294
Zemljevid...................................296
Čakalna vrsta.....................................298
PriorityQueue.....................................299
Zbirka in iterator.....................301
Idiom »prilagojevalnik metode« .................................306
Povzetek.....................................309
Poglavje 12. Obravnava napak in izjem......310
Glavne izjeme.....................................310
Lovljenje izjem............................312
Ustvarjanje lastnih izjem............................314
Specifikacije izjeme.....................................319
Lovljenje poljubnih izjem............................................320
Standardne izjeme Jave.....................328
Dokončanje s končno.....................................330
Uporaba končno z vrnitvijo............................334
Omejitve pri uporabi izjem......336
Oblikovalci.................................339
Prepoznavanje izjem............................343
Alternativne rešitve............................344
Povzetek.....................................351
Poglavje 13. Podatki o vrsti.....................................352
Potreba po dinamičnem sklepanju tipov (RTTI) ........352
Registracija tovarn............................372
Razmislek: informacije o dinamični učilnici......376
Dinamični posredniki............................380
Objekti z nedoločenim stanjem......384
Vmesniki in informacije o tipu.....................................390
Povzetek.....................................394
Poglavje 14. Parametriranje.....................................397
Enostavna nastavitev parametrov.....................398
Parametrirani vmesniki.....................................404
Parametrizirane metode............................407
Gradnja kompleksnih modelov.....................................419
Omejitve.....................................437
Metaznaki.....................................440
Povzetek.....................................452
Poglavje 15. Nizi............................454
Značilnosti nizov............................454
Matrika kot objekt............................456
Vrnitev matrike............................458
Večdimenzionalni nizi........................460
Nizi in parametrizacija.....................463
Ustvarjanje testnih podatkov.....................465
Ustvarjanje nizov z generatorji......470
Pomožna orodja za nize......474
Povzetek.....................................482
Poglavje 16. V/I sistem Java......483
Datotečni razred.....................................484
Vhod in izhod................................489
Dodajanje atributov in vmesnikov......491
Razredi bralca in pisca............................494
RandomAccessFile: samostojno.....................................497
Običajna uporaba V/I tokov......498
Bralniki in zapisovalci datotek.................................505