08 Declare Var-Args

Merhaba Arkadaslar,
Bu yazimda Java da var-arg yapisindan bahsedecegim, bu yapi pek de bilinen bir yapi degildir ama kullanisli olabilecegi durumlar olabilir.

Oncelikle arguman ve parametre kavramindan bahsetmek istiyorum.

arguman (argument) ; Bir metodu cagirirken parantezler arasinda yazdigimiz ifadelerdir.

method1(''volkan'',23);

Burada volkan ve 23 ifadeleri birer argumandir.

parametre(parameter) ; Bir metodu tanimlarken , nasil cagirilacagini belirttigimiz tanimladigimiz ifadeler ise parametredir.

void method1(String name, int age)  { }

Bu metot String ve int turunde 2 adet parametre beklemektedir.

Continue reading 08 Declare Var-Args

06 – ServletConfig

ServletConfig

ServletConfig arabirimi/interface,  javax.servlet paketi/package altinda tanimlanmistir ve su metotlara sahiptir.

public String getServletName();
public ServletContext getServletContext();
public String getInitParameter(String name);
public Enumeration<String> getInitParameterNames();

Container, bir servleti ilk kullanima hazirladiginda(initialized) bu servlet icin bir ServletConfig olusturur. Yani her Servlet objesi icin birtane de ServletConfig objesi olusturulur.

ServletConfig objesi, deployment descriptor(web.xml )dosyasinda ilgili servlet icin tanimlanmis bilgilere ulasmak icin kullanilir. Bu bilgiler veritabanina baglanmak icin gereken bilgiler olabilir.

Bu tanimlanmis bilgilere Servlet Init Parameter adi verilir. Bu parametreler Servlet Container tarafindan , servlet lifecycle/yasam dongusunde sadece bir kez okunur.

Servlet Container bir daha bu init parametrelerini bir sonraki deploy islemine kadar okumaz.

Onceki yazida Servlet lifecycle(yasam dongusu) konusundan bahsetmistik. Simdi bu yasam dongusunde ServletConfig icin detaya inelim ;

Adim-1
Container , deployment descriptor(web.xml) dosyasini okur.

Adim-2
Container yeni bir ServletConfig instance/ornegi/objesi olusturur.

01-02

Continue reading 06 – ServletConfig

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?