Anahtar fark: Java, C dilinden etkilenen bir programlama dilidir. Sözdiziminin çoğunu C ve C ++ 'dan alıyor, ancak her ikisinden de daha düşük seviyeli olanaklara sahip. Java, önceki dillere göre daha az uygulama bağımlılığı olacak şekilde tasarlanmış genel amaçlı bir programlama dilidir. C keskin olarak da bilinen C #, nesne yönelimli bir programlama dilidir. C # bir çok paradigma programlama dilidir. C #, C programlama diline dayanmaktadır. Aslen, Anders Hejlsberg tarafından Microsoft'un .NET çerçevesinde kullanılmak üzere geliştirilmiştir.
Java, Sun Microsystems'da James Gosling tarafından geliştirildi ve 1995 yılında piyasaya sürüldü. Aslen Sun Microsystems'in Java platformunun temel bir bileşeni olarak piyasaya sürüldü. Sun, o zamandan beri Java teknolojilerinin çoğunu GNU Genel Kamu Lisansı altında yeniden lisansladı. Bu, GNU Genel Kamu Lisansı altında lisanslı olan tüm teknolojinin açık kaynak ve genel olarak ücretsiz olduğu anlamına gelir. Sun Microsystems sonunda Oracle Corporation ile birleşti.
Java, aynı kodun çeşitli platformlarda çalışmasına izin verecek şekilde tasarlanmıştır. yani, geliştiricilerin “bir kere yazabilir, herhangi bir yerde koşabilirler” (WORA). Bu nedenle, Java uygulamaları genellikle bytecode ile derlenir. Java bayt kodu içeren bir sınıf dosyası daha sonra herhangi bir Java Sanal Makinesi'nde (JVM) çalıştırılabilir. Bu bilgisayar mimarisinden bağımsız olarak olur.
2012 itibariyle, Java kullanım için en popüler programlama dillerinden biri haline gelmiştir. Bu, özellikle istemci-sunucu web uygulamaları için geçerlidir. Diğer birçok sistem, Java için GNU Compiler ve GNU Classpath gibi Sun teknolojilerinin alternatif uygulamalarını geliştirmiştir.
C keskin olarak da bilinen C #, nesne yönelimli bir programlama dilidir. C # bir çok paradigma programlama dilidir. Güçlü yazma, zorunlu, bildirimsel, işlevsel, yordamsal, genel, nesne yönelimli (sınıf tabanlı) ve bileşen odaklı programlama disiplinlerini içerir.
C #, C programlama diline dayanmaktadır. Aslen, Anders Hejlsberg tarafından Microsoft'un .NET çerçevesinde kullanılmak üzere geliştirilmiştir. C # dili daha sonra Ecma (ECMA-334) ve ISO (ISO / IEC 23270: 2006) tarafından standart olarak onaylandı. C #, Ortak Dil Altyapısı için tasarlanmış programlama dillerinden biridir. C # basit, modern, genel amaçlı, nesne yönelimli bir programlama dili olması amaçlanmıştır.
- C # dili, basit, modern, genel amaçlı, nesne yönelimli bir programlama dili olması amaçlanmıştır.
- Dil ve uygulamaları, güçlü tip kontrolü, dizi sınırları kontrolü, başlatılmamış değişkenleri kullanma girişimlerinin tespiti ve otomatik çöp toplama gibi yazılım mühendisliği ilkelerini desteklemelidir. Yazılım sağlamlığı, dayanıklılığı ve programcı verimliliği önemlidir.
- Dil, dağıtılmış ortamlarda dağıtıma uygun yazılım bileşenleri geliştirmede kullanılmak üzere tasarlanmıştır.
- Kaynak kodu taşınabilirliği, programlayıcı taşınabilirliği gibi, özellikle C ve C ++ ile zaten tanışmış olan programcılar için çok önemlidir.
- Uluslararasılaştırma için destek çok önemlidir.
- C #, karmaşık işletim sistemleri kullanan çok büyükten, özel işlevlere sahip çok küçük olana kadar, hem barındırılan hem de gömülü sistemler için uygulamalar yazmak için uygundur.
- Her ne kadar C # uygulamaları bellek ve işlem gücü gereksinimleri açısından ekonomik olsa da, dilin doğrudan performans veya boyutta C veya assembly diliyle rekabet etmesi amaçlanmamıştır.
C diline dayandığından, buna oldukça benzer. Hatta C ile sözdizimsel bazı sözleşmeleri bile paylaşmaktadır. Ancak, C # 'nın dezavantajı, Microsoft tarafından .NET çerçevesinde kullanılmak üzere geliştirildiği için, yalnızca Microsoft işletim sistemlerinde çalışmasıdır.
Java ve C # arasındaki bazı farklılıklar:
- C #, Java ile karşılaştırıldığında daha fazla veri türü sağlar.
- C #, Java'dan daha ilkel veri türleri içeriyor.
- Java kullanmadığında C # operatör aşırı yüklenmesini destekler.
- Java kullanmıyorken C # dikme türünü destekler.
- C # 'daki tüm veri tipleri dikmedir.
- C #, Java'dan daha iyi sürüm sağlar.
- C #, ref anahtar sözcüğünü kullanarak parametrelerin referans yoluyla geçirilmesine izin verirken, Java, parametrelerin değere göre geçirilmesine izin verir.
- C #, param anahtar sözcüğünü kullanarak değişken sayıda parametreye izin verir.
- C #, başlatma için statik yapıcılar sağlar.
- C # break ifadesi yerine goto ifadesi sağlar.
- Dizilerin bildirimi C # 'da Java ile karşılaştırıldığında farklıdır.
- Java için kongre her dosyaya bir genel sınıf koymaktır ve bazı derleyiciler bunu gerektirir. C # herhangi bir kaynak dosyası düzenlemesine izin verir.
- Java olayları ve delegeleri desteklemiyor.
- Java'da, yöntemler varsayılan olarak sanaldır ancak nihai yapılabilir. C # da varsayılan olarak mühürlenirler, ancak sanal hale getirilebilirler.
- C # özel durumları kontrol etmedi.
- Java, kullanıcı tanımlı değer türlerinin oluşturulmasına izin vermez.
- Java'da operatör ve dönüşüm aşırı yüklemesi yok.
- Java, yineleyicilerin basit bir şekilde uygulanması için yineleyici bloklarına sahip değildir.
- Java, LINQ gibi bir şeye sahip değildir.
- Kısmen delegelere sahip olmamaktan dolayı, Java, isimsiz yöntemlere ve lambda ifadelerine benzeyen hiçbir şeye sahip değildir.
- Java'da ifade ağaçları yoktur.
- C #, anonim iç sınıflara sahip değildir.
- Java, C # 3.0 anonim türlerine eşdeğer değildir.
- Java dolaylı olarak yazılmış yerel değişkenler içermez.
- Java'nın uzantısı yöntemleri yoktur.
- Java'da nesne ve koleksiyon başlatıcı ifadeleri bulunmuyor.
- Java, dilin bir parçası olarak özelliklere sahip değildir; onlar get / set / is yöntemlerinin bir kuralı.
- Java, "güvensiz" kodun eşdeğerine sahip değildir.
- Java'nın kodları çok daha fazla nesne yönelimlidir.
- Java'da önişlemci yönergesi yoktur (#define, #if vb. C #).
- Java, referanslara göre parametreleri geçirmek için C # 'nın ref ve out değerlerine sahip değildir.
- Java, kısmi türlere eşdeğer değildir.
- C # arayüzleri alanları bildiremez.
- Java'nın işaretsiz tamsayı türü yok.
- Java'nın ondalık türü için dil desteği yoktur.
- Java'da null değer türlerinin karşılığı yoktur