Чекор по чекор
Почетни чекори со Java
Објектно оријентирани концепти во Јава - Прв дел
Објектно оријентирани концепти во Јава - Втор дел
Објектно оријентирани концепти во Јава - Трет дел
Јава сервлети - Прв дел
Единствен Јава објект (singleton)
Најчести 10 грешки што ги прават Java програмерите
повеќе...
Што е тоа ...
... IDE
... Tomcat
... објект?
... класа?
... наследување?
... интерфејс?
... наследување? (прашања и одговори)
повеќе...
За загревање
Нов проект во Eclipse?
Примитивни податочни типови
Променливи
Оператори
Доделувачки, аритметички и Unary оператори
Оператори за еднаквост, релации и услови
Изрази, искази и блокови
повеќе...
Како да ...
... конвертирам java.sql.Timestamp во java.util.Date
... зададам формат на датум
... ковертирам „long“ во HEX и обратно
... прочитам датотека и променам стринг
... креирам ZIP датотека
... поврзам Apache и Tomcat користејќи mod_jk
... пратам недефиниран број на атрибути до некоја метода
повеќе...
Java преку примери
new Socket(String addr,int port)
new URL(String address)
new URL(String protocol, String host, int port, String file)
CommPort: getInputStream()
CommPortIdentifier: getPortIdentifiers()
Statement: executeQuery(String sql)
Statement: getMaxRows()
повеќе...
Грешка
Нов напис
Рубрика:
Наслов:
  
  

страна број:123
Најчести 10 грешки што ги прават Java програмерите



Во изворниот код од претходната страна е прикажана честа грешка. Во одредени околности, односно кога корисникот ќе внесе 3 или повеќе параметри, програмот ќе се извршува совршено. Но доколку не се пратат параметри исклучок од типот NullPointerException ќе биде исфрлен.  Понекогаш твоите променливи (низи од стрингови) ќе бидат иницијализирани, друг пат нема. Постои само едно едноставно решение за да не ти „треска“ апликацијата. Пред да пробаш да пристапиш до вредноста од променливата ПРОВЕРИ дали вредноста навистина не е NULL!


Наместо заклучок
Во текстот се претставени грешки кои сите ги правиме. Иако не е можно да се елиминираат сите грешки при процесот на програмирање, но со посветено внимание и практицирање на некои принципи може барем да не се повторуваат исти грешки. Но секако биди сигурен дека сите програмери кои користат Јава ги направиле барем по еднаш сите претходно споменати грешки ;)
Можеби некому некогаш ова ќе му биде утеха: „Додека ти седиш доцна во ноќта барајќи грешка во твојот програм, некој, некаде, во исто време ја прави истата грешка!“
страна број: 1 2 << претходна страна :
 
Коментирај
автор: Анонимус
Анонимните коментари ќе бидат објавувани веднаш после нивната проверка.
За да вашиот коментар биде веднаш валиден претходно пријавете се или креирајте свој профил


напишал: slavejovanovski (20.01.2008 01:02:56)
Дефинитивно сите почетниците во Јава ги прават овие грешки. Некогаш дури и професионални програмери, кои никогаш не програмирале во Јава, ги имаат истите проблеми. Но не е се изгубено. Со тек на време овие грешки полека исчезнуваат.

Според моето мислење, проблемот со број 7 "Споредба на два објекта ( == наместо .equals )" останува проблем во текот на целата Јава кариера, посебно доколку користите други јазици како C/C++ додека програмирате во Јава. Операторот "=" е премногу попривлечен од ".equals()" :)

Нешто слично се случува и со пробемот со број 1 "1. Покажувачите кон Null (Null pointers)!". Премногу често забораваме да провериме дали некој објект е null пред да го користиме.

Проблемот 3 е претежно проблем во покомплицирани програми и не би очекувал да биде сретнат од почетници, но доколку го сретнете овој проблем ве очекуваат долги непреспани ноќи пробувајќи да го репродуцирате и поправите проблемот.

Е сега доаѓаме до проблемот 6 "Забуна при праќање на вредност и праќање преку референца". Јас имам малку поразлично мислење од авторот на тој параграф.

Според Јава спецификациите, во Јава СЕКОГАШ праќате по вредност (pass-by-value). Но пред да речете дека немам поим што зборувам, стрпете се за да се објаснам. Ова е лесно да се докаже за примитивните типови (float, int, ...) бидејќи промените во методот не се рефлектираат надвор од методот.

Но ако Јава е pass-by-value тогаш зошто промените на некои објекти како MojObjekt се рефлектираат надвор?

Кога креирате објект во Јава, виртуелната машина всушност ви враќа назад покажувач кон вистинскиот објект а не вредноста на тој објект. Значи после

MojObjekt x = new MojObjekt(),

x покажува кон некој објект во меморија. x не ја содржи вредноста на објект од типот MojObjekt.

Доколку x го пратите во некој метод тогаш ја праќате вредноста на x кон тој метод.

void metod(MojObjekt lokalenX) {
lokalenX.dodadi(3);
}

Бидејќи вредноста на x е всушност покажувач кон некој објект, lokalenX ќе покaжува кон истиот објект. Повикувањето на lokalenX.dodadi(3); е исто со повикувањето на x.dodadi(3) надвор од методот.

Погледнете го овој документ:

http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#37472

Значи Јава е поблиска до C кога станува збор за како се праќаат вредности до методи. Во C++ постои вистинско праќање на вредности по референца со помош на &, како на пример:

void metod(MojObjekt & x){
}

напишал: Анонимус (01.07.2008 22:17:41)
ej super e sajtov izvinete sho nemam kirilica. Sasho Lazarevski go spomna. Ni predava Java vo Strumica. Ne znaev deka ima mk sajt za java. Se registriram na forumot odma . Keif mi e da napravime edna dobra java community :) pzodrav i kep up the good work.
пребарување
најди
 
Форум
 
JugMK
GetJava Download Button
http://www.eclipse.org
 
 
 
 
Copyrights © 2006 - 2024 by Java.com.mk
Права и правила за користење на java.com.mk
Контакт адреса:
contact AT java.com.mk
Powered by Supernova v.0.70 beta
JavaTM и Java-базираните ознаки се трговски марки или регистрирани трговски марки на Sun Microsystems, Inc. во САД и други држави. Java.com.mk никако не соработува со Sun Microsystems, Inc.
Сите други трговски марки се сопственост на нивните сопственици.