OCA Java imtahan mövzuları

Autoboxing

autoboxing-unboxing-in-java
Written by Mushfiq Mammadov

autoboxing:    primitive  ⇒  wrapper     →    Integer w = 100;

unboxing:       primitive  ⇐  wrapper     →    int p = new Integer(100);

 

Double d1 = 50;               // doesn't compile
Double d2 = new Double(50);
double d3 = 50;
Double d4 = 50.;

List<Double> weights = new ArrayList<>();
weights.add(50.5);                 // [50.5]
weights.add(new Double(60));       // [50.5, 60.0]            
weights.remove(50.5);              // [60.0]   
double first = weights.get(0);     // 60.0  - this is unbox.

List<Integer> heights = new ArrayList<>();
heights.add(null);
int h = heights.get(0);   // NullPointerException

Integer‘ə autoboxing’lə bağlı suallara diqqətlə baxmaq lazımdır. Aşağıdakı nümunə çaşdırıcıdır.

List<Integer> numbers = new ArrayList<>();
numbers.add(1);
numbers.add(2);
numbers.remove(1);
System.out.println(numbers);   // [1]

remove() metodu burada 1 dəyərini deyil, 1-ci indeksdə olan dəyəri silir, yəni 2-ni. Əgər 1 dəyərinin silinməsini istəyiriksə, o zaman parametr olaraq int deyil, obyekt tipli dəyişən göndərməliyik, yəni:

  • numbers.remove(new Integer(1));

Aşağıdakı nümunə compile xətası vermir, amma runtime vaxtı exception fırladır:

  • int j = new Integer(null);   // throws NumberFormatException

 

[topics lang=az]

About the author

Mushfiq Mammadov

Leave a Comment


The reCAPTCHA verification period has expired. Please reload the page.

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.