Kotlin Language Features Related to Null Handling

Any software engineer with a Java background would find the null handling features in the Kotlin language interesting. Let's summarize this topic with some examples. Nullable types: In Kotlin, types are non-nullable by default. If you want a variable to be able to hold a null value, you need to explicitly declare its type as nullable using the Type? syntax. For example, String? denotes a nullable string, while String represents a non-nullable string. Safe calls (?.): Kotlin introduces the safe call operator (?.) for handling nullable types. It allows you to safely invoke a method or access a property on a nullable object. If the object is null, the expression returns null instead of throwing a NullPointerException. Example: data class Person(val name: String, val age: Int, val address: String?) fun main() {     // Create a person with a nullable address     val person1 = Person("John Doe", 25, "123 Main Street")     val person2 = Person("Jane Doe", 30,...

Java Programlama Dili Ders Notları - 1

Giriş


Java Programlama Dili, Sun Microsystems tarafından 1995 yılında Java Platformunun temel öğesi olarak piyasaya sunulmuştur. 2007 yılında Sun, Java platformunu GNU GPL lisansi uyarınca özgür yazılım haline getirdi. Sun firması dışında Java platformuna yönelik implementasyon gerçekleştiren gruplar mevcuttur. Örneğin, Özgür Yazılım Vakfı çatısı altında geliştirilmiş bir GNU Java derleyicisi ve çalıştırma ortamı bulunmaktadır.
Java dili tasarlanırken, C++ dilindeki bazı konuların çıkarılması ve diğer dillerdeki bazı kavramların dile dahil edilmesi sözkonusu olmuştur.

Bir Java Programının Derlenmesi ve Çalıştırılması


Bilindigi gibi bir bilgisayarın çalıştırabildiği kod, kendi merkezi işlem birimi (CPU) donanımı için tasarlanmış olan makine dilidir (assembly). Makine diline göre insan algisina daha yakin, okunmasi kolay ve üzerinde çalışılan problemde yer alan kavramların daha kolay ifade edilebileceği dillerin birçok alanda tercih edildiğini biliyoruz. Yani bircok yazilim sistemini geliştirirken yüksek seviyeli programlama dilleri adini verdiğimiz dilleri kullanıyoruz.
Bir programı hangi dilde yazmış olursak olalım, çalıştırabilmek için bu programı makine diline çevirmemiz gerekiyor. Kaynak koddan, çalıştırılabilir kod elde etme konusunda 3 ayrı teknik olduğunu görüyoruz:

1. Kaynak koddan, doğrudan doğruya makine kodu elde etmek. Örnek: C Programlama Dili
2. Kaynak koddan arakod elde etmek (veya sanal makine kodu) ve ara kodu bir yorumlayıcı tarafından çalıştırmak.
3. Kaynak kodu doğrudan bir yorumlayıcı tarafından çalıştırmak. Örnek: Ruby

Bazi yuksek seviyeli dillerde yazilmis programlar, bir derleyici yazilimi tarafindan belli bir makineye ozgu koda (ornegin Intel 80x86 ailesi) cevrilmektedir. Ornegin C programlama dilinde durum boyledir.

Java Sanal Makinesi, byte-code adi verilen ara kodu calisma zamaninda yorumlamaktadir.
Bilindigi gibi. Java teknolojisinin tanitiminda uzerinde en cok durulan konu, Java programlarinin her turlu makinede calistirilabilmesi olmustur. Iste bunun yapilabilmesi icin, makine diline benzeyen bir dil ortaya atilmis (byte-code) ve bu dildeki programlarin farkli makinelerde calisabilmesi icin yorumlayicilar yazilmistir. Kisacasi, C/C++ dillerinde oldugu gibi, dogrudan makineye ozgu calistirilabilir kod degil, bir ara-kod uretilmekte ve daha sonra bu ara-kod makineye ozgu yorumlayici (Java Virtual Machine Implementation) tarafindan calisma zamaninda yorumlanmaktadir.

Comments

Popular posts from this blog

Trie Data Structure and Finding Patterns in a Collection of Words

Virtual Memory

NOTES ON COMPUTER ARCHITECTURE: Some important concepts in computer architecture