Filosofie java ke stažení epub. Otázky a úkoly pro ruskou knihu Thinking in Java (Filosophy of Java) od Bruce Eckela

Pokud tomu dobře rozumím, „Filosofie Javy“ Bruce Eckela je uvedena v ruštině v 6 formách (nepočítaje velmi stará vydání):

rušič vztlaku

1. Bruce Eckel. filozofie Java. Překlad ze 3. "anglického" vydání. Původní název "Thinking in"
Java". Nakladatelství Peter. Počet stran 976. Rok vydání 2003. Kniha je věnována javě 1.4.
Zdá se, že to není úplně kompletní vydání (nebo možná úplné), ale s normálním překladem.

2. Bruce Eckel. filozofie Java. Překlad ze 4. "anglického" vydání. Původní název Thinking in Java.
Počet stran 640. Rok vydání 2009. Nakladatelství Peter. Dvojitě oříznuté vydání s

3. Bruce Eckel. filozofie Java. Překlad ze 4. "anglického" vydání. Původní název Thinking in Java.
Počet stran 640. Rok vydání 2011. Nakladatelství Peter. Dvojitě oříznuté vydání s
hrozný překlad. Kniha je věnována Javě 1.5.

4. Bruce Eckel. filozofie Java. Překlad ze 4. "anglického" vydání. Původní název Thinking in Java.
Počet stran 640. Rok vydání 2013. Nakladatelství Peter. Dvojitě oříznuté vydání s
hrozný překlad. Kniha je věnována Javě 1.5.

5. Bruce Eckel - Jávská filozofie. Překlad ze 4. "anglického" vydání. Rok vydání - 2015.
Nakladatelství "Petr". Počet stran - 1165. Kniha je věnována javě 1.5. Takzvané kompletní
edice. Překlad se nezdá být moc dobrý.

6. Bruce Eckel - Jávská filozofie. Překlad ze 4. "anglického" vydání. Rok vydání - 2017.
Počet stran je 1168. Překlad dobrý. Kniha je věnována Javě 1.5.

7. Dvousvazková kniha o Core Java: Java Library pro profesionály. Kay S. Horstmann, Gary Cornell.
Svazek 1: Základy. Volume 2: Advanced Programming Tools. Rok výroby 2014-2015 (devátý
vydání, java 1.7). Až do devátého vydání včetně bylo toto dvousvazkové dílo vydáváno pod autorstvím Kay S.
Horstmann a Gary Cornell, pak ji vydala pouze Kay S. Horstmann.

8. Stejná dvoudílná kniha, ale pod autorstvím Kay S. Horstmann. Svazek 1: Základy. Svazek 2: Pokročilé nástroje
programování. Rok vydání 2017 (desáté vydání, java 1.8).

Horstmann má také 2 malé knihy (pokračující číslování):

9. Java SE 8. Základní kurz. Původní název Core Java for the Impatient. Kay S. Horstmann, 464 s., 2016.

10. Java SE 8. Úvodní kurz. Java SE 8 pro opravdu netrpělivé. Kay S. Horstmann, 208 s., 2014.

Opravte mě, pokud se mýlím nebo jsem něco přehlédl ohledně výše uvedených knih. Co dobrého/špatného můžete o těchto knihách říci? Co číst a co ne? Jaké další knihy o Javě mohu číst (v ruštině nebo angličtině)? Oznamte prosím celý seznam.

V březnu loňského roku jsem se přihlásil na pobočku velké mezinárodní společnosti v Samaře (ano, od dětství mám v sobě hojnost arogance a ambicí). V té době jsem znal html, css, java, javascript (základy), pascal, visualbasic6, mysql dotazy, php, obecná prezentace: c++. Javu jsem vůbec neznal. Nabídli mi práci dispozičního designéra, ale odmítl jsem. Pouze programátor! Pak dali seznam:

Bruce Eckel Thinking in Java (ruský překlad 2. vydání nebo originál 4. – čtěte oba)
-Steve McConnell - perfektní kód.
-Gang of Four - Návrh vzoru. (toto je téměř ABC OOP)
- mít co nejjasnější pochopení rozdílu mezi j2se a j2ee.

V prosinci vznikla potřeba práce. dostal práci v malém webovém studiu Samara. Okamžitě bylo jasné, že se jedná o podvodníky, ale potřeboval jsem jakoukoli práci, kterou bych mohl ukázat budoucím zaměstnavatelům. Neplatili (i když byli všichni uši s příslibem), ale kód dovedli na designové standardy a hlavně nás naučili, kde hledat a co hledat v případě chyb, jaké maličkosti jsou snadno minout.

Kromě literatury výše jsem absolvoval kurz intuit (teď chápu, že je svým rozsahem směšný, ale v zásadě základy tam jsou)

Na konci února jsem znovu odeslal svůj životopis a dostal pozvánku na pohovor. Rozhovorů bylo celkem 6 a trvaly 1,5 měsíce. Dvě z nich se uskutečnily prostřednictvím video spojení s Moskvou. Celý snímek připomínal film „Come Tomorrow“. Ale nakonec jsem dostal pracovní nabídku. Smlouva byla sepsána na částečný úvazek, protože... V té době jsem ještě neměl diplom. Minulý měsíc jsem obdržel diplom a smlouva byla obnovena na plný úvazek.

Současná pozice: Soft Engineer. Plat je více než uspokojivý. Včera ji v souvislosti s přechodem na plný úvazek zvedli o 30 %.

I v té křivolaké kanceláři žádali příklady práce. Prezentoval jsem práci, kterou jsem dokončil jako OSVČ. Dokonce i práce v jiných jazycích jsou vždy mnohem lepší než žádná práce.

Ps: Modrý diplom z FYZY. Jsem úplný samouk, takže je to všechno ve vašich rukou. Angličtinu mám jen z Free school (7 hodin týdně). ačkoli Američan, který k nám přišel během své cesty kolem světa, ho dobře nezná. Rozuměl jsem sotva polovině kvůli jeho přízvuku. ale v mém oddělení to není tak důležité. Veškerá dokumentace je v angličtině - naučíte se ji, i když jste ji neznali)))))

Zvláštní poděkování tomuto fóru. Vlastně jsem tady studoval- každý den jsem studoval všechna témata, se kterými jsem se setkal)

Jávská filozofie Bruce Eckel

(zatím bez hodnocení)

Název: Java Philosophy

O knize "The Philosophy of Java" od Bruce Eckela

Bruce Eckel je vynikající programátor, autor řady knih o programovacích jazycích. Jeho práce se rychle stala populární, protože představoval složité koncepty jednoduchým jazykem. Pomohli mnoha lidem naučit se programování od nuly a dosáhnout úspěchu v této oblasti. Autor za svou práci obdržel ocenění více než jednou. Jeho knihy byly kritiky vždy vřele přijaty a ti, kteří chtěli studovat různé programovací jazyky hlouběji, se na jeho nové dílo těšili. Nejznámější autorovou knihou byla „Filozofie Jávy“. Vyprodala se ve velkém množství a byla několikrát dotištěna. I nyní, po deseti letech, je tato práce povinnou četbou pro ty, kteří se chtějí stát profesionálními programátory.

Ve své knize „The Philosophy of Java“ autor odhaluje tajemství tohoto programovacího jazyka. Radí se na to dívat jako na něco živého. Umně uvádí příklady, které dokazují, že se programovací jazyk vyvíjí a přibývají k němu různé doplňky. Může být použit k popisu jakéhokoli procesu.

Většina začínajících programátorů nerozumí logice Java. Autor se snaží čtenářům srozumitelně vysvětlit, o co jde. Jakmile to pochopí, bude mnohem snazší začít psát programy, které nebudou padat a mást specialisty. Díky zkušenostem autora bude snazší samostatně identifikovat a opravovat chyby, kterých se programátoři často dopouštějí. Pokud budete studovat a porozumět programovacímu jazyku Java hlouběji, otevřou se vyhlídky, které se dříve zdály nemožné.

Bruce Eckel se ve své knize „Philosophy of Java“ pokusil vysvětlit složité problémy jednoduchým jazykem. Aby se čtenáři nepletli v pojmech, propojuje je s přírodou a každodenními situacemi. Užitečné informace se tak zapamatují rychleji a zůstanou s člověkem navždy. Když nastanou těžké situace, vzpomene si na příběh z knihy a použije ho.

Bruce Eckel se ve své knize „The Philosophy of Java“ snažil zprostředkovat všechny své zkušenosti, a tak vše vyřešil. Čtenáři ji mohou pouze vstřebat a využít ve své každodenní práci. Díky knize se budete moci vyvarovat většiny běžných chyb a stanete se výborným programátorem. Práce autora pomohla mnoha lidem pochopit, jak Java funguje, psát skvělé programy a zlepšovat software.

Na našem webu o knihách si můžete stáhnout stránku zdarma bez registrace nebo si online přečíst knihu „The Philosophy of Java“ od Bruce Eckela ve formátech epub, fb2, txt, rtf, pdf pro iPad, iPhone, Android a Kindle. Kniha vám poskytne spoustu příjemných chvil a opravdové potěšení ze čtení. Plnou verzi si můžete zakoupit u našeho partnera. Také zde najdete nejnovější zprávy z literárního světa, dozvíte se biografii svých oblíbených autorů. Pro začínající spisovatele je k dispozici samostatná sekce s užitečnými tipy a triky, zajímavými články, díky nimž si můžete sami vyzkoušet literární řemesla.

Programování je jednou z nejoblíbenějších služeb v oblasti IT. Mnoho lidí se začalo o tomto obtížném odvětví učit a pracovat tímto směrem. Pokud se čtenář vždy zajímal o programování, ale nevěděl, kde začít, pak bude kniha „Philosophy of Java“ v této věci vynikajícím průvodcem. Autor, Bruce Eckel, je skutečný počítačový hříčkař a rychle vysvětluje základní principy práce s kódem pomocí jasného jazyka.

Jazyk Java je považován za jeden z nejpopulárnějších programovacích jazyků po celém světě. Je to dáno její vysokou flexibilitou a možností jejího uplatnění téměř v jakékoli oblasti související s hrami, softwarem apod. Kniha pro začátečníky „Filozofie Javy“ vám pomůže zvládnout hlavní základy, ale i klíčové pojmy, které umožňuje vytvořit vynikající základ pro hlubší a dokonalé studium vědy o programování. Bruce Eckel odvedl skutečně kolosální práci, poskytl stovky živých příkladů a důkladně vysvětlil všechny klíčové body v celé knize. S pomocí této příručky si každý uživatel, který se chce naučit jazyk Java, bude moci vytvořit vynikající znalostní základnu a na jejím základě zahájit hloubkovou studii.

Autor doporučuje přečíst si jeho knihu všem začátečníkům a lidem, kteří se jednoduchému programování v jazyce Java teprve začali věnovat. „Java Philosophy“ je průvodce, jak se rychle a efektivně naučit základům práce s Javou. Kniha si všímá všech maličkostí, ale i jemností, rozhraním a základním nastavením počínaje a složitými kombinacemi a technikami konče, které jsou ukázány na reálném příkladu pomocí příkazů a přehledných kódů s komentáři autora.

Bruce Eckel vám pomůže zaměřit se na hlavní účel a filozofii používání Javy pro práci, obchod a další oblasti. Autor také ukazuje mnoho příkladů problémů, hovoří o důvodech jejich výskytu a hlavních metodách odstraňování problémů v kódu programu. Specialisté pracující v oblasti programování vysoce ocenili knihu „Java Philosophy“, protože jde o vývojovou učebnici, která vám pomůže lépe se naučit jazyk Java. Přestože se jedná o odbornou literaturu, čte se mnohem snadněji než jiné knihy podobného žánru

Na našem literárním webu si můžete zdarma stáhnout knihu „The Philosophy of Java“ od Bruce Eckela ve formátech vhodných pro různá zařízení - epub, fb2, txt, rtf. Čtete rádi knihy a neustále sledujete novinky? Máme velký výběr knih různých žánrů: klasika, moderní beletrie, psychologická literatura a publikace pro děti. Kromě toho nabízíme zajímavé a poučné články pro začínající spisovatele a všechny, kteří se chtějí naučit krásně psát. Každý z našich návštěvníků si bude moci najít něco užitečného a vzrušujícího.

Kapitola 11. Sbírky předmětů

Otázky
1. Co je rozhraní kolekce?

Odpovědět

Rozhraní kolekce je kořenové rozhraní, které popisuje obecnou funkčnost všech sekvenčních kontejnerů (str. 301).


2. Mohou být kontejnery použity pro skladování primitiv?

Odpovědět

Primitiva nemohou fungovat jako prvky kontejneru. Do kontejneru lze umístit pouze odkazy na objekty. Mechanismus Autoboxing však automaticky převede primitivum na typ objektu. Proto může programátor na výše uvedené omezení „zapomenout“.
(odpověď poskytnuta společně s panem D.)


3. Která metoda přidávání prvků do kontejneru ArrayList je vhodnější:
Arrays.asList nebo Collections.addAll a proč?

Odpovědět

Collections.addAll je preferován kvůli jeho lepšímu výkonu (str. 282).


4. Uveďte několik metod dostupných při práci s ArrayList.

Odpovědět

„contains(Object o)“ – kontrola přítomnosti prvku v poli.
„indexOf(Object o)“ – získání indexu prvku.
“subList(index1, index2)” - zkopírujte některé prvky do nového kontejneru.
„containsAll(Object o)“ – kontroluje přítomnost prvků v kontejneru.


5. Co vrací metoda remove() při volání na kontejner typu Queue?

Odpovědět

Metoda Queue.remove() nejen odstraní prvek head z fronty, ale také vrátí jeho řetězcovou hodnotu.


6. Jaké operace jsou rychlejší při práci s LinkedList ve srovnání s ArrayList?

Odpovědět

Vkládání a odstraňování prvků ze středu seznamu je rychlejší při použití LinkedList (str. 291).


7. Jaké typy kontejnerů lze implementovat pomocí LinkedList?

Odpovědět

Zásobník, fronta, deque.


8. Jak se liší rodina kontejnerů Set od rodiny kontejnerů Seznam? (děkuji panu D. za úpravu)

Odpovědět

V rodině Set kontejnerů mohou být data uložena pouze v jedné instanci (str. 294)


9. Dojde k výjimce při pokusu o přidání prvku do sady, která se v ní již nachází?

Odpovědět

Žádná výjimka nenastane.


10. Jak se liší kontejner PriorityQueue od Queue?

Odpovědět

Položky v PriorityQueue lze třídit podle určitých pravidel.


11. K čemu se používá komparátor při použití na PriorityQueue?

Odpovědět

Komparátor umožňuje nastavit pravidla řazení pro prvky PriorityQueue.


12. Co znamenají prefixy „Strom“ a „Hash“, „LinkedHash“ např. pro typ kontejneru Set (TreeSet, HashSet, LinkedHashSet)

Odpovědět

Předpona "Strom" znamená, že prvky kontejneru jsou uloženy v seřazeném pořadí
(např. abecedně nebo vzestupně) Předpona „Hash“ označuje, že kontejner implementuje hašování pro urychlení načítání. Předpona „LinkedHash“ znamená, že kontejner ukládá prvky v pořadí, v jakém byly vloženy, a zároveň poskytuje rychlý přístup (str. 309)


13. Podporuje kontejner mapy rozhraní Iterable?

14. Funguje syntaxe foreach pro kontejner typu "Map"?

Odpovědět

U kontejneru typu "Map" syntaxe foreach nefunguje, protože nepodporuje iterovatelné rozhraní.


15. Jaká je hlavní výhoda použití iterátoru pro přístup k prvkům kontejneru?

Odpovědět

Iterátor lze použít pro kontejnery různých typů (str. 290).


16. Jaké nové funkce nabízí ListIterator ve srovnání s běžným iterátorem?

Odpovědět

ListIterator poskytuje sekvenční přístup k prvkům nejen od začátku do konce kontejneru, ale také naopak (str. 290).

Cvičení

11. 1. Vytvořte třídu Ovoce. Třída musí obsahovat pole váhy int, konstruktor, který toto pole inicializuje, a metodu printWeight(), která vypíše hodnotu váhy.
V hlavní metodě přidejte některé objekty Fruit do kontejneru List. Zavolejte printWeight() na každý z objektů následujícími způsoby:
A) pomocí metody get();
B) pomocí iterátoru.

Odpovědět

// Fruit.java public class Fruit ( private int weight = 0; public Fruit(int weight) ( this.weight = weight; ) public void printWeight() ( System.out.println("Hmotnost je: " + hmotnost); ) ) // Apply.java import java.util.*; public class Apply ( public static void main(String args) ( List ovoce = Arrays.asList(new Fruit(10), new Fruit(20)); // a System.out.println("Úkol a: "); for (Ovoce f: ovoce) ( f.printWeight(); ) // b System.out.println("Úkol b: "); Iterátor it = fruits.iterator(); while(it.hasNext()) ( it.next().printWeight(); ) ) )

11.2. Umístěte třídu Fruit z 11.1 do kontejneru s mapou. Nechť je jako klíč určeno jméno vlastníka a jako hodnota objekt typu Fruit. Implementujte iteraci nad každým objektem Fruit pomocí klíče a zavolejte metodu printWeight() na nalezený objekt: using foreach; pomocí iterátoru.

Odpovědět

Díky quarantino za kompaktní verzi řešení iterátoru.
třída Ovoce - viz úkol 11.2

Importovat java.util.*; import java.util.Map.Entry; public class Apply ( public static void main(String args) ( // Použijte HashMap, protože řazení není potřeba Mapa ovoce = nová HashMap (); fruit.put("Bob", new Fruit(10)); fruit.put("Mary", new Fruit(20)); // iterujte pomocí foreach System.out.println("S foreach"); for (String key: fruit.keySet()) ( fruit.get(key).printWeight(); ) // iterace pomocí iterátoru System.out.println("S iterátorem"); Iterátor > it = fruit.entrySet().iterator(); while (it.hasNext()) ( it.next().getValue().printWeight(); ) ) )

11.3. Pomocí komparátoru pro PriorityQueue se ujistěte, že proměnné řetězce jsou seřazeny podle velikosti.

Odpovědět

Poznámka: příklad je převzat z internetu.
// StringComparator.java import java.util.Comparator; public class StringComparator implementuje komparátor ( @Override public int Compare(String s1, String s2) ( if (s1.length()< s2.length()) { return -1; } if(s1.length() >s2.length()) ( return 1; ) return 0; ) ) // PriorityQueue.java import java.util.Comparator; import java.util.PriorityQueue; public class PriorityQueueUse ( public static void main(String args) ( Comparator komparator = new StringComparator(); PriorityQueue fronta = new PriorityQueue (10, komparátor); queue.add("abcde"); queue.add("abc"); queue.add("abcdefghi"); queue.add("a"); // Prvky ve frontě NEJSOU umístěny ve vzestupném pořadí délky String System.out.println("Před odstraněním:"); System.out.println(fronta); // Prvky jsou však z fronty odstraněny v rostoucím pořadí délky String System.out.println(); System.out.println("Podívejte se na odstranění objednávky: "); while (queue.size() != 0) ( System.out.println(queue.remove()); ) ) )

Překlad cvičení z původní knihy:
11.4. Vytvořte novou třídu pískomil s int field gerbilNumber. Nechte pole inicializovat konstruktorem. Vytvořte také metodu hop(), která vytiskne „číslo pískomila, které přeskakuje, je: “ a hodnotu proměnné gerbilNumber. Umístěte objekty Gerbil do kontejneru ArrayList. Implementujte metodu get() pro iteraci seznamu a volání metody hop() na každý z těchto objektů.

11.5. Upravte soubor SimpleCollection.java tak, aby pro proměnnou "c" používal metodu Set. Upravte innerclasses/Sequence.java tak, aby tam bylo možné přidat libovolný počet prvků.

11.6. Napište třídu Generátor, která obsahuje seznam jmen postav vašich oblíbených filmů (Objekty typu String). Nechte každý objekt z tohoto seznamu vrátit pomocí metody next(). Když se dostanete na konec vytvořeného seznamu, musíte se vrátit zpět na začátek seznamu.
Třídu Generator použijte k naplnění kontejnerů, jako jsou ArrayList, LinkedList, HashSet, LinkedHashSet, TreeSet. Napište univerzální metodu, která by zobrazila obsah každého z polí.

11.7. Upravte ListFeatures.java tak, aby místo mazlíčků používal celá čísla. Vysvětlete rozdíly ve výkonu vyplývající z této úpravy.

11.8. Opakujte cvičení 11.7 pro ListFeatures.java, ale nahraďte mazlíčky Strings.

11.9. Vytvořte třídu, která generuje inicializované pole objektů jiné třídy. Toto pole použijte k vyplnění kontejneru typu List. Vytvořte další kontejner pomocí subList() na seznamu. Poté odeberte prvky, které jste načetli pomocí subList() z kontejneru, ze kterého jste je načetli.

11.10. Hravé cvičení o používání různých nádob a jejich metod (vynalezených nezávisle)
Mějme seznam výdajů, zpočátku sestávající ze 3 prvků: „jídlo“, „lék“, „zábava“. Tyto prvky je nutné zapsat do kontejneru Seznam a jejich pořadí by se nemělo měnit.

1) Najednou jsme si uvědomili, že jsme do seznamu zapomněli přidat výdaje na splácení úvěru. Položku „daně“ musíte umístit mezi „potraviny“ a „léky“, aniž byste přímo použili indexy položek.
2) Manželka přinesla dodatečný samostatný seznam výdajů s údaji: „kabát“, „restaurace“. Nedá se nic dělat: výdaje přidejte na konec seznamu (abyste si nedělali iluze).
3) Tchýně nám však přinesla ještě pár věcí: „divadlo“, „domácí dekorace“ a „medicína“. Možná jste již některé z těchto bodů měli. Pro každý případ zkopírujeme obsah prvního kontejneru do nového kontejneru typu Set a tyto položky pak bez váhání přidáme na konec seznamu.
4) Bez váhání jsme vytvořili asociativní dynamickou mapu výdajů , kde Celé číslo jsou plánované náklady na každou výdajovou položku (částky si vyberte sami).
5) Najednou jsme zbohatli a rozhodli jsme se zvýšit výši všech výdajů o 30%. Napište metodu, která to udělá za vás.
6) Zastavte se! Už máme dost "domácí dekorace!" A možná se příliš mnoho utrácí za kabát. Přidejte tyto položky do nového seznamu a předejte jej metodě, která po přečtení tohoto listu najde odpovídající nákladové položky v kontejneru Mapa a sníží je o... 80 %!
7) Svalme některé výdaje na tchyni. Navíc ji překvapíme! Vygenerujme si dvě náhodná čísla, která určí počáteční a koncový index, mezi nimiž budou všechny výdaje evidovány v samostatném Seznamu (který později vloží tchyně). Nezapomeňme aktualizovat mapu tím, že z ní odstraníme příslušné výdajové položky.
8) Napišme metodu, která určí, kam jde nejmenší částka výdajů, vytiskneme název těchto výdajů a hrdě tuto položku odstraníme ze seznamu.
9) K našim dveřím však dorazil další spotřební materiál: „jídlo“ a „restaurace“, navržené ve formě jiného pole! Pojďme zkontrolovat, zda jsou tyto položky na našem seznamu? A pokud existuje alespoň jeden výdaj, pak je za žádných okolností nepřidáme! Pokud nic z toho není, pak (nedá se nic dělat), sečtěte oba tyto body najednou (jak mám hlad!).
10) Jsme blázni! Přečteme si z mapového seznamu všechny celočíselné částky zbývajících výdajů, které máme, zapíšeme je do „nějakého“ kontejneru, který je sám za nás seřadí vzestupně, pak je zběsile mícháme a mažeme, předáváme v obráceném pořadí, zběsile pomocí k tomu speciální iterátor.