Javada Değişkenler,Veri Tipleri,Veri Tip Dönüşümleri

Değişkenler verileri tutan yapılardır. Sınıf değişkenleri(Class Variables),Anlık değişkenler(Instance Variables) ve Yerel Değişkenler(Local Variables) olmak üzere üç şekli vardır.

Tanımı:

Erişim Belirteci+Anahtar Sözcük(Varsa)+Veri Tipi+Değişken Ismi 

şeklindedir.

Erişim Belirteci: public,protected,friendly,private şeklinde 4 tanedir. İhtiyaca göre herhangi bir tanesi       kullanılır. Değişkene erişimin kısıtlarını belirler.

Anahtar Sözcük:final,static gibi anahtar sözcükler değişken tanımlanırken gerektiğinde kullanılabilir.Degişkene ek özellik katarlar.

Veri Tipi: Değişkenin tuttuğu verinin tipini belirtir. Temel Veri Tipi(primitif) ve Referans Veri Tipi(Wrapper) olarak ikiye ayrılır.

       1.Temel Veri Tipi(Primitif):

Primitif veri tipleri değişkenin kopyasını kullanırlar. Belleğin stack(yığın) bölgesinde bulunurlar.

Bit Aralık (varsayılan)İlk Değer
Byte 8 bit-1byte -128 ,127 0
Short 16 bit-2 byte -32768,+32767 0
Integer 32 bit-4 byte -231,+231-1 0
Long 64 bit-8 byte -263,263-1 0L
Float 32 bit-4 byte -3.4 1038,3.4 1038 0,0f
Double 64 bit-8 byte -1.7 10308,1.7 10308 0,0d
Char 16 bit-2 byte \u0000
String Null
Boolean false

şeklindedir.

Kod Örneği ve Bellek Durumu;

package JavaBlokYaziKodlarim;
public class PrimitifveReferansTipleri {
public static void main(String[] args) {
//Primitif değişkenler belleğin stack bölgesinde bulunurlar ve değişkenin kopyasını kullanırlar.
int prmtf1=15;
int prntf2=25;
prmtf1
System.out.println(“prmtf1:”+prmtf1);
System.out.println(“prmtf2:”+prntf2);

prmtf1=prntf2;

prmtf2
System.out.println(“prmtf1:”+prmtf1);
System.out.println(“prmtf2:”+prntf2);

prmtf1=20;

prmtf3
System.out.println(“prmtf1:”+prmtf1);
System.out.println(“prmtf2:”+prntf2);
}
}

        2.Referans Veri Tipi(Wrapper)

Referans veri tipleri primitif veri tiplerinin sınıf örnekleridir. Primitif veri tiplerini kapsarlar(wrapper). Belleğin heap bölgesinde tutulurlar. Stack bölgesinde değişkenin adresi,  heap bölgesinde degeri tutulur.

Sınıf örnekleri oldukları için sınıfın sahip olduğu metodları kullanabilirler.

Vektör ,koleksiyon içinde tutulabilirler.

Hashmap anahtar değeri olarak kullanılabilirler.

Serileştirme işlemi yapılabilirler.

Null değer alabilirler.

Kod Örneği ve Bellek Durumu

package JavaBlokYaziKodlarim;

/**
*
* @author Sezayi
*/
public class ReferansVeriTipi {

public int değer1;
public int deger2;

public ReferansVeriTipi() {
this.değer1 = 0;
this.deger2 = 0;
}

public ReferansVeriTipi(int değer1, int deger2) {
this.değer1 = değer1;
this.deger2 = deger2;
}

public void yaz() {
System.out.println(“deger1:” + this.değer1 + “\ndeger2:” + this.deger2 + “\n”);
}

}

package JavaBlokYaziKodlarim;

/**
*
* @author Sezayi
*/
public class ReferansVeriTipiMain {

public static void main(String[] args) {
ReferansVeriTipi ref1 = new ReferansVeriTipi(10, 20);
ref1.yaz();
ref1
ReferansVeriTipi ref2 = new ReferansVeriTipi(30, 40);
ref2.yaz();

ref2

ref1 = ref2;

ref3
ref1.yaz();
ref2.yaz();

ref1.değer1 = 4;
ref1.deger2 = 3;

ref4
ref1.yaz();
ref2.yaz();
}
}

Veri Tipi Dönüşümleri

Primitif veri tipleri ve Referans veri tipleri kendi içlerinde de birbirleri arasındada dönüşüm yapabilirler.

Primitif veri->Referans veri tipine dönüşüm :boxing

Referans veri->Primitif veri tipine dönüşüm: unboxing olarak adlandırılır.

Dönüşüm yapılırken ;

Küçük veri tipinden büyüğüne dönüşüm otomatik gerçekleşir . Büyük veri tipinden küçüğe dönüşümlerde veri kaybı yaşanacağından dikkat edilmesi gerekir ,cast işlemi gerekir.

Kod Örneği

package JavaBlokYaziKodlarim;/**
*
* @author Sezayi
*/

/*
Java uygulamalarında kullanılan veri türleri arasında uyumsuzluk olduğunda boyutu küçük olan veri tipi otomatik olarak
boyutu büyük olan veri tipine dönüştürülür.

*/
public class TipDonusumleri {
public static void main(String[] args) {
//Sayısal tipler arası
int intSayi;
float floatSayi=3.23f;
double doubleSayi=12.12;

//Büyük veri tipinden küçüğe geçişte casting gerikir.
intSayi=(int) floatSayi;
System.out.println(intSayi);
System.out.println(floatSayi);

//Kücük veri tipinden büyük veri tipine geçişte otomatik casting yapılır
System.out.println(doubleSayi);
doubleSayi=intSayi;
System.out.println(intSayi);
System.out.println(doubleSayi);

//Primitif veri tipleri ve karakter katarları dönüşümleri

String s1=”12″;
String s2=”13″;

//String veri tipinden int e dönüşüm
int intDonusumValueOf=Integer.valueOf(s1);
int intDonusumParse=Integer.parseInt(s2);

System.out.println(intDonusumValueOf);
System.out.println(intDonusumParse);

//Float ve Double içinde aynı fonksiyonlar geçerlidir.

//Primitif Sayısal veri tiplerinin Stringe veri tipin çevrilmesi(3 yontem)

int donusumInt=14;

String stringDonusum1=””+donusumInt; //otomatik olarak stringe çevrilir
String stringDonusum2=String.valueOf(donusumInt);
String stringDonusum3=Integer.toString(donusumInt);

//Double ve float içinde bu yöntemler geçerlidir.
System.out.println(stringDonusum1);
System.out.println(stringDonusum2);
System.out.println(stringDonusum3);

}
}

Değişken Tanımlama Kuralları

  • Değer atanmadan bellekte yer tutmazlar.
  • Default erişim belirteci public tir.
  • Tüm sınıflar java.lang sınıfından türemiştir.
  • Degişken isimleri sayı ile başlamaz,boşluk ve Türkçe karakter içermez
  • Case sensitive ; büyük küçük harfe duyarlıdır
  • Aynı satırda aynı tip değişkenler tanımlanabilir
  • İsimlerin anlamlı olması okunabilirliği artırır.
  • Değişken tipi dogru seçilmelidir, gerekmedikçe büyük boyutlu seçilen veri tipi yer israfına neden olur.
  • (java 7) sayısal ilkel veri tiplerini binary olarak tanımlayabiliriz.
  • (java 7) sayısal ilkel veri tiplerini ‘_’ alt çizgi ile gruplayabiliriz.

Değişken Tipleri:

      1.Class Değişkeni: Sınıf bloğu içerisinde bulunan başka hiçbir blok içinde olmayan, static olarak tanımlanan değişkenlerdir.

Static değişkenin özellikleri;

  • Bir anda tek bir değeri olur
  • Sınıf içeresindeki her kod tarafından ulaşılabilir ve hepsi o anki static değişken değerini görür
  • Program boyunca adresini korur
  • Nesne yaratmaya gerek kalmadan kullanılır bu yüzden sınıf değişkeni denir.

       2.Instance( Anlık,dinamik) Değişken: Class değişkeninin static olmayan şekli. Yani sınıf bloğu içeresinde bulunan başka hiçbir blok içinde bulunmayan ,static olarak tanımlanmayan değişkendir. Her sınıf nesnesi için ayrı değer tutar bu yüzden instance değişken olarak adlandırılır.

Nesne yaratılmadan değer atanamaz ,erişilemez.

İnstance değişkenlere ancak ait olduğu nesne içindeki kodla erişilebilir.

Ait olduğu nesne bellekten silindiğinde anlık değişkende yok olur.

      3.Yerel Değişken: Tanımı bir blok içerisinde yapılan ve bu blok içerisinde geçerli olan değişkendir.

Java Nedir?

Java

İlk programlama dillerinin gelişimlerine bakarsak Java’nın faydalarını daha iyi anlarız.

  • Her makine için o makinenin makine dilinde

Bilgisayarlar ilk çıktıklarında programcılar uygulama yapacakları bilgisayarın marka ve modeline göre o makinenin dilinde program geliştirmek zorundaydılar. Makine dilinde program yazmanın oldukça zor olmasının yanında birde bilgisayarların marka çeşitleri artınca işler bir hayli zorlaştı.

  • Assembly

Makine diline nazaran daha kolay bir dil olsa bile üst düzey yazılım dillerine göre hayli zor bir dil.

  • Platform bağımlı ve prosedurel diller

Assembly den sonra çıkan üst düzey diller ; makine ve işletim sisteminden bağımsız, prosedurel olarak program geliştirilmesine,  uygulamanın çalıştırılacağı sistemlerde o sisteme uygun bir derleyici ile tekrar derlenmesi şartıyla imkan sağlamıştır.

  • Platform bağımsız ve nesneye dayalı diller

Farklı işletim sistemleri ve bilgisayar üretici firmaların çıkması, ağ üzerinde farklı bilgisayarların birbirleriyle iletişim kurmalarının gerekliliği ve prosedurel programlama dil yapısının büyük problemleri çözerken zayıf kalması ; nesneye dayalı  ve platform bağımız programlama dillerinin geliştirilmesini gerektirdi.

Java’nın Gelişimi

James Gosling  tarafından sun firmasında küçük boyutlu ,güvenilir,taşınabilir ve dağıtık bir işletim sistemi oluşturmak için çalıştıkları bir projede c++ ın yetersiz kalması, James Gosling ‘i yeni bir dil geliştirmeye yitmiştir.  Java ilk olarak OAK ismiyle çıkmış daha sonra ismi JAVA olarak değiştirilmiştir.

Java Nedir?

Java programlama dili olmasının yanı sıra aslında bir teknoloji topluluğur. Çünkü java bir çok ortam ve cihaz için uygulama geliştirebileceğimiz bir dildir.

Java’nın geliştiricisi James Gosling e göre JAVA;

  • Basit

Standartlara bağlı olması, bellek yönetiminin programcıdan bağımsız otomatik yapılması, çöp toplayıcı sayesinde işi biten nesnelerin bellekten atılması ve hazır kütüphanelere sahip olması basit ve kolay yazılım geliştirilmesini sağlar.

  • Nesne Merkezli

Java nesne yönelimli bir programlama dilidir eğer Java dilinde program geliştirip nesne dayalı programlama kullanmıyorsak Java nın avantajlarından faydalanamayız.

  • Ağlarda yetenekli

Platform bağımsız olması, farklı bilgisayarlardaki uygulamalarla kuracağı iletişimlerde kullanılan nesnelerin güvenli iletişimi ,çok kanallı programlamaya imkan sağlaması ve ağ için tasarlandığından ağ ve güvenliği konusunda sahip olduğu kütüphaneler sayesinde ağlarda yetenekli bir programlama dilidir.

  • Yorumlanan ve Platform Bağımsızdır

Java hem  derlenen hem de yorumlanan bir dildir. Java diliyle geliştirilen uygulamalar ilk önce .java  isimli dosyalar olarak oluşturulur. Daha sonra bu dosyalar .javac ile derlenerek java sanal makinesinin anlayacağı .class uzantılı bytecode diye adlandırılan dosyalara dönüştürülür.Daha sonra bu byte kodlar java sanal makinesi üzerinde çalışma zamanında yorumlanarak makine diline çevrilir böylece uygulama makine üzerinde koşturulmuş olur.

Java sanal makinesi yorumlama işlemini yaparken Java çalışma ortamındaki kütüphaneleri kullanır. Java sanal makinesi işini bitirdikten sonra bellekten atılır.

Her işletim sistemi  için bir Java sanal makinesi sürümü mevcuttur. Java sanal makinesi java uygulamaları yapmak için bilgisayarımıza indirmek zorunda  olduğumuz java geliştirme kit içinde mevcuttur.

Java sanal makinesi  ara bir katmandır.Yukardaki anlatılan yapı Javanın platform bağımsız olması sağlar. Oluşan byte code ları herhangi bir işletim sistemindeki java sanal makinesinde yorumlayıp uygulamanın makine de koşturulmasını sağlanalabilir.

  • Sağlam

Java dayanıklı,sağlam yazılımlar üretmek için geliştirilmiştir. Java derleme ve yorumlama zamanlarında kontrol mekanızmalarına sahiptir.Derleme anında kontrol edilebilen hataları yakalar ,kodun derleme işlemini başarız kılar, hatanın ne olduğunu söyler ve düzeltilmesini ister. Uygulamanın çalışma anında yapılan yorumlama işleminde ise hata işleme mekanızmalarıyla hataların ve istisnaların try /catch yapılarıyla yakalanıp uygulamanın çalışmasına zarar vermeden bildirilmesi sağlanır.

Bellek yönetimini otamatik yaparak  bu yüzden oluşabilecek hataları önler.

Güçlü bir tip sistemine sahiptir çalışma zamanında tip uyumu ve çevrimi kontrol edilir.

  • Güvenli

Ağ ortamları için geliştirildiğinden ağ üzerinde gelebilecek tehlikelere karşı koyabilecek yapıdadır.  Nesne erişimlerini kontrol altında tutar.

  • Taşınabilir

Platform bağımsız olması sayesinde taşınabilir bir dildir.

  • Yüksek performanslı

Java dili tip hiyerarşileri ve hazır kütüphaneleri  ile nesne merkezli programlama modeli yüksek performanslı uygulamalar çıkarmak için biçilmiş kaftandır.

  • Çok kanallı

Java ağ konusunda yetenekli olduğundan çok kanallı programlamaya olanak sağlar.

  • Dinamik

Java Teknolojileri

Java , Java SE,Java EE ve Java ME olmak üzere 3 farklı sürüme sahiptir.  Java SE java programlama dilidir. Java temellerini, javanın özelliklerini kapsar. Java EE javanın büyük kurumsal projeleri kolayca gerçekleyebilmesi için belirli standartlar eşliğinde geliştirilmiş bir sürümdür. Java EE ve farklı frameworkler ile birlikte kullanılarak kolay ,hızlı, esnek uygulamalar geliştirilir. Java ME ise javanın gömülü sistemlerdeki kullanılan sürümüdür.

Akıllı Ev Otomasyonu

Android cihazlar ile uzaktan kontrol edilebilen veya otonom olarak çalışabilen arduino devre kartı geliştirilmiş sistem.

DSC_0165

Akıllı Ev Otomasyonu

android

Android Uygulaması

Sistemin İçeriği;

Gaz sıkma sistemi(bayıltıcı gaz , biber gazı vb.)

DSC_0187

Gaz Sıkma Mekanızması

Oda aydınlatmaları

ışıık

Oda Aydınlatmarı

Oda ısı ölçümü

DSC_0197

Oda Isı Ölçümü

Hareket algılanması

DSC_0170

Haraket Algılama Mekanızması

Sistem iki modda çalışabilmekte;

1-Güvenli Mod

Sistemi güvenli moda aldığımızda hareket algılama sistemi devreye girer ve hareket algılandığında gaz sıkma sistemini tetikler. Bu sayede hareketi gerçekleştirenin etkisiz hale getirilmesi amaçlanır.

2-Manuel Mod

Sistem manuel modda ise gaz sıkma sistemi android uygulama üzerindeki butonlar yardımıyla çalışır,

Odanın ışıkların açılıp kapatılması android cihaz üzerinden yapılır.

Isı ölçümü yapılır ,lcd ekranda gösterilir ve android uygulamadan görüntülenebilir.

 

DSC_0165  ışıık  sıcaklıkOlcumu  proje  DSC_0197  DSC_0187  DSC_0170

Semerkant – Amin Maalouf

Semerkant, okurken lezzetini hissettiğim güzel kitaplardan biri.
İçinden bir hikayeyi paylaşmak istedim.

<<Semerkant Yazması’ndan alınmış bir mesel>>
Üç arkadaş İran’ın yüksek yaylalarında gezintiye çıkmış.

Karşılarına bir pars çıkmış,dünyanın en yırtıcı yaratığıymış.
Pars üç adamı uzun uzun süzmüş, sonra üzerlerine doğru koşmaya başlamış.

Birincisi en yaşlı,en zengin,en güçlüleriymiş.Haykırmış:
“Ben buraların hakimiyim,bana ait olan bu toprakları bir hayvanın mahvetmesine asla izin vermem”
Yanındaki iki av köpeğini parsın üzerine salmış. Köpekler parsı ısırmayı başarmışlar gerçi, ama bu yaptıkları yırtıcı hayvanı iyice azdırmış ,
köpekleri öldürdükten sonra efendilerinin üzerine atlamış ve karnını deşmiş.
Nizamülmülk ‘ün payına bu düşmüş.

İkincisi şöyle demiş kendi kendine :
“Ben bir ilim adamıyım, herkes bana saygı duyup itibar ediyor,niye kaderimi köpekler ile parsın arasındaki kavganın sonucuna bağlayayım?”
Dövüşün sonunu beklemeden sırtını dönüp kaçmış. O zamandan beri yırtıcı hayvanın kendi izinde olduğunu düşünüyor ve mağaradan mağaraya ,kulübeden kulübeye dolanıp duruyormuş.
Ömer Hayyam’ın payına bu düşmüş.

Üçüncüsü bir inanç adamıymış. Ellerini açıp, hakim bakışlarını üzerine dikip, güzel sözler söylerek parsa doğru ilerlemiş.
“Bu topraklara hoş geldin” demiş.”Arkadaşlarım benden daha zengindi ,onları soydun,benden daha gururluydular onları alçaltın”. Hayvan büyülenmiş, uysallaşmış bir halde dinliyormuş. Adam onun üzerinde egemenliğini kurmuş, onu evcilleştirmeyi başarmış. O zamandan beri hiç bir pars adama yaklaşmaya cesaret edememiş,insanlar da ondan uzak durmuşlar.
Hasan Sabbah’ın payına da bu düşmüş.

Yazma anlattığı kıssada şu hisseyi çıkarır:”Kargaşa devri gelip çatınca kimse onun seyrini durduramaz,kimse ondan kaçamaz ama bazıları onu kullanmayı becerir.” Bu hikayede bunu Hasan Sabbah başarmıştır.
Öncelikle kitabı okumanızı şiddetle tavsiye ediyorum,

Yukarıdaki 3 kişi zamanlarındaki en seçkin kişiler,
Her biri araştırılması gereken birer dünya gibi kişiler.

Benim yukarıdaki kıssadan çıkardığım hisse;

Biz(insanlar) bazen aynı imkanlarına sahip olsak …
diye düşünüyoruz.
Fakat gün gelipte aynı imkanlarını yakaladığımızda yaptıklarımız farklı oluyor.
Kimimiz şehvete kapılıyoruz,kimimiz mücadele ediyoruz,kimimizde korkup kaçıyoruz.
Tuhaf olan şu ,
hangisini yaparsak yapalım,hayat daha değişik bir olayla devam ediyor,
ve biz sürekli bahaneler üretiyoruz,
Aslında düşünüyorumda kendi mutluluğumuzu,kendi özgürlüğümüzü
yine kendimiz mi engelliyoruz?
Bahane demişken şunu eklemek isterim,
Yapılan her yanlışın mutlaka bir bahanesi oluyor,ben hiç bahanesiz yanlış görmedim.Hatta olay anlatılırken ilk bahaneden başlanıyor.Kimse yanlışı yaparken gösterdiği cesareti;iş, bedelini ödemeye geldiğinde gösteremiyor.

Ubuntu Üzerinde Openbravo Kurulumu

header

1-)PostgreSQL

2-)JDK

3-)Tomcat

4-)Ant

5-)Apache

6-)Mercurial Clone

7-)Ortam Değişkenleri Ayarları

8-)Openbravo Kurulumu

9-)Eclipse Kurulumu

Not: Aşağıda anlatılan kurulum adımlarında kullanılan komutların sonuçlarında error alınmadığında emin olunmalı. Error var ise düzeltilerek devam edilmeli.

1-)PostgreSQL

sistemi güncellemek için;

  • sudo apt-get update

Postgresql ve Postgresql görsel arayüzü Pgadmin kurulumu için;

  • sudo apt-get install postgresql postgresql-client postgresql-contrib
  • sudo apt-get install pgadmin3

Postgresql de kullanıcı ve rol oluşturma. User:postgres Password:postgres default olacak.

Eğer kullanıcı adı ve şifre değiştirilmek istenirse ,Openbravo setup kısmında openbravo ayarları yapılandırılırken de aynı kullanıcı adı ve şifre kullanılmalı.

  • sudo su postgres -c psql postgres
  • postgres=# ALTER USER postgres WITH PASSWORD ‘postgres’;
  • postgres=# \q

2-JDK 8

Gerekli repository leri sisteme eklemek için;

  • sudo add-apt-repository ppa:webupd8team/java

Sistemi güncellemek için;

  • sudo apt-get update

Oracle Java 8 yüklemek için;

  • sudo apt-get install oracle-java8-installer

Yüklemenin başarılı olup olmadığını kontrol etmek için;

  • java -version

3-)Tomcat

  • sudo apt-get install tomcat8

veya

http://tomcat.apache.org/download-80.cgi

sitesinden tar.gz linkinden indirip istediğiniz klasöre açabilirsiniz.

4-)Ant

  • sudo apt-get install ant

5-)Apache

  • sudo apt-get install apache2 libapache2-mod-jk

6-)Mercurial Clone

Mercurial için gerekli repository leri sisteme eklemek için;

  • sudo add-apt-repository ppa:mercurial-ppa/releases

sistemi güncellemek için;

  • sudo apt-get update

mercurial yüklemek için

  • sudo apt-get install mercurial

Openbravo kaynak kodlarını sitesinden mercurial ile locale çekmek

  • hg clone http://code.openbravo.com/erp/devel/main OpenbravoERP-3.0PR16Q1
  • cd OpenbravoERP-3.0PR16Q1
  • hg up 3.0PR16Q1

7-)Ortam Değişkenleri Ayarları

Yukarda kurduğumuz programların ortam değişkenleri ayarları yapmak için;

  • sudo nano /etc/profile

Açılan dosyanın en sonuna aşağıdaki satırlar eklenecek.

export ANT_HOME=/usr/apache

export PATH=${PATH}:${ANT_HOME}/bin

export CATALINA_HOME=/usr/share/apache-tomcat-8.0.32

export PATH=${PATH}:${CATALINA_HOME}/bin

export CATALINA_BASE=/usr/share/apache-tomcat-8.0.32

export PATH=${PATH}:${CATALINA_BASE}/bin

export CATALINA_OPTS=”-server -Djava.awt.headless=true -Xms384M -Xmx1536M -XX:M$

export JAVA_HOME=/usr/lib/jvm/java-8-oracle

export PATH=${PATH}:${JAVA_HOME}/bin

export JRE_HOME=/usr/lib/jvm/java-8-oracle/jre

export PATH=${PATH}:${JRE_HOME}/bin

8-)Openbravo Setup

ant setup kısmında configuration ayarları yaparken postgresql ayarlarına dikkat edilmeli.Yukarda kullanılan kullanıcı adı ve şifre kullanılmalı.

  • ant setup
  • ant install.source

9-)Eclipse Kurulumu

https://eclipse.org/downloads/

sitesinden

Eclipse IDE for Java EE Developers

Ürünü istediğimiz klasöre açıyoruz. İçerisinde eclipse yazan dosyaya tıkladığımızda eclipse açılır.

Eclipse ıde ye,4 tane proje eklenmeli.

 

openbravo        XXX\opensource\openbravo\erp\devel\main\

OpenbravoCore    XXX\opensource\openbravo\erp\devel\main\src-core

OpenbravoTrl     XXX\opensource\openbravo\erp\devel\main\src-trl

OpenbravoWAD     XXX\opensource\openbravo\erp\devel\main\src-wad

 

9.1  Tomcat Server Oluşturma

File-> new ->server sekmelerinden sonra gelen pencerede Apache klasörü altında Tomcat 8 seçip yer yol olarakta tomcat I kurduğumuz yolu veriyoz.

Eski bir resim örnek amaçlı.

server

Server çift tıkladığımızda gelen pencerede

  • General Information bölümünden
    • Open launch configuration tıkla
    • Arguments tabına geç

server ayarları

Açılan alanın en sonuna bu satırı ekle

-server -Djava.awt.headless=true -Xms384M -Xmx1536M -XX:MaxPermSize=256M

  •  Server options bölümünden.
    • Serve modules without publishing seçili hale getir.

Kaydet.

Tomcat conf klasörü altındaki dosyaları , workspace dosyanızın içindeki server klasörü altındaki

Tomcat v?.0 Server at localhost-config dosyasının içine kopyalayın.

9.2 Preferences Ekleme

File-> import kısmında

import references

Openbravo kaynak klasörleri içindeki eclipse reference dosyasını ekliyoruz.

import references 2

 

 

Apache Tomcat Kurulumu

Apache Tomcat Kurulumu

1-indir ve yükle (http://tomcat.apache.org/download-70.cgi)
Not: 32-bit/64-bit Windows Service Installer i indirip yükleyebilirsin.

2-CATALINA_HOME, CATALINA_BASE ve CATALINA_OPTS u ortam degişkenlerine ekliyoruz.

Bilgisayarıma sag tıklayıp properties sekmesine tıklıyoruz.
Screenshot_1

Soldaki gelişmiş sistem ayarları sekmesine tıklıyoruz.
Screenshot_2

Gelen pencerede Advanced bölümüne geçip alttaki ortam degişkenleri butonuna tıklıyoruz.
Screenshot_3

Sistem Degişkenleri bölümünde yeni butonuna tıklıyarak yeni bir sistem degişkeni oluşturuyoruz.
Screenshot_4

Yeni butonuna tıkladıgımızda gelen pencerede ;
Degişken Adı:CATALINA_HOME yazıyoruz.
Degişken Degeri: Apache Tomcat in kurulduğu dizini yazıyoruz.
Screenshot_1

Sistem Degişkenleri bölümünde yeni butonuna tıklıyarak yeni bir sistem degişkeni oluşturuyoruz.
Yeni butonuna tıkladıgımızda gelen pencerede ;
Degişken Adı:CATALINA_BASE yazıyoruz.
Degişken Degeri: %CATALINA_HOME%
Screenshot_2

Sistem Degişkenleri bölümünde yeni butonuna tıklıyarak yeni bir sistem degişkeni oluşturuyoruz.
Yeni butonuna tıkladıgımızda gelen pencerede ;
Degişken Adı:CATALINA_OPTS yazıyoruz.
Degişken Degeri: -server -Djava.awt.headless=true -Xms384M -Xmx1024M
Screenshot_3

3-Tomcat servis yönetici uygulamasın konfigurasyon ayarlarını yapıyoruz.
Uygulamada açılan pencerede Java sekmesine geçip Java options en sonuna -server -Djava.awt.headless=true ekliyoruz.
Başlangıç bellek ihtiyacı olarak 384 MB
Maksimum bellek ihtiyacı olarak ta 1024 MB olarak degişiklik yapıyoruz.
Bu ayarla CATALINA_OPTS ile uyumlu olmalı.
Screenshot_5

Screenshot_4
4-Başarılı bir şekilde yüklendigini test için;
http://localhost:8080 veya http://server adress:8080 tıkladıgınızda apachenin sayfası açılması gerekir.
Screenshot_6

JDK Kurulumu(Windows)

1-indir ve yükle (http://www.oracle.com/technetwork/java/javase/downloads/index.html)
2-Ortam degişkenlerine JAVA_HOME ekle.
Bilgisayarıma sag tıklayıp properties sekmesine tıklıyoruz.
Screenshot_1
Soldaki gelişmiş sistem ayarları sekmesine tıklıyoruz.
Screenshot_2
Gelen pencerede Advanced bölümüne geçip alttaki ortam degişkenleri butonuna tıklıyoruz.
Screenshot_3
Sistem Degişkenleri bölümünde yeni butonuna tıklıyarak yeni bir sistem degişkeni oluşturuyoruz.
Screenshot_4
Yeni butonuna tıkladıgımızda gelen pencerede ;
Degişken Adı:JAVA_HOME yazıyoruz.
Degişken Degeri: Jdk nın kurulduğu dizini yazıyoruz.
Screenshot_5

Sistem degişkenleri kısmındaki Path isimli degişkeni seçip sonuna %JAVA_HOME%\bin ekliyoz.
Screenshot_6
Screenshot_7
3-Kurulumun başarılı bir şekilde yüklendiğini test etmek için;
Komut satırını açıyoruz(cmd.exe)
java -version
javac -version
echo %JAVA_HOME%
komutlarını yazıp ,sonuçlara bakıyoruz.
Screenshot_8

Extreme Programming

Extreme programming en popüler çevik süreçlerden biridir. Çevik süreç , bir yazılım projesinde her daim değişikliklere ve yeniliklere hem proje ekibinin hem de yazılımın hızlı bir şekilde , dağılmadan cevap verebilmesidir. Extreme programming de bu amaçla, Kent Beck ve arkadaşlarının çalıştıkları bir projede oluşturdukları bir çevik süreçtir.

Extreme programming farkı;

Genel yazılım süreçlerinde projeye başlanmadan detaylı dökümantasyonlar hazırlanır ve bu dökümantaslara uyarak proje geliştirilir. Bu durum projenin ilerleyen seviyelerinde ,projede değişiklik yapılmasını zorlaştırır. Bazen projenin başarısız olmasına bile neden olabilir. Çünkü müşteri her zaman istediğini net olarak ifade edemiyebilir ,bu tür iletişim sıkıntıları değişiklik gerektirir ve bu değişlikliği uygulamanın yoluda çevik süreçlerden geçer.

Çevik süreçlerde ise olay dökümantasyondan bağımsızdır. Yani dökümantasyon gereklidir fakat proje başarısında önemli bir etken değildir.Başarıyı etkileyen faktör temelde dört tanedir ;basitlik,geridönüş,iletişim ve cesarettir.

Extreme programming de genel işleyiş

Çevik süreçlerde proje başlamadan önce ,müşteri ile birlikte projede istenilenler konuşulur, ve yapılacaklar kullanıcı hikayeleri şeklinde ufak kağıtlara yazılır. Her kullanıcı hikayesine öncelik sırası eklenir ve bu sıra takip edilerek kullanıcı hikayeleri geliştirilir. Geliştirme yapılırken,sadece istenileni en basit şekilde yapmak amaçlanır.Kullanıcı hikayelerinin ne durumda olduğunu ifade etmesi açısından renkli kağıtlar kullanılır.(örneğin; yapılmışlar yeşil,yapılmakta olanlar sarı vb.). Bu kullanıcı hikayeleri proje süre tahmini yapılmasına da yardımcı olur.

user-story2user-story

1-2 hafta süresinde iterasyon oluşturulur . Geliştirilecek kullanıcı hikayeleri de bu süre zarfında iterasyon oluşturacak biçimde sıralanır. 1-2 ay içinde iterasyonlardan sürümler oluşturulur .Bu sürümler çalıştırılabilir programlardır. Bu programlar müşteri tarafından kullanılır.Müşteriden gelen geri dönüşler ile projeye devam edilir.Projenin bütün gelişim aşamasında müşteriyle iç içe olunmasından ilerleyen aşamalarda pek sürprizler ile karşılaşılmaz.

İletişimin sadece müşteri ile iyi olması yeterli değildir tabi ki, projeyi geliştiren ekibinde birbirleriyle iletişiminin çok iyi olması gerekir. Extreme programmingde kademe farkı yoktur . Ekipteki tecrübeli üyeler ,tecrübesiz arkadaşlarını kendi seviyelerine yükselmeleri için,gerekenlerin nasıl öğrenileceği hakkında yol gösterir. Öğretmez,nasıl öğrenileceğini gösterir. Bu seviye ve kademe farkını yok eder. Programcılar ikişer kişi olarak çalışırlar. Biri kod yazarken diğeri dikkatli bir şekilde izler(test amaçlı).Programcılara sorumluluk verilmez ,kendisini o sorumluluğu alması beklenir,bu şekilde motivasyon ve başarı artar.

Takım ruhu önemli bir etkendir ve temelinde açık ve samimi iletişim yatar. Takım ruhuna kulak verilmesi gerekir , örneğin takım bir şeylerin ters gittiğini düşünüyorsa ,orada gerçekten ters giden birşeyler vardır.

Son olarak;

Extreme programming i durumu göre, projede başarılı olacağına inandığımız şekilde değiştirebiliriz.

 

Ben,

1992 nin Aralık ayında Tokat ta doğdum. 1 yaşımdan beri İstanbulda yaşıyorum.İlköğretimimi İstanbul Avcılar da Nihat Çandarlı İ.Ö. Okulunda tamamladım. Liseye giriş sınavında beklediğim başarıyı sağlayamadım. Haydar Akın Anadolu Teknik Lisesi Bilgisayar Bölümü-Veri tabanı programcılığı bölümünü kazandım. Geleceğim o günden sonra şekillenmeye başladı;

Küçüklükten beri makine mühendisi olmak istiyordum,hedefime ulaşmam içinde ya anadolu-fen lisesi kazanmam veya düz liseye gitmem gerekiyordu.Ama ben Anadolu teknik lisesi kazanmıştım ve bu liseyi meslek lisesi olarak nitelendiriyor gitmek istemiyordum.Çünkü meslek lisesinden o dönemde bırakın mühendislik kazanmayı 4 yıllık üniversite kazanılması bile imkansız gibiydi. Ben düz liseye gidip hayalimi gerçekleştirebileceğimden emindim. Fakat ailem ve çevremdeki insanlar bundan o kadar emin değillerdi ve bana sürekli mesleğim olması açından kazandığım okula gitmem gerektiği söylüyorlardı. Bir gün babamla ,okula bakmaya ve ordaki hocalardan yapmam gereken seçim konusunda bilgi almaya gittim . Bizi o zaman ki okul müdürümüz ,sevgili hocam Merhum Aykan Köseoğlu karşıladı. Muhteşem bir insan ve çok iyi bir eğitimciydi hocamız. O gün benim ve babamla konuşmalarını halen çok net hatırlıyorum. Okulun o sene Anadolu Teknik Lise olduğunun ve artık o okuldan mühendisler çıkabileceğinin ,öğrencilerin bu başarıyı saglayabilmeleri için imkanların oluşturulacağını anlatıyor ve bunun sevincini inanılmaz şekilde yaşıyordu. Babamı ve beni etkilemişti ve beni o okula kayıt olmak için karar vermeye ikna etmişti. Başarmanın zor olacağını biliryordum çünkü mühendislik alan dışı olarak gözüküyor katsayı farkı uygulanıyordu . Aynı zamanda yeni Anadolu Teknik Lisesi olduğundan eğitimde meslek lisesi yapısı çok fazla yıkılmış değildi. Ama tabi ki şu da bir gerçekti ki mühendis olmak artık imkansız değildi. Ama bir problem daha vardı bilgisayar bölümü kazanmıştım ve bilgisayar hakkında hiçbir bilgim yoktu. Kullanmayı hatta açmayı bile bilmiyordum.

Lise boyunca birçok şey ögrendim,mesleki kariyerime lise ile başladım diyebilirim.Okul bitirdiğimde Programlama açısından ASP.NET,VB.NET,C# programa dilleri ve SQL Server 2005 ,access gibi veritabanlarını kullanarak ufak otomasyonlar geliştirebiliyordum. Bunun yanında web tasarım anlamında amatör seviyede photoshop,flah,dreamweaver vb. Programları kullanabiliyordum.  Lisenin son senesinde güzel bir çalışmayda Düzce Üniversitesi Bilgisayar Mühendisliğini kazandım. Küçükken hayalim makine mühendisliğiydi ama yazılım geliştirmeyi , bilgisayarla yapılabilecekleri gördükten ve 4 yılımı bu yolda harcadıktan sonra bilgisayar mühendisliği çok isteyerek seçtim. Üniversitede ilk sene ingilizce hazırlık okudum ve başarıyla tamamladım.1 sınıfa geçtiğimde yazılım,algoritma ve bilgisayar ile alakalı hiç bir derstte zorluk yaşamadım. Burda programlara dili olarak C++ ögrendim . HTML ögrendim. Sene sonunda çok iyi bir ortalamaya sahiptim(3.58). Bu ortalamayla İstanbul Üniversitesi Bilgisayar Mühendisliği bölümüne yataç geçiş için başvurdum ve kazandım. İstanbul üniversitesine 2.sınıf olarak başladım ama bölüm %30 ingilizce olmasından dolayı bazı dersleri Düzce Üniversitesinde almış olduğum halde tekrar almak zorunda kaldım. 2 sınıfta hem ikinci sınıf hemde muaf olamadığım bütün dersleri başarı tamamladım. Burada programlama dili olarak C , Java ve bir java çatısı olan JSF ögrenmiştim. İş başvurularında ögrendiğim bu programlama dillerini bildiğimi söylediğimde çok fazla inandırıcı olmuyurdu. Zaten olması gereken oydu bencede. Çünkü sürekli yeni diller öğreniyordum ama bir uzmanlık dalı edinemiyordum ,hepsinde amatör seviyesinde kalıyordum. Bir seçim yapıp o alanda uzmanlık kazanmam gerektiğini anladım .Seçimimi o zaman yeni tanışmış olduğum ve çok beğendiğim Java ve Java teknolojileri olarak yaptım ve kendimi o alanda geliştirmeye başladım. İlerleyen zamanda okulun teorik bilgi açısından doyurucu fakat uygulama açısından eksik kaldığını düşünüyordum.Bu eksikliği ise bir işte çalışarak giderebileceğimi düşündüm. 2014 haziranından beri Selensoft Yazılım ve Danışmanlık LTD.ŞTİ. de Java Developer ve Openbravo ERP yazılım danışmanı olarak çalışıyorum.

Anlatımı bu kadar detaylı tutmamım nedini aynı sıkıntıları yaşan arkadaşlara bir fikir sahip olmaları açısından yardımcı olmak. Çünkü burda anlatıklarım lisede ve üniversiteside merak edilen şeyler. Ben çok merak ediyordum mesela;

Acaba bu okuldan Üniversiteside kazanmak zormu?

Yatay geçiş yapmak zormu?

İngilizce bölümde okumak zormu?

Bilgisayar Mühendisliği seçilmesi gereken bir meslek mi?

Hangi programlama dili öğrenmeliyim ? gibi bir çok sorunun cevabını meraj ediyordum.

Benim yaptıklarım bu soruların doğru cevapları değil tabiki ama yapılmış bir örnek.

Teşekkürler.