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
222 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 içerisinde(metodlarda) select ifadesini çekerken connection aç ve kapa da mevcut. Metod static olunca connection'ı da static yapmamızı istiyor yoksa kızıyor. connection'ın static olması 2 thread olduğunda bozulmalara neden olabilir. Bu gibi durumlar genel anlamdaki projelerde nasıl handle ediliyor?

Teşekkürler.
Java kategorisinde 211 puan

1 cevap

0 oy

Static kullanımı nerelerde faydalı olur sorusu güzel bir soru olmuş yes

Java'da herşeyi static yaparsak java'yı C gibi kullanmış oluruz derdik biz eskiden. Peki hatalı bir davranış mı? Tabiki hayır. Static insanlar kullansınlar diye var :) Her ölçüden biraz makul kalabilmek lazım.

Bu soruya kesin doğru olacak bir cevap vermek sanıyorum çok kolay değil. OOP destekleyen (zorunlu koşan) dillerde sanıyorum static kullanımı en acı veren konulardan birisi, hemen heryerde bir sorun yaşama ihtimali var. Benim şimdiye kadar edindiğim tecrübe ile nerelerde kullanılabileceğini biraz açıklayayım.

  1. Herhangi bir global/sınıf bazında değişkene erişimi bulunmayan yerlerde, en azından başına bela almak istemiyorsan (en önemli tanım bu sanıyorum)
  2. Utility diye isimlendirilen yardımcı sınıflarda (burda da dikkat etmen gereken global değişkene erişim olmamalı)
  3. Yazdığın metod herhangi bir sınıfı yaratmadan bile kullanılacaksa,

En önemli soru; ilk soru. Mesela sen db işlemleri üzerinden sormuşsun. Db işlemlerini yaparken herhangi bir şekilde db connectiona ihtiyaç duyacaksın, bu connection nesnesini nerede tutacaksın? Static bir değişkende mi? Sorunların başlangıç noktalarından birisi. Static kullanma demiyorum ama her seferinde db connection açıp kapatacaksan ve bu açıp kapatmayı bir pool üzerinden alacaksan miss, çok güzel seçenek. Ama ben açarım connectionu atarım bir değişkene sonra kullanır kullanır dururum diyorsan sıkıntı. Sen kullanırken bir başka kullanıcı girer de kapatırsa ne olacak? Static olduğu için herkes tarafından kullanılıyor olacak. Bir dönemler sürekli yaşadığımız bir sorun. Düzelt düzelt bitmiyor.

Daha farklı bir tabirle; yazdığın metodun kullandığı değişkenler metodun hayatından uzunsa sıkıntı yaşaman çok muhtemel. Kullandığın değişkenler de o metodun hayatından kısa olursa sıkıntı yok, static yazmaya devam edebilirsin.

İyi çalışmalar.

6.2k puan

İlgili sorular

0 oy
1 cevap 332 gösterim
332 gösterim
Merhabalar İki sorum olacak; 1. JSP de örnek login ekranından giriş yapıldığında session a user bilgilerini setlediğimizde istediğimiz herhangi bir servlette veya controllerda getleyip user bilgilerini kullanabiliyor muyuz? Amacım aslında user bilgilerini her jsp sayfasında ... sessionlar karışıyor. Burda sorun eclipse de 2 kere run etmem midir projeyi acaba? Şimdiden Çok Teşekkürler, Erkan.
8 Ağustos 2017 Java kategorisinde erkanerkisi 211 puan sordu
1 oy
2 cevap 380 gösterim
380 gösterim
Genel olarak insanların yaklaşımı static değişken daha az kullanılmalı şeklinde. Neden static değişken az kullanılmalı? Sakıncaları nelerdir? Yerine ne önerirsiniz?
30 Ocak 2016 Genel Kavramlar kategorisinde kenan 6.2k puan sordu
0 oy
1 cevap 239 gösterim
239 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 365 puan sordu
0 oy
1 cevap 396 gösterim
396 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.
8 Aralık 2015 Java kategorisinde kenan 6.2k puan sordu
0 oy
1 cevap 163 gösterim
163 gösterim
Selamlar, Bir Url den JSP kullanarak bilgileri nasıl alıp işleyebilirim? URL="/SSO_redirect.jsp?form=Turcom" form adındaki değişkeni alıp kontrol etmek istiyorum. Teşekkürler.
6 Temmuz 2021 Genel Kavramlar kategorisinde kupanintorunu 365 puan sordu