Tahap pengetahuan yang diperlukan untuk memahami artikel: pemula. Anda sedang dalam proses mengkaji pencarian Java Syntax, dan lebih dekat dengan tahap awalnya.
Anda baru mula belajar Java. Anda dihujani dengan istilah-istilah seolah-olah dari tumpah ruah. Anda sarat dengan banyak maklumat teknikal, dan kadangkala anda keliru dalam tiga pokok pain. Percayalah, kerana anda telah terlibat dalam pengaturcaraan, IA AKAN SENTIASA BEGITU (pada masa ini, ketawa yang tidak menyenangkan kedengaran di luar skrin, dan suara yang tenang, memotong pertengahan ayat, berbisik “Lari... selamatkan diri anda sebelum sudah terlambat..."). Pepijat akan menghantui anda sepanjang hayat pengaturcaraan anda, walaupun anda adalah pembangun terbaik. Walau bagaimanapun, ini sama sekali tidak menakutkan seperti yang didengari.
Jika anda baru mula belajar JavaRush, kemungkinan besar anda telah pun menghadapi masalah yang dibangkitkan dalam artikel tersebut. Walau apa pun, kami mengalu-alukan komen yang menerangkan masalah yang anda hadapi pada bulan pertama anda mempelajari Java. |
Masalah Tahap 0: Kekeliruan dengan operator perbandingan (==) dan operator tugasan (=).
Ini adalah masalah yang sangat biasa bagi mereka yang beralih daripada bahasa pengaturcaraan lain. Dan secara umum, sejak sekolah rendah kita telah terbiasa dengan fakta bahawa
(=)
ini adalah tanda yang sama. Helah mudah yang boleh digunakan untuk mengingati adalah ini: jika anda tahu bahawa anda hanya mengambil berat tentang salah satu nilai (anda menetapkan satu kepada yang lain) anda menggunakan satu
=
tanda " ", sebaliknya jika anda mengambil berat tentang semua pembolehubah dan nilai (anda membandingkannya ) anda memerlukan
==
tanda " " berganda.
Masalah: Menggunakan operator perbandingan (==) untuk menguji kesetaraan rentetan
Perkara yang perlu dilakukan: Ingat,
tiada objek Java boleh disemak untuk kesetaraan menggunakan(==)
, kerana operator ini direka bentuk untuk menguji kesamaan jenis primitif.
Untuk objek anda perlu menggunakan
.equals()
. Dan
String
dalam bahasa Java ia tidak lebih daripada objek (dan
immutable
).
Objek yang ditandakan sebagai Immutable objek yang keadaannya tidak boleh diubah selepas penciptaan. Dalam Java , ini bermakna semua medan contoh kelas ditandakan sebagai final dan adalah primitif (atau juga immutable ). |
Masalah: Penggabungan rentetan dalam gelung
Jangan cuba ini sendiri! Setiap kali rentetan digabungkan, objek baharu dicipta
String
(seperti yang kami dapati di atas, rentetan
immutable
tidak boleh diubah). Pada satu ketika anda akan kehabisan memori atau program akan mula mengambil terlalu banyak masa untuk disiapkan.
Penyelesaian. Gunakan
StringBuilder
sebaliknya
String
apabila menggabungkan kandungan dalam gelung. Kelas
StringBuilder
digunakan apabila anda perlu membuat banyak perubahan pada rentetan aksara. Dan baris sedemikian, tidak seperti
String
, bukan
immutable
.
Masalah: NullPointerException
Pengecualian jenis ini berlaku apabila kita cuba menggunakan penunjuk nol
null
sedangkan sebenarnya kita memerlukan objek sebenar.
Semua jenis primitif mempunyai nilai lalai. Jadi, y int ialah 0 , dan y boolean ialah false . Nilai lalai mana-mana jenis rujukan, iaitu, objek, ialah null . Ia bukan objek atau jenis, ia adalah nilai istimewa. Yang pada asasnya bermaksud "tidak ada apa-apa di sini." |
Perkara yang perlu dilakukan: Jika kod anda ditulis sedemikian rupa sehingga pada satu ketika objek anda boleh menerima nilai
null
, anda perlu menambah "semak untuk
null
", terutamanya jika anda tidak mencipta objek itu sendiri. Juga ingat bahawa adalah lebih baik untuk memulangkan koleksi kosong daripada satu set
null
's. Ia juga bagus untuk menambah pengesahan untuk getter dan setter.
Masalah: atas sebab tertentu gelung if / while / for tidak berfungsi
if (something.equals («что-то еще»)); {
System.out.println («Почему я не работаю???»);
}
Apa yang salah di sini? Ianya mudah: koma bertitik tambahan telah merosakkan darah ratusan ribu pengaturcara Java pemula. Nah, anda tidak memerlukannya selepas itu
if ()
. Dari sudut pandangan bahasa, sintaks sedemikian agak boleh diterima, jadi pengkompil tidak akan mengadu mengenainya. Tetapi ia menamatkan pernyataan bersyarat, dan kod di dalam blok
{}
tidak akan memenuhi syarat di atas.
Penyelesaian: Ingat logik reka bentuk. Tanda “
;
” bermaksud penghujung blok tertentu, tetapi di sini semuanya baru bermula.
Masalah: Cuba mengakses pembolehubah ahli bukan statik daripada kaedah statik (seperti utama)
Penyelesaian . Masalah ini berkaitan dengan pemahaman konsep itu sendiri
static
. Jika kaedah ditandakan dengan perkataan ini, ini bermakna kita tidak perlu membuat instantiate kelas untuk memanggil kaedah utama. Jadi penyelesaiannya adalah untuk mempunyai pemahaman yang baik tentang "statik" dan memahami intipatinya.
Masalah: Cuba mencipta semula roda dengan membangunkan perpustakaan dan alatan sedia ada
Penyelesaian. Ia sebenarnya tidak begitu banyak masalah. Untuk pemula, ini lebih kepada latihan yang berguna. Walau bagaimanapun, jika anda ingin memberi tumpuan kepada hasilnya, sebagai contoh, mencipta pangkalan data pelanggan yang mudah, maka mencari pelanggan dalam buku telefon hanyalah salah satu daripada hasil permohonan anda. Dalam kes ini, tidak perlu menulis algoritma carian binari. Gunakan yang sedia ada (kami memberi jaminan kepada anda, seseorang telah menulisnya sebelum anda dan ia berada dalam perpustakaan standard). Jadi pelajari perpustakaan standard Java dalam dokumentasi Oracle. Belajar Google, biasakan membaca Stack Overflow dan tanya soalan tentang
bantuan JavaRush ! ... Sudah tentu, ini bukan semua masalah pemula. Terangkan anda dalam komen!
Adakah anda berminat untuk membaca artikel berkaitan Java? Sertai kumpulan Pembangun Java .
Terdapat banyak perkara menarik di sini.
GO TO FULL VERSION