Home Map Index Search News Archives Links About LF
[Top Bar]
[BottomBar]
[Photo of theAuthor]
Jose M. Fernández 

Yazara iletin
Index
Giriş
Orijin
İncelemek ve İndirmek JAVA 
Ortamın Geliştirilmesi 
Karakteristikler 
JAVA da ilk program
Özet

Java. Bölüm I

Çeviri: İnci Gedik

[Ilustration]

Açıklama: Bu , Java programlama hakkındaki bir seri makaleden ilkidir. İlk bölüm Java'yı bir dil olarak , genel karakteristiği ve en fazla rabet gören bilgi kaynaklarının yeriyle açıklamaktadır.


Giriş

Bu ,Java programlama dilini ve onun çevresel gelişimini açıklayan bir dizi makale ile başlar.Birinci amaç olarak ,dilin tarihi hakkında yayımlardan, mikrodalgalar ve çamaşır makinelerinden... uzak duracağım.( Eğer aranızda bunlardan herhangi biri ile ilgilenen varsa bunları çoklu kütüphanelerden hatta literatürden bulabilir.) Aynı zamanda kocaman burunlu, üçgen vücutlu ve ellerini marimba'nın ritmine göre sallayan ,bana eski Amerikan bilim kurgu filmlerini  hatırlatan Duke ' tan  da (Java'nın maskotu)  uzak duracağım. 

 Java fenomeni de zamanında geçici popülerlik taşıdı.Her seviyedeki bilgisayar magazini bunun hakkında yazdı , Java apletlerini geliştirmek üzere ürün satan birçok yazılım firması var ve çok az web sitesi Java apleti içermiyor.

Bu seriler arasında mümkün olduğu kadar ,  aslında temel işler için basit fakat ustalıklı kullanım için haylı karışık ve zor olan bu programlama dilini derinlemesine incelemeye ve öğrenmeye çalışacağım. 

Bu ilk birkaç makale ile  amacımız  genel olarak dile bir tanımlama sağlamak böylece daha sonra apletler,ağ-ilişkili planlar, JDBC,vb.  gibi konuların derinine inebiliriz.

Þunu belirtmeliyim ki Java genel amaçlı bir dildir,bunu yapmada oldukça popüler olmasına rağmen sadece web sayfalarına aplet yazmak için kullanılmak üzere yaratılmamıştır. Java'nın sadece görünüşüne takılamayız çünkü  java apletlerinden çok daha ilginç bir çok alternatifi vardır.

Bu ilk makale tanımlamadan çok pratiktir.Bir sonra ki makalede, dilin temel karakteristiklerini ve çevresel gelişimini açıklayacağız.Sadece en sonda Java programının bir örneğini göreceğiz.

Orijin

Java  Sun Microsystem Inc. 'de hayatının 18 ayını geçirdiği yerde 1991'de  James Gosling, Patrick Naughton, Chis Warth, Ed Frank ve  Mike Sherindan tarafından oluşturuldu. 1992 ve 1995 arasında Bill Joy, Arthur Van Hoff, Jonathan Payne, Frank Yellia, Tim Lindolm ilk prototipin olgunlaşması üzerine işbirliği yaptılar.

Tarihlerden belli ki  Java WWW 'den önce  ya da en azından onunla eşzamanlı oluşturulmuştur -- 1991'e kadar Tim Berners Lee HTML dilini geliştirmemiştir.

Java'nın yapısı C'ye oldukça benzemektedir ve obje ağırlıklı karakteristikleri de aynı zamanda C++ 'a benzemektedir. Java  uygun ve mantık çerçevesinde birbirini tutan bir programlama dilidir.

 C ve  C++ arasındaki benzerlikler, Java'nın  C++ 'ın internet için bir versiyonu olduğu izlenimini verebilir, fakat önemli teorik ve pratik farklılıklar vardır. Java özellikle C++ ile karşılaştırılan obje kökenli parametreleri düzeltir ve arıtır.

Internet  Java'yı ortaya attı ve herkesin bildiği bir dil haline getirdi ve eşzamanlı olarak Java, siberuzayda ücretsiz edinilebilen objeler dizisini genişlettiğinden beri İnternette derin etki yarattı  (kendi çalıştırılabilen programlar ).

İncelemek ve İndirmek 

Java programlama için kesin birçok araç vardır.Tesadüfen hep  GNU/LINUX ortamını önereceğim (kelimenin tam anlamı ile kayıplarının bulunması): Varolan ELF, 1.2.13  ve sonraki kabuklara ihtiyaç duyan Linux tabanlı olarak yerine getirilmiştir.

Ben JDK (Java Development Kit) ortamını  , Netscape versiyon 2.0.14 ya da sonrası , ve  Xemacs gibi bir yazı editörü kullanacağım .Daima  Xwindows ortamında çalışacağız . Herzaman gerekli olmamasına rağmen , Apletleri ve programları bir grafik arabirimi ile geliştirirken  buna ihtiyacımız olacak.

JDK dağıtımı aşağıdaki sayfadan indirilebilir :

http://www.blackdown.org/java-linux.html

Dosyaları hemen indirmek yerine bu siteden bağlantılı aynalardan birini seçebilirsiniz. Birkaç ay önce - son ziyaretimde - JDK-1.1.3 'nin son versiyonu (bu makale için kullanılan)  1.19 versiyonunun orada olduğunu gördüm.Unutmayın ki herşeyi indirmeye kalkarsanız bu size 24 Mb'a mâlolur.Oysa sadece ihtiyacınız olan şeyler yaklaşık 12 Mb yer kaplamaktadır(deneyin!).

gunzip ile arşivleri açtığınızda başlamanız için hiçbir engel kalmayacak.

Normal olarak dağıtımı  /usr/local dizinine yapmak ,sonra  /JDK1.1.3 alt dizinini yaratmak ve beraberinde aşağıdakileri yapmak gerekir :

/doc  HTML formatındaki ofis  dökümanlar

/demo  Java demo programlar

/lib   Kütüphaneler

/bin  JDK'nın belli araçlarının olduğu dizin.

 /lib dizininin içinde  "classes.zip"(dosyayı açmayın) dosyasını buluruz , bu dizin JDK tarafından kullanılan derlenmiş sınıfları içerir.

root dizini ile beraber  "src.zip" dosyasını buluruz , bu dizin classes.zip içerisinde yeralan kaynak dosyaları içerir . Bunlar derlenemez ve sadece bilgi amaçlı dağıtımlarla beraber desteklenirler.

Ortamın Geliştirilmesi 

Daha önce belirtildiği gibi gelişme araçları /bin dizininde yeralır : javac : java kaynaklarını baytkodlarına çeviren  java derleyicisi.

Java : java yorumlayıcısı . Java baytkodlarını çalıştırır.

jre :  Java'ya benzer başka bir yorumlayıcı ,fakat kullanıcılar için olduğu düşünülmesine rağmen tüm seçeneklerin kullanılır olması istenmemektedir.

appletviewer:  apletleri test eder ve çalıştırır.

jdb: hata düzelticisi.

javap:  Java da derlenen baytkod dosyalarının ayırıcısı.

javadoc : dökümantasyon jeneratörü ,  genel ve korunmuş sınıfları, arayüzleri , yapıları, methodları ve alanları tanımlayan  HTML sayfalarını yaratır.Aynı zamanda sınıf hiyearaşisini ve üyelerin içinde bulunduğu indeksi yaratır.

javah : Java programlarının bilinen metodlarına eklenen araç ( C de ) 

jar:  java sınıflarını ve kaynaklarını bir Jar arşiv dosyasında saklar .

javakey : Dijital imzaları koruyan araç.

updateAWT : bir başvurudaki AWT1.02 metodu ile değiştirilen isimleri güncelleştirir. 

Belli bir dizin yapısı ile glitch' ler olmadan çalışırken /usr/local/JDK1.1.3/bin 'i PATH değişkenine atamanızı tavsiye ederim .Eğer kullanılabilen sistem gelişme çevresini daha geniş yapmak istiyorsanız  /etc/profile dosyası içindeki Path degişkenini karıştırın.

Karakteristikler 

Devam etmeden önce , kendimize Java nedir sorusunu sormamız gerekir. Cevaplamak için  JDK'nın  elkitabında  yazdığı  gibi  Java'nın bir programlama dili ve aynı zamanda bir platform olduğunu gözönünde bulundururuz.

Bir programlama dili olarak Java aşağıdaki karakteristiklerle beraber yüksek seviyeli bir dildir.  (aynı noktada onları detaylı olarak inceleyebiliriz ):

  • Basittir
  • Obje kökenlidir 
  • Dağıtılmıştır
  • Yorumlanmıştır
  • Kuvvetlidir 
  • Güvenilir
  • Sistem yapısında tarafsızdır
  • Taşınabilir
  • Çok okuyuculu
  • Dinamik
  • Yüksek çözünür 
Dikkatimizi çeken ilk şey Java'nın yorumlanmış olmasıdır.Java kaynaklarının bir objeyi baytkodlar olarak yaratması için bir önceki daha düşük seviyede ki derleyiciye ihtiyacı olmasına rağmen  , değişik platformlarda yorumlanabilir .

" Birkez yazıp herzaman çalıştırabildiğimiz " Java baytkodlarına teşekkür ederiz.  Java programlarını bir platformda derleyebilir ve JVM (Java Virtual Machine ) aracını içeren tamamen farklı başka bir yapıda çalıştırabiliriz. Örneğin bir Java programı Windows NT platformunda derlenebilir ve bir Sun Ultra Solaris 'de sorun olmadan çalışabilir . (en azından teorik olarak)

Genel olarak bir platform uygulamanın çalıştığı bir donanım/yazılım ortamıdır . Bununla beraber Java için bir platform çalıştığı bir yazılım ortamıdır . Her Java platformu bir donanım ortamında çalışmak zorundadır.

Bir Java platformunun iki bölümü vardır :
 

  •  Java Virtual Machine (JVM)
  • Uygulamalı program arayüzü (API)
JVM , Java öncelikli derlenen programların çalıştırıldığı açık bir bilgisayardır.Küçük ve basit olarak dizayn edilmiştir çünkü düşünülen onu her yere indirmektir . Bu basitlik onu tüm varolan platformlara taşımayı mümkün kılıyor , böylece hepsine ortak bir yazılım sağlıyor ve her karışık ağ sisteminde ( İnternet gibi ) büyük ölçüde taşınabilirlik sorununu ortadan kaldırır.Hayal edilebildiği gibi bu, durdurulamayan teknoloji için yaklaşık bir nedendir. Bununla beraber sanal makine bir yazılım tabakası olarak görülmemelidir, fakat isminin belirttiği gibi, bu dolu bir bilgisayar sistemi olmaya çalışıyor,yavaş yavaş gerçek Java makinelerini , kredi kartları ,TV dekoderlerini ve benzerlerini destekleyen Java Çiplerini marketlerde görüyoruz . 

Java'nın API 'sı  grafiker kullanıcı arayüzü (GUI ) gibi özellikleri destekleyen geniş bir yazılım bileşenleri koleksiyonudur . Bunlar kütüphanelerde gruplandırılmıştır. ( Java terminolojisini kullanan  Java paketleri ).Bu paketler sayesinde çok bilinen  web Apletlerinin yanısıra,  Java'yı daha birçok uygulamada kullanmak mümkündür. Web serverlarını dizayn etmek mümkündür, örneğin, vekiller, ileti serverları, IRC serverları, ve İntenet ile ilgili hayal edilebilecek herhangi birşeyler...
 

  • API paketlerini değişken gruplar içerisinde  sınıflandırabiliriz :
    • Temel: objeler, matrisler, sayılar, girdi ve çıktı , bilgi yapıları, sistemin özellikleri, tarih, zaman, vb. 
    • Apletler : fonksiyon seti ve Java apleti yapmak için kullanılan özellikler. 
    • Ağ çalışması: URL'ler, TCP, UDP, soketler, IP adresleme. 
    • Uluslararasılaştırma: yerel tanımlamalara kolayca adapte olabilen kodlar yazmaya  yardım eder ve yerel dilde görüntülenir.
    • Güvenlik:düşük ve yüksek seviye,dijital imzayı içerir, genel ve özel anahtarlar,kontrol ve sertifikaya giriş. 
    • Yazılım Bölümleri: JavaBeans olarak bilinir. 
    • Veritabanları: Çok sayıda ilişkili veritabanına girişi sağlar .

    •  

       

      Bu temel API kabuğunun yanısıra aynı zamanda 3D uzantıları , iletişimler, animasyonlar, vb. vardır.


    Bölümün başında  Java'nın detaylı çalışabileceğimiz bir dizi karakteristiği olduğunu belirttik : 
     
    Basittir:  Java'da  daima bir taslağı oluşturan birçok  iyi tanımlanmış formlar vardır. Bu , güçlü bir dilin  az kullanılan ve daha karışık  özellikleri olan tüm fonsiyonelitelerini önerir. Java  C/C++ 'nın sentakslarını ve obje kökenli özelliklerini  miras alır. C/C++ 'la beraber her programlama ailesi Java 'yı öğrenmede sorun yaşar.Benzerliklerine rağmen, Java aşağıdaki birçok  C/C++  özelliklerini eler :
    • İşaretçi aritmetiği
    • Kayıteder (struct)
    • Tip tanımlamaları (typedef)
    • Makrolar (#define)
    • Boş belleğe ihtiyaç duyar (free)
    • Çoklu miras yok
    • Yönlendirici operatörler yok
    • Ünitelerde değişim yok
    Obje kökenlidir: Java çiziklerden dizayn edilmiştir, ve sonuç olarak obje kökenliliğe temiz , yararlı ve pragmatik bir şekilde yaklaşır. Java için obje modeli basit ve kullanımı kolaydır.
    Dağıtılmıştır: Java düşüncede geniş  TCP/IP birleştiricisi ile dizayn edilmiştir. Aslında , bu  geliştiricilerin net üzerinden yerel dosyalarda olduğu gibi kolayca bilgi girişine izin verir .
    Kuvvetlidir: Java  güçlü yazılmış bir dildir, bu derleme zamanında tip kontrolüne izin verir .Çalışması zamanında da bazı kontroller yapar .Hafıza otomatik olarak kullanılmaktadır, böylece yorumlayıcı kullanımda olmayan objeler için bir otomatik çöp toplayıcısı yaratır. Java kendi başına  bir dizi obje kökenli istisna  sağlar.Doğru yazılmış bir uygulamada  tüm çalıştırma hataları  program tarafından kullanılabilir.
    Yapısal bağımsızdır :  Java'yı dizayn edenlerin asıl amacı "birkez yaz, her zaman ve daima herhangi bir yerde çalıştır  " dir. Java kodu yüksek seviyeli makinadan bağımsız bayt kodunda bir kez yorumlanır . Bu baytkodu makineden bağımsız herhangi bir yorumlayıcıda çalıştırılacak şekilde dizayn edilmiştir.
    Güvenilir: Dağıtılmış bilgiye ihtiyaç müşteri operatör sisteminden en yüksek seviyeli güvenliği ister .Çalışma ortamında tüm özellikleri ile  Java  güvenlik sağlar :
    • Bir baytkodu araştırıcısı
    • Çalışma zamanında hafızanın değerlendirilmesi
    • Dosya giriş kısıtlaması
    Derleyicinin sadece doğru kodu oluşturmasına rağmen, yorumlayıcı  onu   derlemeden bu yana  değişip değişmediğinden emin olmak için  iki kez kontrol eder.Bundan dolayı  Java yorumlayıcısı sınıflar için hafızanın değerliliğini araşırır. Java herhangi bir sistem için en güvenli uygulama olarak düşünülebilir .
    Taşınabilir: Java'nın taşınabilirliği bir yana, yapısal bağımsızlığına göre, Java taşınabilir bir standart yaratır: tamsayılar daima tamsayı,  GUI  windows'un kuramsal sistemini içerir ve bu yüzden yapıdan bağımsızdır (UNIX, PC, Mac). 
    Yorumlanmıştır: Java'nın temel amaçlarından birini yerine getirmek için, platform , java derleyicisi orta düzeyli bir kod (baytkod) yaratır . Uygun bir yorumlayıcı ile  çalıştırılabilir .Bu paradizim java uygulamalarının mümkün olan performans problemlerini görmemizi sağlar.Bununla beraber  , ve bu performansın yanısıra , Java yaratıcıları baytkodları olabildiğince basit ve mümkün olan  maksimum  performansı sağlamak üzere  makine koduna çevirecek kadar kolay tutarlar. 
    Çok okuyuculu: Sağlam bir yolda birçok taslağı aynı zamanda beraber çalıştıracak Java uygulamaları yazmak oldukça basittir. 
    Dinamik: Java çalışma zamanına kadar uygulamaları oluşturan tüm modülleri  birbirine bağlamaya çalışmaz . Bu özellik kodları dinamik olarak sağlam ve uygun bir şekilde birbirine bağlamaya çalışır.

    Bu uzun "konuşma" dan sonra (çoğu Java dökümanlarında bulunabilir) Java'nın GNU/Linux dünyasındaki yerini merak edebilirsiniz .Daha önce  Linux için kullanılan,  Sun Mikrosistem tarafından geliştirilen ticari amaçlı (ücretsiz dağıtıldığı halde) JDK dökümanlarından bahsetmiştik.

    GLP lisansı altında  GUAVAC derleyicisi gibi herhangi bir Java kaynağını hiçbir sorun ile karşılaşmadan derlememizi sağlayan birçok araç vardır.Aynı zamanda Berkeley lisansı altında   KAFFE olarak adlandırılan bir sanal makineden bahsetmeliyiz .Son iki proje , gelişme sistemini tamamlamak için Sun'nın Java sınıf kütüphanelerine (ücretsiz dağıtımda olanlar ) ihtiyaçları olduğu halde oldukça iyi seviyedelerdir. 

    Varolan birçok proje, hâlâ ilkel seviyede olmalarına rağmen , gelişme ortamını hızlı ve sanal uygulamalar ile sağlamayı amaçlıyor.

    Son olarak nette Java ve GNU  teknolojisinde  büyük hareketlenmelerin olduğunu  , özellikle Sun'dan bağımsız olarak Java için ücretsiz dağıtılan tamamlanmiş araç kutularının yaratıldığını sevinerek söylüyorum . Java'nın önemini modası geçtiğinde yeni yeni anlıyor olabiliriz, ama eminim ki onu hatırlatacak bazı şeyler olacaktır.( Hatta birçok şeyin kalacağına bahse girerim)

    JAVA da ilk program

    Dilin genel karakteristiklerinden bazılarını gördükten sonra gerçek bir programa bakalım.Girişte belirttiğim gibi, merhaba dünya örneği gibi sıradan laflardan mümkün olduğu kadar uzak duracağım, onun yerine istediğimiz boyutta bir kare çizecek olan bir program ile başlayalım.
    (Fazla olmamak kaydı ile biraz karışık): 
    File Cuadro.Java
    class Cuadro {
    public static void main (String args[]) {
            int l ,a;
            if (args.length == 2) {
                l = Integer.valueOf(args[0]).intValue();
                a = Integer.valueOf(args[1]).intValue();
             }
             else {
              l= 20;
              a= 15;
             }
              for (int i=l; i>0; i--){
                System.out.print("*");
                }
                System.out.print("\n");
                for (int i= a-2; i>0; i--){
                 System.out.print("*");
                   for(int j=l-2; j>0; j--) {
                      System.out.print(" ");
                      }
                      System.out.print("*\n");
                      }
                    for (int i=l; i>0; i--){
                    System.out.print("*");
                    }
                  System.out.print("\n");
               }
    }
    
    
    Java'da kaynak dosyaya verilen isim çok önemlidir çünkü bir "derleyici birim" tanımlar.Dosya bir veya daha fazla tanımlama sınıfı içerebilir.Derleyici kaynak dosyadan uzantıyı taşımasını ister. Java (4 karakter) kesinlikle bazı sistemler tarafından desteklenmemektedir. (DOS ya da  Windows 3.1)

    Verilen örnekte  sınıfın ismi kaynak dosyanın adı ile tanımlanır .Bu tesadüf değildir , Java'da tüm kodlar bir sınıfta olmalıdır.Anlaşmaya göre sınıfın ismi ,sınıfı içeren kaynak dosyanın adı ile uyuşmak zorundadır.Bundan başka Java küçük büyük harfe karşı hassastır.

    Komut satırında örneği derlemek için :
    > javac Cuadro.java

    Java derleyicisi , (hersey iyi giderse) kendiliğinden ikilik (baytkod) formu içeren Cuadro.class dosyasını yaratır ve acil olarak yorumlayıcı tarafından çalıştırılabilir :

    > java Cuadro

    Java kaynak kodu derlendiğinde , her sınıf  arşivde sınıf ismi ile aynı ve bireysel olarak yerleştirilir. Bu yüzden kaynak dosyalara içerdikleri sınıfın ismi ile aynı adı vermek güzel bir alışkanlıktır böylece kaynak dosya adı  arşiv.class dosyası ile örtüşür.

    Cuadro.java örneğimizin basitliğine rağmen Java'nın temelini ve tipik java programlarının yapısını anlamamızı sağlar .

    İlk olarak bu örneğin HTML dosyasında varolan bir aplet olmadığını fakat komut satırında java derleyicisi tarafından derlenebilen bağımsız bir program olduğunu anlayın.

    Programın ilk satırı :

    class Cuadro {
    İlk kelime saklanan dilden alınmıştır , "Cuadro" -- ispanyolca  bir kelime-- isimli yeni bir sınıfın tanımlamasını yapmaktadır. Tüm üyelerini içeren sınıfın verilmiş tanımlamas iki küme parantezinin {} içinde verilir.

    Bir sonraki satırda:

    public static void main (String args[]) {
    main( ) isimli metod gösterilir .Tüm  Java uygulamaları  main( ) olarak isimlendirilen metod ile çalıştırılmaya başlanır .(C/C++'a benzer şekilde).Þimdi size örneği anlamak için gerekli detayları belirtmeme izin verin .(sonraki makalelerde bu daha ayrıntılı açıklanacaktır).

    public şifre kelimesi sınıfların üye metodunu kontrol eder . Bir sınıf  public olarak tanımlandığında , bu sınıf kendisinin  dışında tanımlanmış kodlar tarafından kullanılabilir . static şifre kelimesi  main( ) metodunu sınıfı araştırmadan uyanmaya zorlar . Void bu metodun herhangi bir değere dönüşmediğini  gösterir . Bir fonksiyon ya da metodun parametrelerini geçmek için fonksiyon isminden sonra parantezler kullanılır , bizim örneğimizde main String sınıfından indisleri olan bir matrisi parametre olarak alır .

    Belli ki bu metoda bağlı tüm kodlar aynı zamanda yuvarlak parantezler arasında kapatılır .Sonra, satırda :

     int l, a ;
    iki değişken tanımlarız .Java  da tüm degiskenler   kullanılmadan önce   tanımlanmalıdır .Þunu farkedin ki koddaki tüm yapılar noktalı virgül ";" ile biter . 

    Kodun kalanları aşağıdaki gibi küçük bir algoritma gösterir :

    1. Argümanın sağ tarafındaki numaranın sağlanıp sağlanmadığınıi test eder.
    2. If (args.length==2)
    3. Parametreler sağlanırsa,tamsayı olarak atanırlar :
    4.   l = Integer.valueOf(args[0]).intValue();
        a = Integer.valueOf(args[1]).intValue();
    5. Diğer durumda değişkenler varolan değerlere ilk olarak atanır :
    6.   l = 20;
        a = 15;
    7. Programın geri kalan kısmı ekranda kare çizmeyi sağlayan yapıdan başka birşey değildir. Özel olarak print() 'in argüman olarak geçen diziyi bastığı yerde :
    8. System.out.print()
      ifadesi  ile gösterilebilir. System  sisteme girişi sağlayan sınıfın öntanımlamasıdır ve  out konsol ile bağlantılı çıktı dizisidir.Aynı zamanda,
      for (int i=l; i>0; i--)
      Beklendiği gibi  C/C++ deneyi ve diğer dillerin dediği gibi hareket eder.
    Ödevin iyi bir parçası da okuyucunun bu küçük kodu kullanarak bunu nasıl derleyip, çalıştırabileceğini test edebilmesidir, fakat aynı zamanda   Linux, windows 95 gibi değişik platformlar altında  Cuadro.class  derlenen objesini çalıştırarak taşınabilir  kodu da test edebilirler ve herhangi bir platformda aynı şekilde çalıştığını görebilirler.(bunu genele almayın )

    Özet

    Java programlama dilinin genel özellikleri ile ilgilendik.Programa henüz başladık ve gidecek uzun bir yol var,gelecek makaleler dilin tanımlaması hakkında daha derinlemesine bilgi verecekler.Bundan sonraki makalede , tanımlamalar ve değişkenlerin tipleri, temel yapılar, sınıflar  gibi dilin ana özellikleri üzerinde çalışacağız.

    Herbir makalede o makalelerin referanslarını,kütüphanelerini ve URL'lerini vereceğim.

    • JAVA Reference Manual. Patrick Naughton Herbert Schildt. McGraw-Hill. 
    • Programming with JAVA. Tim Ritchey. Prentice Hall. 
    • Tutorial de Java . Spanish manual in HTML format that can be obtained at www.fie.us.es/info/internet/JAVA. Agustín Froufe. 
    • The Java Tutorial. English manual in HTML www.javasoft.com. Sun. 
    • Tutorial from the JDK distribution. 
    Miguel A Sepulveda tarafından İngilizce'ye çevrilmiştir.
    Bu sanalyörenin bakımı Miguel Angel Sepulveda tarafından yapılmaktadır.
    © Jose M. Fernandez 1998
    LinuxFocus 1998