CodeGym /Java blogg /Slumpmässig /Gammal nivå 08
John Squirrels
Nivå
San Francisco

Gammal nivå 08

Publicerad i gruppen

Global arbetsmarknad

Gammal nivå 08 - 1Om du bor i ett litet, fattigt eller utvecklingsland kan du någon gång stöta på en begränsad lokal arbetsmarknad.

Begränsningar för lokal arbetsmarknad

1 Låg lön

Även om du är en högkvalificerad specialist kanske det helt enkelt inte finns någon arbetsgivare som kan betala dig den lön du förtjänar på den lokala arbetsmarknaden. Exempel: lärare, vetenskapsmän.

2 Onödiga högskoleexamen

Mängden jurister och ekonomer som universiteten producerar överstiger efterfrågan på arbetsmarknaden mer tio gånger. 90 % av dessa specialister kan inte få arbete inom yrket. Ofta är det resultatet av låg utbildningskvalitet.

3 Ingen efterfrågan på ditt yrke

Du kanske är en underbar vetenskapsman, men staten finansierar inte längre grundläggande forskning. I arbetsregistret uppmanas du att omkvalificera dig. I en sådan situation är det mycket oklokt att göra detta, eftersom det finns vissa länder där dina kunskaper och färdigheter efterfrågas. När en världsberömd vetenskapsman lämnar honom från den inhemska katedran och nöjer sig med att diska i New-York – det är en tragedi. När en världskänd vetenskapsman diskar i sitt eget land istället för att vara chef för katedran i New York – är det en ännu större tragedi.

4 Små karriärmöjligheter

Du är börsmäklare och vill avancera som fokuserad specialist på finansiella kreditfonder. Du önskar bli chef för din egen investeringsstiftelse i framtiden. Det kan inte finnas någon efterfrågan på sådana specialister som dig i ditt land.

5 Små arbetsmarknader

I ditt land kanske det bara finns två företag som är intresserade av en specialist som du. Om du arbetar för en av dem kan du bli förbjuden att arbeta med deras rivaler. Du har helt enkelt ingenstans att ta vägen. Globaliseringsprocessen och utvecklingen och försämringen av telekommunikationstekniker resulterade i en global arbetsmarknad. Den globala marknaden består av företag som är villiga (och kan) att anställa arbetsgivare utomlands. Den består också av arbetsgivare som vill (och kan) få jobb i det utländska företaget.

Fördelar med global arbetsmarknad

1 Lönerna är lägre än i utvecklade länder, men högre än i utvecklingsländer

Om du kommer från ett utvecklingsland och är en specialist på efterfrågan på den globala arbetsmarknaden, kan din lön skilja sig 5-10 gånger på den globala marknaden och på den lokala marknaden. Dessutom får du spendera dina pengar i ditt land, hälla dem i dess ekonomi.

2 Erfarenhet. Överlägsen affärsprocess

Det finns tre viktigaste sakerna som ditt jobb ger dig: erfarenhet, pengar och kontakter. Om du är van vid att bara ta pengar – det är ditt problem . Du kan få den mest värdefulla erfarenheten om du arbetar för världens ledande företag. De välkomnar globaliseringstendenser, så att få jobb där är lättare än man tror. När du är ett företags anställd har du möjlighet att se alla effektiva och ineffektiva interna affärsprocesser. Allt du behöver göra är att titta och lyssna.

3 Stora karriärmöjligheter

Ett jobb i ett stort internationellt företag hjälper dig att växa professionellt och bygga en karriär. Du kan få goda kontakter över hela världen, och det är mycket användbart: få ett rykte som en högt kvalificerad specialist och några internationella företag kommer förmodligen att erbjuda dig att fortsätta bygga din karriär för dem. Allt en begåvad person behöver är en möjlighet; han kommer att tänka ut hur han ska använda den på egen hand.

4 affärsresor

Du kommer ofta att erbjudas att åka på en affärsresa utomlands. Speciellt om ett företag du arbetar för har några underavdelningar utomlands. Försumma inte dessa möjligheter: det är en bra chans att resa och också att få nya kunskaper och färdigheter, prata med människor. Kom ihåg att ju bredare du har desto fler fördelar har du.

5 En möjlighet att flytta till det land du gillar

Gammal nivå 08 - 2Det händer ofta att när du gjort dig ett namn som högkvalificerad specialist får du ett erbjudande om att flytta (för att arbeta) till ditt arbetsgivarkontor. Det är väldigt bekvämt. Vid det laget har du förmodligen varit där på affärsresa och har god kunskap om vart du ska. Du har redan vänner och bekanta där. Du kommer att få ett bra jobb och kollegor som nu du väl. Det är nog de bästa invandringsförhållandena jag vet.

Krav från den globala arbetsmarknaden

1 Ditt yrke måste uppfylla dem

Alla yrken uppfyller inte kraven från den globala marknaden. Men många gör det. Och den här listan växer hela tiden. Jag kan fortsätta namnge dem länge: support, utveckling, forskning, design, nästan allt som har med webb och datorer att göra. Om ditt yrke dök upp för bara 20-30 år sedan är det mycket stor sannolikhet att det lätt kan globaliseras.

2 Pris och kvalitet

När ett utländskt företag ser att det kan anlita en specialist av högre kvalitet och till ett lägre pris i ditt land, är det svårt att motstå. Du måste vara antingen "bättre och billigare" eller "mycket billigare". Bara "billigare" kommer inte att tillfredsställa det utländska företaget, eftersom det riskerar mycket att anställa specialister utomlands.

3 engelska

Under 2000-talet är engelska ett internationellt språk. Om du vill arbeta på en global marknad och njuta av alla dess fördelar, men engelska är inte ditt modersmål – lär dig det. Ju lägre din engelska nivå desto starkare borde vara andra två fördelar.

Du har nått en ny nivå

Nivå 8

Gamla nivå 08 - 3

1 Elly, Förklaring till samlingar

Gamla nivå 08 - 4- Hej, Amigo. Idag vill jag berätta om kollektioner. I Java kallas klasser vars huvudsakliga syfte är att lagra en uppsättning andra element för samlingar/behållare. Exemplet på en sådan klass, som du redan känner till, är ArrayList. - I Java är samlingarna indelade i tre huvudgrupper: Set, List och Map. - Så vad är skillnaden mellan dem? - Jag börjar med Set. Föreställ dig en hög med skor. Det är ett set. I uppsättningen kan du lägga till ett element, hitta eller ta bort det. Men elementen har ingen strikt ordning där! - Förklaringen är för kort... -Föreställ dig nu samma hög med skor, denna gång uppradade längs väggen. Det finns en beställning nu. Varje element har sitt nummer. Till exempel kan du hitta "par nummer 7" efter dess nummer. Detta är en lista . Du kan lägga till elementet i början eller i mitten av listan, eller ta bort det, för att göra detta behöver du bara dess nummer. - Fick dig. Hur är det med Map? - Föreställ dig samma skor, men nu finns det en etikett på varje par, t.ex. «Nick», «Joe» eller «Ann». Det här är en karta, den kallas ofta en «ordbok». Varje element har sitt unika namn som du kan komma åt med. Elementets unika namn kallas också nyckeln. Och en karta är en uppsättning nyckel-värdepar. Nyckeln behöver inte vara ett snöre. Det kan vara av vilken typ som helst. Kartan , vilken nyckeltyp ärHeltal , är faktiskt listan (med vissa skillnader). – Det är klart, men jag skulle vilja se fler exempel. – Risha kommer att ge dig exempel, och jag vill lägga till några fler ord. – Alla samlingar och containrar lagrar ingenting när de precis är skapade. Men du kan lägga till element till dem efteråt. De kommer att ändra sin storlek dynamiskt. – Åh, nu är det intressant. Och hur vet du hur många element som finns i samlingen? - För att göra detta finns metoden size() . Kollektionerna har allt du behöver. Jag tror att du under ett par lektioner själv kommer att se hur praktiska dessa samlingar är. - Jag hoppas det.

1 Risha, Lista över alla samlingar och gränssnitt

Gammal nivå 08 - 5 - Hej, Amigo. - Hej, Risha. – Lila sa till mig att du ville ha fler exempel på samlingar. Jag ska ge dig några. Jag vill visa dig en lista över samlingar och gränssnitt: Gammal nivå 08 - 6- Hum, så många. Det finns fyra listor, tre set och fyra kartor. - Ja, det här är alla olika implementeringar av gränssnitten List, Set och Map. – Och vad är skillnaden mellan implementeringarna? – Det är bara det här vi ska prata om i dag. Vänta lite. - Du kanske redan har några frågor. - Jag vet hur man visar listan på skärmen. Och hur visar man Set and Map? - Elementen i listan har en strikt ordning, så de kan visas helt enkelt genom sina nummer. Set och Map har ingen strikt ordning av element. Egentligen kan ordningen på deras element ändras när du lägger till eller tar bort något objekt. - Wow, det är intressant! – Därför uppfanns specialobjekten ( iteratorerna ) för att arbeta med samlingselement. Genom att använda dem kan du gå igenom alla element i en samling, även om de inte har några nummer, bara namn (Map) eller inga namn alls (Set). - Exempel: Gammal nivå 08-7- Wow! Och vad betyder allt detta? – Det är faktiskt ganska enkelt. Först får vi ett speciellt iteratorobjekt från samlingen. Den har bara två metoder. 1 metoden next() är att returnera nästa element i samlingen. 2 metoden hasNext() är att kontrollera om det finns element som inte returnerats av next() ännu. - Ja. Det blir tydligare. Låt mig berätta hur jag förstår det. - Så för att få detta magiska iteratorobjekt måste du först anropa en metod iterator() i en samling. – Sedan får jag dem en och en i slingan medan det finns ej återlämnade föremål. Jag får samlingselementet genom att anropa next() och kontrollera om det finns element i en iterator med hasNext(). Har jag rätt? - Ja något liknande. Och nu det mest intressanta. - I Java finns det en kort notation av iteratoranvändning. På samma sätt som while och for lades en annan speciell operatör " för varje " till. I kod betecknas denna operator med samma nyckelord för . - För varje operatör används endast med samlingar och containrar. Den använder gömt en iterator. - Låt mig visa dig ett fullständigt och kort sätt att arbeta med en iterator: Gammal nivå 08 - 8- Observera: det finns varken gröna eller röda ord i den högra tabellen. Faktum är att 3 rader ersätts av en: Gammal nivå 08 - 9- Det ser underbart ut. Jag gillar det mer på det här sättet! - Låt oss titta på samma exempel som ovan, bara i kort form: Gammal nivå 08 - 10- Det är en helt annan historia! - Jag är glad att du gillar det.

3 Diego, Insamlingsuppgifter

- Hej, Amigo. Jag vill ge dig några insamlingsuppgifter:
Uppgifter
1 1. En anläggning HashSet
Skapa en HashSet- samling av element av strängtyp . Lägg till 10 strängar till samlingen: vattenmelon, banan, körsbär, päron, melon, björnbär, ginseng, jordgubbe, iris och potatis. Visa innehållet i samlingen på skärmen. Varje post ska finnas på en ny rad. Se hur ändrade ordningen på tillagda element.
2 2. HashMap av 10 par
Skapa en samling HashMap<String, String> , placera 10 par strängar i samlingen: vattenmelon - bär, banan - gräs, körsbär - bär, päron - frukt, melon - grönsak, björnbär - bär, ginseng - rot, jordgubbe - bär, iris - blomma, potatis - knöl.
Visa innehållet i samlingen på skärmen. Varje post ska finnas på en ny rad.

Utgångsexempel (endast en sträng visas):
potatis - knöl
3 3. HashMap samling av katter
Det finns en klass Cat , som har ett fältnamn ( namn, String).
Skapa en samling HashMap<String, Cat> .
Lägg till 10 katter, använd kattnamnet som nyckel.
Visa resultatet på skärmen. Varje post ska finnas på en ny rad.
4 4. Visa listan med nycklar på skärmen.
Det finns en samling HashMap<String, String> , den har redan 10 olika strängar.
Visa listan med knappar på skärmen. Varje post ska finnas på en ny rad.
5 5. Visa listan med värden på skärmen.
Det finns en samling HashMap<String, String> , den har redan 10 olika strängar.
Visa värdelistan på skärmen. Varje post ska finnas på en ny rad.
6 6. HashMap-samling av objekt
Det finns en samling HashMap<String, Object> , den har redan 10 olika objektpar.
Visa innehållet i samlingen på skärmen. Varje post ska finnas på en ny rad.

Utdataexempel (endast en sträng visas):
Sim - 5

4 Kim, Introduktion till typen Date

Old Level 08 - 11- Hej, Amigo. Jag skulle vilja berätta om en intressant typ – Date . Denna typ gör det möjligt för dig att lagra ett datum och en tid, samt att mäta tidsintervall. - Det ser lovande ut. Fortsätt. - Varje Date-objekt lagrar tidsinformation. Det är lagrat i en mycket intressant form - antalet millisekunder som har gått sedan 1 januari 1970 GMT. - Wow! - Ja. Detta nummer är så stort att det inte passar in i int , du måste lagra det länge . Men det är väldigt enkelt att beräkna skillnaden mellan två datum: du behöver bara subtrahera ett tal från ett annat för att veta skillnaden exakt i millisekunder. I framtiden kommer det att göra ditt liv enklare när du möter problem med tidszoner. - Och det mest intressanta är att varje Date-objekt initieras av dess skapelsetid. För att kontrollera aktuell tid behöver du bara skapa ett objekt. – Och hur jobbar man med det? - Här är några exempel: Old Level 08-12- Metoden getTime() returnerar antalet millisekunder lagrade i objektet Date. - Metoden after() kontrollerar om datumet, där denna metod anropades , kommer efter passerat datum. - Metoder getHours() , getMinutes() , getSeconds() returnerar antalet timmar, minuter och sekunder för objektet där de anropades. - Dessutom, i det sista exemplet, ser du att det är möjligt att manipulera datum/tid lagrad i objektet Date. Vi får aktuell tid och datum och nollställer sedan timmar, minuter och sekunder. På samma sätt ställer vi in ​​månaden på januari och månadens dag till 1. Nu lagrar objektet yearStartTime datum och tid för 1 januari, 0 timmar, 0 minuter och 0 sekunder. - Sedan får vi det aktuella datumet currentTime , igen, och beräknar skillnaden mellan de två datumen i millisekunder. Jag pratar om msTimeDistance . - Dela sedan msTimeDistance med antalet millisekunder på en dag och få det totala antalet dagar som gått sedan början av året hittills! - Wow! Det är jättebra!

5 Elly, ArrayList vs. LinkedList

-Vad sägs om att justera ditt sinne lite? Jag hoppas att det inte är sprängt än. - I tabellen över behållare och samlingar ovan har du sett att samma gränssnitt kan ha flera implementeringar. Nu ska jag berätta varför. Och vad är skillnaden mellan ArrayList och LinkedList . – Saken är att insamlingen kan implementeras på olika sätt och det finns ingen enskild korrekt implementering . I ett tillvägagångssätt är vissa operationer snabba och resten av dem är långsamma. I det andra tillvägagångssättet är det tvärtom. Det finns ingen enda perfekt lösning. – Därför bestämde man sig för att göra några implementeringar av samma samling. Varje implementering optimerades för ett visst snävt område av operationer.Så det dök upp olika samlingar. Låt oss betrakta ett exempel på två klasser - ArrayList och LinkedList . Old Level 08 - 13- ArrayList implementeras internt som en vanlig array . Därför, när ett element sätts in i mitten, måste alla element flyttas med ett efter det, och sedan kan det nya elementet infogas i ett ledigt utrymme. Men operationer för att hämta och redigera ett element ( get() och set() ) implementeras mycket snabbt i ArrayList. Eftersom allt de gör är bara tillgång till lämpligt element i den inre arrayen. - LinkedList implementeras på ett annat sätt. Den är implementerad som en länkad lista: en uppsättning individuella element, som vart och ett lagrar referenser till nästa och föregående element. För att infoga ett element i mitten av en sådan lista ändrar metoden add() bara referenser till dess framtida grannar. Men för att få elementet med nummer 130 måste metoden get() köras konsekvent genom alla objekt från 0 till 130. Med andra ord, set och get here är mycket långsamma . Titta på tabellen nedan: Old Level 08-14- Ja. Det blir tydligare nu. Finns det några kriterier eller regler, vilken samling är bäst? - Tja, för att förenkla, här är följande regel: om du ska infoga (eller ta bort) många element i mitten av samlingen, då är det bättre att använda en LinkedList . Annars använder du en ArrayList. – Jag ska förklara den interna strukturen för dessa listor på seniornivåerna. Hittills kommer vi att lära oss hur man använder dem.

6 Diego, Uppgift: mät prestanda för båda listorna

- Det är du. Jag började bli uttråkad. Var har du varit? Här är uppgifterna. - Är de intressanta? - Javisst! Mycket intressant:
Mycket intressanta uppgifter
1 1. Skapa två listor LinkedList & ArrayList.
Skapa två listor: LinkedList och ArrayList .
2 2. Gör 10 tusen insättningar och borttagningar
Gör 10 tusen av varje infogning, radering, anrop av get() och set() metoder för arrayList och linkedList.
3 3. Mät hur lång tid det tar att göra tiotusen infogningar för varje lista
Mät hur lång tid det tar att göra tiotusen infoningar för varje lista.
Metoden getTimeMsOfInsert() bör returnera tiden för dess körning i millisekunder.
4 4. Mät tid som behövs för att göra tiotusen anrop av get för varje lista
Mät tid som behövs för att göra tio tusen anrop av get() för varje lista.
Metoden getTimeMsOfGet() ska returnera tiden för dess exekvering i millisekunder.
5 5. Fyra metoder
Implementera fyra metoder. Metoderna bör returnera en lista som är bäst lämpad för att utföra specificerade operationer (för att snabbt klara av ett stort antal operationer). Ingen mätning behövs.

7 Elly: Set och Map, vad kan man göra med dem

- Är du inte trött än? Nej, då fortsätter vi. Jag skulle vilja förklara vad Set och Map är. Och vilka operationer de har. - Set är ett gäng icke-uppräknade objekt. Huvudfunktionen i Set är att den bara har unika objekt , det vill säga att de alla är olika . Det är vad du kan göra med det: Old Level 08 - 15- Är det allt? - Faktiskt ja. Du kan också bestämma antalet element med metoden size() . - Hur är det med Map ? - Kartan är en paruppsättning. Det är samma uppsättning, inte av enstaka element, utan av nyckel-värdepar. Den enda begränsningen är detdet första objektet i ett par, som kallas nyckeln, ska vara unikt . Kartan kan inte innehålla två par med samma nycklar. - Det är vad vi kan göra med Map : Old Level 08 - 16- Det här är mycket mer intressant än uppsättningen. - Ja, även om Map inte är lika populärt som listan, används det för många uppgifter.

8 Diego, Set & Map uppgifter

– Jag hoppas att du redan har lärt dig vad Set och Map är? Här är några ställ- och kartuppgifter.
Insamlingsuppgifter
1 1. 20 ord som börjar med «L»
Skapa en uppsättning strängar ( Set<String> ), lägg i den 20 ord som börjar med «L».
2 2. Ta bort alla siffror större än 10
Skapa en uppsättning nummer ( Set<Heltal> ), lägg in 20 olika nummer i den.
Ta bort alla siffror större än 10 från uppsättningen.
3 3. Identiska för- och efternamn
Skapa en ordbok ( Map<String, String> ) och lägg till tio poster enligt modellen «efternamn» - «förnamn». Kontrollera hur många personer som har samma för- eller efternamn som det angivna namnet.
4 4. Ta bort alla personer födda på sommaren
Skapa en ordbok ( Map<String, Date> ) och lägg till tio poster enligt modellen «sista manen» - «födelsedatum». Ta bort alla sommarfödda från kartan.
5 5. Ta bort personer med samma förnamn
Skapa en ordbok ( Map<String, String> ) och lägg till tio poster enligt modellen «efternamn» - «förnamn». Ta bort personer som har samma förnamn.

9 Professor, Föreläsning om samlingar

Old Level 08 - 17- Haw-haw. Äntligen kom vi till samlingarna. Jag har fortfarande en underbar föreläsning från tiden jag var student. Det är lite dammigt, förstås, men i grunden bra. Här är mina anteckningar: Java Collections (Oracle Documentation) Collections in Java (Java T point) Java Collections Framework (tutorials point) Java Collections Tutorial

10 Julio

- Gode Gud! Du är överansträngd igen! Sa jag inte till dig att inte jobba så mycket? Låt mig spela något som hjälper dig att slappna av:

11 kapten ekorrar

- Hej, soldat! - God morgon herrn! - Jag har fantastiska nyheter till dig. Här är en snabb kontroll för att stärka dina färdigheter. Gör det varje dag, och du kommer att förbättra dina färdigheter riktigt snabbt. Uppgifter är speciellt utformade för att göra i Intellij IDEA.
Ytterligare uppgifter att göra i Intellij Idea
1 1. Uppsättning av katter
1. Skapa en offentlig statisk klass Cat inom klassen Lösning .
2. Implementera metoden createCats() , som ska skapa en uppsättning katter och lägga till tre katter till den.
3. I huvudmetoden tar du bort en katt från Set cats.
4. Implementera metoden printCats() , som ska visa alla katter som finns kvar i uppsättningen på skärmen. Varje katt bör vara på en ny linje.
2 2. Uppsättning av alla djur
1. Skapa offentliga statiska klasser Katt och Hund inom klassen Lösning.
2. Implementera metoden createCats() , som ska returnera en uppsättning av 4 katter.
3. Implementera metoden createDogs() , som ska returnera en uppsättning med 3 hundar.
4. Implementera metoden join() , som ska returnera den kombinerade uppsättningen av alla djur, både katter och hundar.
5. Implementera metoden removeCats() , som ska ta bort alla katter som finns i uppsättningen katter från uppsättningen husdjur.
6. Implementera metoden printPets(), som ska visa alla djur som finns i den på skärmen. Varje djur ska vara på en ny linje.
3 3. Personer med samma förnamn och/eller efternamn
1. Skapa en ordbok ( Map<String, String> ) och lägg till 10 personer enligt modellen «efternamn» - «förnamn».
2. Bland dessa 10 personer, låt det finnas personer med samma förnamn.
3. Bland dessa 10 personer, låt det finnas personer med samma efternamn.
4. Visa innehållet på kartan på skärmen .
4 4. Minsta antal N siffror
1. Läs från tangentbordets nummer N .
2. Läs från tangentbordet N heltal och fyll en lista med dem med en metod getIntegerList() .
3. Hitta det minsta antalet bland elementen i listan med en metod getMinimum() .
5 5. Sluta titta Lyssna. Nu versal
Skriv ett program som ska läsa en sträng från tangentbordet.
Programmet ska ersätta de första bokstäverna i alla ord i texten med versaler.
Visa resultatet på skärmen.

Exempelinmatning:
stopp titta lyssna
Exempel utgång:
Stopp titta lyssna
6 6. Hela familjen är tillsammans
1. Skapa en klass Människan med fälten: String name , boolean sex , int age , ArrayList<Human> children .
2. Skapa 9 objekt och fyll dem på ett sådant sätt att du får två farfar, två farmödrar, en pappa, en mamma och tre barn. 3. Visa alla mänskliga objekt på skärmen .
7 7. Flytta en statisk modifierare
Flytta en statisk modifierare så att koden kompileras.
8 8. Fem största talen
Skapa en array med 20 nummer. Fyll den med siffror som läses från tangentbordet. Visa de fem största siffrorna på skärmen.
9 9. Arbeta med datum
1. Implementera metoden isDateOdd(String date) så att den returnerar sant, om antalet dagar från början av året är udda, annars returnerar det falskt.
2. Strängdatum passeras i formatet 1 MAJ 2013

1 JANUARI 2000 → sant
2 JANUARI 2020 → falskt
– De uppgifterna var för greener. Jag lade till bonusuppgifter av högre komplexitet. Endast för toppvapen.
Bonusuppgifter
1 1. Månadsnummer.
Programmet ska läsa månadens namn från tangentbordet och visa dess nummer på skärmen på följande sätt: « Maj är 5 månader »
2 2. Lägg till ny funktionalitet i programmet.
Gammal uppgift: Programmet avgör vilken familj (dess efternamn) som bor i ett hus med angivet antal.
Ny uppgift: Programmet ska fungera med städerna och inte med husnummer.

Exempel på input:
Washington
the Smiths
New York
the Browns
London
the Johnsons

London

Exempel på output:
the Johnsons
3 3. Att lära sig och öva på algoritm.
Uppgift: Programmet ska läsa från tangentbordet 20 ord och visa dem i alfabetisk ordning.
Kommentarer
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION