Java (Platform Perangkat Lunak)
adalah satu set perangkat lunak komputer dan spesifikasi yang dikembangkan oleh Sun Microsystems, yang kemudian diakuisisi oleh Oracle Corporation, yang menyediakan sistem untuk mengembangkan aplikasi perangkat lunak dan menerapkan hal itu dalam sebuah cross-platform lingkungan komputasi. digunakan di berbagai macam platform komputasi dari perangkat embedded dan ponsel ke server perusahaan dan superkomputer. Sementara mereka yang
kurang umum dari standalone aplikasi Java, Java applet yang berjalan di aman, sandboxed lingkungan untuk memberikan banyak fitur dari aplikasi asli dan dapat tertanam ke dalam HTML halaman.
Penulisan dalam bahasa pemrograman Java adalah cara utama untuk menghasilkan kode yang akan digunakan sebagai kode byte pada sebuah Mesin Virtual Java (JVM); byte code compiler juga tersedia untuk bahasa-bahasa lain, termasuk Ada, JavaScript, Python, dan Ruby. Selain itu, beberapa bahasa telah dirancang untuk berjalan secara native pada JVM, termasuk Scala, Clojure, dan Apache Groovy. sintaks
meminjam banyak dari C dan C++, tetapi berorientasi objek memiliki dimodelkan setelah Smalltalk dan Objective-C. eschews tertentu tingkat rendah konstruksi seperti pointer dan memiliki memori yang sangat sederhana model dimana setiap objek yang dialokasikan di heap dan semua variabel dari jenis objek referensi. Manajemen memori ditangani melalui otomatis terintegrasi pengumpulan sampah yang dilakukan oleh JVM.
Terbaru versi Java 8, hanya didukung (misalnya dengan security update) versi 2016. Oracle (dan lain-lain) telah mengumumkan bahwa menggunakan versi yang lebih tua (dari 8) mereka JVM pelaksanaan menghadirkan risiko serius akibat belum terselesaikan masalah keamanan.
Platform Java adalah seperangkat program yang memfasilitasi mengembangkan dan menjalankan program yang ditulis dalam Java bahasa pemrograman. Java platform akan mencakup eksekusi mesin (disebut mesin virtual), compiler dan satu set perpustakaan; mungkin juga ada tambahan server dan alternatif perpustakaan yang tergantung pada persyaratan. Java adalah tidak spesifik untuk setiap prosesor atau sistem operasi seperti
Java platform telah diimplementasikan untuk berbagai macam perangkat keras dan sistem operasi dengan maksud untuk memungkinkan program Java untuk menjalankan identik pada semua dari mereka. Berbeda platform target kelas yang berbeda dari perangkat dan aplikasi domain: Platform Java terdiri dari beberapa program, masing-masing menyediakan sebagian dari kemampuan secara keseluruhan. Misalnya, Java compiler, yang mengubah kode sumber Java menjadi bytecode Java
(bahasa menengah untuk JVM), diberikan sebagai bagian dari Java Development Kit (JDK). The Java Runtime Environment (JRE), melengkapi JVM dengan just-in-time (JIT) compiler, yang mengubah menengah bytecode menjadi asli kode mesin on the fly. Platform Java juga mencakup serangkaian luas dari perpustakaan.
Komponen penting dalam platform Java compiler bahasa, perpustakaan, dan lingkungan runtime yang di intermediate mengeksekusi bytecode menurut aturan yang tercantum dalam virtual machine spesifikasi. taek.
Jantung platform Java adalah konsep "virtual machine" yang mengeksekusi bytecode Java program. Ini bytecode adalah sama tidak peduli apa perangkat keras atau sistem operasi program ini berjalan di bawah. Ada JIT (Just In Time) compiler dalam "Java Virtual Machine"atau JVM. JIT compiler menerjemahkan bytecode Java ke native prosesor instruksi pada saat run-time dan cache kode asli dalam memori selama eksekusi.
Penggunaan bytecode sebagai perantara bahasa yang memungkinkan program Java untuk berjalan pada platform apapun yang memiliki mesin virtual yang tersedia. Penggunaan JIT compiler berarti bahwa aplikasi Java, setelah penundaan singkat selama pemuatan dan setelah mereka memiliki "pemanasan" dengan menjadi semua atau sebagian besar JIT-dikompilasi, cenderung berjalan secepat asli program. Sejak JRE versi 1.2, Matahari JVM pelaksanaan sudah termasuk just-in-time compiler bukan seorang penerjemah.
Meskipun program-program Java cross-platform atau platform independen, kode Mesin Virtual Java (JVM) yang mengeksekusi program-program ini tidak. Setiap operasi yang didukung platform memiliki JVM.
Di paling modern sistem operasi (OSs), tubuh besar yang dapat digunakan kembali kode yang diberikan untuk mempermudah programmer pekerjaan. Kode ini biasanya disediakan sebagai satu set dinamis loadable perpustakaan yang aplikasi dapat memanggil pada saat runtime. Karena platform Java tidak tergantung pada sistem operasi tertentu, aplikasi tidak bisa mengandalkan apapun dari yang sudah ada OS perpustakaan.
Sebaliknya, platform Java menyediakan seperangkat standar sendiri perpustakaan kelas yang berisi banyak hal yang sama dapat digunakan kembali fungsi-fungsi yang umum ditemukan di sistem operasi modern. Sebagian besar sistem perpustakaan ini juga ditulis di. Misalnya, Ayunan perpustakaan cat antarmuka pengguna dan menangani peristiwa itu sendiri, menghilangkan banyak perbedaan halus antara cara yang berbeda platform menangani komponen.
Java class library melayani tiga tujuan dalam platform Java. Pertama, seperti standar lainnya kode perpustakaan, perpustakaan Java menyediakan programmer terkenal set fungsi untuk melakukan tugas-tugas umum, seperti menjaga daftar dari barang-barang atau melakukan parsing string kompleks. Kedua, kelas, perpustakaan menyediakan sebuah antarmuka abstrak untuk tugas-tugas yang biasanya akan sangat bergantung pada perangkat keras
dan sistem operasi. Tugas-tugas seperti akses jaringan dan akses file yang sering sangat terjalin dengan khas implementasi dari masing-masing platform. Yang codice_1 dan codice_2 perpustakaan mengimplementasikan sebuah abstraksi layer di OS asli kode, kemudian menyediakan sebuah antarmuka standar untuk aplikasi Java untuk melakukan tugas-tugas. Akhirnya, ketika beberapa platform yang mendasari tidak mendukung
semua fitur aplikasi Java mengharapkan, perpustakaan kelas bekerja untuk anggun menangani absen komponen, baik dengan emulasi untuk menyediakan pengganti, atau setidaknya dengan menyediakan cara yang konsisten untuk memeriksa keberadaan fitur tertentu.
Kata "", sendirian, biasanya mengacu pada bahasa pemrograman Java yang dirancang untuk digunakan dengan platform Java. Bahasa pemrograman yang biasanya di luar lingkup dari kalimat "platform", meskipun bahasa pemrograman Java terdaftar sebagai bagian inti dari platform Java sebelum Java 7. Bahasa dan runtime oleh karena itu sering dianggap sebagai satu unit. Namun, upaya itu dibuat dengan Java 7 spesifikasi untuk lebih
jelas memperlakukan bahasa dan mesin virtual Java sebagai entitas yang terpisah, sehingga mereka tidak lagi dianggap sebagai satu unit.
Pihak ketiga yang telah menghasilkan banyak kompiler atau interpreter yang menargetkan JVM. Beberapa dari ini adalah untuk bahasa yang ada, sementara yang lain adalah untuk ekstensi untuk bahasa. Ini termasuk:
Keberhasilan dari dan tulis sekali, jalankan dimana saja konsep-konsep yang lainnya, upaya-upaya serupa, terutama.NET Framework, yang muncul sejak tahun 2002, yang menggabungkan banyak sukses-aspek dari..NET dalam bentuk lengkap (Microsoft pelaksanaan) saat ini hanya sepenuhnya tersedia pada platform Windows, sedangkan sepenuhnya tersedia di banyak platform..NET dibangun dari
tanah-up untuk mendukung beberapa bahasa pemrograman, sedangkan platform Java pada awalnya dibangun untuk mendukung hanya bahasa, walaupun banyak bahasa lainnya telah dibuat untuk JVM.