JavaRush /Java Blog /Random-TL /Ang pinakakaraniwang problema ng mga nagsisimulang mag-ar...

Ang pinakakaraniwang problema ng mga nagsisimulang mag-aral ng Java

Nai-publish sa grupo
Antas ng kaalaman na kinakailangan upang maunawaan ang artikulo: baguhan. Ikaw ay nasa proseso ng pag-aaral ng Java Syntax quest, at mas malapit sa mga paunang antas nito. Самые распространённые проблемы тех, кто начинает учить Java - 1Kakasimula mo pa lang mag-aral ng Java. Ikaw ay bombarded sa mga termino na parang mula sa isang cornucopia. Ikaw ay puno ng tonelada ng teknikal na impormasyon, at kung minsan ay nalilito ka sa tatlong pine. Maniwala ka sa akin, dahil nasali ka na sa programming, LAGING MAGIGING GANITO (sa sandaling ito, isang nakakatakot na halakhak ang tunog sa labas ng screen, at isang tahimik na boses, na pinutol sa kalagitnaan ng pangungusap, bumulong ng “Tumakbo... iligtas mo ang iyong sarili bago huli na..."). Haharapin ka ng mga bug sa natitirang bahagi ng iyong buhay programming, kahit na ikaw ang pinakamahusay na developer. Gayunpaman, ito ay hindi kasing nakakatakot gaya ng tunog.
Kung nagsimula ka pa lamang mag-aral ng JavaRush, malamang na naranasan mo na ang mga problemang itinaas sa artikulo. Sa anumang kaso, malugod naming tatanggapin ang mga komentong naglalarawan sa mga problema mo sa iyong mga unang buwan ng pag-aaral ng Java.

Problema sa Antas 0: Pagkalito sa operator ng paghahambing (==) at operator ng pagtatalaga (=).

Ito ay isang pangkaraniwang problema para sa mga lumipat mula sa iba pang mga programming language. At sa pangkalahatan, mula noong elementarya ay nasanay na tayo sa katotohanan na (=)ito ay isang pantay na tanda. Ang isang simpleng trick na maaaring gamitin upang tandaan ay ito: kung alam mo na mahalaga sa iyo ang isa lamang sa mga halaga (itinatalaga mo ang isa sa isa) gumamit ka ng isang " =" sign, kung hindi, kung nagmamalasakit ka sa lahat ng mga variable at mga halaga (ihambing mo ang mga ito ) kailangan mo ng double " ==" sign.

Problema: Gamit ang operator ng paghahambing (==) upang subukan ang pagkakapareho ng string

Ano ang gagawin: Tandaan, walang Java objects ang maaaring suriin para sa equivalence gamit ang(==) , dahil ang operator na ito ay idinisenyo upang subukan ang pagkakapantay-pantay ng mga primitive na uri.
Самые распространённые проблемы тех, кто начинает учить Java - 2
Para sa mga bagay kailangan mong gamitin ang .equals(). At Stringsa wikang Java ito ay walang iba kundi isang bagay (at immutable).
Ang isang bagay na minarkahan bilang Immutable ay isang bagay na ang estado ay hindi mababago pagkatapos ng paglikha. Sa Java , nangangahulugan ito na ang lahat ng instance field ng isang klase ay minarkahan bilang finalat mga primitive (o din immutable).

Problema: String concatenation sa isang loop

Huwag subukan ito sa iyong sarili! Sa bawat oras na ang mga string ay pinagsama-sama, ang isang bagong bagay ay nilikha String(tulad ng nalaman namin sa itaas, ang mga string immutableay hindi nababago). Sa ilang mga punto mauubusan ka ng memorya o ang programa ay magsisimulang kumuha ng masyadong maraming oras upang makumpleto. Solusyon. Gamitin StringBuildersa halip Stringkapag pinagsama-sama ang nilalaman sa isang loop. Ginagamit ang klase StringBuilderkapag kailangan mong gumawa ng maraming pagbabago sa isang string ng character. At ang mga ganitong linya, hindi katulad ng String, ay hindi immutable.

Problema: NullPointerException

Этот вид исключений возникает, когда мы пытаемся использовать пустой указатель null, в то время How на самом деле нам нужен реальный an object.
У всех примитивных типов есть значения по умолчанию. Так, у int это 0, а у booleanfalse. Значение по умолчанию любых ссылочных типов, то есть, an objectов, равно null. Это не an object и не тип, это специальное meaning. Которое, по сути, означает «здесь ничего нет».
Самые распространённые проблемы тех, кто начинает учить Java - 3
What делать: если ваш code составлен так, что в Howой-то момент ваш an object можт принять meaning null, вам нужно добавить «проверку на null», особенно если вы создаёте an object не самостоятельно. Также запомните, что лучше возвращать пустые коллекции, чем набор null’ов. Также было бы неплохо добавить валидацию для геттеров и сеттеров.

Проблема: почему-то не работает цикл if / while / for

if (something.equals («что-то еще»)); {// <---- корень зла!!!
     System.out.println («Почему я не работаю???»);
}
What здесь не так? Всё просто: лишняя точка с запятой, она попортила кровь сотням тысяч начинающих Java-программистов. Ну не нужна она после if (). С точки зрения языка, такой синтаксис вполне допустим, поэтому компилятор не будет на него ругаться. Но он завершает условный оператор, и code внутри блока {} никогда не выполнит condition выше.
Самые распространённые проблемы тех, кто начинает учить Java - 4
Решение: Помните о логике конструкции. Знак «;» означает конец некоего блока, а у нас здесь всё только начинается.

Проблема: попытка получить доступ к нестатическим переменным-членам из статических методов (таких, How main)

Решение. Эта проблема связана с пониманием самого понятия static. Если метод помечен этим словом, это означает, что нам не нужно создавать экземпляр класса для вызова основного метода. Так что решение — хорошо разобраться со «статиками», понять их сущность.

Проблема: попытка переизобрести колесо, разрабатывая уже существующие библиотеки и инструменты

Решение. На самом деле это не такая уж и проблема. Для новичка это больше похоже на полезное упражнение. Тем не менее, если вы хотите сосредоточиться на результате, например, создать удобную базу данных абонентов, то поиск абонента в телефонной книге для вас — всего лишь один из результатов работы вашего applications. В таком случае не стоит писать алгоритм бинарного поиска. Воспользуйтесь уже существующим (уверяем, кто-то уже написал его до вас и в стандартных библиотеках он есть). Так что изучайте стандартные библиотеки Java в documentации Oracle. Учитесь гуглить, привыкайте читать Stack Overflow и задавайте вопросы на help JavaRush! …Разумеется, это далеко не все проблемы новичков. Опишите свои в комментариях! Вам интересно читать статьи, связанные с Java? Вступайте в группу Java Developer. Тут много интересного.
Mga komento
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION