search
Giriş
Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi
0 oy
209 gösterim
Soruyu beğendiğim için paylaşıyorum.

JSE swing kütüphanesinde JPasswordField.getPassword() metodu neden String yerine char[](char array) dönderiyor? String'e göre faydası nedir?

İyi çalışmalar.
Java kategorisinde 5.7k puan
yeniden etikenlendirildi

1 cevap

3 oy

Bu sorunun cevabi icin birkac guzel aciklama var

  • char[] system.out.print metodu ile yazıldığı zaman ekranda şifrenizi görmeyeceksiniz ki yanlışlıkla loglara veya ekrana log basmamak için kullanışlı oluyor.
  • Diğer açıklama ki bana daha güzel bir sebep olarak göründü. Java'nın memory yönetimine baktığınız zaman string nesnelerini özel bir yapı ile bir listede tuttuğunu ve yeni bir string gerekirse öncelikle string bilgisinin bu listede olup olmadığı kontrol edilir. Eğer varsa bu string'e ait olan adres kullanılır. Yani her string için yeniden yeniden hafızada yer ayrılmaz. Bu durumda şifrenizi string bir değişkene atadıysanız ve bu değişkeni de başka yerlede kullandıysanız. Sizin şifre bilginiz memory üzerinde duruyor ve silinmemiş demektir. Hatta işiniz bittikten sonra hiç kullanmasanız bile Java bu string listesini ne zaman temizleniyor kesin değil. Yani hafızadan silineceğinin bir garantisi yok. Bu durumda başka bir uygulama veya yöntemlerle uygulamanıza ait bir memory dump alınırsa şifre veya şifreleriniz hafızada direk açık olarak bulunduğu için erişilebilir olacak. Şifre bilgisi char[] içinde bulunsaydı, işiniz bittiği zaman garbage collection devreye girdikten sonra silinecekti veya siz başka bir değer atayarak hafızadaki değeri değiştirebilecektiniz. Java'nın string kullanımını otomatik hale getirmesinden dolayı böyle bir konu meydana geliyor ve char[] kullanılmasının daha mantıklı olduğu düşünülüyor.
İyi çalışmalar.
5.7k puan

İlgili sorular

0 oy
1 cevap 114 gösterim
114 gösterim
Selam java ile bir txt içindeki email şablonum var. Dosyayı okuyup String değişkeni yaratıp atamak istiyorum . Hangi kütüphaneleri kullanabilirim.
7 Şubat 2017 Java kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 74 gösterim
74 gösterim
Merhaba, Elimde iki tane String var. Birisi "Active Directory(asd)" diğeride "Azure Active Directory(qwe)" şeklinde. Parantez içindeki kısımlar değişiyor. Ben de parantez içinde olan kısımları almadan string'e göre iş yapmak istiyorum. contains kullandığım zaman bir string diğerini kapsadığı için hiç ikinciye gelmiyor. Nasıl çözebilirim?
24 Haziran 2020 Java kategorisinde kupanintorunu 347 puan sordu
0 oy
1 cevap 97 gösterim
97 gösterim
Merhaba Static ifadesini genelde nerelerde kullanmak faydalıdır? Örneğin Database operation'ları yöneten bir class da uygulamak (örneğin bir id vererek select den bir satır döndürme) uygun olur mu? Karşılaştığım bir konu da database operations içeren classta ... olması 2 thread olduğunda bozulmalara neden olabilir. Bu gibi durumlar genel anlamdaki projelerde nasıl handle ediliyor? Teşekkürler.
26 Ağustos 2017 Java kategorisinde erkanerkisi 211 puan sordu
0 oy
1 cevap 219 gösterim
219 gösterim
Selam , internette kodları incelerken String.format() methodu gördüm, acaba ne işe yaramaktadır. name'e dışarıdan bir parametre atıyor, merhaba dünya yazdırmıştı örnekde, o nedenle peş peşe eklemeye yarıyordur diye tahmin yürüttüm. private static final String template = "Merhaba, %s!"; .... String.format(template, name);
19 Ocak 2017 Java kategorisinde tolgacelik.art 2.0k puan sordu
0 oy
1 cevap 220 gösterim
220 gösterim
Selamlar, Ubuntu bazlı bir linux kullanmak ve linux üzerinde java geliştirmesi yapmak istiyorum, javayı nasıl kurabilirim?
9 Kasım 2016 Java kategorisinde kenan 5.7k puan sordu