logo

Java'da null hakkında ilginç gerçekler

Hemen hemen tüm programlama dilleri null ile bağlanmıştır. Null'dan rahatsız olmayan bir programcı neredeyse yok. Java'da null, Java.lang ile ilişkilendirilir. NullPointerException . Java.lang paketindeki bir sınıf olduğundan, bazı işlemleri null ile veya null olmadan yapmaya çalıştığımızda ve bazen bunun nerede olduğunu bile bilmediğimizde çağrılır. Aşağıda Java'da null hakkında her Java programcısının bilmesi gereken bazı önemli noktalar verilmiştir: 

Linux işletim sistemi
  • Java'da null, bir değerin veya referansın yokluğunu temsil eden özel bir değerdir. Bir değişkenin veya nesnenin halihazırda kendisine atanmış bir değere sahip olmadığını belirtmek için kullanılır.
  • Boş değer, boş bir dize veya boş bir diziyle aynı değildir. Boş bir dize, karakter içermeyen bir dizedir, boş bir dizi ise hiçbir öğe içermeyen bir dizidir.
  • Java programlama dili, tüm referans türlerinin bir alt türü olan 'null' adı verilen yerleşik bir boş türe sahiptir. Ancak bir değişkenin türü olarak kullanılamaz çünkü herhangi bir örneği yoktur ve örneklenemez.
  • NullPointerException (NPE) riskini önlemek için, bunlar üzerinde herhangi bir işlem yapmadan önce boş değerlerin kontrol edilmesi en iyi uygulama olarak kabul edilir. NPE, Java'daki en yaygın istisnalardan biri olarak kabul edilir ve programda beklenmeyen davranışlara veya çökmelere neden olabilir.
  • Java'da null, bir yöntemin herhangi bir değer döndürmediğini belirtmek için de kullanılır. Bu 'geçersiz' dönüş türü olarak bilinir. Geçersiz yöntem herhangi bir değer döndürmez ve genellikle konsola yazdırma veya veritabanını güncelleme gibi bir eylemi gerçekleştirmek için kullanılır.
  • Ek olarak null, bir yöntemdeki isteğe bağlı parametreler için varsayılan değer olarak kullanılabilir. Bu, bir yöntemin o parametre için bir değer belirtilmeden çağrılmasına olanak tanır ve bunun yerine boş değer kullanılır.
  • Derleme zamanı hatasına neden olacağından, int veya double gibi ilkel bir veri türünün değerini tutması amaçlanan bir değişken veya nesne için değer olarak null kullanılması önerilmez.
  • Java'da null kullanımı bir kafa karışıklığı ve ince hatalar kaynağı olabilir, bu nedenle davranışlarının farkında olmak ve hataları önlemek için kodunuzda bunu nasıl doğru bir şekilde ele alacağınız önemlidir.

1. null Büyük/Küçük harfe duyarlıdır: null, Java'da değişmezdir ve anahtar kelimeler harfe duyarlı Java'da C dilinde olduğu gibi NULL veya 0 yazamıyoruz. 



Java
public class Test {  public static void main (String[] args) throws java.lang.Exception  {  // compile-time error : can't find symbol 'NULL'  Object obj = NULL;     //runs successfully  Object obj1 = null;   } } 

Çıkış:

5: error: cannot find symbol  
can't find symbol 'NULL'
^
variable NULL
class Test
1 error

2. Referans Değişken değeri: Java'daki herhangi bir referans değişkeninin varsayılan bir değeri vardır hükümsüz

Java
public class Test {  private static Object obj;   public static void main(String args[])  {  // it will print null;  System.out.println("Value of object obj is : " + obj);  }  } 

Çıkış:



Value of object obj is : null 

3. Boş değerin türü: Yaygın yanılgıdan farklı olarak null, Object değildir veya bir tür değildir. Bu yalnızca herhangi bir referans türüne atanabilen özel bir değerdir ve herhangi bir türe cast null yazabilirsiniz. Örnekler:

 // null can be assigned to String  
String str = null;

// you can assign null to Integer also
Integer itr = null;

// null can also be assigned to Double
Double dbl = null;

// null can be type cast to String
String myStr = (String) null;

// it can also be type casted to Integer
Integer myItr = (Integer) null;

// yes it's possible no error
Double myDbl = (Double) null;

4. Otomatik kutulama ve kutudan çıkarma: Otomatik kutulama ve kutudan çıkarma işlemleri sırasında, ilkel kutulu veri türüne boş bir değer atanırsa derleyici yalnızca Nullpointer istisna hatası atar. 

Java
public class Test {  public static void main(String[] args)  throws java.lang.Exception  {  // An integer can be null so this is fine  Integer i = null;  // Unboxing null to integer throws  // NullpointerException  int a = i;  } } 

Çıkış:



 Exception in thread 'main' java.lang.NullPointerException  
at Test.main(Test.java:6)

5. operatör örneği: Java exampleof operatörü, nesnenin belirtilen türün (sınıf, alt sınıf veya arayüz) bir örneği olup olmadığını test etmek için kullanılır. Çalışma zamanında, İfadenin değeri boş değilse, exampleof operatörünün sonucu doğrudur. Bu, Instanceof işleminin önemli bir özelliğidir ve onu tip döküm kontrolleri için faydalı kılar. 

Java
public class Test {  public static void main(String[] args)  throws java.lang.Exception  {  Integer i = null;  Integer j = 10;  // prints false  System.out.println(i instanceof Integer);  // Compiles successfully  System.out.println(j instanceof Integer);  } } 

Çıkış:

false   
true

6. Statik ve Statik Olmayan Yöntemler: NullPointerException oluşturacak boş değere sahip bir referans değişkeni üzerinde statik olmayan bir yöntem çağıramayız ancak boş değerlere sahip referans değişkenleri ile statik yöntemi çağırabiliriz. Statik yöntemler, statik bağlama kullanılarak bağlandığından, Boş işaretçi İstisnasını atmazlar. 

Java
public class Test {  public static void main(String args[])  {  Test obj = null;  obj.staticMethod();  obj.nonStaticMethod();  }  private static void staticMethod()  {  // Can be called by null reference  System.out.println(  " static method  can be called by null reference & quot;);  }  private void nonStaticMethod()  {  // Can not be called by null reference  System.out.print("  Non - static method - ");  System.out.println(  "  cannot be called by null reference & quot;);  } } 

Çıkış:

static method can be called by null referenceException in thread 'main'   
java.lang.NullPointerException
at Test.main(Test.java:5)

7. == ve != Karşılaştırma ve eşit olmayan operatörlerine Java'da null ile izin verilir. Bu, Java'daki nesnelerle null'un kontrol edilmesinde faydalı olabilir. 

Java
public class Test {  public static void main(String args[])  {  // return true;  System.out.println(null == null);  // return false;  System.out.println(null != null);  } } 

Çıkış:

true  
false

8 . 'null' yöntemde argüman olarak iletilebilir:

Boş değeri Java'da bir argüman olarak iletebiliriz ve aynısını yazdırabiliriz. Bağımsız değişkenin veri türü Referans Türü olmalıdır. Ancak yöntemin dönüş türü, programın mantığına bağlı olarak void int double gibi herhangi bir tür veya başka herhangi bir referans türü olabilir.

Burada 'print_null' yöntemi basitçe ana yöntemden iletilen argümanı yazdıracaktır.

Java
import java.io.*; class GFG {  public static void print_null(String str)  {  System.out.println('Hey I am : ' + str);  }  public static void main(String[] args)  {  GFG.print_null(null);  } } 

Çıkış :

Merhaba ben: null

9. null üzerinde '+' operatörü:

Boş değeri Java'daki String değişkenleriyle birleştirebiliriz. Java'da bir birleştirme olarak kabul edilir.

Burada null yalnızca String değişkeniyle birleştirilecektir. '+' operatörünü null ve String dışında herhangi bir tipte (Integer Double vb.) kullanırsak hata mesajı verecektir. 

Tamsayı a=null+7 şu şekilde bir hata mesajı verecektir: ' '+' ' ikili operatörü için hatalı işlenen türleri

Java
import java.io.*; class GFG {  public static void main(String[] args)  {  String str1 = null;  String str2 = '_value';  String output = str1 + str2;  System.out.println('Concatenated value : '  + output);  } } 

Çıkış
Concatenated value : null_value