Java (Platform Perangkat Lunak)
Matahari itu tujuannya adalah untuk mengganti bagian-bagian yang tetap eksklusif dan tertutup-sumber dengan implementasi alternatif dan membuat perpustakaan kelas benar-benar gratis dan open source. Sementara itu, pihak ketiga proyek yang disebut IcedTea dibuat benar-benar gratis dan sangat bermanfaat JDK dengan mengganti dibebani kode dengan rintisan atau kode dari GNU Classpath. Meskipun
OpenJDK sejak itu menjadi mudah dibangun tanpa dibebani bagian (dari OpenJDK 6 b10), IcedTea masih digunakan oleh sebagian besar distribusi linux, seperti Fedora, RHEL, Debian, Ubuntu, Gentoo, Arch Linux dan Slackware, karena menyediakan keamanan rilis dan mudah cara untuk patch inklusi. OpenJDK juga masih tidak menyertakan plugin browser dan Web Mulai implementasi, sehingga IcedTea pendamping proyek, IcedTea-Web, adalah diperlukan untuk mengisi kesenjangan ini.
Pada juni 2008, diumumkan bahwa IcedTea6 (karena dikemas versi OpenJDK pada Fedora 9) telah lulus Teknologi Kompatibilitas Kit tes dan dapat mengklaim untuk menjadi sepenuhnya kompatibel 6 implementasi.
Karena OpenJDK adalah di bawah lisensi GPL, adalah mungkin untuk mendistribusikan versi kustom dari JRE secara langsung dengan perangkat lunak aplikasi, daripada membutuhkan enduser (atau mereka sysadmin) untuk men-download dan menginstal versi yang benar dari milik Oracle JRE ke masing-masing sistem mereka sendiri.
Dalam kebanyakan kasus, dukungan Java adalah tidak perlu di Web browser, dan keamanan para ahli merekomendasikan bahwa hal itu tidak akan dijalankan di browser kecuali benar-benar diperlukan. Ia menyarankan bahwa, jika Java diperlukan oleh beberapa situs Web, pengguna harus memiliki browser yang terpisah instalasi khusus untuk situs-situs tersebut.
Ketika obat generik yang ditambahkan untuk Java 5.0, sudah ada kerangka besar dari kelas-kelas (banyak yang sudah usang), sehingga obat generik yang dipilih untuk diimplementasikan menggunakan penghapusan untuk memungkinkan "migrasi kompatibilitas" dan penggunaan kembali ini kelas-kelas yang ada. Ini terbatas fitur yang bisa disediakan oleh penambahan ini dibandingkan dengan beberapa bahasa lain.
Java tidak memiliki native unsigned integer jenis. Data Unsigned sering dihasilkan dari program yang ditulis dalam C dan kurangnya jenis ini langsung mencegah pertukaran data antara C dan Java. Unsigned jumlah besar juga banyak digunakan dalam pengolahan angka bidang, termasuk kriptografi, yang dapat membuat kurang nyaman digunakan untuk tugas-tugas ini. Meskipun hal ini mungkin untuk sebagian menghindari masalah ini
dengan konversi kode dan menggunakan data yang lebih besar jenis, itu membuat menggunakan Java rumit untuk menangani data unsigned. Sementara 32-bit signed integer dapat digunakan untuk menyimpan 16-bit unsigned nilai dengan relatif mudah, 32-bit unsigned nilainya akan memerlukan 64-bit signed integer. Selain itu, 64-bit unsigned nilai tidak dapat disimpan menggunakan tipe integer di karena tidak ada jenis yang lebih
besar dari 64 bit yang ada dalam bahasa. Jika disarikan menggunakan fungsi, fungsi panggilan menjadi perlu untuk banyak operasi yang asli untuk beberapa bahasa lain. Selain itu, adalah mungkin untuk menggunakan Java ditandatangani bilangan bulat untuk meniru unsigned bilangan bulat dengan ukuran yang sama, tetapi hal ini membutuhkan pengetahuan rinci kompleks bitwise operasi.
Sementara di floating point aritmetika adalah sebagian besar didasarkan pada standar IEEE 754 ("Standar untuk Biner Floating-Point Aritmetika"), fitur-fitur tertentu yang tidak didukung bahkan ketika menggunakan codice_3 pengubah, seperti Pengecualian Bendera dan Diarahkan Pembulatan- kemampuan yang diamanatkan oleh Standar IEEE 754. Selain itu, extended precision floating-point jenis yang diizinkan dalam 754 dan hadir dalam banyak prosesor yang tidak diizinkan di.
Pada hari-hari awal dari (sebelum HotSpot VM dilaksanakan di 1.3 2000) ada beberapa kritik kinerja. Namun, tolok ukur biasanya melaporkan menjadi sekitar 50% lebih lambat dari C (bahasa yang mengkompilasi kode asli).
Java kinerja telah meningkat secara substansial sejak versi awal. Kinerja JIT compiler relatif asli penyusun memiliki beberapa dioptimalkan tes telah terbukti cukup mirip.
Java bytecode dapat diartikan pada saat dijalankan oleh mesin virtual, atau dapat disusun pada waktu beban atau runtime menjadi kode native yang berjalan secara langsung pada perangkat keras komputer. Interpretasi lebih lambat dari yang asli eksekusi dan kompilasi pada waktu beban atau runtime memiliki kinerja awal penalti untuk kompilasi. Modern performant JVM implementasi semua menggunakan kompilasi pendekatan, sehingga setelah waktu startup awal kinerja setara dengan native code.
Platform Java menyediakan sebuah arsitektur keamanan yang dirancang untuk memungkinkan pengguna untuk menjalankan terpercaya bytecode dalam "sandbox" cara untuk melindungi terhadap situs berbahaya atau perangkat lunak yang ditulis dengan buruk. Ini "sandboxing" fitur ini dimaksudkan untuk melindungi pengguna dengan membatasi akses ke beberapa fitur platform dan Api yang bisa dimanfaatkan oleh malware, seperti mengakses file lokal, menjalankan perintah sewenang-wenang, atau mengakses jaringan komunikasi.
Dalam beberapa tahun terakhir, para peneliti telah menemukan sejumlah kelemahan keamanan dalam beberapa banyak digunakan Java implementasi, termasuk Oracle, yang memungkinkan kode yang tidak dipercaya untuk memotong sandboxing mekanisme, mengekspos pengguna untuk serangan berbahaya. Kekurangan ini mempengaruhi hanya aplikasi Java yang mengeksekusi sewenang-wenang terpercaya
bytecode, seperti web browser plugin yang menjalankan Java applet yang didownload dari situs web publik. Aplikasi dimana pengguna trust, dan memiliki kontrol penuh atas semua kode yang sedang dieksekusi tidak terpengaruh.
Pada agustus 31, 2012, 6 dan 7 pada Microsoft Windows, Mac OS X, dan Linux ditemukan memiliki keamanan yang serius cacat yang diperbolehkan remote exploit untuk mengambil tempat dengan hanya memuat sebuah halaman web berbahaya. kemudian ditemukan untuk menjadi cacat juga.
Pada tanggal 10 januari 2013, tiga spesialis komputer berbicara menentang, mengatakan kepada Reuters bahwa itu tidak aman dan bahwa orang harus menonaktifkan Java. Jaime Blasco, Labs Manajer dengan AlienVault Labs, menyatakan bahwa " berantakan. Hal ini tidak aman. Anda harus menonaktifkannya." Kerentanan ini mempengaruhi dan tidak jelas apakah hal itu mempengaruhi, sehingga disarankan
agar konsumen menonaktifkannya. peringatan Keamanan dari Oracle mengumumkan jadwal penting yang berhubungan dengan keamanan patch ke.
Pada tanggal 14 januari 2013, para ahli keamanan mengatakan bahwa update masih gagal untuk melindungi Pc dari serangan. Ini mengeksploitasi lubang diminta tanggapan dari United States Department of Homeland Security mendorong pengguna untuk menonaktifkan atau uninstall. Apple masuk dalam daftar hitam di terbatas agar semua komputer yang menjalankan Mac OS X sistem operasi melalui program perlindungan virus.
Menanggapi terbaru keamanan dan kerentanan masalah, keamanan blogger Brian Krebs telah meminta pengguna untuk menghapus setidaknya Java plugin browser dan juga seluruh perangkat lunak. "Saya melihat ke depan untuk sebuah dunia tanpa plugin Java (dan tidak memiliki untuk mengingatkan pembaca tentang triwulanan patch update) tapi itu mungkin akan menjadi tahun sebelum berbagai versi dari plugin ini adalah
sebagian besar dihapus dari sistem end-user di seluruh dunia."" "Setelah menjanjikan, telah hidup lebih lama kegunaannya di browser, dan telah menjadi mimpi buruk yang nikmat cyber-penjahat dengan mengorbankan pengguna komputer." "saya pikir semua orang harus uninstall Java dari semua Pc dan Mac, dan kemudian berpikir hati-hati tentang apakah mereka perlu menambahkannya kembali. Jika anda
adalah tipe pengguna rumah, anda mungkin bisa melakukannya tanpa itu. Jika anda adalah pengguna bisnis, anda mungkin tidak memiliki pilihan."