Saya akan memulai posisi karir profesional pertama saya sebagai pengembang perangkat lunak, dan saya cenderung akan menulis banyak kode Java. Saya tidak tahu banyak tentang apa yang spesifik saya akan menulis, dan selain itu, saya memiliki minat yang cukup luas ketika datang ke kode.
Untuk alasan yang tidak layak dibahas, magang terakhir saya meminta saya mengkode hanya untuk Java 1.3 dan 1.4 SDK. Selain itu, pendidikan universitas saya berfokus terutama pada algoritma, struktur data, dan teori lainnya, bukan fitur bahasa atau perpustakaan.
Jadi, dengan pemikiran di atas, fitur apa, kelas, dll dalam versi Java saat ini (nomor berapa kita sekarang?) Akan sepadan dengan waktu saya untuk membaca dan mengapa? Apa yang saya lewatkan sejak 1.4.2 yang membuat hidup Anda sebagai programmer lebih mudah?
Contoh dan cerita tentang bagaimana Anda menemukan paket tertentu atau semacamnya dan menggunakannya juga akan bagus.
sumber
Jawaban:
Perubahan yang saya anggap paling penting adalah:
Baca juga Java apa yang Anda tuju? , untuk mendapatkan pemahaman yang lebih baik dari masing-masing dari tiga versi.
sumber
for
loop ditingkatkan ?"Satu-satunya perubahan terpenting dalam kehidupan pemrograman Anda sehari-hari adalah pengenalan generik yang kemungkinan besar akan digunakan dalam setiap modul baru yang akan Anda tulis, dan itu adalah sintaks baru yang membingungkan.
Generik adalah mekanisme yang memungkinkan misalnya a
List
untuk berisi string, bukan objek telanjang, di mana kompiler memberlakukan bahwa item yang akan dimasukkan ke dalam daftar adalah String, dan ia tahu bahwa ketika Anda mendapatkan item dari daftar itu adalah String. .Ini membuat program yang lebih baik karena Anda menghindari runtime yang dilemparkan secara eksplisit ke tipe target (yang merupakan sumber kesalahan yang sering terjadi jika Anda salah) dan IDE dapat membantu Anda melakukan semua pekerjaan kotor karena ia tahu lebih banyak tentang kode Anda daripada itu terjadi ketika itu hanya daftar objek.
Joshua Bloch telah menulis pengantar yang baik untuk Generics, yang tersedia sebagai bab contoh di http://java.sun.com/docs/books/effective/
sumber
def whatever
....id
manadef
atauvar
.... tapi sekali lagi, keamanan mengetik statis 100% luar biasa, sungguh.Autoboxing adalah fitur bagus yang diperkenalkan dengan Java 5. Sama seperti di C # kompiler sekarang membuat konversi otomatis antara tipe primitif (dasar) dan kelas objek pembungkus yang sesuai (int ke Integer dll) dan kembali lagi. Itu membuat bekerja dengan Koleksi Jawa jauh lebih sedikit rasa sakit.
Untuk-setiap perulangan adalah baru di Java 5, juga, saya pikir. Itu membuat iterasi dari array (dan koleksi) lebih mudah, karena menghilangkan banyak kekacauan yang biasanya melibatkan pengaturan dan pengelolaan variabel indeks atau iterator. Sebagai contoh:
sumber
Enum , untuk menggantikan statika dan konstanta terakhir dan membantu Anda menghapus referensi ke string dan angka ajaib. Contoh yang diambil dari orang-orang baik di matahari / ramalan :
dan
sumber
java.util.concurrent diperkenalkan pada 1.5. Sumber daya terbaik untuk mempelajarinya adalah (mungkin) buku Java Concurrency in Practice . Konkurensi IMHO adalah keunggulan kompetitif Jawa yang paling penting dibandingkan dengan yang lain sehingga layak untuk diketahui dengan baik.
sumber
java.util.concurrent
untuk concurrency primitif seperti manajemen memori otomatis ke manajemen memori manual. Menggunakan yang terakhir hanyalah resep untuk menghabiskan lebih banyak waktu Anda untuk debugging dan tidak menawarkan keuntungan.Ya,
StringBuilder
membantu saya mempercepat program saya. Ini setara denganStringBuffer
keamanan tanpa benang.sumber
+
string secara otomatis menggunakan StringBuilder, bukan StringBuffer untuk level sumber 1.5 dan lebih tinggi.Saya akan membantu dengan mengkategorikan jawaban yang bermanfaat dari @kombinator. Daftarnya adalah daftar elemen yang akan Anda gunakan setiap hari saat melakukan pengembangan java "umum".
Dampak rendah dan kesulitan rendah:
Dampak tinggi dan kesulitan sedang:
Dampak tinggi dan kesulitan tinggi:
Dampak rendah dan sulit tinggi (hanya akan digunakan kecuali jika Anda melakukan threading lanjutan)
Oleh karena itu saya menyarankan agar Anda membaca dokumen / bantuan pada dampak rendah dan potongan-potongan sulit - mereka mudah diambil. Luangkan waktu untuk Anotasi dan Generik - anotasi sangat berguna, dan obat generik bisa menjadi agak rumit.
Hanya melihat konten konkurensi baru jika Anda perlu melakukan threading.
sumber
Karena saya tidak bisa berkomentar karena saya di bawah 50 saya akan meninggalkan jawaban. Sudah disebutkan tetapi saya akan mengulanginya lagi: Anotasi! Metadata semacam ini menjadi hal terpenting dalam pengalaman saya selama bertahun-tahun di Jawa. Ini digunakan dengan baik seperti beberapa framework yang membuatnya membuat kode lebih ringkas dan bersih. Misalnya, anotasi dapat:
Dan tentu saja Anda dapat membuat anotasi Anda sendiri dan mengetahui apakah suatu metode, kelas, atau bidang dijelaskan menggunakan refleksi.
sumber
Belajar dengan contoh bermanfaat bagi saya
Berikut adalah contoh cepat Java 6 idiomatik
Jangan repot-repot dengan Java5, itu sudah usang sehubungan dengan Java6.
Langkah selanjutnya, anotasi. Ini hanya mendefinisikan aspek kode Anda yang memungkinkan pembaca anotasi untuk mengisi konfigurasi boilerplate untuk Anda. Pertimbangkan layanan web sederhana yang menggunakan spesifikasi JAX-RS (mengerti URI tenang). Anda tidak ingin repot-repot melakukan semua WSDL jahat dan bercanda dengan Axis2 dll, Anda ingin hasil yang cepat. Benar, lakukan ini:
Bang Dengan sedikit tabir konfigurasi sihir di web.xml Anda tidak aktif. Jika Anda membangun dengan Maven dan mengonfigurasi plugin Jetty, proyek Anda akan memiliki server web kecil itu sendiri di luar kotak (tidak ada mengutak-atik JBoss atau Tomcat untuk Anda), dan kode di atas akan menanggapi URI dari bentuk:
Pekerjaan selesai.
sumber
Wow itu adalah ledakan dari masa lalu! Saya tidak menggunakan Java selama 4 tahun sekarang - dan tidak ada yang berubah sama sekali pada waktu itu!
Ada daftar fitur berdasarkan versi , tetapi inilah bagian penting (tentu saja dijiplak) ...
J2SE 5.0 (30 September 2004)
Java SE 6 (11 Desember 2006)
Itu saja. Java SE 7.0 terlihat lebih menarik tetapi belum dirilis.
Mempertimbangkan berapa banyak fitur bahasa baru dan API telah ditambahkan ke C # dalam 4 tahun terakhir, saya cukup heran. Apa yang terjadi di Sun / Oracle?
sumber