CodeGym/Java Blog/Random/Lumang Antas 06
John Squirrels
Antas
San Francisco

Lumang Antas 06

Nai-publish sa grupo

Roadmap ng isang Java Developer

Nagtataka ang isang kaibigan ko kung bakit laging masaya ang mga developer. Ang sagot niya ay simple at nakakagulat: ginagawa nila ang gusto nila at kumikita ng malaking pera. Maligayang pagdating sa mundo ng mga software developer. Lumang Antas 06 - 1

Ang suweldo ng developer ng software

Gusto kong sabihin sa iyo ang tungkol sa mga suweldo ng mga developer. Paano ang lupa ay namamalagi sa mga suweldo, kung saan ka dapat pumunta sa trabaho, at kung saan hindi dapat. Kung ikaw ay hindi isang developer at subukang palaisipan ito sa iyong sarili, maaari kang makakuha ng medyo kontrobersyal na data. Ang pangunahing punto ay ang pangunahing kadahilanan na nakakaimpluwensya sa suweldo ng isang developer ay hindi kwalipikasyon, ngunit ang lugar ng trabaho. Minsan, kung bibigyan ng pantay na antas ng kwalipikasyon, ang pagkakaiba sa pagitan ng mabuti at masamang lugar ng trabaho ay maaaring 2 hanggang 10 beses(!) Sa bawat ibinigay na sandali ng oras ang iyong kwalipikasyon ay pare-pareho. Hindi ka maaaring maging dalawang beses bilang kwalipikado sa isang buwan at mababayaran ng dalawang beses nang mas malaki. Ngunit maaari kang magpalit ng lugar ng trabaho sa isang buwan at makakuha ng dalawang beses na mas malaking suweldo. Minsan sa daloy ng dalawang buwan ang aking suweldo ay pinarami ng tatlo (!) – Hindi malilimutang karanasan. Kaya, alamin natin, kung aling lugar ang pinakamaganda.
  1. Kung ang pangunahing negosyo ng isang kumpanya ay software development
  2. Kung ang kumpanya ay nakatuon sa global o lokal na merkado
  3. Saan matatagpuan ang pangunahing tanggapan: maunlad na bansa o umuunlad na bansa
Tandaan na ang lungsod kung saan ka nagtatrabaho ay walang kaugnayan. Ibig sabihin, kung kumikita ka ng limang beses na mas mababa sa Barcelona kaysa sa iyong kaibigan sa New-York, malamang na naimpluwensyahan ng mga salik na nabanggit ko. 

Mga tiyak na numero

Dahil iba-iba ang mga suweldo sa iba't ibang bahagi ng mundo, iminumungkahi kong kunin ang suweldo ng Senior Java Developer na may 5 taong karanasan bilang panimulang punto at tawagin itong "5 taon na maximum". Ang lahat ng mga numero sa ibaba ay ibibigay bilang isang porsyento ng halagang ito. Narito ang ilang mga halimbawa ng “5 taong maximum” na suweldo sa iba't ibang lungsod sa mundo: Lumang Antas 06 - 2Sa ibaba ay ipinapakita kung magkano ang maaaring kitain ng isang Java Senior Developer na may 5 taong karanasan depende sa kumpanyang pinagtatrabahuhan niya: Lumang Antas 06 - 3Lumang Antas 06 - 4Ano ang kakaibang bagay sa kasalukuyang sitwasyon? Kalahati ng lahat ng programmer ay nagtatrabaho sa 1 at 2 na antas ng mga kumpanya. Gusto mong malaman, ano ang catch? Mayroong daan-daang mga bukas na bakante sa 3 at 4 na antas ng mga kumpanya. Ang mga kumpanyang ito ay handang mag-alok sa iyo ng mas mataas na suweldo at, kadalasan, mas magandang kondisyon sa pagtatrabaho. May alam akong dalawang Java Junior's, ang isa sa kanila ay nakakuha ng trabaho na nagbabayad ng humigit-kumulang 3% ng "5 taon na maximum" (level 1 na kumpanya), at ang isa ay nakakuha ng trabaho na may 30% ng "5 taon na maximum" na suweldo (level 4). Kaya bakit bababa? Ang pangangailangan para sa mga programmer ay lumampas sa alok – huwag magtrabaho kung saan mas mababa ang binabayaran mo! Konklusyon 1: Ang average na suweldo para sa mga developer ng Java (na may anumang karanasan) ay 40%-50% ng "5 taong maximum" na suweldo. Konklusyon 2: Ang iyong average na suweldo sa loob ng 5 taon ay magiging 90%-110% ng “5 year maximum” na suweldo, kung hindi ka nagtatrabaho sa 1 at 2 level na kumpanya, at nagtatrabaho para sa mga kumpanya sa level 3 at 4.

Ano ang maaari mong makamit maliban kung gumawa ka ng mga katangahan

Kung magsisimula kang magtrabaho sa iyong self-education sa programming ngayon, ang iyong suweldo ay maaaring magmukhang ganito: Lumang Antas 06 - 5

Plano

0-3 buwan (Mag-aaral)

Kaunti lang ang alam mo tungkol sa programming. Maaaring pinag-aralan mo ito sa paaralan o sa isang kolehiyo sa pangunahing antas. Ang kailangan mong gawin ay matutunan kung paano magprogram at matuto ng Java. Ang iyong layunin ay makakuha ng trabaho bilang Java Junior Developer sa isang antas 3 o mas mataas na kumpanya. Sa unang tatlong buwan ng plano, wala kang makukuha, dahil nag-aaral ka lang kung paano magprogram. Ngunit ang mas maaga mong simulan ang mas mahusay. Ang pinakamagandang oras ay NGAYON. Sa hinaharap, kapag mayroon kang isang pamilya at maraming mga pautang, magiging mas mahirap na muling maging kwalipikado. Upang maitama ang iyong pagkakamali, kailangan mong magtabi ng pera upang bayaran ang hindi bababa sa isang taon ng normal na buhay. Huwag gumawa ng mga hangal na pagkakamali.

3-15 buwan (Java Junior Developer)

Nagtatrabaho ka na bilang software developer at lumalaki ang iyong karanasan araw-araw. Huwag magpahinga. Marami kang dapat gawin bago magpahinga sa mga sagwan. Ang kailangan mong gawin ay – pag-aralan ang mga teknolohiyang kakailanganin mo bilang Middle Developer. Ano ang mga ito? Ang mundo ay patuloy na nagbabago. I'll load you with advices and life will change it all. Maghanap ng ilang bakante sa web at tingnan kung ano ang kailangan mong ilapat. Siguraduhing magbasa ng libro ni Bruce Eckel "Thinking in Java". Ang iyong layunin sa unang taon ng pagtatrabaho bilang Java Junior Developer ay maabot ang antas ng Java Middle Developer. Walang nagsasabi na magiging madali iyon, ngunit posible iyon para sa taong nakatuon sa layunin. Ito ay magtataas ng iyong suweldo sa isang iglap hanggang 40% ng “5 taon na maximum” ($50K para sa SF at London, $6K para sa Bangalore).

2-d year programming (Java Middle Developer, level 1)

Nakagawa ka ng isang mahusay na trabaho noong nakaraang taon at ngayon ikaw ay isang Java Middle Developer. Maaari kang mamuhay nang maayos na kumikita ng 50% ng suweldo ng Senior Java Developer. Binibigyan ka ng ilang seryosong gawain sa trabaho at ang iyong karanasan ay lumalaki nang malaki. Maaabot mo ang antas ng Java Senior Developer sa loob ng dalawa o tatlong taon. Hindi kailangang magmadali. Hindi ka naman makakakuha ng malaking mataas sa suweldo. Ang kailangan mong gawin ay matuto ng mga pattern ng disenyo, basahin – Kumpleto ang Kodigo ni McConnell. Maperpekto ang kalidad ng iyong code at mga kasanayan sa koponan. Gumawa ng panuntunan sa pagbabasa ng 1 libro sa computer programming bawat buwan. Pagkatapos, sa loob ng 4 na taon, magiging 50 aklat ka nang mas matalino kaysa sa iba. Huwag ipagpaliban ito: hindi ka makakakuha ng mas malaking halaga ng bakanteng oras, bukod pa, malamang na magsisimula ka ng isang pamilya, o kung mayroon ka, ito ay magiging mas malaki. Ang iyong layuninay ang pumili ng ilang teknolohiyang pagdadalubhasaan bilang isang Senior Java Developer. Hindi mo matututuhan silang lahat, alam mo. At palaging isang magandang desisyon ang pagiging guru sa isang espesyalisasyon. Lumang Antas 06 - 6

3-d year programming (Java Middle Developer, level 2)

Isa ka na ngayong makaranasang Middle Developer at iniisip mong maging Senior Developer. Ito ay kaaya-aya at prestihiyoso. Ang iyong suweldo ay lumampas sa 60% ng "5 taon na maximum" ($10K sa Bangalore, $25K sa Kiev, $40K sa Berlin, $80K sa New York). Mula sa sandaling ito on demand para sa mga propesyonal na tulad mo tumaas ang alok. Palagi kang makakahanap ng trabaho sa loob ng ilang araw at halos hindi ka na kikita ng mas kaunti kaysa ngayon. Syempre yun kung wala kang gagawing katangahan. Ang kailangan mong gawin aypatuloy na pag-aralan ang mga teknolohiyang pinili mo. Magtrabaho ng mas mahusay. Hindi para sa kapakanan ng iyong employer, para sa iyong sarili. Mag-apply upang lumahok sa mga proyektong may kinalaman sa mga promising na teknolohiya (tulad ng BigData, sa sandaling isinusulat ang artikulong ito). Gugugugol ka pa rin ng 8 oras sa isang araw sa opisina, kaya bakit hindi kumuha ng kaunting pera para dito, at, ano ang mas mahalaga, pinakamahalagang karanasan na kakailanganin mo sa hinaharap. Ang iyong layunin ay makahanap ng bagong trabaho. Ang isang mahusay na koponan ay palaging matatagpuan. Haharapin mo ang mga bagong proyekto at teknolohiya. Hindi mo kailangang mag-root sa iyong upuan. Kung nagtatrabaho ka pa rin sa isang pangatlong antas ng kumpanya, isipin ang pag-empleyo sa ikaapat na antas ng isa.

5-th year programming (Java Senior Developer, level 1

Isa ka na ngayong Senior Developer. Siguro, hindi mo ito deserve, at nararamdaman mo. Gayunpaman, ang aking pagbati. Hindi mahalaga kung karapat-dapat ka sa iyong posisyon ngayon, ang mahalaga ay maging karapat-dapat ka rito sa hinaharap. I think you'll agree it's better to get a good job and after grow to the level required then vice versa. Sana hindi mo nakalimutan ang payo ko na magbasa ng isang libro sa isang buwan? Kahit sinong mag-aaral ay maiinggit sa iyong kaalaman at kakayahan ngayon. Upang maging mas tiyak, siya ay magdarasal para sa kanila. Isipin mo na lang: mayroon kang seryosong kita, malapit sa 90% ng “5 taon na maximum” na suweldo. Malamang bata ka pa. Ang mundo ay nasa iyong paanan. Ang kailangan mong gawin ayupang muling suriin ang mga teknolohiyang pinili mo. Marahil, kailangan mong baguhin ang espesyalisasyon. Nagbago ang mundo, nagbago ang mga teknolohiya, at medyo nakakuha ka ng kaalaman sa nakalipas na dalawang taon. Ang pipiliin mo ngayon ay magiging headline para sa ilang susunod na taon para sa iyo. Oras na para piliin ang iyong mga paboritong teknolohiya. Ang iyong layunin ay piliin ang iyong direksyon sa paglago. Marami sila, walang makakapagsabi sa kanilang lahat, ngunit ang iyong pinili ay dapat gawin ngayon. Kung gumawa ka ng kaunting pagbabago ngayon, magkakaroon ka ng malaking pagbabago sa hinaharap.

6-th year programming (Java Senior Developer, level2)

Nakapagdesisyon ka na sa iyong kinabukasan at nagsusumikap ka sa iyong pangarap na matupad. Isang direksyon na napili nang tama kasama ang pagnanais na sumulong – at ang resulta ay hindi magtatagal. Binabati kita. Masaya akong makitang may isa pang taong nakarating sa kanyang pangarap. May isang malalim na katotohanan. Ang mga tao ay madalas na labis na tinatantya kung ano ang maaari nilang makamit sa isang taon at maliitin kung ano ang maaari nilang gawin sa lima. Tumingin sa limang taon na ang nakaraan. Ito ay gayon. Ang kailangan mong gawin ay iwasan ang mga hindi matalinong desisyon at huwag maging tamad. Ang iyong layunin ay pumili ng direksyon at sumulong. O akala mo ba dito na magtatapos? Tandaan ang iyong pagtatapos. Hindi ito ang katapusan, ito ay simula lamang.

Dalubhasa ka sa hinaharap

Lumang Antas 06 - 7Maaari kang lumaki bilang teknikal na espesyalista (upper branch), bilang management (lower branch) o bilang hired professional/independent consultant (medium branch). Ang lahat ay depende sa kung ano ang gusto mo.

Ang karera ng Java Developer

Ang karera ng developer ay iba sa iba. Hindi mo kailangang maging manager para kumita ng magandang pera. Madalas nangyayari na mas malaki ang kinikita ng isang Senior Developer kaysa sa kanyang manager-boss. Kung mas maraming karanasan ang iyong nakukuha, mas lumalakas ang iyong pakikipagtrabaho sa iyong boss, mula sa "boss-subordinate" ay nagiging "star at ang manager". Spoiled knowing their worth developers pick projects and vacancies. Maging masaya tayo para sa ating sarili. Kaya ano ang kailangan mo upang maging isang napaka-pinapahalagahan at sikat na developer sa buong mundo? Dapat ay mayroon kang malaking karanasan sa karamihan ng hinihiling at mga bagong teknolohiya. Paano ito makakamit? Tingnan sa ibaba. Lumang Antas 06 - 8Sa sandaling makakuha ka ng trabaho bilang isang developer, dalawang bagay ang magsisimulang mangyari sa iyo; gayunpaman, hindi sila palaging nakikita. 1. Nagkakaroon ka ng karanasan sa mga totoong proyekto at mabilis na lumago. Ang isang taon sa trabahong ito ay nagbibigay sa iyo ng higit na karanasan kaysa 5 taon sa kolehiyo. Ang karanasan ay isang mahalagang isyu kung kaya't isinusulat nila ang "Java developer na may 3 taong karanasan na kinakailangan" sa mga bakanteng nai-post. 2. Nag-aaral ka ng mga bagong teknolohiya 8 oras sa isang araw at mababayaran mo ito. Talagang hindi mo masusulit ang katotohanang ito. Sa ilang mga kaso, ang mga kasanayang nakukuha mo ay napakahalaga na maaari kang nagtrabaho nang libre upang makuha ang mga ito o kahit na magbayad. Kung pipiliin mo ang mga proyektong pinagtatrabahuhan mo nang matalino, malapit ka nang magkaroon ng karera sa developer ng software. Kaya... ano ang pipiliin? Madalas na nangyayari na hindi mo alam kung aling teknolohiya ang magiging kapaki-pakinabang, kaya sisimulan mong pumili sa "gusto at hindi gusto" at "mga uso sa fashion". Maaaring swertehin ka o hindi. Kaya mas mabuting alamin mo muna ang iyong patutunguhan. Mayroong maraming mga paraan upang mag-evolve para sa mga programmer, kaya, upang gawing simple, pipili ako ng ilan sa kanila at isusulat ang aking pananaw sa sitwasyon sa hinaharap. Huwag isipin na ang pattern na ito ay isang matigas na linya; ito ay sa halip ay isang pinasimpleng pagtingin sa mga bagay na iniharap upang maging malinaw.

Dalawang daang taong gulang na developer

Kung nae-enjoy mo ang programming higit sa lahat, ito ang paraan mo: Senior Developer, pagkatapos ay Tech Lead Developer at isang arkitekto. Sa ganitong paraan maaari kang magtrabaho bilang isang developer sa loob ng 50 taon at higit pa. Sa karamihan ng mga kaso, ang suweldo ng mga Senior Developer at Tech Lead Developer ay lumampas sa mga suweldo ng kanilang mga manager. Kaya kunin ang halaga ng iyong pera.

Manager. Ang swerte mo hindi ka tulad ng iba

Napunta ka sa kalaban. Biro lang. Kung matuklasan mo ang mahusay na mga kasanayan sa organisasyon, ang iyong mga paraan ay: Team Lead, at pagkatapos ay Project Manager. Bibigyan ka nito ng pagkakataong maging pinuno ng departamento at magbukas ng sarili mong negosyo. Yun naman ang gusto mo diba?

Ang tahanan ay kung nasaan ang puso

Lumang Antas 06 - 9Kung nagsimula ka na ng isang pamilya , marahil, nais mong magkaroon ng maganda at tahimik na buhay sa isang bansang may malakas na ekonomiya. Marahil ay iniisip mong lumipat sa Canada, USA, Switzerland o kahit Australia. Mayroon kang mahusay na mga kasanayan at isang propesyon na hinihiling. Hindi mo na kailangang magsimula sa paghuhugas ng pinggan. Magsisimula ka bilang isang Java Senior Developer. Malamang, kumikita ng malaki. Hindi masama, ha?

Tingnan ang Naples at huwag mamatay.

Wala ka pang pamilya at mahilig kang maglakbay . Ang oDesk ay iyong lahat. Maghanap ng kliyente, sumang-ayon sa rate na $20-$50 kada oras, magdala ng laptop at pumunta! Ang iyong suweldo ay sapat na upang mabuhay saanman sa mundo. Bakit hindi mo simulan agad na matupad ang iyong mga pangarap?

Ayokong magprogram, babae ako..

Kung babae ka , maaaring kailanganin mong kumuha ng maternity leave . Parang isang sexist joke, which it is. Gayunpaman, mayroong maraming sentido komun dito. Malamang, ang pagkuha ng maternity leave ay makakakuha ka ng maraming pera sa maternity leave (sa mga bansang may mataas na proteksyon sa lipunan). May mga kumpanyang walang binabayaran, at may mga, na nagbabayad nang maayos. Ang isa sa aking mga estudyante ay nakakuha ng 1/3 ng taunang suweldo sa isang maternity leave. At nangyari ito noong tagsibol ng 2009, sa panahon ng pagtanggal sa trabaho. At sa loob ng isang taon at kalahati maaari kang bumalik, na hindi bababa sa Middle Developer.

Antas 6

Lumang Antas 06 - 10

1 Elly. Pagpapakita ng bagay. wala

- Hoy, Amigo! - Hi, Elly! Sasabihin mo ba sa akin ang isang bagay na kawili-wili ngayon? - Ngayon sasabihin ko sa iyo ang tungkol sa buhay ng isang bagay . Pagkatapos malikha ang isang bagay, ito ay umiiral (nabubuhay) hanggang sa hindi bababa sa isang variable ang mag-imbak ng address nito (mayroong kahit isang object reference). Kung wala nang mga sanggunian, ang bagay ay namatay. Mga Halimbawa: Lumang Antas 06 - 11- Ang bagay na «cat Tommy» ay umiiral sa isang linya lamang mula noong ito ay nilikha. Sa susunod na linya, ang tanging variable na nag-iimbak ng reference nito ay nakatakda sa null at sinisira ng Java virtual machine ang object. - Ang bagay na «cat Sammy» pagkatapos ng paglikha nito ay naka-imbak sa variable na cat1. O, sa halip, ang cat1 ay nag-iimbak ng isang sanggunian sa bagay. Pagkatapos, ang ilang linya sa ibaba ng reference na ito ay kinopya sa variable na cat2. Pagkatapos nito, ang isang reference sa isa pang bagay ay naka-imbak sa cat1, at ang reference sa «cat Sammy» ay nananatili lamang sa cat2. Sa wakas, sa huling linya ng pangunahing pamamaraan, ang huling sanggunian sa bagay ay nakatakda sa null. - Ang bagay na «cat Maisy» ay umiiral sa isang linya lamang mula noong ito ay nilikha. Sa susunod na linya ang variable na cat2 ay itinalaga ng isa pang halaga at ang reference sa «cat Maisy» ay nawala. Ang bagay ay nagiging hindi maabot at itinuturing na basura (patay). - Ang bagay na «cat Ginger» ay umiiral mula noong ito ay nilikha hanggang sa katapusan ng pamamaraan. Sa runtime kapag lumabas ang pamamaraan, ang variable na cat1 ay masisira, at pagkatapos ang bagay na «cat Ginger» ay masisira rin. - Ito ay malinaw. - Gayunpaman, kung gagawin mo ang object na Cat sa ilang paraan at iimbak ang reference nito sa isang variable ng klase, mananatili ang Cat hangga't mayroong reference dito mula sa isa pang umiiral na object. - Kadalasan, ang isang bagay ay hindi agad nasisira. Paminsan-minsan, ina-activate ng Java virtual machine ang koleksyon ng basura upang alisin ang mga hindi nagamit na bagay. Mamaya ko na sasabihin sayo. - Kung gusto mong huminto ang ilang variable sa pag-iimbak ng isang object reference, maaari mo itong italaga ng null value o isang reference sa isa pang object.

2 Propesor, Pagkolekta ng basura

Lumang Antas 06 - 12- Hoy, Amigo! Narito ang isang kapaki-pakinabang na link tungkol sa koleksyon ng basura sa Java. Tiyak na hindi iyon ang aking mahusay na mga lektura, ngunit sapat na iyon: Mga Pangunahing Kaalaman sa Pagkolekta ng Basura ng Java

3 Elly, tapusin mo na

- Hello ulit! Ngayon ay bibigyan kita ng maikling panimula sa pamamaraang finalize() . Ang pamamaraang ito ay tinatawag ng Java virtual machine sa object bago masira ang object. Sa katunayan, ang pamamaraang ito ay kabaligtaran sa tagabuo. Sa pamamaraang ito, posibleng ilabas ang mga mapagkukunang ginagamit ng isang bagay. - Ang class Object ay may ganitong pamamaraan, samakatuwid, ang bawat klase ay mayroon nito ( lahat ng mga klase sa Java ay itinuturing na minana mula sa class Object at naglalaman ng isang kopya ng mga pamamaraan nito ). Kung isusulat mo sa iyong klase ang finalize() na pamamaraan at ito ay tatawagin bago masira ang mga bagay ng klase na ito. Halimbawa: Lumang Antas 06 - 13- Nakuha ko. - Ngunit may isang bagay. Ang Java virtual machine ay nagpapasya para sa sarili kung tatawagin ang pamamaraang ito o hindi.Kadalasan, ang mga bagay na nilikha sa pamamaraan at idineklara bilang basura pagkatapos ng paglabas nito, ay sinisira kaagad at nang walang anumang mga tawag ng finalize() na pamamaraan. Ang pamamaraang ito ay isa pang instrumento ng kontrol sa panlabas (wala sa JVM) na paglalaan ng mapagkukunan. Mas mabuting ilabas mo ang lahat ng ginamit na panlabas na mapagkukunan at i-reset ang mga nakaimbak na sanggunian kapag gusto mong sirain ang bagay. Sasabihin ko sa iyo ang tungkol sa mga pakinabang ng pamamaraang ito at ang mga detalye ng trabaho nito sa 10 o 20 na antas. Samantala, dapat mong malaman ang dalawang bagay: umiiral ang ganitong paraan, at ( nakakagulat! ) hindi ito palaging tinatawag.

4 Elly, Object habang buhay

- Gusto ko ring sabihin sa iyo ang ilang mga kawili-wiling bagay tungkol sa panghabambuhay na bagay. Sa Java, napakahirap na mawala ang bagay nang hindi sinasadya; kung mayroon kang object reference, nangangahulugan ito na ang bagay ay tiyak na buhay. - Sa loob ng isang object reference ay nag-iimbak ng isang numero - address ng object na ito sa memorya. Hindi mo maaaring baguhin ang bilang na iyon, dagdagan o bawasan ito. Hindi ka makakagawa ng reference kapag mayroon ka lang address sa memorya. Maaari ka lamang lumikha ng isang bagong bagay at italaga ang reference nito sa isang variable. Ito ang tanging paraan upang makakuha ng bagong sanggunian. - Nakita ko. Iyon ay, kung itatakda ko sa null (burahin) ang lahat ng mga sanggunian sa bagay, hindi ko kailanman makukuha ang sanggunian ng bagay at ma-access ito? - Oo. Ngunit kadalasan ang kabaligtaran ay totoo - napakaraming mga live na bagay na hindi ginagamit.Karamihan sa mga programa ay gumagawa ng dose-dosenang mga bagay at iniimbak ang mga ito sa iba't ibang mga listahan sa oras ng pagtakbo, ngunit hindi kailanman linisin ang mga listahang iyon. - Kadalasan, nilagyan ng label ng mga programmer ang mga hindi gustong bagay bilang "tinanggal", iyon lang. Walang nagmamalasakit sa kanilang pagtanggal sa mga listahan. Kaya ang malalaking programa ng Java ay may posibilidad na mamaga - parami nang parami ang hindi nagamit na mga bagay na nananatiling buhay sa memorya. - Iyon lang. Sa hinaharap, palagi kong itutuon ang iyong pansin sa mga hindi nagamit na bagay at sa tamang pagtatapon ng mga ito. - ОK, salamat. Na-clear mo ang ilang bagay tungkol sa mga sanggunian.

5 Diego, Object panghabambuhay na gawain

- Hoy, Amigo! Narito ang ilang gawain para sa iyo:
Mga gawain
1 1. finalize() method ng Cat class
Sumulat ng method protected void finalize() throws Throwable sa klase Cat
3 2. Classes Cat and Dog at finalize() method para sa bawat class
Sa bawat Cat and Dog class magsulat ng finalize() method, na nagpapakita sa screen ng mensahe na ang object ay nawasak.
3 3. 50,000 object ng Cat class at 50,000 objects ng Dog class
Create in a loop 50,000 objects ng Cat class at 50,000 objects ng Dog class. (Sisirain ng Java virtual machine ang mga hindi nagamit na bagay, kaya ang method finalize() ay tatawagin kahit isang beses).
4 4. Cat counter
Sa Cat class constructor [public Cat()], taasan ang cat counter (static variable catCount of the same class) ng 1. Sa method finalize() ay bumaba ng 1.

6 Elly, Static na mga klase at pamamaraan

- Narito ang isang bagong kawili-wiling paksa. Gusto kong sabihin sa iyo ang tungkol sa mga static na variable at pamamaraan. - Oh, narinig ko na ang tungkol sa mga static na variable. Tungkol din sa mga static na pamamaraan, sa palagay ko. Ngunit nais kong magkaroon ng higit pang mga detalye. - Kapag nagdedeklara ng mga variable sa isang klase, tinutukoy namin kung ang mga variable na ito ay nilikha sa isang iisang shared instance, o kung kinakailangan na gumawa ng kanilang mga kopya para sa bawat object. Bilang default, isang bagong kopya ng variable ng klase ang nilikha para sa bawat object ng klase na ito. Narito kung ano ang hitsura nito: Lumang Antas 06 - 14- Bagama't ang mga variable na cat1.name at cat2.name ay idineklara sa parehong klase - Cat, nag-iimbak sila ng iba't ibang mga halaga, dahil nakatali sila sa iba't ibang mga bagay. - Ito ay malinaw. - Umiiral ang isang static na variable sa isang pagkakataon; kailangan mong i-access ito sa pamamagitan ng paggamit ng pangalan ng klase: Lumang Antas 06 - 15- Ito ay malinaw din. - Ang mga pamamaraan ng klase ay nahahati din sa dalawang kategorya. Ang mga ordinaryong pamamaraan ay tinatawag sa object at may access sa data ng object na ito. Walang ganoong pag-access ang mga static na pamamaraan , dahil wala lang silang object reference. Naa-access ng mga static na pamamaraan ang alinman sa static na variable ng klase na ito o iba pang mga static na pamamaraan. - Hindi maa-access ng mga static na pamamaraan ang mga non-static na pamamaraan o mga di-static na variable! - Bakit kaya? - Ang bawat ordinaryong variable ng klase ay inilalagay sa loob ng isang bagay. Maa-access lamang ng anumang paraan ang naturang variable kapag mayroon itong reference sa object na iyon. Ang nasabing sanggunian ay hindi ipinapasa sa static na pamamaraan. - Paano ang mga ordinaryong pamamaraan? - Sa ordinaryong paraan ay ipinapasa ang nakatagong sanggunian sa bagay kung saan tinatawag ang pamamaraang ito. Ang variable na nag-iimbak ng sanggunian na ito ay tinatawag na ito . Kaya, ang pamamaraan ay palaging makakakuha ng data ng sarili nitong bagay o tumawag ng isa pang non-static na pamamaraan ng parehong bagay. - Ang isang null ay ipinapasa sa isang static na pamamaraan sa halip na isang object reference. Samakatuwid, hindi maa-access ng isang static na paraan ang mga di-static na variable at pamamaraan - wala lang itong reference sa object kung saan sila nakatali. - Nakita ko. - Ganyan gumagana ang mga ordinaryong non-static na pamamaraan: Lumang Antas 06 - 16- At ganyang gumagana ang mga static na pamamaraan: Lumang Antas 06 - 17- Ang variable o isang paraan ay static kung idineklara ang mga ito gamit ang keyword na static. - At ano ang kabutihan ng gayong mga pamamaraan, kung limitado ang mga ito? - Ang diskarte na ito ay mayroon ding mga pakinabang nito. - Una, hindi mo kailangang ipasa ang anumang object reference para ma-access ang mga static na pamamaraan at variable . - Pangalawa, minsan kailangan na ang variable ay one-of-a-kind . Tulad ng, halimbawa, ang variable na System.out (static na variable sa labas ng System ng klase). - At pangatlo, kung minsan kinakailangan na tumawag ng isang paraan bago ka makagawa ng anumang mga bagay . - Sa anong okasyon? - Bakit sa palagay mo ang pangunahing pamamaraan ay idineklara na static? Upang tawagan ito kaagad pagkatapos ma-load ang klase sa memorya bago posible na lumikha ng anumang mga bagay.

7 Risha, Static na mga klase at pamamaraan

- Bilang karagdagan sa mga static na pamamaraan mayroon ding mga static na klase . Isasaalang-alang namin ang kasong ito sa ibang pagkakataon, magpapakita lang ako sa iyo ng isang halimbawa nito: Lumang Antas 06 - 18- Maaari kang lumikha ng maraming bagay ng klase ng Cat hangga't gusto mo. Hindi tulad ng isang static na variable, na umiiral sa isang pagkakataon. - Ang pangunahing layunin ng modifier static bago ang isang deklarasyon ng klase ay upang mapanatili ang isang ugnayan sa pagitan ng klase ng Cat at ng klase ng StaticClassExample . Sa pangkalahatan, ang klase ng Cat ay hindi nakatali (walang nakatagong reference) sa StaticClassExample object at hindi makaka-access sa mga ordinaryong (non-static) StaticClassExample variable. - Kaya maaari akong lumikha ng mga klase sa loob ng ibang mga klase? - Oo. Ginagawa ito ng Java na posible. Ngayon, huwag mo nang masyadong isipin. Mamaya ay ipapaliwanag ko ang ilang iba pang mga bagay, at ang lahat ay magiging mas madali nang kaunti. - Umaasa ako.

8 Diego, Mga gawain sa static na pamamaraan

- Hoy, Amigo! Narito ang ilang mga kagiliw-giliw na gawain sa mga static na pamamaraan:
Mga gawain
1 1. Class Cat at static variable catCount
Sumulat ng static variable int catCount sa klase Cat. Lumikha ng isang constructor [ public Cat() ], kung saan ang ibinigay na variable ay dapat tumaas ng 1.
2 2. Mga static na pamamaraan: int getCatCount() at setCatCount(int)
Magdagdag ng dalawang static na pamamaraan sa klase Cat: int getCatCount( ) at setCatCount(int) gamit kung saan mo makukuha / baguhin ang bilang ng mga pusa (ang variable na catCount)
3 3. Class Util
Magpatupad ng static na paraan double getDistance(x1, y1, x2, y2) . Dapat itong kalkulahin ang distansya sa pagitan ng mga puntos. Gamitin ang paraang double Math.sqrt(double a) upang kalkulahin ang square root ng parameter na naipasa
4 4. Class ConsoleReader
Sumulat ng isang class ConsoleReader, na magkakaroon ng 4 na static na pamamaraan:
- String readString() para basahin ang mga string mula sa keyboard
- int readInt() para basahin ang mga numero mula sa keyboard
- double readDouble() para basahin ang mga fractional na numero mula sa keyboard
- void readLn () upang maghintay para sa pagpindot sa enter [use readString()]
5 5. Class StringHelper
Sumulat ng isang class na StringHelper, na magkakaroon ng 2 static na pamamaraan:
- String multiply(String s, int count) ay dapat magbalik ng string ng paulit-ulit na bilang ng beses.
- Dapat ibalik ng String multiply(String s) ang string na paulit-ulit nang 5 beses.

Halimbawa:
Amigo → AmigoAmigoAmigoAmigoAmigo

9 Propesor, object static na saklaw at panghabambuhay

Lumang Antas 06 - 19- Ako ulit. Sa kasamaang palad, hindi ako makapagbigay sa iyo ng anumang mga link ngayon. Ang mga magagandang lecture na iyon ay nawala sa isang lugar. Natatakot ako ngayon na kailangan mong gawin sa iyong sarili. But you better listen more to Elly and Risha, they can always teach you something. Ngunit subukan ang isang ito: Object Lifecycle

10 Julio

- Hoy, Amigo! Napakaganda ng ginawa mo ngayon. Kaya lang hindi ako makapagbigay sa iyo ng higit pa. Halika, maupo, magsisimula ang palabas:

11 Kapitan Squirrels

- Hello, sundalo! - Magandang umaga, ginoo! - Mayroon akong ilang kahanga-hangang balita para sa iyo. Narito ang isang mabilis na pagsusuri upang palakasin ang iyong mga kasanayan. Gawin ito araw-araw, at mapapahusay mo ang iyong mga kasanayan nang mabilis. Ang mga gawain ay espesyal na idinisenyo upang gawin sa Intellij IDEA.
Mga karagdagang gawain na gagawin sa Intellij Idea
1 Class Cat at static variable catCount
Sumulat ng static variable public int catCount sa klase Cat. Lumikha ng isang constructor [pampublikong Cat()]. Hayaang tumaas ng 1 ang static na variable na catCount sa tuwing gagawa ka ng pusa (isang bagong object na Cat). Lumikha ng 10 bagay na Cat at ipakita ang halaga ng variable na catCount .
2 2. Mga static na pusa
  1. Magdagdag ng pampublikong static na variable na pusa (ArrayList<Cat>) sa klase ng Cat.
  2. Sa tuwing gagawa ka ng pusa (isang bagong object na Pusa), hayaang maidagdag ang bagong pusang ito sa mga variable na pusa . Lumikha ng 10 bagay Cat.
  3. Ang pamamaraan printCats() ay dapat ipakita ang lahat ng mga pusa. Kailangan mong gamitin ang mga variable na pusa sa pamamaraan.
Tip:
Para gumawa ng variable ng pusa , gumamit ng linya ng code:
public static ArrayList<Cat> cats = new ArrayList<Cat>();
3 3. Ilipat ang isang static na modifier
Ilipat ang isang static na modifier para mag-compile ang code.
4 4. Pinakamababang bilang ng mga static na keyword
Idagdag ang pinakamababang bilang ng mga static na keyword upang mai-compile ang code at matagumpay na makumpleto ang programa.
5 5. Anumang mga bagong ideya? Tayo'y mag isip...
  1. Sumulat ng isang pampublikong static na Ideya ng klase sa Solusyon ng klase
  2. Sumulat ng isang paraan ng pampublikong String getDescription() sa klase ng Ideya upang ibalik ang anumang hindi walang laman na mensahe
  3. Sa klase Solution ay lumikha ng isang static na paraan ng pampublikong void printIdea(Ideya ng ideya) upang magpakita ng paglalarawan ng ideya - iyon ang ibinabalik ng pamamaraang getDescription()
6 6. KissMyShinyMetalAss
Sumulat ng klase na pinangalanang KissMyShinyMetalAss. Gumawa ng object ng klase na ito, pagkatapos ay ipakita ito sa screen.
7 7. Pangalan ng tatlong static na variable
Sumulat ng 3 pampublikong static na variable: String Solution.name , String Cat.name , String Dog.name
Mga komento
  • Sikat
  • Bago
  • Luma
Dapat kang naka-sign in upang mag-iwan ng komento
Wala pang komento ang page na ito