Setiap kali Anda memanggil metode substring () di Java , ia akan mengembalikan String baru karena String tidak dapat diubah di Java . Sebuah String pada dasarnya adalah char[] yang berisi karakter string dengan offset dan count (yaitu string terdiri dari karakter count mulai dari posisi offset di char[] ).
Demikian pula, apakah substring akan membuat objek baru di Java?
Bahkan panggilan substring Anda tidak akan membuat objek string baru di kumpulan, itu akan menggunakan yang ada “Hello World”, tetapi dalam kasus ini hanya akan menggunakan karakter dari posisi 0 hingga 3 untuk panggilan pertama Anda ke substring , misalnya. Mulai dari Java 7, substring tidak akan membagikan karakter, tetapi akan membuat yang baru .
Selanjutnya, bagaimana cara kerja substring () di dalam string? Mereka digunakan untuk menyimpan array karakter nyata, indeks pertama array, jumlah karakter dalam String . Ketika metode substring() dipanggil, itu membuat string baru , tetapi nilai string masih menunjuk ke array yang sama di heap. Perbedaan antara kedua String adalah nilai count dan offsetnya.
Mengenai ini, bagaimana Anda mensubstring string di Jawa?
Metode substring (int beginIndex, int endIndex) dari kelas String . Ia mengembalikan string baru yang merupakan substring dari string ini . Substring dimulai pada beginIndex yang ditentukan dan meluas ke karakter pada indeks endIndex – 1. Jadi panjang substring adalah endIndex-beginIndex.
Bagaimana metode substring membuat kebocoran memori?
Jika Anda melihat metode substring di dalam kelas String, Anda akan mengetahui bahwa itu memanggil konstruktor String (int offset, int count, char value []) untuk membuat objek String baru. Begitulah cara metode substring membuat memory leak .