31 Mart 2017 Cuma

JAVA DIARY - 2

Class kodlarının içersinde ana fonksiyonumuzu public static void main olarak tanımlıyoruz. Parantezler içersinde görüldüğü gibi String[] args yazıyor. Yani ana fonksiyonumuz input olarak bir string alıyor. Terminal içersinde kod çalıştırılırken programa gerekli argümanlar gönderilebiliyoruz. Aşağıdaki örneği terminalde derledikten sonra , java ArgExample tr  şeklinde çalıştırırsak args dizisinin ilk elemanu tr olduğu için program ekrana turkce yazdıracaktır.

public class ArgExample{
  public static void main(String[] args){
 switch(args[0]){
 case "tr":
 System.out.println("turkce");
 break;
 case "en":
 System.out.println("english");
 break;
 case "it":
 System.out.println("italiano");
 break;
 }
  }
}

                                          

Değişkenler 

Değişkenler ikiye ayrılıyor. Primitive types ve reference types olmak üzere. Referens tipleri biz tanımlayabildiğimiz için sonsuz sayıda referans tipi vardır. String bir referans tipidir. Onun dışında 8 adet primitive tip vardır. Bunlar byte , short , int , long , float , double , char , boolean

public class Variables{
public static void main(String[] args)
{
// ***** primitive types ****
// tam sayı değişkenler
byte b=10;   // 1 byte
short s=12;  // 2 byte
int i = 1445; // 4 byte
long l = 123456; // 8 byte

System.out.println("byte:"+b);
System.out.println("short:"+s);
System.out.println("int:"+i);
System.out.println("long:"+l);

// kayar noktalı sayılar
float pi = 3.14f; // 4byte,f koymazsak çalışmaz.
// otomatik olarak double yapıyor.
double d = 3.14d; // 8byte
System.out.println("float:"+pi);
System.out.println("double:"+d);
// Character
char gender = 'm';
System.out.println("character:"+gender);
// Bool
boolean bool = false; // true // 1byte
System.out.println("boolean:"+bool);

// String
String firstName="Ali";
String lastName="Veli";
System.out.println(firstName+" "+lastName);
System.out.println("Bana dedi ki \n \"sen buraya gel\"");

               /*int x = 10;
{
int x = 0;
System.out.println(x);
}
{
int x = 20;
System.out.println(x);
}
*/

/*
int x = 10;
int y = 20;
System.out.println(x+y);
*/

// TYPE CASTING

          Türler arasında dönüştürme yapılması işlemine type casting deniliyor. Bunun için hafızada                   kapladığı alanı daha küçük olan değişken , daha büyük bir değişken türüne dönüştürülmelidir.              Aksi takdirde veri kaybı olması ihtimali vardır. 

// IMPLICITLY CASTING
                // implicitly = kesin olarak , tam olarak
/*
byte bNumber = 12;
int iNumber = bNumber;
System.out.println(iNumber);
*/


// EXPLICITLY CASTING

//Veri kaybı olma ihtimali olan durumlarda
//compiler kodu derlemiyor. Derlemesi için casting
//operatörünün kullanılması gerekiyor.

int iks = 1034;
// 00000000 00000000 00000100 00001010
byte be = (byte)iks;
System.out.println(be);

int posX = 12;
float posY = posX;
System.out.println(posY);

System.out.println((int) pi);

}
}


OPERATÖRLER

public class Operators{
public static void main(String[] args)
{
  // Aritmetic operators
  int x = 10;
  int y = 3;
  System.out.println(x+y);
  System.out.println(x-y);
  System.out.println(x*y);
  System.out.println(x/y);
  System.out.println(x%y);
  System.out.println(++x); // prefix postfix
           /* ++ operatörü x değişkeninin önüne geldiği için ilk önce x'i bir arttırır , sonra x ile ilgili bir                işlem yapılacaksa onu yapar. */
  System.out.println(x--);
           /* Burada x ile ilgili işlem yapılır daha sonra x bir azaltılır.

  x=x+1;
  x+=5; // x 5 arttırılır , yine x değişkenine atanır.
  x-=5;  // x 5 azaltılır , yine x değişkenine atanır.
  x*=5; // x 5 ile çarpılır , yine x değişkenine atanır.
  x/=5;  // x 5'e bölünür , yine x değişkenine atanır.

  // Bitwise operators
   byte k = 10 ;
  // 0000 1010
  // 1111 0101
  System.out.println(~k); // bitwise unary NOT

  byte a = 10; // 0000 1010
  byte b = 20; // 0001 0110
               // 0000 0010 &
//
  System.out.println(a&b); // binary AND
  System.out.println(a|b); // binary OR
  System.out.println(a^b); // binary XOR
     
  byte q = 16;
  System.out.println(q>>2);
  System.out.println(q<<2);

  // Relational Operators{
  int a1 = 10;
  int b1 = 20;
  System.out.println(a1==b1);
  System.out.println(a1!=b1);
  System.out.println(a1>b1);
  System.out.println(a1<b1);
  System.out.println(a1>=b1);
  System.out.println(a1<=b1);

// Logical Operators
System.out.println(true & false);
System.out.println(true | false);
System.out.println(true ^ false);
System.out.println(!true);
System.out.println(false && false);
System.out.println(true || false);

System.out.println(true? "true":"false"); // ternary if
                /* Ternary if ifadesi yazım kolaylığı sağlamaktadır. iften pek farkı yoktur. Eğer iki koşullu                  bir durum varsa , kullanılması tavsiye edilebilinir. Soru işaretinden önceki ifade doğru ise                    true değilse false geri döndürür.  
}
}

public class Boxing{

/* Object diye bir değişken var. Bu değişkenin
özelliği içersinde her türlü tipte bilgiyi tutabiliyor.
Aşağıdaki örnekte önce int tipte bir değişken ataması 
yaptık , daha sonra aynı değişkene float bir değer ve 
    string ataması yaptık. Her seferinde değişken değeri 
    ekrana verildi. Program sıkıntısız çalışıyor ve bu verdiğimiz
    değerleri ekrana yazıyor. Bu işleme boxing deniyor. */

public static void main(String[] args)
{
  int x = 10;
  Object obj = x;
  System.out.println(obj);
  obj = 3.14;
  System.out.println(obj);
  obj = "Koray Kara";
  System.out.println(obj);
}
}

22 Mart 2017 Çarşamba

JAVA DIARY - 1

Konular: tiobe , JDK , JRE , JAVAC COMPILER , Windows ve Linux altında kodlama , Hello World ilk program , JAVADOC

"tiobe.com" un verilerine göre java şu anda dünyada en çok kullanılan dildir. Siteden diğer dillerin kullanım oranlarına erişebilirsiniz.
















Java'da kod derleyebilmek için gerekli olan yazılımlar JDK ve JRE'dir. JRE = Java Runtime Environment , bu yazılım java dilinde yazılmış programları kullanmak için gerekli olan programdır. Bu zaten her bilgisayarda bulunmaktadır. JDK ise java developement kit anlamına gelir. Bu paket ise yazılım geliştirecekler için gerekli olandır , jdk kurulumu yapılırken otomatik olarak jre'yi de kurar.

Javada program yazarken ilk olarak .java uzantılı olarak herhangi bir text editörde kod yazılır. Bu kod javac programı kullanılarak compile edilir. Compile derleme işlemi bittiğinde .java uzantılı dosyanın bulunduğu dizinde .class uzantılı bir dosya oluşur. Artık kod derlenmiştir , çalışmaya hazırdır eğer compile time içersinde bir hata ile karşılaşmadıysanız. class uzantılı dosya jwm (java virtual machine) tarafından yorumlanır ve çalışır. Java platform bağımsız bir dildir. Aynı program diğer işletim sistemlerinde de çalışır.

Javac derleyicisinin terminalde çalışması için windows'ta ortam değişkeni olarak tanımlanması gerekmektedir. Jdk'yı indirip kurduktan sonra bilgisayarıma sağ tıklayıp özellikleri açınız. Karşınıza gelen ekranın sol üst kısmında Gelişmiş sistem ayarlarına tıklayınız. Açılan pencerenin alt kısmında ortam değişkenleri butonuna basınız. Açılan pencere de yeni butonuna basın ve javac adında bir değişken tanımlayın , değer kısmına ise javac'ın bilgisayarınızdaki yolunu ekleyin. Benim bilgisayarımda bu yol şu şekilde : C:\Program Files\Java\jdk1.8.0_121\bin



Artık komut panelinde java kodlarımızı çalıştırabilir ve derleyebiliriz.

Linux işletim sisteminde java kurulumu yapmak için terminalde şu kodları çalıştırınız.

 sudo add-apt-repository ppa:webupd8team/java
 sudo apt-get update
 sudo apt-get install oracle-java8-installer
java versiyonunuzu kontrol etmek için terminalde java -version kodunu yazınız. javac compiler versiyonunuzu kontrol etmek için yine javac -version yazabilirsiniz.

$ java -version
java version "1.8.0_20"
Java(TM) SE Runtime Environment (build 1.8.0_20-b26)
Java HotSpot(TM) 64-Bit Server VM (build 25.20-b23, mixed mode)

Javada her kod bir class içersinde yazılır. oluşturduğunuz kodun class isminin ilk harfi büyük olmalıdır. Örneğin Driver.java
Oluşturduğunuz java dosyasının adı ile class ismi aynı olmak zorundadır. Aksi takdirde compile time süresinde hata alırsınız. Aşağıdaki kod ekrana Hello , World! yazdıracaktır.

public class Driver{

/**
* @author Koray Kara
* This is my first java code.
* Today I have started to the course Bilge Adam Academy.
* 18/03/2017
*/

public static void main(String[] args){
System.out.println("Hello , World!");
}
}

Java kodlarımızı çalıştırmaya main fonksiyonundan başlar. Değişken tanımlarken camel case notasyonu kullanılması tavsiye edilir. Bu bir zorunluluk değildir. örnek : String firstName
İlk kelimenin baş harfi küçük , ikinci kelimenin baş harfi büyüktür. Bu notasyona camel case notasyonu denmektedir.

Yorum satırı yazmak için // kullanılmaktadır.
Blok halinde yorum yazmak için /*  */ kullanılmaktadır.
Yorum satırları bildiğiniz üzere compiler tarafından  değerlendirilmez. Bu yorumlar kodu yazan içindir.

Ayrıca /**     */ arasına yorum yazarak javadoc programını çağırabilirsiniz ve java sizin için hazır bir java dökümantasyonu oluşturur. Yorumu yazdıktan sonra kodu yazdığınız dizin içersinde komut panelini açınız. javadoc Driver.java şeklinde kodun dökümantasyonunu oluşturabilirsiniz. javadoc Driver.html şeklinde bir dosya oluşturur. Dökümanı bu html dosyasından inceleyebilirsiniz.




JAVA DIARY - 2

Class kodlarının içersinde ana fonksiyonumuzu public static void main olarak tanımlıyoruz. Parantezler içersinde görüldüğü gibi String[] ar...