CodeGym /Java блог /Случаен /Старо ниво 10
John Squirrels
Ниво
San Francisco

Старо ниво 10

Публикувано в групата

Не висше, не образование

Старо ниво 10 - 1Нека си зададем въпроса: защо хората влизат в колежа? Запомнете онази проста фраза: ако не учите здраво, цял живот ще бъдете сервитьор. Можете дори да си помислите, че всички хора, които отиват за висше образование, мразят да бъдат сервитьори. И така, Howво искат? Те искат работа от противоположната социална страна на сервитьора. Хората влизат в колежи, за да получат добре платена, висококвалифицирана работа! За да могат да си купят къща и кола. Вземете всичко; поне понякога (определение от средната класа). Хората смятат, че висшето образование гарантира добре платени, висококвалифицирани работни места. Не става. Но колежите мълчат за това и ние продължаваме да си мислим магически „Ще си намеря добра работа, когато завърша“. 5 години в добър колеж няма да ви доближат нито сантиметър до вашата „добра работа“. Защото:

1. Учителите в колежите не могат да ви научат да бъдете добър специалист.

Дайте си ясен отговор на това: хората, които ви преподават, работят в колежи и получават скромно заплащане, нали? Това е така, защото те не могат да се класират за добри позиции на пазара на труда. Липсва им Howто опит, така и квалификация. Тези, на които не им липсва – напускат. Всичко е различно в най-добрите университети в света, но сега не говорим за тях. Какво е вашето мнение: успешен финансов специалист ще отиде ли да работи в банка, печелейки $150 000 на година or ще преподава в колеж, печелейки $60 000 на година? Често се случва по-слаби професионалисти да преподават в колежи, защото не са успели да си намерят друга работа. Има и изключения, но те са малко. Срещнах добри преподаватели в колежите, там наистина ги има. Но това дори не е малцинство, те са много малко. Добрият учител не само ви дава теория, но набляга на практическата страна на своя предмет.

2. Учителите в повечето колежи възхваляват науката, но презират професионалната реализация

Корените трябва да се търсят в това, че повечето учители се провалиха като професионалисти. И единственото оправдание е, че професионалната реализация е недостойно занимание. Ако ходите на лекции и след това участвате в научни конференции – добър сте. И ако пропускате много, защото работите – е, получавате съвсем различно отношение. Учителите са като монаси-отшелници. Професията за тях е суета на суетите. Те са се посветor да служат на божествената наука и се молят да пишат научни статии по цял ден. Може би целта е благородна, но е безполезна в реалния живот. Старо ниво 10 - 2

3 Грешен еталон за сравнение.

Студентите често се сравняват с ученици и се гордеят, че са по-добри. Тази илюзия продължава, докато човек не започне да мисли за намиране на работа и не обърне погледа си на друга страна. Всъщност, ако студентите се сравняват с работещи специалисти, те ще видят, че стигат до целта си с малки стъпки. Не бъдете средни в колежа. Защото, ако правите „Howто правят всички“, ще получите резултата „всички получават“. Повечето студенти в колежа са случайни, те всъщност нямат други възможности. Може би са бor принудени да влязат в колежа от родителите си и нямат ни най-малка представа за бъдещата си професия. Това се случва често. Не се сравнявайте с приятелите си. Вашите завършени проекти и вашите успехи в работата ще служат най-добрият критерий за вашите знания и умения. Не се сравнявайте с „безличната тълпа“;

4 Професионалното обучение е само малка част от знанията, които получавате в колежите.

Когато дойдете на работа, ще бъдете попитани Howво можете, а не Howво сте научor. Вашият шеф ще се интересува Howво знаете и можете да правите в списъка с изисквания за работата: получавате конкретна задача, но не получавате обяснение How да я направите, а той очаква резултати навреме. Късмет! Учите история в колежа и ще работите като банков оператор – това доближава ли ви до целта or отдалечава от нея? Технически, вие знаете повече. Означава ли, че ви сближава? Но всъщност с всеки семестър имате все по-малко време за натрупване на ценни професионални знания и количеството им остава същото. Така че практически – вие сте по-далеч от целта си.

5. Колежът не си поставя за цел „да ви направи висококвалифициран специалист“.

Трудно е да уцелиш гол, когато не го целиш. В колежа те правят всестранен специалист. Получавате нещо като „второ средно образование“. Само забравят да кажат, че човек, който учи всичко, нищо не знае. Помните ли трите цели на университета: наука, общообразователна и професионална подготовка? Какво мислите, че трябваше да се намали, за да се добавят наука и общо образование? Вдясно: професионални дисциплини. И все още ли смятате, че целта на университета е да ви направи висококвалифициран специалист?

6. Ако човек учи повече от два предмета едновременно, той си губи времето.

Това изглежда грешно след учorщното образование. Разбирате истината за това само на работа. Часовете в учorще са толкова кратки не защото е ефективно, а защото ученикът е още дете, не може да се концентрира повече от час. Но често превключването между задачите пречи на мозъка ви да мисли ефективно. На работа ще трябва да се представяте като възрастен и там честото превключване между задачите ще намали значително ефективността ви. Защо мислите, че можете да се подготвите за изпити за нула време? Вие просто не изпълнявате много задачи и ефективността ви се увеличава в пъти. Да учиш нещо на малки парчета е пълна глупост. Само си представете, че сте на диета само шест часа седмично – колко скоро ще дойде резултатът?

7. В колежа човек само леко докосва темата.

Да приемем, че учите нещо в продължение на два семестъра. Имате две лекции и две практически занятия седмично. Този сериозен подход като за колеж. И така, колко часа прави това? Четири занятия са 2 академични часа (1,5 обичайни часа) – това са 6 часа седмично. Учим четири месеца през първия семестър: септември, октомври, ноември и декември. Още 4 във втория: февруари, март, април, май. Общо: 8 месеца, по 4,5 седмици. 6 часа всяка седмица. Това прави 216 часа годишно. Само да знаете, скъпи мои ученици, че в месеца има 180 работни часа. Всеки годишен курс може да се научи за месец и половина, а ако наистина искате (or трябва) за един месец.

8. Учат ви най-общи, практически безполезни и остарели знания.

Старо ниво 10 - 3Всяко знание има различна стойност в зависимост от проблема, който трябва да разрешите. Когато се давиш да знаеш How да плуваш е много по-полезно от курса по философия, който си научил, нали? И ако си намерите работа като касиер, да знаете How да смятате е по-добре, отколкото да знаете латински език на основно ниво. Най-полезната част от вашата професионална реализация без съмнение е практическият опит и запознаването с последните постижения на вашата професия. Вашият учител в колежа най-вероятно никога не е имал практически опит и не е запознат с най-новите постижения. И дори да е чел някъде за тях, няма представа за тяхната стойност и сферата, в която се прилагат. Дори и да научите 100 безполезни предмета, те няма да издържат 10 полезни.

9 Практическите умения са 10 пъти по-ценни от теорията.

В реалния живот често трябва да ПРАВИТЕ нещо на работа. Ако знаете How да го направите or смятате, че знаете, това не означава непременно, че наистина можете да го направите . Знаете, че пушенето е вредно за вас, но можете ли да го откажете? Знаете, че спортуването е правилното нещо, но тренирате ли всъщност? Знаете, че чуждите езици са полезни за вашата кариера, но можете ли всъщност да научите няколко? В живота всичко, което има meaning, е практиката. Колкото повече знания имате без практика, толкова по-малка е тяхната стойност. Как ще решите кое знание е грешно, старо, неправилно използвано и кое наистина работи? Никога не си мислил за това? Добре дошли в реалния свят. Можете да научите регулиране на трафика на A or B, но пак няма да можете да шофирате. Теорията е добра основа за практика. Да приемем, че изграждате стена: тухлите са практика, фугиращата смес е теория. Без фугираща смес (теория) стената ще бъде нестабилна, но без тухли (практика) вашата теория е безполезна. И така, господа, разделете вашите 5 години в колежа на 10. Половин година – това е истинският резултат от дългогодишните ви „усorя“. Искаш доказателство? Когато си намериш работа и работиш половин година ще видиш, че знанията ти в колежа са се удвоor .

Достигнахте ново ниво

Ниво 10

Старо ниво 10 - 4

1 Ели, За силното типизиране на обекти

- Хей, Амиго! - Хей, Ели! - Днес съм във весело настроение, така че ще ви кажа нещо много интересно. Ще започна с примитивни типове в Java. - В Java всеки обект и всяка променлива има свой твърдо codeиран неизменен тип. Типът на променливата се определя при компorрането на програмата, типът на обекта - при нейното създаване. Типът на новосъздадения обект и/or променливата остава същият през целия им живот. Пример: Старо ниво 10 - 5- Но има няколко интересни подробности, които трябва да запомните. - Първо, референтната променлива не винаги съхранява обекта от същия тип като своя собствен тип. - Второ, при взаимодействието на променливите от два различни типа, те първо трябва да бъдат преобразувани в общ тип. - Ами разделението? Ако разделим 1 на 3, получаваме 0,333(3). не е ли - Не, не е. Когато разделите две цели числа, резултатът също е цяло число. Ако разделите 5 на 3, тогава отговорът е едно и две в остатъка. Така остатъкът се изхвърля. - Ако разделим 1 на 3, получаваме 0 (и 1 – остатъкът се изхвърля). - Какво трябва да направя, ако все пак искам да получа 0,333? - В Java, преди да разделите две цели числа, най-добре е да приведете едно от тях към реален (дробен) тип, като го умножите по реално число 1.0. Старо ниво 10 - 6- Схванах го.

2 Риша, Списък на основните типове

- Хей, Амиго! - Хей, Риша! - Вече научихте основите на синтаксиса на Java, но искам да ви кажа някои неща по-подробно. - Днес ще ви разкажа малко за примитивните типове и колко памет заемат. Ще ви трябва и може би дори днес. Тези типове са: Старо ниво 10 - 7- Ще опиша подробно всеки тип. - Типът byte е най-малкият тип цели числа. Всяка променлива от този тип заема само един byte памет. Така че може да съхранява стойности в диапазона от -128 до 127. - Защо се нуждаем от толкова малък тип? Защо не използвате int навсякъде? - Можеш да го направиш. Но ако създавате огромни масиви и не е необходимо да съхранявате стойности повече от 100 там, тогава защо да не използвате този тип? Прав ли съм? - Типът кратъке два пъти по-дълъг от типа byte и също така съхранява само цели числа. Най-голямото число, което се побира в него, е 32767. Най-голямото отрицателно число е -32768. - Вече знаете типа int . Може да съхранява цели числа до два мorарда, Howто положителни, така и отрицателни. - Типът float е създаден за съхраняване на реални (дробни) числа. Размерът му е 4 byteа. - Всички дробни числа се съхраняват в паметта в много интересна форма. - Например 987654.321 може да бъде представено като 0. 987654321 *10 6 . Следователно в паметта се представя като две числа «0. 987654321 » ( значимото ) и « 6 » (степента - степен на десет ) - Защо е толкова трудно? - Такава вътрешна структура на променлива позволява да се съхраняват много по-големи числа от int, като се използват само 4 byteа. Но така се отказваме от точността. Част от паметта се използва за съхраняване на експонента, така че дробните числа запазват само 6-7 цифри след десетичната запетая, а останалите се изхвърлят. -Тези числа се наричат ​​още числа с плаваща запетая. Между другото, оттам идва и името на типа – float . - Виждам. - Типът double е от същия тип като float , но два пъти (double) по-дълъг - заема осем byteа.Максималният размер на степента и броят на значещите цифри в този тип са по-големи. Използвайте този тип, ако трябва да съхранявате реални числа. - Типът char е хибриден тип. Стойностите му могат да се интерпретират Howто като числа (които можете да събирате и умножавате), така и като знаци. Това беше напequalsо, защото въпреки че знаците имат визуално представяне, за компютъра те са просто числа. Много по-лесно е да ги използвате като числа. Има още един коментар: типът char е строго положителен. Не може да съхранява отрицателни стойности. - Типът boolean е логически тип, той може да съхранява само две стойности: true и false . - Типът Object, въпреки че е представен в tableта, не е примитивен тип. Това е базовият клас за всички класове в Java. Първо, всички класове се считат за наследени от този клас и следователно съдържат неговите методи. Второ, могат да му бъдат присвоени обектни препратки от всяHowъв тип. Включително нулевата препратка. - Научих много. Благодаря за лекцията, Риша.

3 Ели, Преобразуване на типове. Тип разширяване и стесняване.

- И тук започва забавлението. Ще ви разкажа за преобразуването на типа. Въпреки че типовете променливи винаги са едни и същи, има място, където можете да конвертирате типове. Това е задача . - Можете да присвоите променливи от различни типове една към друга. По този начин стойността, взета от променлива от един тип, ще бъде преобразувана в стойност от друг тип и присвоена на втората променлива. - Така че има два вида преобразуване: разширяване и стесняване. Разширяването е като преместване на неща от малка кошница в по-голяма - работата е гладка и безпроблемна. Стесняването е като поставяне на неща от голяма кошница в по-малка: може да няма достатъчно място и нещо ще трябва да бъде изхвърлено. - Ето видовете, сортирани по размера на «кошницата»: Старо ниво 10 - 8- Има няколко коментара:
  1. char е същата „кошница“ като short , но има един момент: при копиране на стойности от short към char стойности по-малки от 0 се отхвърлят. При преминаване от char към short стойности, по-големи от 32 767, се отхвърлят.
  2. Когато преобразувате цели числа в дроби, цифрите от нисък ред могат да бъдат изхвърлени. Но тъй като дробното число е предназначено да съхранява приблизителна стойност, тогава такова присвояване е разрешено.
- Когато стеснявате типа, трябва ясно да покажете на компилатора, че не грешите и не изхвърляте част от число нарочно. За да направите това, използвайте оператор за преобразуване на типа . Това е име на тип в скоби . - Ето How да присвоите променливи от различни типове: Старо ниво 10 - 9 - Операторът за преобразуване на тип трябва да бъде деклариран преди число/променлива всеки път, когато част от число се изхвърля or се получи стесняване на типа. Операторът се прилага само към числото/променливата, която следва непосредствено след него. Старо ниво 10 - 10- Виждам.

4 Диего, Задачи за преобразуване на цели числа

- Хей, Амиго! Ето вашите задачи за разговор на цели числа. Трябва да поставите cast оператор, където е необходимо, така че програмата да компorра:
Задачи
1 1. Тип cast и
byte за разговор a = 1234;
int b = a;
byte c = a * a;
int d = a / c;
2 2. Тип cast и разговор
int a = 15;
int b = 4;
float c1 = a / b;
float c2 = (float) a / b;
float c3 = (float) (a / b);
3 3. Тип cast и разговор
float f = 333.50;
int i = f;
byte b = i;
4 4. Тип гласове и разговор
кратко число = 9;
символ нула = '0';
char девет = нула + число;
5 5. Тип гласове и разговор
кратко число = 9;
символ нула = '0';
къса деветка = нула + число;

5 Ели, Преобразуване към типа String

- Сега ще имаме малка, но интересна тема - Преобразуване на низове. - В Java можете да конвертирате всеки тип данни в типа String. - Звучи обещаващо. - Всъщност дори е по-добре. Можете неявно да конвертирате почти всички типове в String. Това се показва най-добре, когато добавите две променливи: String и «non-String». В такъв случай променливата, която не е String, се преобразува принудително в String. - Ето, разгледайте няколко примера: Старо ниво 10 - 11Заключение: Ако добавим String към всеки друг тип, вторият обект се преобразува в String. - Обърнете внимание на четвъртия ред на tableта. Всички операции се изпълняват отляво надясно, така че събирането на 5 + '\u0000' се случва като събиране на цели числа. - Значи, ако напиша code като String s = 1+2+3+4+5+"m" , тогава получавам s = "15m" ? - да Първо числата ще бъдат добавени и след това преобразувани в низ.

6 Диего, Задачи за преобразуване на типове като цяло

Старо ниво 10 - 12- А сега, малка лекция на Диего. Кратко и точно за референтните типове. - Досега започваме с променлива от тип обект. Тази променлива може да бъде присвоена препратка от всяHowъв тип ( разширяване на типа ). За да направим обратното присвояване ( стесняване на типа ), трябва изрично да посочим оператор за преобразуване: Старо ниво 10 - 13- Няма промени в обекта, когато се промени препратката към него. Стесняването и разширяването на типа при присвояване е проверка на съвместимостта на референтния тип променлива и типа на обекта. - Уау, вече е много по-ясно. Благодаря ти, Диего. - За да избегнете грешки, Howто в примерите , има начин да разберете Howъв тип се съхранява в променлива от типа Object : Старо ниво 10 - 14- По-добре е да се прави такава проверка преди всяко стесняване на типа, ако типът на съхранявания обект е напълно неизвестен. - Схванах го.

7 Ели, Реални типове

- Ето няколко интересни неща за реалните (които са дробни) типове. Нека започнем с този пример: Старо ниво 10 - 15- В резултат на това изчисление стойността на f е равна на … нула! - Риша ми каза нещо такова ... - О, наистина ли? Добре е. Практиката прави перфектния. - Всъщност в примера няма грешка. Когато едно цяло число се дели на друго цяло число , резултатът също е цяло число; остатъкът от деленето просто се изхвърля. За да избегнете това, уверете се, че поне едно от двете числа, включени в делението, е дробно. - Ако едно от числата е дробно, второто число първо се преобразува в дробен тип и след това следва делението. - Ето How можем да разрешим този проблем: Старо ниво 10 - 16- А Howво ще стане, ако в делението участват променливи? - Тогава става така: Старо ниво 10 - 17- Но това не изглежда добре. Има ли по-удобен оператор за разделяне? - Не, това е всичко. - Е, добре, предполагам, че няма да има проблем.

8 Ели, Литерали

- И накрая една професорска лекция на Риша, която е много безполезна информация. Всички преподаватели харесват това. Това може да изглежда трудно за разбиране за вас. Така че просто погледнете и не му мислете много. - Добре, тогава съм готов. - Днес ще ви кажа Howво представляват литералите . Литералите са всички данни, съхранявани директно в Java codeа. Примери: Старо ниво 10 - 18 - Всъщност има още няколко литерала. Използвайки литерали, можете да задавате стойности от всеки познат тип: Старо ниво 10 - 19- С други думи, codeът е методи, класове, променливи,... а литералите са специфични стойности на променливи, съхранявани директно в codeа. Правилно ли разбирам? - Да, имаш. - Глоба. Най-накрая получавам представа за цялата тази Java.

9 Професор, Лекция за видовете

- Страхотен! И накрая, това е любимата ми тема - преобразуване на типове. Дори си спомням, когато моят професор ми каза за това. Беше много „завладяващо“. Тогава нищо не разбрах. Но разбира се, вие ще разберете всичко благодарение на тези страхотни лекции. Ето ги: Java Conversions и промоции (Oracle Documentation) Data Type Casting (Type Conversion) Java Cast и Conversions Widending and Narrow conversions

10 юли

- Еха! Е, наистина си умен, Амиго! Толкова много неща научих само за две седмици! Ти си като чудовище. Между другото, Howво ще кажете за малко забавление след две седмици робски труд?

11 Капитан Катерици

(- Помогнах ти. Направи го у дома.) Домашна работа (10 единици) - Здравей, войнико! - Добро утро, сър! - Имам страхотни новини за вас. Ето една бърза проверка, за да затвърдите уменията си. Правете го всеки ден и ще подобрите уменията си много бързо. Задачите са специално проектирани за изпълнение в Intellij IDEA.
Допълнителни задачи за изпълнение в Intellij Idea
1 1. Правилният отговор е: d=2,941
Добавете един оператор за преобразуване на типове, за да получите d = 2,941
2 2. Правилният отговор е: d=5.5
Добавете един оператор за преобразуване на типове, за да получите d = 5.5
3 3. Правилният отговор е: d=1.0
Добавете един оператор за преобразуване на типове, за да получите d = 1.0
4 4. Голяма заплата
Покажете на екрана съобщението «Не искам да уча Java, искам голяма заплата» 40 пъти следвайки примера.

Пример:
Не искам да уча Java, искам голяма заплата
не искам да уча Java, искам голяма заплата
не искам да уча Java, искам голяма заплата
o не искам да уча Java, искам голяма заплата
не искам да науча Java, искам голяма заплата
не искам да науча Java, искам голяма заплата
...
5 5. Броят на буквите
Прочетете от клавиатурата 10 низа и пребройте броя на различните букви в тях (за всичките 26 букви от азбуката). Показване на резултата на екрана.

Примерен резултат:
a 5
b 8
c 3
d 7

z 9
6 6. Конструктори на класа Human
Напишете клас Human с 6 полета. Измислете 10 различни конструктора за него и ги внедрите. Всеки конструктор трябва да има meaning.
7 7. Преместете минимум статични модификатори
Преместете възможно най-малко статични модификатори, така че codeът да се компorра.
8 8. Масив от списъци с низове
Създайте масив, чиито елементи са списъци от низове. Попълнете масива с всяHowви данни и ги покажете на екрана.
9 9. Еднакви думи в списъка
Прочетете от клавиатурата 20 думи, попълнете списък с тях. Пребройте броя на еднаквите думи в списъка. Резултатът трябва да бъде Map <String, Integer> . Ключът на картата трябва да бъде уникален низ, стойността - брой на този низ в списъка. Показване на съдържанието на картата на екрана.
10 10. Пет най-големи числа
Създайте списък от цели числа. Прочетете 20 цели числа от клавиатурата и попълнете списък с тях. Създайте метод за безопасно извличане на числа от списъка:
int safeGetElement(ArrayList<Integer> list, int index, int defaultValue)

Методът трябва да върне елемент от списъка по неговия индекс. Ако възникне изключение в този метод, трябва да го прихванете и да върнете defaultValue .
- Тези задачи бяха за зелените. Добавих бонус задачи с по-висока сложност. Само за топ оръжия.
Бонус задачи
1 1. Програмата не се компorра и не стартира. Оправи го.
Задача: Програмата показва How работи HashMap. Програмата чете от клавиатурата набор от двойки (число и низ), поставя ги в HashMap и показва на екрана съдържанието на HashMap.
2 2. Добавете нова функционалност към програмата.
Стара задача: Програмата трябва да изведе въведена от клавиатурата двойка (число и низ).
Нова задача: Програмата да съхранява в HashMap двойки (число и низ), въведени от клавиатурата. Празен низ означава край на въвеждането. Числата могат да се повтарят. Низовете винаги са уникални. Входните данни не трябва да се губят! Програмата трябва да показва съдържанието на HashMap на екрана.

Примерен вход:
1
Stop
2
Look

Примерен изход:
1 Stop
2 Look
3 3. Разучаване и практикуване на алгоритъм.
Задача: Прочетете от клавиатурата 30 числа. Покажете на екрана 10-то и 11-то минимално число.
Съвет:
Минималното число е първият минимум.
Следващият минимум е 2-ри минимум Обяснение

1:
1 15 6 63 5 7 1 88
Първият минимум е 1
Вторият минимум е 1 Третият минимум е 5
Четвъртият минимум е 6


Обяснение 2:
0 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 36
0 6 9 39 42 78 12 15 3033 63 66 69 3 81 84 87 45 48 51 54 57 60 72 75 18 21 24 27 69 36 0 18
21 6 27 9 39 42 78 12 33 63 66 3 81 84 87 45 15 30 48 51 54 57 60 72 75 24
Първият минимум е 0
Вторият минимум е 3
...
Десетият минимум е 27
Единадесетият минимум е 30

Пример за въвеждане:
36 0 6 9 39 42 78 12 15 30 33 63 66 69 3 81 84 87 45 48 51 54 57 60 72 75 18 21 24 27

Примерен резултат:
27
30
Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION