C öğrenen Java geliştiricileri için yol haritası#

C# ve Java'nın birçok benzerliği vardır. C# dilini öğrendikten sonra Java'da programlamadan edindiğiniz bilgilerin çoğunu uygulayabilirsiniz:

  1. Benzer söz dizimi: Hem Java hem de C# C dil ailesindedir. Bu benzerlik, C# okuyabileceğiniz ve anlayabileceğiniz anlamına gelir. Bazı farklılıklar vardır, ancak söz diziminin çoğu Java ve C ile aynıdır. Küme ayraçları ve noktalı virgüller tanıdıktır. gibi ifelseswitch denetim deyimleri aynıdır. , whileve do...while döngü deyimleri foraynıdır. ve interface için aynı anahtar sözcükler class her iki dilde de bulunur. 'den public private erişim değiştiricileri aynıdır. Yerleşik türlerin çoğu bile aynı anahtar sözcükleri kullanır: int, stringve double.
  2. Nesne odaklı paradigma: Hem Java hem de C# nesne odaklı dillerdir. Polimorfizm, soyutlama ve kapsülleme kavramları her iki dilde de geçerlidir. Her ikisi de yeni yapılar ekledi, ancak temel özellikler hala uygun.
  3. Kesin olarak yazılan: Hem Java hem de C# türü kesin olarak belirlenmiş dillerdir. Değişkenlerin veri türünü açık veya örtük olarak bildirirsiniz. Derleyici tür güvenliğini zorlar. Derleyici, kodu çalıştırmadan önce kodunuzda türle ilgili hataları yakalar.
  4. Platformlar arası: Hem Java hem de C# platformlar arasıdır. Geliştirme araçlarınızı en sevdiğiniz platformda çalıştırabilirsiniz. Uygulamanız birden çok platformda çalıştırılabilir. Geliştirme platformunuzun hedef platformunuzla eşleşmesi gerekmez.
  5. Özel durum işleme: Hem Java hem de C# hataları göstermek için özel durumlar oluşturur. Her ikisi de özel durumları işlemek için blokları kullanırtryfinally - catch - . Özel durum sınıfları benzer adlara ve devralma hiyerarşilerine sahiptir. Bir fark, C# öğesinin denetlenen özel durumlar kavramına sahip olmamasıdır. Herhangi bir yöntem (teoride) herhangi bir özel durum oluşturabilir.
  6. Standart kitaplıklar: .NET çalışma zamanı ve Java Standart Kitaplığı (JSL) ortak görevler için destek içerir. Her ikisi de diğer açık kaynak paketleri için kapsamlı ekosistemlere sahiptir. C# dilinde paket yöneticisi NuGet'tir. Maven'a benzer.
  7. Çöp Toplama: Her iki dil de çöp toplama aracılığıyla otomatik bellek yönetimi sağlar. Çalışma zamanı, başvurulmayacak nesnelerden belleği geri alır. Bir fark, C# değerinin tür olarak struct değer türleri oluşturmanıza olanak tanır.

Benzerlikler nedeniyle C# dilinde neredeyse hemen üretken olacaksınız. İlerledikçe C# dilinde Java'da bulunmayan özellikleri ve deyimleri öğrenmeniz gerekir:

  1. Desen eşleştirme: Desen eşleştirme, karmaşık veri yapılarının şekline göre kısa koşullu deyimleri ve ifadeleri etkinleştirir. deyimi, bir değişkenin is bir desen olup olmadığını denetler. Desen tabanlı switch ifade , bir değişkeni incelemek ve özelliklerine göre kararlar almak için zengin bir söz dizimi sağlar.
  2. Dize ilişkilendirmesi ve ham dize değişmez değerleri: Dize ilişkilendirmesi, konumsal tanımlayıcıları kullanmak yerine bir dizeye değerlendirilen ifadeler eklemenize olanak tanır. Ham dize değişmez değerleri, metindeki kaçış dizilerini en aza indirmek için bir yol sağlar.
  3. Null atanabilir ve boş değer atanamayan türler: C#, son eki bir türe ekleyerek ? null atanabilir değer türlerini ve null atanabilir başvuru türlerini destekler. Null atanabilir türler için, ifadenin başvurularını kaldırmadan önce denetlemezseniz null derleyici sizi uyarır. Null değer atanamayan türler için, bu değişkene bir null değer atayabilecekseniz derleyici sizi uyarır. Null değer atanamayan başvuru türleri, oluşturan System.NullReferenceExceptionprogramlama hatalarını en aza indirir.
  4. Uzantı yöntemleri: C# dilinde, bir sınıfı veya arabirimi genişleten yöntemler oluşturabilirsiniz. Uzantı yöntemleri, bir kitaplıktan veya belirli bir arabirimi uygulayan tüm türlerden bir türün davranışını genişletir.
  5. LINQ: Dil tümleşik sorgusu (LINQ), depolama alanına bakılmaksızın verileri sorgulamak ve dönüştürmek için ortak bir söz dizimi sağlar.
  6. Yerel işlevler: C# dilinde, işlevleri yöntemlerin veya diğer yerel işlevlerin içine yerleştirebilirsiniz. Yerel işlevler henüz başka bir kapsülleme katmanı sağlar.

C# dilinde Java'da olmayan başka özellikler de vardır. Ve ve gibi async awaitözellikleri ve using birlikte olmayan kaynakları otomatik olarak boşaltmaya yönelik deyimler görürsünüz.

C# ile Java arasında küçük ama önemli farklılıklara sahip benzer özellikler de vardır:

  1. Özellikler ve Dizin Oluşturucular: Hem özellikler hem de dizin oluşturucular (bir sınıfı dizi veya sözlük gibi ele alır) dil desteğine sahiptir. Java'da, ve setile get başlayan yöntemler için adlandırma kurallarıdır.
  2. Kayıtlar: C# dilinde kayıtlar (başvuru) veya struct (değer) türleri olabilir class . C# kayıtları sabit olabilir, ancak sabit olması gerekmez.
  3. Demetlerin C# ve Java'da farklı söz dizimi vardır.
  4. Öznitelikler Java ek açıklamalarına benzer.

Son olarak, C# dilinde bulunmayan Java dil özellikleri vardır:

  1. denetlenen özel durumlar: C# dilinde herhangi bir yöntem teorik olarak herhangi bir özel durum oluşturabiliyor.
  2. denetlenen dizi kovaryansı: C# dilinde diziler güvenli bir şekilde birlikte değişken değildir. Ortak değişken yapılara ihtiyacınız varsa genel koleksiyon sınıflarını ve arabirimlerini kullanmanız gerekir.

Genel olarak Java'da deneyimli bir geliştirici için C# öğrenmek sorunsuz olmalıdır. Hızlı bir şekilde üretken olmak için yeterince tanıdık deyimler bulacaksınız ve yeni deyimleri hızlı bir şekilde öğreneceksiniz.