Java Nasıl Platformdan Bağımsız Bir Dildir?
Bilgisayar programları, belirli donanım ve işletim sistemleriyle çok yakından ilişkilidir. Örneğin, Windows uygulamaları Mac İşletim Sisteminde çalışamaz. Mac uygulamaları Android İşletim sistemi vb. üzerinde çalışamaz.
MS Word gibi bazı uygulamalar tüm işletim sistemlerinde ortaktır, bu nedenle tüm İşletim Sistemleri için ayrı ayrı mı yazılmalıdır?
Bu platform çeşitliliğinin üstesinden gelmek için, bu tür uygulamalar tüm platformlar için bağımsız olarak yazılmalıdır. Java, donanım ve işletim sistemlerinden bağımsız uygulamalar yazmak için bir yol sağlar. Bu nedenle platformdan bağımsız programlama dili olarak adlandırılır.
Platformdan bağımsız'ın anlamı, java derlenmiş kodunun (byte code) tüm işletim sistemlerinde çalışabilmesidir.
Bir program, insan tarafından okunabilir bir dil olan bir dilde yazılmıştır. Makinenin anlamadığı sözcükler, deyimler vb. içerebilir. Makine tarafından anlaşılacak kaynak kodu için, makineler tarafından anlaşılan bir dilde, tipik olarak makine düzeyinde bir dilde olması gerekir. Yani, işte bir derleyicinin rolü geliyor. Derleyici , üst düzey dili (insan dili) makinelerin anlayabileceği bir biçime dönüştürür. Bu nedenle derleyici, başka bir programın kaynak kodunu bir programlama dilinden yürütülebilir koda çeviren bir programdır.
Bu çalıştırılabilir kod, doğrudan CPU tarafından yürütülebilen bir dizi makine talimatı olabilir veya bir sanal makine tarafından yorumlanan bir ara temsil olabilir. Java'daki bu ara temsil,Java Bayt Kodu.
· Platform Nedir ve Platformdan Bağımsız Dil Nedir?
· Kod Derleme
· JAVA'da Bir Program Nasıl Yürür?
· JVM (Java Virtual Machine)
· Platform Bağımsızlığında Derleme ve Yorumlamanın Rolü Nedir?
· Java, Platform Bağımsızlığını Nasıl Sağlar?
· Java Neden Tamamen Platformdan Bağımsız Değil?
· Sonuç
Platform Nedir ve Platformdan Bağımsız Dil Nedir?
Platform , programları çalıştırmak için bir ortam sağlayan donanım, işletim sistemi ve yazılımın farklı bir kombinasyonu olarak tanımlanabilir .
Platform bağımsızlığı, programın sistemin işletim sisteminden bağımsızlığını ifade eder. “Bir Kez Yaz Her Yerde Çalıştır (WORA)” metodolojisini benimser.
Kod Derleme
Her kod yazdığımızda, genellikle okunabilir olan bir programlama dilinin sözdizimine bağlı kalırız. Birkaç sözcük, değişken adları, deyimler, yöntem adları vb. dahildir. Hepsi insanın okuyabileceği ve anlayabileceği edebiyat olarak kabul edilir.
Sonuç olarak, bir bilgisayar, kaynak kodu makine düzeyinde dil olarak da bilinen makine tarafından okunabilen koda dönüştürmek için bir derleyici çalıştırır. Derleyici, makine düzeyinde kodu belirli bir biçimde oluşturur, böylece CPU kolayca anlayabilir ve hatasız çalıştırabilir.
Her iki bilgisayar da aynı işletim sisteminde çalışmadıkça, makine düzeyinde bir dil her işletim sistemine göre farklılık gösterdiğinde, bir makinede geliştirilen kodu başka bir makinede çalıştıramayız. Birçok geliştirici ve programcı bunun kabul edilemez olduğunu düşünüyor. Ancak Java, işleri basitleştirir ve bunun için bir düzeltme içerir.
JAVA'da Bir Program Nasıl Yürür?
Java'da derleyici, programı yürütülebilir kod olmayan bayt koduna dönüştürür. JVM (Java Sanal Makinesi) daha sonra çalışma zamanında bayt kodunu yürütür. Java kaynak kodu, javac derleyicisini kullandığımızda bayt koduna derlenir .
Ortaya çıkan bayt kodu, makine tarafından çalıştırılabilir değildir ve herhangi bir başka platform veya işletim sistemi onu çalıştırabilir. ancak bir bilgisayarda çalışması için tercüman gerektirir. Programını veya dosyasını çalıştırdığımızda, yürütülemez bir dosya olan bir .class dosyası elde ederiz. JVM bu yorumlayıcı olarak görev yapar ve sonuç olarak Bytecode'u yürütür. JVM şüphesiz platformdan bağımsızdır. Çevreye bağlı olarak nasıl değiştiğine benzer. Örneğin, MAC ve Linux, Windows'tan farklı bir JVM'ye sahiptir. Kodunun taşınabilir bayt kodu onu platformdan bağımsız yaptığından, temel özelliklerinden biri olarak taşınabilirliği destekler.
Bayt kodu, .class dosya uzantısıyla diske kaydedilir . Program çalıştırılacağı zaman, tam zamanında ( JIT ) derleyici kullanılarak bayt kodu dönüştürülür. Sonuç, daha sonra belleğe beslenen ve yürütülen makine kodudur.
Java kodunun çalıştırılabilmesi için iki kez derlenmesi gerekir:
- Java programlarının bayt koduna göre derlenmesi gerekir.
- Bayt kodu çalıştırıldığında, makine koduna dönüştürülmesi gerekir.
Derleyici, C veya C++ kullanıldığında bir OS- Depend.exe dosyası oluşturur (bu diller platformdan bağımsız değildir). Bu.exe dosyası, o işletim sistemine bağlı olduğu ve onunla uyumlu olmadığı için farklı bir işletim sisteminde çalıştırmayı denediğimizde çalışmaz.
JVM (Java Sanal Makinesi)
Java derleyicisinin bir bileşeni olan JVM, .java dosyalarını.class dosyalarına dönüştürür. Java Kodunu derlerken kaynak koddaki anahtar işleve JVM denir.
JVM (Java Virtual Machine), Java uygulamalarını çalıştırmak için bir çalışma zamanı motoru görevi görür. JVM, bir java kodunda bulunan ana yöntemi gerçekten çağıran yöntemdir . JVM, JRE'nin (Java Runtime Environment) bir parçasıdır.
Java uygulamalarına WORA (Bir Kez Yaz Her Yerde Çalıştır) denir. Bu, bir programcının Java kodunu bir sistemde geliştirebileceği ve herhangi bir ayarlama yapmadan Java özellikli herhangi bir sistemde çalışmasını bekleyebileceği anlamına gelir. Bunların hepsi JVM sayesinde mümkündür.
Bir .java dosyasını derlediğimizde , .java dosyasında bulunan aynı sınıf adlarına sahip .class dosyaları (bayt kodu içerir) Java derleyicisi tarafından oluşturulur. Bu .class dosyası, onu çalıştırdığımızda çeşitli adımlardan geçer. Bu adımlar birlikte tüm JVM'yi tanımlar.
Java'da, buradaki ana nokta, JVM'nin işletim sistemine bağlı olmasıdır - bu nedenle, Mac OS X kullanıyorsanız, Windows veya başka bir işletim sistemi çalıştırdığınızdan farklı bir JVM'ye sahip olacaksınız. Bu gerçek, kendi makineniz için JVM'yi indirmeye çalışarak doğrulanabilir - indirmeye çalışırken, size farklı işletim sistemlerine karşılık gelen JVM'lerin bir listesi verilecek ve işletim sistemi için hangi JVM'nin hedeflendiğini açıkça seçeceksiniz. Koşuyorsun. Dolayısıyla, JVM'nin platforma bağımlı olduğu ve Java'nın “Platformdan Bağımsız” olabilmesinin nedeni olduğu sonucuna varabiliriz.
Önemli noktalar:
- Java söz konusu olduğunda, onu platformdan bağımsız kılan Bytecode'un büyüsüdür .
- Bu, JAVA dilinde taşınabilirlik olarak adlandırılan önemli bir özelliğe katkıda bulunur . Her sistemin, jdk yazılımı kurulduğunda otomatik olarak kurulan kendi JVM'si vardır. Her işletim sistemi için, .class dosyasını veya bayt kodunu okuyabilen ayrı JVM mevcuttur.
- Dikkat edilmesi gereken önemli bir nokta, JAVA platformdan bağımsız bir dil iken, JVM'nin platformdan bağımsız olmasıdır. Farklı JVM, farklı işletim sistemleri için tasarlanmıştır ve bayt kodu farklı işletim sistemlerinde çalışabilir.
Platform bağımsızlığını sağlamak için hem derlemeyi hem de yorumlamayı birleştirir. Bir program Java'da derlendiğinde, makine kodu yerine genellikle a.class dosyası olarak bilinen bayt koduna dönüştürülür. Şimdi, bu bayt kodu, başka bir platforma taşınabilir/taşınabilir olduğundan, ancak Java'nın yapamadığı için özellikleriyle onu makine kodundan ayıran bir şeydir. Bu bayt kodu bir Java Sanal Makinesinde çalıştırılabilir.
Java, Platform Bağımsızlığını Nasıl Sağlar?
Çoğu programlama dilinde, bir derleyici (veya yorumlayıcı), belirli bir hedef makinede yürütülebilen kod üretir . Örneğin, bir Windows makinesinde bir C++ programı derlerseniz, çalıştırılabilir dosya başka herhangi bir makineye kopyalanabilir ancak yalnızca diğer Windows makinelerinde çalışır, başka bir makinede çalışmaz (örneğin, bir Mac veya Linux makinesi). Bir platform, hedef makine (işletim sistemi ile birlikte) tarafından belirlenir. Daha önceki diller için, dil tasarımcılarının her platform için özel bir derleyici (veya yorumlayıcı) sürümü oluşturması gerekiyordu. Birden fazla platformda kullanıma sunmak istediğiniz bir program yazdıysanız, programcı olarak sizin çok fazla ek iş yapmanız gerekir. Her platform için kaynak kodunuzun birden çok sürümünü oluşturmanız gerekir.
Java , derleme-bağlantı-yürütme sırasını derleyicinin temel düzeyinde yeniden düzenlediğinden , üst düzey programcılar (sizin gibi) için platform sorununu ortadan kaldırmayı başardı . Ayrıntılar karmaşıktır, ancak esasen Java dilinin tasarımcıları, platforma bağımlı olan programlama sorunlarını izole etti ve bu sorunlara soyut olarak atıfta bulunmak için düşük düzeyli araçlar geliştirdi. Sonuç olarak, Java derleyicisi bir nesne dosyası oluşturmaz, bunun yerine esas olarak bir sanal makine için bir nesne dosyası olan bir bayt kodu dosyası oluşturur . Aslında, Java derleyicisine genellikle JVM derleyicisi (Java Virtual Machine için) denir.
Sonuç olarak, bir Java programı (herhangi bir platformda) yazabilir ve bir bayt kodu dosyası (bayt kodu dosyaları .class uzantısını kullanır) oluşturmak için JVM derleyicisini (javac adı verilir) kullanabilirsiniz. Bu bayt kodu dosyası, (Java'nın yüklü olduğu) herhangi bir platformda kullanılabilir. Ancak bayt kodu yürütülebilir bir dosya değildir. Bir bayt kodu dosyasını yürütmek için, aslında bir Java yorumlayıcısını (java olarak adlandırılır) çağırmanız gerekir. Her platformun, artık ertelenemeyen platforma özgü sorunları otomatik olarak ele alacak kendi Java yorumlayıcısı vardır. Bayt kodu tarafından platforma özgü işlemler gerektiğinde, Java yorumlayıcısı platforma özel uygun koda bağlanır.
Yorumlanan dillerde olduğu gibi, bayt kodunu yürütülebilir bir dosyada derleyerek Java programlarının daha hızlı çalışmasını sağlamak mümkündür; dezavantajı, bu tür yürütülebilir dosyaların yalnızca oluşturulduğu platformda çalışacak olmasıdır.
Java Neden Tamamen Platformdan Bağımsız Değil?
Açıkçası Java, JVM'si olmayan bir platformda çalışamaz. Yani kelimenin tam anlamıyla, Java platformdan bağımsız değildir. Ancak aynı zamanda, platform bağımsızlığı tanımınız yararlı değil. Hiçbir olası dil platformdan tamamen bağımsız olamaz, çünkü platformun bazı yönlerinin dili çözümleyebilmesi gerekir. Ve tüm olası platformlar göz önüne alındığında, bazıları mutlaka onu ayrıştıramaz.
Dolayısıyla, pek çok platformun bir JVM çalıştırdığı ve Java kodunun aynı anlama sahip herhangi bir JVM üzerinde çalıştırılabileceği gerçeği göz önüne alındığında, Java platforma bağımlıdır.
Çözüm
Java, en ünlü ve yaygın olarak kullanılan programlama dillerinden biridir. Platformdan bağımsız bir programlama dilidir . Java, tüm farklı platformlar için tüm kodun yeniden yazılmasını gerektirmez. Java bytecode ve Java Virtual Machine kullanarak platform bağımsızlığını destekler . Java derleyici javac, program kodunu bayt koduna dönüştürür. Bu bayt kodu, platformdan bağımsızdır ve herhangi bir JVM işletim sisteminde çalışabilir. JVM, bayt kodunu makine koduna çevirir ve program yürütülür.
Okuduğunuz için teşekkürler. İyi öğrenmeler
Yayınımızı takip ederek destek olun
Tam Zamanlı Bir İş ile Yarı Zamanlı Çalışmalar Nasıl Dengelenir? Beyaz Etiketli NFT Platformu Çözümleri ile Kendi NFT Pazar Yerinizi Başlatma Java İsteğe Bağlı ve Ya: Boş Değerleri Ele Alma ve İki Olası Değeri Temsil Etme Hayatınızdan En İyi Şekilde Yararlanma: Kişisel Bir Kılavuz Java Spring 3.0'da Callable vs Runnable vs Future ve Özellikleri En Çok Sıkça Sorulan Java8 Akışına Dayalı Mülakat Sorusu — Son Bölüm Robert Greene'in yazdığı «The 48 Laws of Power» kitabından ilk 8 yasa: Biberiye — Nasıl Ekilir ve Ne Gibi Faydaları Vardır
![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































