Aina za Data za Java Zimeelezwa: Aina za Msingi vs Aina za Marejeleo, Ubadilishaji, na Madarasa ya Jifaa

目次

1. Nini Aina za Data za Java? Misingi na Picha Kubwa

Java data types ni mbinu inayobainisha aina ya thamani ambayo kigezo kinaweza kuhifadhi.
Java inasisitiza usalama wa aina (muundo unaozuiia operesheni zisizo sahihi za aina wakati wa kutengeza), hivyo kila kigezo lazima kiwe na aina iliyoainishwa.

Kwa mfano, tazama msimbo ufuatao.

int number = 10;
double price = 19.8;
String name = "Java";
  • int → nambari kamili pekee
  • double → desimali pekee
  • String → maandishi pekee

Kwa kufanya aina kuwa wazi, unapata faida kama:

  • Huzuia ugawaji usio sahihi
  • Inaboresha matumizi ya kumbukumbu
  • Inagundua hitilafu wakati wa kutengeza

Ikiwa hakukuwa na aina, makosa kama kugawa maandishi kwa nambari kamili yangeweza kugundulika hadi wakati wa utekelezaji. Java imeundwa kuzuia hilo.

1.1 Aina ya Data Ni Nini? (Ufafanuzi wa Kawaida kwa Wanaoanza)

Fikiria aina ya data kama “aina ya thamani ambazo kigezo kinaruhusiwa kushughulikia.”

Sentensi ya msingi ni:

TypeName variableName = value;

Mfano:

int age = 25;

Katika kesi hii:

  • int ni aina
  • age ni jina la kigezo
  • 25 ni thamani

Hiyo ndiyo uhusiano.

Ukijaza hii, utapata kosa:

int age = "25";  // Compile-time error

Huwezi kugawa maandishi kwa aina ya integer. Hivi ndivyo usalama wa aina unavyofanya kazi.

Vizingiti vya Wanaoanza vya Kawaida

  • Kudhani unaweza kuachana na aina (katika Java, kwa kawaida huwezi)
  • Kuchanganya nambari na maandishi
  • Kuchanganya = (ugawaji) na == (ukilinganisha)

1.2 Makundi ya Aina za Data za Java (Aina Mbili)

Aina za data za Java zimegawanywa kwa upana katika makundi mawili:

  1. Aina za msingi
  2. Aina za rejea

Aina za msingi ni nini?

Aina ambazo huhifadhi thamani halisi moja kwa moja.
Mifano: int, double, boolean, n.k.

Sifa:

  • Inatumia kumbukumbu kwa ufanisi
  • Haraka
  • Haiwezi kushikilia null

Aina za rejea ni nini?

Aina ambazo huhifadhi si thamani yenyewe, bali “rejea” kwa mahali thamani inahifadhiwa.

Mfano:

String text = "Hello";

String ni aina ya darasa (aina ya rejea).

Sifa:

  • Inaundwa kulingana na madarasa
  • Inaweza kupewa null
  • Ina mbinu (tabia)

1.3 Tofauti kati ya Tabia ya “Thamani vs Rejea”

Hebu thibitisha tofauti kwa mfano rahisi.

int a = 10;
int b = a;
b = 20;

Katika kesi hii:

  • a inabaki 10
  • b pekee inakuwa 20

Kwa upande mwingine, aina za rejea hufanya hivi:

String s1 = "Java";
String s2 = s1;

Hapa, s1 na s2 huenda zikarejea kitu kilichofanana (hii inaweza kutofautiana kulingana na utekelezaji na uboreshaji).

Vidokezo vya kawaida vinavyogonga

  • Kuelewa vibaya String kama aina ya msingi
  • Kudhani kunakili aina ya rejea kunakili thamani yenyewe
  • Kutofahamu jinsi null inavyofanya kazi

1.4 Kwa Nini Kuelewa Aina za Data Ni Muhimu

Uelewa duni wa aina za data unaweza kusababisha matatizo kama:

  • Matokeo ya mahesabu yasiyotabiriwa
  • Kujaa (kuzidi safu ya thamani)
  • NullPointerException
  • Makosa ya ubadilishaji wa aina

Ili kutumia Java kwa usahihi, lazima kwanza uelewe picha kamili ya aina za data.

2. Aina za Msingi (Aina za Data za Msingi): Orodha na Jinsi ya Kuzitumia

Aina za msingi ni aina za data ambazo huhifadhi thamani halisi moja kwa moja.
Java ina 8 aina za msingi.

CategoryTypeSizeTypical Use
Integerbyte8bitSmall integers
Integershort16bitSmaller integers
Integerint32bitStandard integers
Integerlong64bitLarge integers
Decimalfloat32bitSingle-precision floating point
Decimaldouble64bitDouble-precision floating point (standard)
Characterchar16bitA single character
Booleanbooleantrue / false

*Ukubwa umewekwa na maelezo ya Java (si ya kutegemea mazingira).

2.1 Aina za Nambari (byte / short / int / long)

Matumizi ya Msingi

int number = 100;
long population = 8000000000L;

Safu (mifano ya kawaida)

  • byte: -128 hadi 127
  • short: -32,768 hadi 32,767
  • int: takriban ±2.1 bilioni
  • long: takriban ±9.22 quintillion

Katika hali nyingi, int inatosha.
Ni nadra sana kuwa na haja ya kiutendaji kutumia byte au short tu ili kuokoa kumbukumbu.

Kumbuka Muhimu Unapotumia long

long value = 10000000000L;  // L is required

Bila L, nambari halisi inachukuliwa kama int na inaweza kusababisha kosa la kutengeza kutokana na kuwa nje ya safu.

Makosa ya Kawaida

  • Kufurika kwa kuzidi wigo
  • Kusahau L kwa nambari za long
  • Kutotambua kufurika katika hesabu za int -hadhi- int

2.2 Aina za Nambari za Kuelea (float / double)

double price = 19.99;
float rate = 0.5f;

Sheria za Msingi

  • Kwa kawaida, tumia double
  • float inahitaji f mwishoni
    float value = 3.14f;
    

Tofauti za Uthabiti

  • float: takriban tarakimu 7 za uthabiti
  • double: takriban tarakimu 15 za uthabiti

Ujumbe Muhimu (masuala ya kurudia/kuthabiti)

System.out.println(0.1 + 0.2);

Matokeo yanaweza kuwa si 0.3 haswa.
Hii ni kutokana na uwakilishi wa nambari za kuelea za binary.

Hesabu za Pesa

Kwa kushughulikia pesa, double haipendekezwi kwa ujumla.
Kutumia BigDecimal ni salama zaidi.

Makosa ya Kawaida

  • Kutumia double kwa pesa
  • Kuchanganya float na double
  • Kulinganisha desimali na ==

2.3 Aina ya Herufi (char)

char letter = 'A';
  • Inatumia alama moja ya nukuu
  • Inadhibitiwa na Unicode (kiwango cha kuingiza herufi)
  • Inaweza kuhifadhi herufi moja tu
    char kanji = '日';
    

Makosa ya Kawaida

  • Kutumia alama mbili za nukuu (yaani String )
  • Kujaribu kuhifadhi herufi nyingi

2.4 Aina ya Boolean (boolean)

boolean isActive = true;
  • Thamani ni true au false tu
  • Huwezi kutumia 0/1 (tofi za C)
    boolean result = (5 > 3);
    

Makosa ya Kawaida

  • Kujaribu kutoa nambari
  • Kusahau kuandika usemi wa kulinganisha

2.5 Maelezo ya Kawaida kwa Aina za Msingi

  • Huwezi kutoa null
  • Thamani za msingi huwekwa kiotomatiki kwa nyanja, lakini anuwai za ndani lazima ziwe na mwanzo
    int x;
    System.out.println(x);  // Compile-time error (uninitialized)
    

Aina za msingi ni haraka na nyepesi, lakini zina vikwazo kama kutotumia null na kutokuwa na mbinu.

3. Aina za Marejeo: Msingi

Aina za marejeo huhifadhi sio thamani yenyewe, bali marejeo (anwani ya kumbukumbu) kwa kitu.
Tofauti kubwa zaidi kutoka kwa aina za msingi ni kwamba “data yenyewe” na “anuwai” zipo tofauti.

Tazama mfano huu:

String text = "Java";

Hapa, text huhifadhi marejeo kwa kitu cha mnyororo, sio thamani ya mnyororo yenyewe.

3.1 Aina ya String (Aina ya Marejeo Inayotumiwa Zaidi)

String ni aina ya darasa. Sio aina ya msingi.

String name = "Taro";

Sifa

  • Haiwezi kubadilika (haiwezi kubadilishwa)
  • Inaweza kupewa null
  • Ina mbinu
    String str = "Hello";
    System.out.println(str.length());  // 5
    

Hatari ya Kutobadilika

String s = "Java";
s.concat(" SE");
System.out.println(s);  // "Java"

concat() inarudisha mnyororo mpya, lakini mnyororo wa asili haubadilishwi.

Matumizi sahihi:

s = s.concat(" SE");

Makosa ya Kawaida

  • Kudhani String ni aina ya msingi
  • Kutumia == kwa kulinganisha mnyororo
  • Uunganishaji mzito unaosababisha masuala ya utendaji (tumia StringBuilder)

3.2 Mistari na Aina za Darasa

Mistari

int[] numbers = {1, 2, 3};

Mistari pia ni aina za marejeo.

int[] a = {1, 2};
int[] b = a;
b[0] = 99;

System.out.println(a[0]);  // 99

Kwa kuwa a na b yanarejelea mstari sawa, mabadiliko yanawahusu wote wawili.

Aina za darasa

class Person {
    String name;
}

Person p = new Person();
p.name = "Ken";

new ni neno la msingi linalotumiwa kuunda kitu.

3.3 Null Ni Nini?

null inawakilisha hali ambapo “hakuna kitu kinachorejelewa.”

String text = null;

Kuita mbinu wakati marejeo ni null husababisha hitilafu.

text.length();  // NullPointerException

Hii inaitwa NullPointerException (NPE).

Jinsi ya Kushughulikia null

if (text != null) {
    System.out.println(text.length());
}

3.4 Tofauti Kati ya == na equals()

== (kulinganisha marejeo)

Inalinganisha kama anwani za kumbukumbu ni sawa.

equals() (kulinganisha maudhui)

Inalinganisha ikiwa maudhui ni sawa.

String a = new String("Java");
String b = new String("Java");

System.out.println(a == b);        // false
System.out.println(a.equals(b));   // true

Makosa ya kawaida

  • Kutumia == kwa kulinganisha mistari
  • Kuita equals() bila kuangalia null
  • Kuchanganya kunakili marejeleo na kunakili maadili

3.5 Muhtasari wa Haraka: Tofauti kutoka Aina za Msingi

ItemPrimitive TypesReference Types
StoresThe value itselfA reference
nullNot allowedAllowed
MethodsNoYes
newNot neededUsually needed

Aina za marejeo ni rahisi kubadilisha, lakini lazima uwe mwangalifu kuhusu kushughulikia null na marejeleo yanayoshirikiwa.

4. Madarasa ya Kufunga na Autoboxing

Madarasa ya kufunga ni madarasa yanayokuruhusu kutibu maadili ya msingi kama vitu.
Katika Java, makusanyo (kama List na Map) yanaweza kuhifadhi aina za marejeo pekee, hivyo huwezi kuhifadhi msingi moja kwa moja. Madarasa ya kufunga yapo kwa madhumuni hayo.

4.1 Madarasa ya Kufunga ya Kawaida

Primitive TypeWrapper Class
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

Mfano:

Integer number = 10;
Double price = 19.99;

Kwa kuwa madarasa ya kufunga ni aina za marejeo, yanaweza kushikilia null.

Integer value = null;  // OK

4.2 Je, Ni Nini Autoboxing?

Boxing inamaanisha kubadilisha aina ya msingi kuwa darasa la kufunga.

Tangu Java 5, ubadilishaji huu unaweza kutokea kiotomatiki.

Integer num = 10;  // autoboxing

Ndani, hii ni sawa na:

Integer num = Integer.valueOf(10);

4.3 Je, Ni Nini Unboxing?

Unboxing hubadilisha darasa la kufunga kurudi kuwa aina ya msingi.

Integer num = 20;
int value = num;  // auto-unboxing

Ndani:

int value = num.intValue();

4.4 Wakati Unahitaji Madarasa ya Kufunga

1. Wakati wa kutumia makusanyo

import java.util.ArrayList;

ArrayList<Integer> list = new ArrayList<>();
list.add(10);  // autoboxing

Huwezi kutumia ArrayList<int>.

2. Wakati unahitaji kushughulikia null

Integer score = null;

Aina za msingi haziwezi kuwa null.

4.5 Vidokezo na Makosa ya Kawaida

1. Isipokuwa wakati wa unboxing null

Integer num = null;
int value = num;  // NullPointerException

Kosa linatokea wakati wa auto-unboxing.

2. Kulinganisha na ==

Integer a = 1000;
Integer b = 1000;

System.out.println(a == b);  // may be false

Kwa kuwa hizi ni vitu, == inalinganisha marejeleo.
Tumia equals() kwa kulinganisha maudhui.

a.equals(b);

3. Athari ya utendaji

Madarasa ya kufunga yanaweza kuhusisha kuunda kitu,
hivyo hesabu nzito zinaweza kuwa polepole kuliko kutumia aina za msingi.

4.6 Kuchagua Kati ya Aina za Msingi na Madarasa ya Kufunga

  • Hesabu za nambari → aina za msingi
  • Kuhifadhi katika makusanyo → madarasa ya kufunga
  • Kushughulikia null → madarasa ya kufunga

Ikiwa utakumbuka miongozo hii, hutokuwa na kusita katika kazi ya ulimwengu halisi.

5. Ubadilishaji wa Aina (Casting): Msingi

Katika Java, wakati unapofanya kazi na maadili katika aina tofauti za data, unatumia ubadilishaji wa aina (casting).
Kuna aina mbili kuu:

  • Ubadilishaji usio wazi (ubadilishaji wa kupanuka)
  • Ubadilishaji wazi (ubadilishaji wa kupunguza)

5.1 Ubadilishaji Usio Wazi (Kupanuka)

Ubadilishaji kutoka aina yenye kipindi kidogo hadi aina yenye kipindi kikubwa hutokea kiotomatiki.

int num = 100;
long bigNum = num;  // automatic conversion

Hii ni salama kwa sababu inapanua kipindi cha nambari.

Mpangilio wa ubadilishaji (mfano unaohusiana na nambari)

byte → short → int → long → float → double

Mfano

int a = 10;
double b = a;  // OK

Vidokezo

  • Uthabiti huhifadhiwa katika hali nyingi, lakini pembezoni inaweza kutokea na float au double .
  • char inaweza kubadilishwa kama thamani ya nambari.
    char c = 'A';
    int code = c;  // 65
    

5.2 Ubadilishaji Wazi (Kupunguza)

Wakati wa kubadilisha kutoka aina kubwa hadi aina ndogo, lazima utumie casting wazi.

double price = 19.99;
int rounded = (int) price;

Matokeo ni:

rounded = 19

Sehemu ya kawi imepunguzwa.

Sintaksia

(TargetType) variable

5.3 Mfano wa Upotevu wa Data

int big = 1000;
byte small = (byte) big;
System.out.println(small);

Matokeo si “yasiyotarajiwa,” bali yamefungwa ili yaingie katika safu lengwa.
Hapa, 1000 inazidi safu ya byte, hivyo thamani hubadilika.

Madhara ya kawaida yasiyofahamu

  • Kufikiri itasababisha kosa → katika hali halisi, thamani hubadilika
  • Kudhani kwamba ni salama kila wakati → upotevu wa data unaweza kutokea

5.4 Kukwama: Ugawanyaji wa Nambari Kamili

int a = 5;
int b = 2;
double result = a / b;
System.out.println(result);

Matokeo ni:

2.0

Ugawanyaji wa nambari kamili hufanywa kama operesheni ya nambari kamili.

Njia sahihi:

double result = (double) a / b;

Matokeo:

2.5

5.5 Maelezo juu ya Kulinganisha Nambari Desimali

double x = 0.1 + 0.2;
System.out.println(x == 0.3);  // may be false

Hii ni kutokana na masuala ya usahihi wa nukta za kuelea.

Ulinganisho salama zaidi

Math.abs(x - 0.3) < 0.000001

5.6 Kuweka Aina za Marejeleo

Unaweza pia kuweka aina za marejeleo (wakati kuna uhusiano wa urithi).

Object obj = "Java";
String str = (String) obj;

Kuweka aina isiyo sahihi husababisha hitilafu.

Integer num = (Integer) obj;  // ClassCastException

Muhtasari wa Makosa ya Kawaida

  • Mabadiliko ya nje ya safu hubadilisha thamani
  • Kutogundua ugawanyaji wa nambari kamili
  • Kulinganisha desimali kwa ==
  • Kulazimisha kuweka marejeleo yasiyo sahihi

Kuweka mara nyingi hakichochei makosa ya wakati wa kukusanya, hivyo upuuzi unaweza kusababisha hitilafu kirahisi.

6. Mwongozo wa Kuwechagua Aina za Kitaalamu (Ili Usisite Kazini)

Sasa unapofahamu jinsi aina za data za Java zinavyofanya kazi, swali la kawaida katika dunia halisi ni: “Ninapaswa kutumia aina gani?” Sehemu hii inaandaa vigezo vya maamuzi ya vitendo.

6.1 Kwa Nini int na double Mara Mara Zinatosha

Tumia int kwa nambari kamili (kwa chaguo-msingi)

int count = 100;

Sababu:

  • Safu ya biti 32 inatosha kwa hali nyingi
  • Rahisi kwa JVM kuiboresha
  • Inasomeka na ni ya kawaida

Kwa kawaida huhitaji kulazimisha matumizi ya byte au short.
Kuchagua aina ndogo ili kuokoa kumbukumbu kwa kawaida ni kwa kesi maalum (kama safu kubwa).

Tumia double kwa desimali (kwa chaguo-msingi)

double rate = 0.75;

Ina usahihi wa juu zaidi kuliko float na ni chaguo la kawaida.
Isipokuwa una sababu wazi, chagua double.

6.2 Kwa Nini Unapaswa Kutumia BigDecimal kwa Pesa

Msimbo huu ni hatari kwa pesa:

double price = 0.1 + 0.2;

Kwa sababu ya makosa ya nukta za kuelea, huenda usipate thamani sahihi.

Njia sahihi:

import java.math.BigDecimal;

BigDecimal a = new BigDecimal("0.1");
BigDecimal b = new BigDecimal("0.2");
BigDecimal result = a.add(b);

Kwa Nini Pitisha Mstari (String)?

new BigDecimal(0.1);  // not recommended

Kujenga kutoka double kunaweza kupeleka makosa ya usahihi wake.

Makosa ya kawaida

  • Kushughulikia pesa kwa double
  • Kutumia new BigDecimal(doubleValue)
  • Kusahau sheria za kukokotoa

6.3 Mikusanyiko Inahitaji Madawa ya Kufunika

import java.util.ArrayList;

ArrayList<Integer> list = new ArrayList<>();
list.add(10);

Huwezi kutumia aina za msingi moja kwa moja.

ArrayList<int> list;  // Compile-time error

Sababu:

  • Generics (mikusanyiko salama kwa aina) inaunga mkono aina za marejeleo pekee

6.4 Amua Kulingana na Haja ya null

Hakuna null inahitajika → aina za msingi

int age = 0;

null inahitajika → madawa ya kufunika

Integer age = null;

Katika muunganiko wa hifadhidata au ingizo la fomu, unaweza kuhitaji usimamizi wa null.

6.5 Miongozo ya Utendaji ya Msingi

  • Mahesabu → aina za msingi
  • Mikusanyiko → madawa ya kufunika
  • Epuka kuunda madawa ndani ya mizunguko ngumu

Mfano (haipendekezwi):

for (Integer i = 0; i < 1000000; i++) { }

Kutumia aina za msingi ni bora zaidi.

6.6 Jedwali la Muhtasari: Aina Zinapendekezwa kwa Kesi ya Matumizi

Use CaseRecommended Type
Typical integersint
Typical decimalsdouble
MoneyBigDecimal
Boolean checksboolean
StringsString
Storing in collectionsWrapper classes

Makosa ya Kawaida katika Maisha Halisi

  • Kuchagua aina ndogo sana bila sababu
  • Kutumia double kwa pesa
  • Kusonga bila kuzingatia null
  • Vighairi vya auto-unboxing kutoka kwa madarasa ya wrapper

Uchaguzi wa aina ni sehemu ya msingi ya usanifu. Ikiwa unaendelea kwa ukosefu wa uwazi, gharama ya kutatua matatizo baadaye inaongezeka kwa kiasi kikubwa.

7. Muhtasari wa Aina za Data za Java (Kwa Jedwali)

Hebu tufupishe kila kitu katika muundo unaojibu nia ya utafutaji wa kawaida haraka.
Aina za data za Java zimegawanywa katika “aina za msingi” na “aina za rejea.”

7.1 Orodha ya Aina za Msingi

TypeSizeDefault (fields)Typical Use
byte8bit0Small integers
short16bit0Smaller integers
int32bit0Standard integers
long64bit0LLarge integers
float32bit0.0fSingle-precision floating point
double64bit0.0dStandard floating point
char16bit‘\u0000’A single character
booleanfalseBoolean value

*Vigezo vya ndani havijainishatiwa kiotomatiki.

Vidokezo Muhimu

  • Kwa mahesabu ya nambari, tumia chaguo-msingi int / double
  • Kwa pesa, tumia BigDecimal
  • null hairuhusiwi
  • Hakuna mbinu

7.2 Muhtasari wa Aina za Rejea

Aina za rejea za kawaida:

  • String
  • Arrays (kwa mfano, int[] )
  • Aina za darasa (madarasa maalum)
  • Madarasa ya wrapper (kwa mfano, Integer )
  • Mkusanyiko (List, Map, n.k.)

Muhtasari wa Sifa

ItemReference Types
Can assign nullYes
MethodsAvailable
new keywordUsually needed
Comparisonequals() recommended

7.3 Ulinganisho wa Mwisho: Msingi vs Rejea

PerspectivePrimitive TypesReference Types
StoresDirectlyBy reference
Memory efficiencyHighSomewhat lower
nullNoYes
SpeedFastSomewhat slower
Main useCalculationsObject handling

7.4 Seti Ndogo ya Kiwango Ambayo Wanafunzi Wanapaswa Kujifunza Kwanza

Anza na aina hizi nne:

  • int
  • double
  • String
  • boolean

Kwa hizi, unaweza kujenga programu za msingi.

7.5 Makosa ya Jumla Yanayojulikana

  1. Kulinganisha String na ==
  2. Kutumia double kwa pesa
  3. Kutogundua mgawanyo wa integer
  4. Kusahau ukaguzi wa null
  5. Kusahau L kwa maneno ya long
  6. Kutoa null katika madarasa ya wrapper

Kuepuka haya pekee kutapunguza kwa kiasi kikubwa makosa ya wanaoanza.

7.6 Hitimisho la Mwisho

  • Java ni lugha salama kwa aina
  • Kuelewa aina za data ndizo msingi wa msimbo wote
  • Aina za msingi ni kwa mahesabu ya haraka
  • Aina za rejea ni kwa kusimamia vitu
  • Kuchagua aina sahihi kunaathiri ubora moja kwa moja

Maswali Yanayoulizwa Mara kwa Mara

Q1. Kuna aina ngapi za data za Java?

Jibu:
Kuna aina 8 za msingi. Aina za rejea zinaweza kuwa zisizo na kipimo (madarasa, safu, interfaces, n.k.). Ni muhimu kwanza kuelewa aina 8 za msingi.

Q2. Je, String ni aina ya msingi?

Jibu:
Hapana. String ni aina ya darasa (aina ya rejea). Inachukuliwa kama kipengele na inaweza kupangiwa null.

Q3. Ni tofauti gani kati ya int na Integer?

Jibu:
int ni aina ya msingi. Integer ni darasa la wrapper (aina ya rejea). Integer inaweza kushikilia null, lakini auto-unboxing inaweza kutupa hitilafu.

Q4. Je, naweza kutumia double kwa mahesabu ya pesa?

Jibu:
Kimsingi ndiyo, lakini haipendekezwi. Masuala ya usahihi wa nukta za kusogea yanaweza kutokea, hivyo kutumia BigDecimal ni salama zaidi.

Q5. Kwa nini mgawanyo wa integer hautozi sehemu ya desimali?

Jibu:
Kwa sababu operesheni za integer hufanywa kwa kutumia aina za integer, sehemu ya desimali inakatwa. Ikiwa unahitaji matokeo ya desimali, geuza moja ya operandi kuwa double.

Q6. Null ni nini?

Jibu:
Inawakilisha hali ambapo hakuna kipengele kinachorejelewa. Kuita njia kwenye null husababisha NullPointerException.

Q7. Ni tofauti gani kati ya == na equals()?

Jibu:
== inalinganisha rejea (anwani za kumbukumbu). equals() inalinganisha maudhui. Kwa kulinganisha string, tumia equals().

Q8. Aina zipi wanapaswa kujifunza kwanza?

Jibu:
Pendelea int, double, String, na boolean. Hizi ndizo aina za msingi zinazotumika zaidi katika kazi halisi.