![10 Cele mai frecvente erori ale programatorilor java (comune) 10 Cele mai frecvente erori ale programatorilor java](https://images-on-off.com/images/162/10naiboleerasprostranennixoshibokjavapro-b42b4397.jpg)
Ce erori întâlnesc cel mai adesea începătorii în programare? Poate că ei întotdeauna confundă egalitatea (==) cu o sarcină (=), sau cu . Sau, probabil, ei folosesc delimitatori greșit în bucla pentru (pentru (int i = 0, i <5, i++) )?
Pentru a răspunde la această întrebare, cercetătorii au analizat erorile a peste 250.000 de începători Java din întreaga lume. Folosind o cantitate mare de date (codul sursă al mai mult de 37 de milioane de compilații, pentru a fi mai precis), au identificat cele mai frecvente greșeli ale elevilor care au studiat prima dată Java. Ei au aflat de asemenea cât timp au luat pentru a-și studia propriile greșeli. Rezultatele au fost uimitoare.
Proiectul de colectare a datelor Blackbox
Învățarea unui nou limbaj de programare este întotdeauna o provocare, pentru că trebuie să înveți să-ți exprimi gândurile complexe folosind o gramatică limitată, formală. Firește, mulți începători fac greșeli de programare. Pentru a arunca o privire asupra greșelilor întâlnite cel mai adesea de noii veniți, cercetătorii de la Universitatea din Kent (Marea Britanie) au analizat codul care a fost compilat de la aproape 265.000 de studenți din întreaga lume.
Proiectul numit colecție de date Blackbox este construit pe baza BlueJ, un IDE liber Java, conceput special pentru începători. BlueJ încearcă să elimine barierele în calea succesului pentru noii veniți, de exemplu, subliniind începutul și sfârșitul blocului de coduri. Acest lucru facilitează elevilor să scaneze vizual codul pentru bretele suplimentare. O altă caracteristică a acestui IDE este capacitatea de a verifica obiectele direct în timpul programului. Astfel, ajută la înțelegerea principiilor programului, precum și la depanare.
10 erori comune de la început de programatori Java
AlTadmri și Brown au fost surprinși să afle că greșelile pe care experții și profesorii le-au considerat cele mai frecvente nu sunt în realitate acelea.
Aceasta poate fi o tendință periculoasă, au spus ei, deoarece cel mai adesea asemenea greșeli sunt acoperite și chiar prețuite în manuale.
C. Paranteze, paranteze sau citate neechilibrate, precum și folosirea alternativă a acestor caractere, de exemplu: în timp ce (a == 0].
I. Metode de apelare cu argumente sau tipuri de argumenturi nevalide, de exemplu: list.get ("abc").
O. Debitul de control poate atinge sfârșitul unei metode non-void fără returnare, de exemplu:
A. Confuzia cu atribuirea (=) și operatorii de comparație (==), de exemplu: dacă (a = b).
N. Ignorarea sau abandonarea valorii returnate a metodei cu un tip de returnare non-void, de exemplu: myObject.toString (); .
B. Folosiți == în loc de .equals pentru a compara șiruri de caractere.
M. O încercare de a apela o metodă non-statică astfel încât, dacă a fost o metodă statică, de exemplu: MyClass.toString (); .
R. O încercare a clasei de a implementa interfața, dar lipsa implementării tuturor metodelor necesare, de exemplu: clasa Y implementează ActionListener <> .
P. Apelarea tipurilor de parametri la apelarea unei metode, de exemplu: myObject.foo (int x, String s); .
E. Plasarea incorectă a virgulelor în condiții dacă. precum și pentru și în timp ce buclele. de exemplu: dacă (a == b); retur 6; .
Cea mai obișnuită eroare este C (paranteze uitate, erori în aranjamentul lor) - ceea ce BlueJ încearcă să reziste folosind iluminarea din spate. Această concluzie poate fi un semn că erorile de tip C vor apărea mai des în IDE, ceea ce nu oferă niciun mijloc de depanare.
Surprinzător, următoarele greșeli nu au lovit TOP-10:
D. confuzie prin utilizarea operatorilor de "scurt-circuit" ( și || ) și operatorii logici obișnuiți ( și | ).
J. Lipsa parantezelor după apelul unei metode, de exemplu: myObject.toString; .
Q. Atribuiți o variabilă unei valori incompatibile cu tipul variabilei, de exemplu: int x = myObject.toString (); .
F. Nevalid pentru separatoare de buclă (folosind o virgulă în loc de punct și virgulă), de exemplu: pentru (int i = 0, i <6, i++) .
H. Utilizarea cuvintelor cheie ca nume de variabile sau metode, de exemplu: int new; .
Cât durează să învăț din greșelile mele?
În plus, atunci când Brown și AlTadmere au studiat cât timp a trebuit ca elevii să corecteze eroarea, a devenit clar că cea mai frecventă greșeală (eroarea C) a fost, de asemenea, una dintre cele mai rapide. Alte erori au fost mai greu de găsit. Printre asemenea greșeli a fost confuzia dintre operatori și | sau și || (eroare D), folosiți == în loc de .equals pentru compararea șirului (eroare B) și ignorând sau renunțând la valoarea returnată a metodei cu un tip de returnare non-void (eroare N). Au rămas neobservate pentru mai mult de 1.000 de secunde (după care urmărirea nu a continuat) sau nu au fost găsite deloc.
Mediana care indică raportul timp-fix este prezentată în figura de mai jos.
![10 Cele mai frecvente erori ale programatorilor java (cele mai multe) 10 Cele mai frecvente erori ale programatorilor java](https://images-on-off.com/images/162/10naiboleerasprostranennixoshibokjavapro-e65cbf42.jpg)