JavaRush /Java Blog /Random-TK /Java öwrenip başlaýanlaryň iň köp ýaýran problemalary

Java öwrenip başlaýanlaryň iň köp ýaýran problemalary

Toparda çap edildi
Makala düşünmek üçin zerur bilim derejesi: başlangyç. Java sintaksis gözlegini öwrenýärsiňiz we başlangyç derejelerine has ýakyn. Java öwrenip başlaýanlaryň iň köp ýaýran problemalary - 1Javaaňy öwrenip başladyňyz. Size kornukopiýa ýaly sözler berilýär. Size tonna tehniki maglumatlar ýüklenýär we käwagt üç sany sosnada bulaşýarsyňyz. Maňa ynanyň, eýýäm programmirleme bilen meşgullananyňyzdan soň, hemişe şeýle bolar (şu pursatda elhenç gülki ekrandan çykýar we asuda ses orta sözlemi kesýär, pyşyrdap: “Ylga ... özüňizi halas ediň gaty giç..."). Buglar, iň oňat işläp düzüjiňiz bolsaňyzam, programmirleme ömrüňiziň dowamynda sizi gyzyklandyrar. Şeýle-de bolsa, bu sesler ýaly gorkunç däl.
JavaRush-a ýaňy öwrenip başlan bolsaňyz, makalada öňe sürlen meselelere eýýäm duş gelen bolsaňyz gerek. Her niçigem bolsa, Java öwrenen ilkinji aýlaryňyzda ýüze çykan kynçylyklary beýan edýän teswirleri kabul ederis.

0-njy dereje meselesi: Deňeşdiriş operatory (==) we ýumuş operatory (=) bilen bulaşyklyk.

Beýleki programmirleme dillerinden geçýänler üçin bu gaty ýygy duş gelýän mesele. (=)Umuman aýdanyňda, başlangyç synpdan bäri munuň deň alamatdygyna öwrenişdik . Rememberatda saklamak üçin ulanyp boljak ýönekeý bir hiledir: diňe gymmatlyklaryň birine üns berýändigiňizi bilýän bolsaňyz (birini beýlekisine bellärsiňiz) ýekeje "" belgisini ulanýarsyňyz, =ýogsam ähli üýtgeýänlere üns berseňiz we bahalar (olary deňeşdirýärsiňiz) goşa "" belgisi gerek ==.

Mesele: Setiriň ekwiwalentligini barlamak üçin deňeşdirme operatoryny (==) ulanmak

Näme etmeli: Javaadyňyzdan çykarmaň, hiç bir Java obýekti ulanyp, ekwiwalentligi barlap bolmaýar(==) , sebäbi bu operator başlangyç görnüşleriň deňligini barlamak üçin döredildi.
Java öwrenip başlaýanlaryň iň köp ýaýran problemalary - 2
Obýektler üçin .equals(). StringJava dilinde bolsa obýektden (we ) başga zat däl immutable.
Bellenen obýekt, Immutable döredilenden soň ýagdaýy üýtgedip bolmaýan obýektdir. Java -da , bu synpyň ähli mysal meýdanlarynyň finalbaşlangyç hökmünde bellenendigini we (ýa-da immutable) bolandygyny aňladýar.

Mesele: Bir aýlawda setir birikmesi

Muny özüňiz synap görmäň! Her gezek setirler birleşdirilende täze bir obýekt döredilýär String(ýokarda bilşimiz ýaly setirler immutableüýtgewsizdir). Belli bir wagt ýadyňyz gutarar ýa-da programma gutarmak üçin gaty köp wagt alyp başlar. Çözgüt. Mazmuny aýlawda birleşdireniňizde StringBuilderulanyň . Nyşan setirine köp üýtgetmeli bolanyňyzda Stringsynp ulanylýar. StringBuilderMunuň ýaly setirler bolsa, Stringbeýle däl immutable.

Mesele: NullPointerException

nullBu hili kadadan çykma , hakyky bir zat gerek bolanda null görkezijini ulanjak bolanymyzda ýüze çykýar .
Primhli başlangyç görnüşleriň başlangyç bahalary bar. Diýmek, y intbar 0, y hem booleanbolýar false. Islendik görnüş görnüşiniň, ýagny obýektleriň deslapky bahasy null. Bu obýekt ýa-da görnüş däl, bu aýratyn gymmatlyk. Aslynda "bu ýerde hiç zat ýok" diýmekdir.
Java öwrenip başlaýanlaryň iň köp ýaýran problemalary - 3
Näme etmeli: Koduňyz haýsydyr bir wagtda obýektiňiziň bahasyny kabul edip biljek derejede ýazylan bolsa , esasanam obýekti özüňiz döretmeýän bolsaňyz, null“barlamak” goşmaly . nullŞeýle hem boş kolleksiýalary bir toplumdan has gowudygyny ýadyňyzdan çykarmaň null. Şeýle hem, alýanlar we sazlaýjylar üçin tassyklama goşmak gowy bolardy.

Mesele: näme üçindir if / while / for loop işlemeýär

if (something.equals («что-то еще»)); {// <---- корень зла!!!
     System.out.println («Почему я не работаю???»);
}
Bu ýerde näme boldy? Bu ýönekeý: goşmaça nokatly ýüzlerçe müň täze Java programmistleriniň ganyny zaýalady. Ondan soň size gerek däl if (). Dil nukdaýnazaryndan şeýle sintaksis gaty kabul ederliklidir, şonuň üçin düzüji bu barada zeýrenmez. Itöne şertli jümläni ýatyrýar we blokyň içindäki kod {}ýokardaky şerti hiç haçan kanagatlandyrmaz.
Java öwrenip başlaýanlaryň iň köp ýaýran problemalary - 4
Çözgüdi: Dizaýn logikasyny ýadyňyzda saklaň. “ ;” Belgisi belli bir blokuň soňuny aňladýar, ýöne bu ýerde hemme zat ýaňy başlaýar.

Mesele: Statik usullardan statiki däl agza üýtgeýänlere girmäge synanyşmak (esasy ýaly)

Çözgüt . Bu mesele düşünjäniň özüne düşünmek bilen baglanyşykly static. Bu usul bu söz bilen bellenen bolsa, esasy usuly çagyrmak üçin synpy gyssagly etmeli däldigimizi aňladýar. Şonuň üçin çözgüt “statikalara” gowy düşünmek we olaryň manysyna düşünmekdir.

Mesele: Bar bolan kitaphanalary we gurallary ösdürip, tekeri täzeden dikeltmäge synanyşmak

Çözgüt. Aslynda beýle mesele kän däl. Bir öwrenje adam üçin bu has peýdaly maşkdyr. Şeýle-de bolsa, meselem, amatly abonent maglumatlar bazasyny döretmek, netijä ünsi jemlemek isleseňiz, telefon kitabyndan abonent gözlemek, arzaňyzyň netijeleriniň diňe biridir. Bu ýagdaýda ikilik gözleg algoritmini ýazmagyň zerurlygy ýok. Bar bolan birini ulanyň (size ynandyrýarys, kimdir biri muny öňem ýazypdyr we adaty kitaphanalarda). Şonuň üçin Oracle resminamalarynda Java standart kitaphanalaryny öwreniň. Google-a öwreniň, Stack Overflow-y okamaga öwrenişiň we JavaRush-a kömek barada sorag beriň ! ... Elbetde, bularyň hemmesi täze başlanlaryň problemasy däl. Teswirlerde özüňizi suratlandyryň! Java bilen baglanyşykly makalalary okamak isleýärsiňizmi? Java dörediji toparyna goşulyň . Bu ýerde gaty gyzykly zatlar bar.
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION