Java Programlama. Java ya Genel Bakış



Benzer belgeler
Eclipse, Nesneler ve Java 2 Java Nereden Çıktı? 2

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

Görsel Programlama DERS 01. Görsel Programlama - Ders01/ 1

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Java Programlama Giriş

Java Temel Özellikleri

İçerik. Temel Kavramlar. Yazılım Geliştirme Aşamaları. Problemi Anlama ve Çözümleme. Biçimsel Gösterim - 1. Nesneye Yönelik Programlama

Temel Kavramlar. BS-515 Nesneye Yönelik Programlama. Ders #1 (26 Ekim 2009)

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

BBS515 Nesneye Yönelik Programlama. Ders 1 Zümra Kavafoğlu

Java diğer programlama dilleri gibi başlı başına bir ürün değildir.

Programlama Dillerinde Kullanılan Veri Tipleri

Android e Giriş. Öğr.Gör. Utku SOBUTAY

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

BM-209 Nesne Yönelimli Programlama. Yrd. Doç. Dr. İbrahim Alper Doğru Gazi Üniversitesi Teknoloji Fakültesi Bilgisayar Mühendisliği Bölümü

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

C# nedir,.net Framework nedir?

BMS-302 İleri Web Programlama. İş Parçacığı (Thread) ve Soket (Socket) Programlama

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

İÇERİK 2 Java Kodlaması için Gerekli Programlar JRE, JDK kurulması ve Başlangıç Ayarları Java Kodlamayı Kolaylaştıran IDE ler Java Kod Yapısı İlk Java

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Öğr. Gör. Serkan AKSU 1

Java EE 5 Teknolojileri Jboss Seam

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Java. ile Nesneye Yönelik Programlama

Android Ders Notları

Java Dersi. Altuğ Bilgin Altıntaş

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Java JDK (Java Development Kit) Kurulumu:

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

4. Bölüm Programlamaya Giriş

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

Java Programlamaya Giriş

Google Web Toolkit ile Öğretim Elemanı Otomasyon Sistemi

Altuğ B. Altıntaş

Start : Bu method init methodundan hemen sonra çalışır ve applet dosyası yürütülmeye başladığında çalışmaya başlar.

Bilgisayar Teknolojileri Bölümü Bilgisayar Programcılığı Programı. Öğr. Gör. Cansu AYVAZ GÜVEN

Bahar. BM 211 Programlama Dilleri 3 1

Java. Hakkımızda. Java Eğitimi

ÖZGÜR YAZILIMLAR İLE J2EE

1 C#.NET GELİŞTİRME ORTAMI 1 Visual Studio 2015 Arayüzü 4 Menu Window 6 Solution Explorer 7 Properties Window 8 Server Explorer 8 Toolbox 9

2 ALGORİTMA VE AKIŞ DİYAGRAMLARI

Swing ve JDBC ile Database Erişimi

Dr. Fatih AY Tel: fatihay@fatihay.net

Önsöz. İçindekiler Algoritma Algoritma Nasıl Hazırlanır? Yazılımda Algoritma Mantığı Nedir? 1.2. Algoritma Örnekleri ve Sorular

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

BBS515 Nesneye Yönelik Programlama. Ders 1 Zümra Kavafoğlu

Yazılım Nedir? 2. Yazılımın Tarihçesi 3. Yazılım Grupları 4 Sistem Yazılımları 4 Kullanıcı Yazılımları 5. Yazılımın Önemi 6

Kaynak Kodlardan Derleme. Turquaz Muhasebe. Versiyon 0.2. Hüseyin Ergün. 26 Mart 2005

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

Doğu Akdeniz Üniversitesi Bilgisayar Mühendisliği Bölümü. BLGM 318 Ara Sınavı Đlkbahar Dönemi 13 Nisan Ad, Soyad Öğrenci No.

C++ Dersi: Nesne Tabanlı Programlama

1.1. Yazılım Geliştirme Süreci

ANKARA ÜNİVERSİTESİ ELMADAĞ MESLEK YÜKSEKOKULU BİLGİSAYAR PROGRAMCILIĞI PROGRAMI DERS İÇERİKLERİ

Sistem Programlama. (*)Dersimizin amaçları Kullanılan programlama dili: C. Giriş/Cıkış( I/O) Sürücülerinin programlaması

Özgür Yazılımlarla Web Programlama. Özlem Özgöbek

SolidWorks Macro, SolidWorks API. Yusuf MANSUROĞLU Mühendislik Hizmetleri Müdür Yardımcısı

Rahman USTA Editör Altuğ B. ALTINTAŞ Papatya Yayıncılık Eğitim

PROGRAMLAMAYA GİRİŞ DERS 2

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

MPLAB IDE ve ISIS ile ASSEMBLY DİLİNDE UYGULAMA GELİŞTİRMEK

Üst Düzey Programlama

HSancak Nesne Tabanlı Programlama I Ders Notları

Üst Düzey Programlama

GÖRSEL PROGRAMLAMA - I

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

JAVA 7 & JAVA 8 YENİLİKLERİ VE ÖZELLİKLERİ

BIL1202 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ

Akıllı telefonlar, avuçiçi bilgisayarlar ile taşınabilir (cep) telefonların özelliklerini birleştiren cihazlardır. Akıllı telefonlar kullanıcıların

Metin Editörleri YRD. DOÇ. DR. ENGİN CEMAL MENGÜÇ. ALINTI:

Öğr.Gör. Gökhan TURAN Gölhisar Meslek Yüksekokulu

Cybersoft Bilişim Teknolojileri Sunucu Tarafı Programlaması Kursu Final soruları. Tarih: 27 Kasım 2010 Saat: 13:30 Süre: 3 saat

Nesne Yönelimli Programlama

Linux Assembly Programlamaya Giriş

Bilgisayar Programlama. 1.Hafta

Nesneye yönelik: Javada herşey bir nesnedir. Java nesne yönelimli olduğu için kolayca geliştirilebilir.

OMNET Ağ Benzetim Yazılımı (Network Simulation Framework) BİL 372 Bilgisayar Ağları. GYTE - Bilgisayar Mühendisliği Bölümü

Görsel Programlama 1

Bölüm1. İlk Bilgiler ISBN

BİL 542 Paralel Hesaplama. Dersi Projesi. MPJ Express Java Paralel Programlama

TCMB Deneyim Raporu. Kurumsal Java Uygulama Platformu. Sacit Uluırmak. Türkiye Cumhuriyet Merkez Bankası Sistem Araştırma ve Planlama Müdürlüğü

JAVA API v2.0 Belge sürümü: 2.0.2

Data Structures Lab Güz

Android Platformunda OpenCV İle Görüntü İşleme

PHP 1. Hafta 1. Sunum

Hata Ayıklamanın Ötesi... (Assertion) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 14 1

1 GİRİŞ 1 C# Hakkında Genel Bilgiler 1.Net Framework 1 CLR 2 CLR Ve CTS 2 Temel Sınıf Kütüphanesi 3 CIL 3 Algoritma Nedir? 4 Sözde Kod (Pseudocode) 5

C PROGRAMLAMA DİLİ. Hedefler

MOBILEPAX ENTERPRISE API (WEB SERVİS)

PROGRAMLAMAYA GİRİŞ. Öğr. Gör. Ayhan KOÇ. Kaynak: Algoritma Geliştirme ve Programlamaya Giriş, Dr. Fahri VATANSEVER, Seçkin Yay.

Java Programlama Dilinde Veri Tipleri. Yrd. Doç. Dr. Aybars UĞUR

BİL-142 Bilgisayar Programlama II

Java EE web uygulamaları geliştirmek için kullanılan açık kaynak web uygulama framework üdür.

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

ALGORİTMA VE PROGRAMLAMA I

1 PROGRAMLAMAYA GİRİŞ

Bİ L 131 Hafta 2. 1) Bilgisayara Java SE Development Kit 7 kurulması

Transkript:

Java Programlama Java ya Genel Bakış

Java Programlama Dili Nesneye yönelik (object-oriented) programlama dili C++ ile ilişkili bir dil Veri tipleri: Temel veri tipleri (int, double vs.) Sınıflar İşletilen bir dil (interpreted) Derlenen bir dil değil Derleme birimleri: Kaynak kodlar: *.java dosyası (*.cpp ve *.h dosyaları yerine) Derlenen kod (bytecode): *.class dosyası (*.exe dosyaları yerine)

Java Dağıtımları (1) Hedeflenen platformun yeteneklerine ve ihtiyaçlarına göre farklı dağıtımlar oluşturulmuştur Böylece bir platformda ihtiyaç duyulmayacak ya da kullanılamayacak özelliklerin, bu platforma eklenmesine gerek kalmamaktadır Şu an dört farklı dağıtım bulunmaktadır: 1. Java Card 2. Java Mikro Dağıtım (Java ME) 3. Java Standart Dağıtım (Java SE) 4. Java Enterprise

Java Dağıtımları (2) Java Card Akıllı kartlar veya benzer düşük hafızalı ürünlerde kullanılır örnek: SIM kartlar ve ATM kartları Java Mikro Dağıtım (Java ME) Mobil ve gömülü sistemlerde kullanılır örnek: cep telefonları ve navigasyon cihazları Android ile ilişkisi

Java Dağıtımları (3) Java Standart Dağıtım (Java SE) Masaüstü ve sunucular için uygulama geliştirmek için kullanılır Sunucu uygulamalarında, uygulamayı aynı anda kullanan kullanıcı sayısı azdır Örnek: Her tür PC/Laptop uygulamaları Java SE pek çok API içerir Grafiksel arayüzler için: Swing veya JavaFX Girdi/Çıktı işlemleri için, örneğin dosya işlemleri Veri tabaları ile bağlantı kurmak için Veri yapıları oluşturmak ve kullanmak için

Java Dağıtımları (4) Java Ticari Kuruluş Dağıtımı (Java EE) Orta ve büyük ölçekli işletmelere uygun daha karmaşık uygulamalar geliştirmek için kullanılır Uygulamalar genellikle sunucu tabanlıdır ve aynı anda çok sayıda kullanıcıya hizmet vermektedir Örnek: Çevrimiçi bankacılık sistemi, öğrenci bilgi sistemi Java SE dağıtımının genişletilmiş halidir. Çok kullanıcılı sistem gereksinimlerini karşılayan pek çok API içerir: Servlet ve JavaServer Pages (JSP) JavaServer Faces (JSF) Java Transaction API (JTA) ve Java Persistance API (JPA)

Java Tarihçe C öncesi ve C C den önce: Fortran ile karmaşık bilimsel uygulamalar geliştirilebiliyor, ancak sistem kodu için uygun değil Basic kolayca öğrenilebiliyor ama yapı eksikliğinden büyük programlar için uygun değil Assembly ile verimli çalışan programlar yazılabliyor ama öğrenmesi kolay değil ve etkin şekilde kullanmak zor GOTO Spagetti kod: Yapısal olmayan ve anlaşılması zor kod B dili Ken Thompson --> C dili Dennis Ritchie, 1970 ler ANSI C Standardı, 1989

Java Tarihçe C++ Belirli fonksiyonları yerine getiren sistem programları zamanla kendini kullanıcıya yönelik karmaşık programlara bıraktıkça, bu karmaşıklığı yapısal diller ile (örn. C) yönetmenin zorluğu farkedildi Nesneye yönelik diller bu karmaşık programları kalıtım, encapsulation ve polymorphism yöntemleri ile organize etmeyi sağladı C++, Bjarne Stroustrup, 1979 C++, C nin tüm özelliklerini içeriyor ve nesneye yönelik özellikler ekliyor başarılı olmasında önemli bir neden

Java Tarihçe Platform bağımsızlık UNIX platformunda yazılan programlar, Windows ya da Macintosh da çalışmıyordu --> Platform bağımlı diller İlk halka açık versiyon, 1995. Oak --> Java Hedef: Platform bağımsız (mimari bağımsız) bir dil Platformlar: Mikrodalga fırınlar, uzaktan kumandalar, buzdolabı, saatler, web vs. Applet: Web için yazılan, web tarayıcısı içerisinde çalışan Java programcıkları --> web e o zamanlarda mümkün olmayan özellikler kattı Adobe Flash: Daha iyi çoklu ortam ve araç desteği

Java Tarihçe Java 2 öncesi JDK alfa ve beta sürümleri, 1995 JDK 1.0, 1996: Oak olarak JDK 1.1, 1997 inner classes JavaBeans JDBC java database connectivity RMI remote method invocation Reflection ilk versiyon değişikliğe izin verilmiyor

Java Tarihçe Java 2 JDK 1.2, 1998 Sonradan Java 2 olarak isimlendirildi Dağıtımları birbirinden ayırabilmek için JDK yerine J2SE kullanılmaya başlandı Java platformdaki sınıf sayısı üçe katlandı: 59 pakette 1520 sınıf Swing grafiksel arayüzleri JIT derleyeci (just-in-time compiler) Java eklentisi (java plug-in) web tarayıcıları için Java IDL CORBA için IDL gerçekleştirimi Java Koleksiyonları Set, List, Queue ve Map gibi

Java Tarihçe Java 3 Java 3, 2000 HotSpot JVM dahil edildi Java Naming and Directory Interface (JNDI) Java Platform Debugger Architecture (JPDA) JavaSound

Java Tarihçe Java 4 Java 4, 2000 assert anahtar kelimesi. Örnek: assert!isempty() : "Stack is empty"; Kurallı ifadeler (regular expressions), örnek: *.txt IPv6 desteği Bloklanmayan IO (NIO) Günlük tutma (logging) Image I/O: JPG/PNG gibi imge formatlarında okuma ve yazma XML ayrıtştırıcı (XML parser) ve XSLT işleyici (JAXP) Entegre güvenlik ve şifreleme uzantıları (JCE, JSSE ve JAAS) Java Web Start Tercihler API si (java.util.prefs)

Java Tarihçe Java 5 Java 5, 2004 Jenerikler (Generics) Kolleksiyonlar için derleme zamanı tip güvenliği sağlar ve pek çok elle tip dönüşümünü gereksizleştirir Açıklama Notları (Annotations) Sınıfların/Metotların ek bilgi ile etiketlenmesini sağlar. Daha sonra bu etiketler çeşitli araçlarla işlenerek programcının pek çok alanda zaman kazanmasını sağlar. Otomatik Kutulama (Autoboxing/Unboxing): Temel veri tipleri (int, double gibi) ile temel veri tipi paket sınıfları (primitive wrapper classes) (Integer, Double gibi) arasında otomatik dönüşüm sağlar

Java Tarihçe Java 5 (devam) Java 5, 2004 Numaralandırma (Enumerations) enum anahtar kelimesi ile tip güvenli (typsafe) değerler listesi oluşturmayı sağlar Örnek: Gun.Pazartesi, Gun.Salı, Gun.Carsamba... Değişken sayıda parametre (Varargs) Metotların son parametresi değişken tipi ardından gelen üç nokta ve değişken adı olacak şekilde tanımlanabilir Örnek: void drawtext(string... lines) Çağıran metotlar herhangi bir sayıda parametre ya da bir dizi gönderebilir

Java Tarihçe Java 5 (devam) Java 5, 2004 Statik import (static imports) Sınıfın statik elemanlarını, sınıf adını yazmadan kullanmayı sağlar Örnek: Math.PI yerine PI (import static java.lang.math.pi;) Kodun anlaşılabilirliğini azalttığından nadiren kullanılmalıdır For each döngüsü Diziler ve kolleksiyon nesneleri (Queue, Set vb.) üzerinde, tip dönüşümü ve sayaç gerekmeksizin kolayca dönmeyi sağlayan döngülerdir Örnek: for (TimerTask t : c) t.cancel();

Java Tarihçe Java 6 Java 6, 2006 Komut dili desteği (Scripting Language Support) Python, Ruby, JavaScript gibi komut dillerinin Java içerisinden kullanımını sağlar Mozilla Rhino JavaScript makinasi (JavaScript engine) Java SE ye eklendi Jython, JRuby, JScheme, Scala, Closure, epascal... Java SE için performans iyileştirilmeleri (yaklaşık %60 daha hızlı) JAX-WS ile geliştirilmiş web servisleri desteği JDBC 4.0 ile geliştirilmiş veritabanı desteği

Java Tarihçe Java 6 (devam) Java 6, 2006 Java Derleyici API Java programlarının bir Java derleyicisi seçip çalıştırmasını sağlar Java programlarının (örneğin IDE ler) diğer java programlarını derlemesini sağlayan güçlü bir API dır JAXB 2.0 ile gelişmiş XML-Nesne eşleştirmesi Nesneler ile XML dosyaları arasında iki yönlü kolay dönüşüm Pek çok Swing iyileştirmeleri: tablo sıralama, tablo filtreleme, çifttamponlama (double-buffering)... JVM iyileştirmeleri: senkronizasyon, derleyici, çöp toplama (garbage collection) ve uygulama başlatma performans artışları

Java Tarihçe Java 7 Java 7, 2011 Dinamik diller için JVM desteği Yeni invokedynamic byte kodu Komut dilleri için esneklik ve performans artışı sağlar Eliptik eğri şifreleme algoritmalarının gerçekleştirimi Yeni ağ protokollerine (SCTP ve Sockets Direct Protocol gibi) geliştirilmiş destek Modern GPU özelliklerinin daha iyi kullanımını sağlayan XRender iletişim hattının (pipeline) Java2D için kullanımı Dizilerin ve kolleksiyonların sıralanmasında merge sort yerine timsort kullanımı

Java Tarihçe Java 7 (devam) Java 7, 2011 Java diline küçük eklentiler Switch içerisinde karakter katarları (string) Try-Catch bloklarında kaynak kullanımı ve bu kaynakların otomatik yönetimi Jeneriklerde basitleştirilmiş baklava biçimli operatör (<>) kullanım desteği Basitleştirilmiş varargs metot tanımlama Tamsayıları ikili (binary) olarak tanımlayabilme/kullanabilme desteği Sayısal değerlerde okunabilirliği arttırmak amaçlı alt çizgi kullanımı Aynı catch bloğu içerisinde birden fazla istisna tipini yakalayabilme

Java Tarihçe Java 8 Java 8, 2014 JavaFX grafiksel arayüz kütüphanesi Java SE ye eklenmeden önce ayrı bir kütüphane olarak kullanılabiliyordu Versiyon numarasının Java SE ile uyumlu olması amacıyla JavaFX 8 olarak isimlendirildi Swing daha fazla geliştirilmeyecek ve JavaFX Swing in yerini alacak 3D çizim desteği Algılayıcı desteği Yazdırma desteği Zengin metin desteği

Java Tarihçe Java 8 (devam) Java 8, 2014 Lambda ifadeleri Fonksiyon tanımı Varsayılan metotlar: çoklu kalıtımı gerçekleştirmeyi sağlıyor Nashorn JavaScript makinası JavaScript kodlarının Java programları içerisinden çalıştırılmasını sağlar Mozilla Rhino ya göre daha iyi çalışma performansı Açıklama notları (Annotation) yenilikleri. Örnek: Tekrar eden açıklama notları Aynı kod parçasına, aynı tipte birden fazla açıklama notu eklemeye izin verir Gün ve zaman API leri (Date and Time APIs)

Java Tarihçe Java 9 ve 10 Java 9, 2016 Daha iyi yerel kod (native code) entegrasyonu. Bkz. JNI (Java Native Interface) Java SE nin modülerleştirilmesi Para ve para birimi API si OpenCL (Open Computing Language) ile otomatik paralelleştirme (plan) Java 10, 2018 Temel veri tipleri silinebilir

Java Community Process (JCP) İlgilenen kişilerin Java dili ile ilişkili standart spesifikasyonlar oluşturmasını sağlayan oluşum: https://www.jcp.org 1998 de kuruldu Şirketler için senelik ücret varken, bireyler için ücretsiz Java Specification Request (JSR) JCP Executive Committee Şu ana kadar gerçekleş JCR listesi (300+): http://en.wikipedia.org/wiki/java_community_process

Java Sanal Makinesi (JVM) (1)

Java Sanal Makinesi (JVM) (2)

Java Byte Kodlar Java dili komut seti, her biri 1-byte olan 256 adet komuttan oluşmaktadır. Bunlardan 51 tanesi ileriki kullanımlar için ayrılmıştır. Komutlar aşağıdaki temel kategorilere ayrılabilir: Load and store (e.g. aload_0, istore) Arithmetic and logic (e.g. ladd, fcmpl) Type conversion (e.g. i2b, d2i) Object creation and manipulation (new, putfield) Operand stack management (e.g. swap, dup2) Control transfer (e.g. ifeq, goto) Method invocation and return (e.g. invokespecial, areturn)

Ön/Son Ek ve İşlemci Tipi Ön/Son Ek i l s b c f d z a İşlemci Tipi int long short byte char float double boolean nesne referansı aload veya iload

Java Byte Kod Örnekleri Komut aload_0 aload_1 iload_0 istore_1 iadd dmul Açıklama 0. yerel değişkendeki nesne referansını yığına at 1. yerel değişkendeki nesne referansını yığına at 0. yerel değişkendeki tam sayıyı yığına at Yığının tepesindeki değeri birinci yerel değişkene at Yığının tepesindeki iki tamsayı değeri al, topla ve sonucu yığına at Yığının tepesindeki iki double değeri al, topla ve sonucu yığına at Tüm byte kodlar: http://en.wikipedia.org/wiki/java_bytecode_instruction_listings

Java Çalıştırma Kiti (JRE).class dosyaları files Java byte kodlarını (bytecode) içerir Donanım bağımsız komut seti Java byte kodları Java Sanal Makinesi - Java Virtual Machine (JVM) tarafından yorumlanır. Byte kodları makine koduna çevirir Java Çalıştırma Kiti - Java Runtime Environment (JRE) JVM ve temel Java özelliklerini içerir (örn: java komutu) Donanım ve işletim sistemi detaylarını soyutlar Java programları için ortak API leri gerçekleştirir

java komutu ile Java programı çalıştırma HelloWorld.class isimli bir dosyada derlenmiş Java programınız olsun. Bu programı çalıştırmak için yandaki komut çalıştırılmalıdır: java HelloWorld java komutu JRE içerisinde yer almaktadır. Web sitelerindeki Applet ler web tarayıcısında çalışan Java programcıklarıdır. Web tarayıcısı, arka planda, java komutunu kullanarak bu appletleri çalıştırır. (JRE kurulu olmalıdır)

Java Geliştirme Kiti (JDK) Java programlarını geliştirmek için gereken araçları ve diğer bileşenleri içerir. Örnek araçlar: javac: java dosyalarını derleyip class dosyası haline getirir. javap: class dosyalarını okunabilir byte kod satırlarına çevirir. jdb: java programlarında hata ayıklamak için kullanılır. JDK kurulumu: http://www.oracle.com/technetwork/java/javase/downloads/index.html

Javac komutu ile Java programlarının derlenmesi Javac komutu Java kaynak kodlarından (*.java), JVM de çalışabilir Java byte kodlar (*.class) oluşturmayı sağlar. HelloWorld.java isimli Java programından HelloWorld.class isimli byte kod dosyası oluşturmak için aşağıdaki komut çalıştırılmalıdır. javac HelloWorld.java

NetBeans IDE Java da yazılmış entegre geliştirme ortamı (IDE) Eklentiler aracılığıyla pek çok programlama dilini destekliyor Java geliştirme araçları: Kaynak kod editorü: Dil spesifik kod renklendirme Kod otomatik tamamlama Java kodlarının oluşturulması ve yeniden yapılandırılması (refactoring) için özellikler Proje oluşturma, çalıştırma ve hata ayıklama

Java Development Kit (JDK) Kurulumu Java ile program geliştirebilmek için öncelikle JDK kurulmalıdır Aşağıdaki adrese gidip, sağda gösterildiği şekilde JDK nın en son versiyonunu bilgisayarınıza indirin Şu an için en son versiyon 8u20 JDK 8 Güncelleme 20 (22.09.2014) Indirilen kurulum dosyasını çalıştırıp JDK kurulumunu tamamlayın http://www.oracle.com/technetwork/java/javase/downloads/index.html

NetBeans Kurulumu Aşağıdaki adrese gidip, sağda gösterildiği şekilde NetBeans in tüm alt bileşenleri içeren versiyonunu bilgisayarınıza indirin Indirilen kurulum dosyasını çalıştırıp NetBeans kurulumunu tamamlayın https://netbeans.org/downloads/

Java Projesi Oluşturma (1/2) File -> New Project -> Java -> Java Application Next

Java Projesi Oluşturma (2/2) Proje adını (project name) girin «Finish» butonuna tıklayın

main() metotu Yeni oluşturulan sınıfa ait HelloWorld.java dosyasını editörde açın main() metotunu yazın Dosyayı kaydedin:file -> Save (Ctrl+S)

Uygulamayı Çalıştırmak Aşağıda gösterilen toolbar daki «Run» (yeşil sağa doğru ok) butonuna basın Veya menüden Run -> Run Project (F6) seçin main() metodu çalıştırılacaktır Output penceresinden programın çıktısı aşağıdaki gibi görülebilir