Java REPL (Read Evaluate Print Loop)


Java Logo

Java Logo

Salah satu yang tidak mengasikkan di Java adalah tidak memiliki REPL. Apa itu REPL? REPL itu aplikasi yang berbasis terminal (command promt) dimana kita bisa mengetikkan kode java secara langsung dan mendapatkan hasilnya secara langsung.

Jika kita menggunakan Scala, Groovy, NodeJS, dan Ruby, mereka semua memiliki REPL, sayannya di Java tidak memiliki REPL.

Setelah cari-cari, ternyata ada juga project Java REPL yang bisa kita gunakan diluar aplikasi JDK yang kita install, nama aplikasinya adalah javarepl.

Baca lebih lanjut

[Scala] Membuat Wildcard Regex [Bagian 2]


Scala

Scala

Sebelumnya saya telah membuat artikel tentang membuat wildcard regex di scala, dan sekarang kita akan mengguakan kode yang sama namun kita tingkatkan fitur untuk wildcard regexnya.

Pada artikel sebelumnya, jika kita ingin menggunakan wildcard regex, kita akan menggunakan kode seperti dibawah ini :

Wildcard.matches("eko", "?k*")

Sebenarnya, kode diatas lebih terkesan seperti kode Java dibandingkan kode Scala, oleh karena itu sekarang kita akan buat cara menggunakan regex wildcard nya menjadi seperti berikut ini :

"eko" wildcard "?k*"

Baca lebih lanjut

apa itu Java Beans? apa bedanya dengan POJO?


#IlmuJava

apa itu Java Beans? apa bedanya dengan POJO?

status sebelumnya saya cerita tentang POJO, sekarang saya akan cerita tentang Java Beans.

Java Beans adalah kelas POJO yang serializable (implements java.io.Serializable), kelas Java Beans memiliki default contructor (constructor tanpa parameter), atribut yang ada di Java Beans harus private dan diakses oleh metode getter dan setter.

Berikut adalah contoh kelas POHO

=============================
public class Person{

}
=============================

kalo udah diubah jadi Java Beans, hasilnya seperti ini :

=============================
public class Person implements java.io.Serializable {

private String name;

public Person(){
}

public String getName(){
return this.name;
}

public void setName(String name){
this.name = name;
}

}
=============================

sekian dan terimakasih, jangan lupa follow twitter kita di @PakarJava 

Java adalah memiliki fitur automatic garbage collection? wah apaan tuh?


#FaktaJava

salah satu kelebihan java adalah memiliki feature automatic garbage collection? wah apaan tuh?

#BahasaAwam
kalo dijelaskan secara awam, kurang lebih seperti ini. jika aplikasi kita diibaratkan sebuah rumah, maka pasti didalamnya ada tempat sampah. automatic garbace collection itu artinya, secara otomatis sampah2 yang ada di dalam rumah akan dimasukkan ke tong sampah, tanpa kita melakukannya sendiri (manual), dan yang paling keren, automatic GC itu secara otomatis akan menghilangkan sapah yang ada, hilang, tanpa tersisa sedikitpun.

#BahasaTeknis
JVM adalah sistem yang pintar, dimana dia bisa mendeteksi apakah ada objek yang masih digunakan atau tidak, seandainya ada objek yang sudah tidak digunakan lagi, maka otomatis objek tersebut akan dihapus dari memori secara otomatis, kita tidak perlu menghilangkan objek itu secara manual seperti ti C/C++, di JVM semuanya otomatis.

#KapanGCTerjadi
garbage collection akan terjadi ketika aplikasi sudah menyentuh batas maksimal memori, seandainya aplikasi kita set batas maksimal memorinya adalah 500MB, maka saat aplikasi kita menggunakan memori menyentuh 500MB maka otomatis GC akan berjalan, menghapus seluruh objek yang tidak dibutuhkan dari memori, sehingga penggunaan memori lebih efektik

#OutOfMemoryError
seandainya aplikasi kita sudah mencapat batas maksimal memori, lalu GC akan menghapus objek yang tidak diperlukan. Namun kadang ada kejadian tidak ada objek yang tidak terpakai, dengan kata lain tidak ada yang bisa dihapus lagi, pada saat ini, JVM akan menyatakan error OutOfMemoryError, artinya tidak ada memori yang bisa digunakan untuk objek baru. Jika ini terjadi, hal yang bisa dilakukan hanyalah menaikkan kapasitas memori.

apa bedanya final, finally dan finalize?


#TanyaJava

apa bedanya final, finally dan finalize?

#final adalah keyword untuk mendeklarasikan bahwa sebuah variabel/atribut tidak dapat diubah lagi isinya (konstan), jika final disebutkan di method, artinya method tersebut tidak dapat di override oleh subclassnya, jika final disebutkan di class, artinya class tersebut tidak dapat diturunkan lagi

#finally merupakan tag dalam try-finally yang digunakan untuk memastikan bahwa kode didalam finally akan dieksekusi walaupun dalam try sukses / gagal.

#finalize merupakan methode kelas Object yang dieksekusi saat garbace collection menghapus sebuah object yang sudah tidak terpakai.

fakta tentang finally di Java


tahu try-finally kan?

try{

}finally{

}

apakah finally benar2 akan dieksekusi, bahkan walaupun ada exception di try nya?

nyatanya TIDAK! jika terjadi errornya di try menyebabkan JVM mati, maka finally tidak akan dieksekusi, atau jika System.exit(…) dipanggil, maka otomatis finally juga tidak akan dieksekusi

apakah bedanya String, StringBuilder dan StringBuffer?


#FaktaJava

apakah bedanya String, StringBuilder dan StringBuffer?

– objek StringBuilder dan StringBuffer adalah mutable (bisa diubah) sedangkan objek String adalah immutable (tidak bisa berubah), liat status fb sebelumnya.
– StringBuffer itu synchronized sehingga thread safe, sedangkan StringBuilder tidak synchronized

kapan menggunakan String, StringBuilder dan StringBuffer?

– saat membuat objek yang tidak akan berubah, gunakanlah String
– saat membuat objek yang bisa berubah2 dan akan diakses dari beberapa thread, gunakanlah StringBuffer
– saat membuat objek yang bisa berubah2 namun hanya diakses oleh satu thread, gunakanlah StringBuilder

Slide Presentasi Menarik Minggu Ini


Ini adalah beberapa slide yang menurut saya cukup menarik untuk disimak dan dipelajari minggu ini, silahkan dilihat : Baca lebih lanjut