07 Declare Enums

Enum yapisini anlayabilmek icin su ornegi vermek istiyorum, bir kahve dukkaninda short, tall, grande ,venti boyutlarinda secenekler mevcuttur yani bizim ihtiyacimiz olan degisken sadece bu degerleri almalidir. Boyle bir yapiyi Java bize enum aracigiliyla saglayabilir.

enum CoffeeSize { SHORT , TALL , GRANDE ,VENTI };

enum Javada bir anahtar kelimedir. Burada verdigim SHORT, TALL gibi isimler buyuk harf olmak zorunda degil fakat bir Code Convention dir.
Enumlar kendilerine ozel sinif yapisinda tanimlanabildigi gibi bir sinifin uyeside olabilirler. Fakat bir metot icerisinde tanimlanamazlar.

Oncelikle bir sinif disarisinda tanimlayalim. enumlar sinif uyesi olarak tanimlanmadiginda, private veya protected olarak tanimlanamazlar.

JavaCoffeeTest.java

enum CoffeeSize {
	SHORT, TALL, GRANDE, VENTI
};

class JavaCoffee {
	CoffeeSize size;
}

public class JavaCoffeeTest {
	public static void main(String[] args) {
		JavaCoffee coffee = new JavaCoffee();
		coffee.size = CoffeeSize.VENTI;
		System.out.println(coffee.size);
	}
}

Ornegimizi inceleyecek olursak bir enum tanimladik, JavaCofee isimli sinifimizin bu enum turunde bir uyesi(member) var (size).
main metodumuz icerisinde bir JavaCoffee nesnesi olusturuyoruz ve size degiskenine VENTI degerini atiyoruz.

Continue reading 07 Declare Enums

Java Persistance API – JPA Nedir?

jpa

JPA, Java’nın derinliklerine indiyseniz adını muhakkak duymuşsunudur. Java Persistance API önceden açıkladığım Object Relational Mapping API’lerinden bir tanesidir.

jp

 

Java Persistence API, JPA nesnelerin ilişkilendirilmesini sağlayan, bu ilişkileri unutmayan sonradan da kullanmaya devam edebileceğimiz bir teknolojidir.

Continue reading Java Persistance API – JPA Nedir?

05 Servlet Lifecycle

Merhaba Arkadaslar,
Bu yazimda Servlet lifecycle(yasam dongusu) konusundan bahsedecegim ve sonunda da kucuk bir uygulama yapacagiz. Hatirlayacagimiz gibi Servletlerin tum kontrolu Container’in sorumlulugu altindaydi. Dolayisiyla Servletlerin yasam dongusunden de Container sorumludur.

Handle Request

ervlet Container , gelen istegi su adimlari gerceklestirerek karsilar. ( handle request)
Bu vesileyle Servlet Lifecycle’a da goz atmis olacagiz , sonrasinda Servlet Lifecycle’i daha detayli olarak incelemeye calisacagiz.
Ornek bir senaryo uzerinde adim adim incelemelerde bulunalim;

Adim-1
Kullanici Servlet’i cagiran URL linkine tiklar.

01-click-url

Continue reading 05 Servlet Lifecycle

06 Declare Class Members – 03

Merhaba Arkadaslar,
Bu dersimizde Java’da , variable (degisken) konusunu isleyecegiz.

Javada 2 tip degisken vardir.

primitive
reference variable (referans degiskeni)

primitive Degiskenler  (primitive variables)
primitive degiskenler su 8 tipden biri olabilir ;
char, boolean, byte , short , int , long , double , float
primitive bir degisken tanimlandiginda turu degistirilemez yani int a ,bir alt satirda short a olarak degismez. Java ciddi bir dildir bu tarz kontrollere onem verir

primitive degiskenler su durumlarda tanimlanabilir ,

  • bir class variable (yani static degisken)
  • instance variable (objeye ait degisken)
  • method parametresi

Burada bir dip not vermek istiyorum bir cok insan bu kavrami karistirmakta veya ayni sanmaktadir.
metot tanimlamasinda kullanilan degiskenler parametredir, methodu cagirirken gonderilen degiskenler ise argumandir .

Bu 8 primitive degiskenden 6 tanesi ( char ve boolean haric ) signed (isaretli) yani negatif ve pozitif degerler alabilir.

Continue reading 06 Declare Class Members – 03

9 Madde’de Bir Developer’ın Proje Süreci

developers-team-786x305

Her proje önemlidir bir developer için. Sonuçta CV’si dolacaktır, yeni iş imkanları doğuracaktır, ufkunu genişletecektir. Ama proje süreci oldukça zordur, patronuyla uğraşması ayrı, müşteri ile uğraşması ayrı, kodla uğraşması ayrıdır.

Gelin, bir developer’ın Proje sürecini inceleyelim:

1- Patron’un Developer’ı Odaya Çağırması

tumblr_mfhulhXnOG1rr1202o1_500

İlk evredir. ‘Elinde iş var mı?‘, ‘bu proje senin dalında mı?‘ gibi soruların yer almadığı odadır orası. ‘Developer değil mi? Her dili yazmalıdır!‘ dur patron için. Patron, kabaca projeden bahseder, deadline’ı söyler ve teşekkür edip Developer’ı masasına yollar. Developer’ın sadece kafa salladığı evredir.

Continue reading 9 Madde’de Bir Developer’ın Proje Süreci

04 – Apache Tomcat

Neden Servlet Container olarak Apache Tomcat kullaniyoruz ?

Bunun nedeni calistigim tum kaynaklarda Apache Tomcat kullaniliyordu. Isteki projelerde de Apache Tomcat kullaniliyor. Apache Tomcat populerligi en fazla olan Servlet Containerdir diyebiliriz. Dolayisiyla bu yazilarim boyunca Apache Tomcat kullanmayi dusunuyorum. Baska bolumlerde farkli Servlet Containerlari da kullanabiliriz.

Apache Tomcat vs Glassfish

Apache Tomcat, Servlet Container‘dir baska bir deyisle Web Containerdir. Glassfish ise Application Server‘dir. Application Server’lar hem Servlet Container’a hem de EJB Container’a ve ek ozelliklere sahiptir. Servlet ve JSP icin Apache Tomcat yeterli olacaktir.
Glassfish Application Server , JSF+EJB projelerine uygun olacaktir. Apache Tomcat uzerinde Spring MVC projeleri de rahatlikla calisacaktir.

application-server

Continue reading 04 – Apache Tomcat

05 Declare Class Members – 02

Bu dersimizdee Class Member (instance variable, methods) icin kullanabilecek nonaccess member modifier konusunu isleyecegiz.

final Methods

final anahtar kelimesi metotlar icin kullanildiginda , alt sinif tarafindan bu metodun ezilmesini (override) engeller.

A.java

package purejava5;

public class A {

	void method1() {

	}

	final void method2() {

	}

}


Continue reading 05 Declare Class Members – 02

Hibernate Nedir?

hibernate

İşimiz gücümüz veri için. Programlamada ki amaçların en temelinde verilerin tutulması, sağlıklı bir şekilde depolanması, bu kaydedilen verilerin tekrar güncellenmesi sorgulanması gibi işlemler yapıyoruz, yapacağızda.

Hibernate bir ORM Firework’udür. Orm Nedir? bu yazımızda açıklamıştık.

2001 yılında Gavin Kral tarafından oluşturulan açık kaynak kodlu olarak yayınlandı Hibernate. Hem Java’da hem de C Sharp’ta kullanılabilen bir fireworktür. Hibarnate ile yapılan tüm işlemleri JDBC ile yapabilmekteyiz. Ancak kod karışıklığı ve Nesneye Yönelimli Programlama mantığına uygun bir yazılım standartına ulaşmak için yapılan

Nesne tabanlı programlarda veritabanımızda kullanacağımız bir yapıdır Hibernate. Hibernate veritabanımızla iletişime geçen programımızdan her türlü işlemi yapmamızı sağlayan bir aracıdır. Hibernate bir ORM aracısıdır tekrar belirtmekte fayda var.

Continue reading Hibernate Nedir?

ORM Object Relational Mapping Nedir?

ORMMapping

Bu yazıda ORM nedir Nasıl bir çalışma mantığı var bu konuları işledikten sonra avantajlarını sizinle paylaşacağım.

ORM ve ya Object Relational Mapping denilen kavram aslında bizim kod bloklarımız ile veritabanımız arasında oluşan bir köprüdür. Bu tanım ORM’nin en basite indirgenmiş hali.

Şimdi bu tanımdan sonra biraz işi detaylandırarak anlatmaya çalışacağım.

Continue reading ORM Object Relational Mapping Nedir?

Java Serialization (Serileştirme) Nedir?

serialization

 

 

 

 

 

 

 

Java tamamen nesne yönelimli bir programlama dili olduğu için, Java üzerinde uygulama geliştirirken nesneleri sıkça kullanıyoruz. Java platformunda bilindiği gibi, int, double, byte gibi primitive tipler dışındaki herşey nesnedir.

Ancak Java’da kullanılan nesneler, Java platformunda (JVM) hayat bulurlar. Platform dışında nesnelerin, hiçbir anlamı yoktur. Nesne yönelimli programlama paradigmasını destekleyen Java’da, tasarlanan nesnelerin tekrar kullanılabilmesi (reuse) önemli bir konu olduğuna göre, bu nesneleri Java platformu dışında da hayata geçirmek gerçekten önemlidir. Bahsedilen bu problem, Java Serialization API sayesinde çok kolay bir şekilde aşılabiliyor.

Konuya bir de şu yönden bakarsak, herhangi bir nesne içerisindeki fieldları bir dosyaya yazdırdığımızda, bu verilerin sadece değerlerini (values) dosya içerisinde depolarız. Halbuki bu verilerin sınıf tanımlaması içerisindeki tipleri de en az değerleri kadar önemlidir. Herhangi bir nesnenin fieldındaki değer 3 ise, bu değerin string mi int mi olduğunun dosya üzerinde bir anlamı yoktur.

Java Serialization API sayesinde bir nesnenin birebir kopyasını, Java platformu dışında da depolayabiliriz. Bu mekanizma ile daha sonra,  nesneyi depolanan yerden çekip, aynı durum (state) ve özellikleri ile kullanmaya devam edebiliriz. Tüm bu sisteme, Object Serialization (Nesne Serileştirme) adı verilir.

Continue reading Java Serialization (Serileştirme) Nedir?