Java Development Kit merupakan paket yang berisi alat-alat untuk membangun program Java seperti javac (compiler), debugger, dan runtime(jre). Didalamnya terdapat JRE dan JVM.
Java Runtime Environment merupakan sebuah lingkungan/platform yang digunakan untuk menjalankan program Java. Didalamnya terdapat JVM.JRE berisi pustaka-pustaka yang diperlukan untuk menjalankan program JAVA tapi tidak memiliki alat seperti compiler atau debugger. Jika anda hanya ingin menjalankan program Java yang sudah dibuat sebelumnya, anda hanya perlu JRE (tanpa JDK).
Java Virtual Machine merupakan mesin virtual yang digunakan untuk mengeksekusi bytecode hasil kompilasi/compiler pada bahasa mesin. JVM juga bertanggungjawab untuk memory management, garbage collection, pengelolaan thread, dll.
Gradle merupakan build tools yang digunakan untuk membantu mempermudah pengelolaan dependensi dan mempercepat proses build program Java. Gradle bersifat opsional, anda tidak wajib menginstall/menggunakan Gradle jika membangun program Java sederhana. Gradle berjalan pada JVM jadi anda memerlukan JDK atau JRE jika ingin menggunakannya.
Plugin digunakan untuk menambahkan fungsionalitas tambahan di atas fungsionalitas dasar Gradle. Contohnya, plugin "android" digunakan untuk memproses kode Android, plugin "java" untuk proyek Java, dan plugin "spring-boot" untuk proyek Spring Boot. Plugin memungkinkan proyek untuk menggunakan fitur-fitur khusus yang relevan dengan jenis proyeknya
Repository adalah lokasi atau server tempat Gradle mencari dan mengunduh dependensi yang dibutuhkan oleh proyek. Contohnya, repository "mavenCentral()" adalah repository yang digunakan oleh sebagian besar proyek, atau "jcenter()" yang dulunya digunakan oleh Android. Proyek perlu mengkonfigurasi repository agar dapat menemukan dan mengunduh dependensi yang diperlukan.
Dependencies adalah pustaka atau library yang digunakan dalam kode proyek. Contohnya, implementation 'androidx.appcompat:appcompat:1.8.2' adalah dependensi untuk library androidx.appcompat:appcompat versi 1.8.2. Dependencies diatur dengan menggunakan kata kunci implementation, api, testImplementation, dll., yang menentukan bagaimana dependensi digunakan dalam proyek
