Backtrack

Resim
Backtrack Nedir? Ubuntu(->Debian) tabanlı bir Linux dağıtımıdır. Güvenlik uzmanlarının ihtiyaç duyabileceği hemen her tür açık kaynak kod yazılım hazır kurulu olarak gelir. Linux üzerinde KDE/GNOME ya da benzeri masaüstü kullandıysanız Backtrack kullanırken zorluk çekmezsiniz. Masaüstü kullanarak erişilebilecek programların çoğu, komut satırından çalışan program/scriptlerin düzenli menüler haline getirilmiş halidir. Backtrack Linux üç farklı şekilde kullanılabilir; o Hazır CD den çalışma yöntemi(Live CD) o Hard disk ’e kurulum yöntemi o Sanallaştırma  imajları(Vmware, VirtualBox)kullanım yöntemi Tavsiye edilen yöntem; o Backtrack ’i diske kurmak veya sanallaştırma platformlarında çalıştırmaktır. Vulnerability Assesment( Zafiyet Taraması) O Zafiyet taraması bir sistemdeki muhtemel tüm açıkların belirlenmesine yönelik tasarlanmış bir testtir. O Zafiyet taramasında amaç taranan sistemin genel güvenlik gör...

Java Genel Özellikleri

Java Nedir ?

   OOP(Object Oriented Programming – Nesne Yönelimli Programlama) dilidir. Diğer programlama dillerinden farkı platformun bağımsız olmasıdır. Yani her işletim sisteminde çalışabilmesidir. Günümüz de birçok işletme Java programlama dilini kullanıyor. Örnek vermek gerekirse şuan Siirt Devlet Hastanesi Java dili yazılmış bir sistem kullanıyor.
Bir Java kodunun çalıştırılma aşamaları
Bir java dosyasının çalışma prensibi


Java 'nın bilinen birkaç teknolojisi

  • Java SE
  • Java EE
  • Hibernate
  • Spring
  • Maven
Şimdi biraz bu kavramlardan bahsetmek istiyorum.

Java SE(Java Standart Edition)

   Bir diğer adı Temel Java ’dır. Java programlama diline başlamayı düşünenlere Java dilini bilenler her zaman Java SE ‘yi öğrenmeleri gerektiğini söyler. Java SE ‘de konsol uygulamaları geliştirerek hem programlama mantığını öğreniyorsun hem de kodlama bilgisi edinmiş oluyorsun. Bunun yanında Web Uygulamaları için Applet1 yazabiliyorsun.

Java EE(Enterprise Edition)

   Java EE (Java Enterprise Edition, eski adıyla J2EE), özellikle büyük çaplı projelerin ihtiyaçları için geliştirilmiş Java teknolojilerinin bütünün oluşturduğu çerçevenin ve standardın ismidir. Java EE Bileşenleri

  • Applet: Web tarayıcı üzerinde çalışan GUI uygulamalarıdır.
  • Application: İstemci bilgisayarda çalışan yazılımlardır. GUI uygulaması olabileceği gibi arka planda çalışan servislerde olabilir.
  • Web Application: Web konteynerde koşturulan ve HTTP isteklerini karşılayan yapılardır. (Servlets, JSF gibi )
  • EJB: (Enterprise Java Bean ) EJB konteynerin Transaction destekli iş mantığını yöneten bileşenlerdir.

Hibernate

   Hibernate bir ORM Framework ‘tür. Asıl amacı olarak sınıfları veri tabanı dosyasına dönüştürür diyebiliriz. Hibernate ile yapılan tüm işlemleri JDBC2 ile yapabilmekteyiz. Esasında Hibernate veri tabanımızla aramızdaki tüm işlemleri yürüten bir aracıdır.

Spring

   Spring bir Framework ‘tur. Spring, kurumsal uygulamalar geliştirmek için en popüler java geliştirme ortamıdır. Dünya genelinde milyonlarca geliştirici Spring Framework üzerinde kolayca test edilebilir, yüksek performanslı uygulamalar geliştirmektedir.

Maven

   Maven, proje geliştirirken proje içerisinde bir standart oluşturmamızı, geliştirme sürecini basitleştirmemizi, dokümantasyonumuzu etkili bir şekilde oluşturmamızı, projemizdeki kütüphane bağımlılığını ve IDE bağımlılığını ortadan kaldırmamızı sağlayan bir araçtır.

1Applet nedir:
            Applet, bir tarayıcı içerisinde çalışan program parçasıdır. Bir web sayfasında bir resim veya tablo gibi belli bir dikdörtgen içerisinde çalışır ve programlamayla yapabilecek birçok işlemi gerçekleştirebilir. İndirildiği makineye bağlanıp veri alış verişinde bulunabilir, kullanıcıyla etkileşimli olarak çalışabilir.
2JDBC nedir:
Java ile ilişkisel bir veritabanına erişmek ve verisel işlemler yapmak istiyorsak program-veritabanı arasındaki köprüdür.

Metotlar

Bir görevi yerine getirmek için kod bloğunun bir araya gelmesidir. Programı küçük parçalara bölmek için metotları kullanırız. İsimlendirmesine fiil içermesine dikkat edilmelidir. OOP(Nesne Yönelimli Programlama) programlar birbirleri ile etkileşimde olmalıdır. 4 çeşit metot vardır. Bunlar:
  • Parametreli – Dönüşlü Metotlar
      public int SayiArttir(int sayi) 
        { 
            return sayi++; 
        }
    
  • Parametresiz – Dönüşlü Metotlar
        public int Topla() 
        { 
            int s1=10; int s2=5; return s1+s2; 
        }
    
  • Parametreli – Dönüşsüz Metotlar
        public void Yaz(String metin) 
        {
            System.out.println(metin); 
        }
    
  • Parametresiz – Dönüşsüz Metotlar
        public void Yaz() { 
            System.out.println("Hoş geldin"); 
        }
    
Overloading(Metotlarda aşırı yüklenme)
Aynı sınıfta ve aynı isimde metot tanımlamaya denir. Metot aşırı yüklemenin kuralları vardır. Bunlar:
  • Metotların isimlerinin aynı olması
  • Metotların parametre sayıları eşit ise bu parametrelerden en az birinin tipi farklı olmalıdır. Parametre sayıları farklı olabilir.
  • Metotların aynı sınıfta olması gerekir.
Aşırı yüklenme konusuna bir örnek verelim o zaman…
    public void Yaz() 
    {
        //içerik 
    } 
    public void Yaz(String metin) 
    {
        //içerik
    }
    public void Yaz(int sayi) 
    { 
      //içerik  
    }

Özyineleme(Recursion)
Metodu kendi içinde tekrar çağırma fonksiyonlardır.
O zaman bir örnekle gösterelim
  • Fibonacci
        public int fibonacci(int x)
        {
            if(x<=1)
            {
                return x;
            }
            else
            {
                return fibonacci(x-1)+fibonacci(x-2);
            }
        }
    
  • Faktoriyel
        public int faktoriyel(int x) 
        { 
            if(x==1) 
            { 
                return 1; 
            } 
            else 
            { 
                return (x*(faktoriyel(x-1))); 
            } 
        }
    
Kurucu Metot(Constructor)
Java ‘da nesne ana programda çalıştırıl çalıştırılmaz bir metodun çalışmasını istiyorsak kurucu metod kulanılır.
Bir de şu konuya değinelim kurucu metotta Aşırı Yükleme(Overloading) kavramını kullanabiliriz.
public class kurucumetot {
    kurucumetot()
    {
        System.out.println("ben parametresiz kurucu metotdum");
    }
    kurucumetot(String ad)
    {
        System.out.println("Ben parametreli kurucu metodum");
    }
}

Static Metot
Oluşturulan metodun nesne çağırılmadan kullanabilme özelliğine denir. Örnek bir uygulama yaparak daha iyi kavrayabiliriz.
public class Staticmetodlar {

    public static int x = 5;

    public static void MerhabaDe() {
        System.out.println("Merhaba");
    }

    public static void (String[] args) {
        MerhabaDe();
        System.out.println("x = "+Staticmetodlar.x); 
    }
}

This Yapısı
Sınıf içerisinde tanımlanan değişken metot içerisinde aynı isimdeki değişkeni ayırmak için kullanılır. Örneğin:
public class Thisyapisi {
    public int x;
    public void Hesapla(int x) {
        this.x = x + 1;
        System.out.println("x : " + this.x);
    }
}

Erişim Belirleyiciler(Acces Modify)
Java ‘da sınıfların değişkenlerine ve metotlarına erişimlerini erişim belirleyicilerle kısıtlayabiliriz. 4 temel erişim belirleyicisi vardır. Bunlar:
  • PublicHer yerden ulaşılabilirler.
    public int x;
    
  • PrivateSadece içinde bulunduğu sınıfın içinde erişim yapılabilir.
    private int x;
    
  • ProtectedSadece paket içinde erişim yapılabilir. Bir de ek olarak türemişler(Kalıtım alan sınıflar) de vardır.
    protected int x;
    
  • DefaultSadece sınıf içinde erişim yapılabilir. Bu erişim belirleyicisinde başta herhangi bir kelime gelmez.
    int x;
    
Kapsülleme(Encapsulation)
Bir sınıfın içerisindeki değişkenlerin ve metotların korunmasıdır. Metot ve değişkenlerin dışarıdan erişimin sakıncalı olduğu durumlarda kapsülleme mekanizması kullanılır. Kapsülleme sayesinde sınıf üyeleri dış dünyadan gizlenir.
public class Kasulleme {
    private int id;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
}

Getter – Setter
Java ‘da erişim belirleyici olarak private değişkenlerinin kullanılmasını sağlayarak veri kapsülleme durumunun sağlanmasına olanak sağlayan metotlara denir. Bir örnek verelim.
public class GetterSetter {
    private int id;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
}

Kalıtım(inheritance)
Miras anlamı da vardır. Bir sınıftan başka bir sınıf türeterek bu sınıfın metotlarını ve değişkenlerini kullanmamıza olanak sağlayan bir yapıdır. Kalıtım alınan sınıfın değişken ve metotlarını elde edebiliriz. Bir sınıfı mirasçı olarak bir başka sınıfa miras bırakmak için miras alacak sınıfın isminden sonra extends sözcüğü kullanılır. Bir örnekler konuyu açıklığa kavuşturalım.
canli.java
public class canli {
    public int el;
    public int ayak;
}
insan.java
public class insan extends canli {
    public void NefesAl() {
        System.out.println("Nefes aldım");
    }
}
kalitim.java
public class Kalitim {
    public static void main(String[] args) {
        insan i = new insan();
        i.NefesAl();
        i.el = 2;
        i.ayak = 2;
        System.out.println("Benim "+i.el+" adet elim ve "+i.ayak+" adet ayağım vardır.");
    }
}

Super
Super anahtar sözcüğü kalıtım alınan sınıfın kurucu metodunu çağırmak için kullanılır. Örnek bir kullanım yapalım.
canli.java
public class canli {
    canli()
    {
        System.out.println("Kurucu metot");
    }
}
insan.java
public class insan extends canli {
    public insan()
    {
        super();
    }
}
Kalitim.java
public class Kalitim {
    public static void main(String[] args) {
        insan i = new insan();
    }
}

Override(Metot Ezme)
Kalıtımda aynı metottan aynı isimde iki metot varsa çalışmasını istediğimiz başına koyarsak diğer metodu ezip çalışmamasını sağlarız.
Sinif1.java
public class Sinif1 {
    public void Yaz() {
        System.out.println("Hoşgeldiniz");
    }
}
Sinif2.java
public class Sinif2 extends Sinif1 {
    @Override
    public void Yaz() {
        System.out.println("Merhaba");
    }
}
override.java
public class override {
    public static void main(String[] args) {
        Sinif2 s = new Sinif2();
        s.Yaz();
    }
}
Görüldüğü üzere kalıtım aldığı sınıfın metodunu saf dışı edip kendi sınıfındaki metodu kullandık.

Final
Java da final sözcüğünün 4 temel kullanımı vardır.
  • Sabit değer elde etmek için kullanılır. Final değişkenleri tanımlandığı gibi değer verilmelidir. Aksi takdirde hata alırsınız.
    public final int x=3;
    
  • Metotların ezme(override) olayını engellemek için kullanılır.
        public final void Yaz() 
        {
            System.out.println("final kavramı");
        }
    
  • Bir sınıfı kısırlaştırmak için kullanılır. Yani kalıtım yapılmasını engeller.
    public final class Sinif {
        //metot ve değişkenler 
    }
    
  • Metodun parametrelerinde final kullanılır. Metot final türünde bir değişken alıyorsa o değişken sadece okunabilir ve değişkenin değeri değiştirilemez.
    Final.java
    public final class Final {
        public void Metod(final int id) {
            System.out.println("id değeri = " + id);
        }
    }
    
    program.java
    public class program {
        public static void main(String[] args) {
            Final f = new Final();
            f.Metod(5);
        }
    }
    

Yorumlar

Bu blogdaki popüler yayınlar

Faydalı cmd kodları

C# formda kayan yazı oluşturma

Java SE Ders 3 Matematiksel İşlemler