CodeGym /Kurslar /JAVA 25 SELF /Java-da ədədlər və simvollar

Java-da ədədlər və simvollar

JAVA 25 SELF
Səviyyə, Dərs
Mövcuddur

1. Hansı növ ədədlər var?

Proqramlaşdırmada biz daima ədədlərlə işləyirik — istifadəçinin yaşından tutmuş qalaktikadakı ulduzların sayına və ya bank hesabındakı qəpiklərə qədər. Amma müxtəlif tapşırıqlar müxtəlif növ ədədlər tələb edir: bəzən yalnız tam ədədləri saxlamaq vacibdir, bəzən — çox dəqiq kəsrlər, bəzən də “mənfisiz” ədədlər lazımdır.

Tam ədədlər (int və digərləri)

Tam ədəd — kəsr hissəsi olmayan ədəd deməkdir.
Java-da ən çox int tipindən istifadə olunur, lakin bundan başqa ölçü və diapazona görə fərqlənən bir neçə variant daha var.

  • int — tam ədədlər üçün əsas “işçi” tip. Çox böyük (və çox kiçik) dəyərləri saxlaya bilir və yaddaş da o qədər də çox tutmur. Məsələn, bəyənmələrin sayını, yaşı, ildəki günlərin sayını hesablamaq üçün əksər hallarda int istifadə olunacaq.
  • long — dəyərlər çox böyük ola bilərsə (məsələn, milyardlar və ya trilyonlar) istifadə olunur. Nümunə: YouTube-un bütün tarix boyu baxışlarının ümumi sayını saxlamaq.
  • short — qənaətcil, lakin nadir istifadə olunan tip. Eyni kiçik dəyərlərin çox olduğu yerlərə uyğundur (məsələn, audio məlumatları, rəng komponentləri).
  • byte — daha da kiçik dəyərlər üçün, xüsusilə qrafikada və fayllarla işdə yaddaşa qənaət vacib olanda.

Kəsr ədədlər (double, float)

Bəzən kəsr hissəsi olan ədədlərlə işləmək lazım olur. Məsələn, hava temperaturu, tələbənin orta balı, qəpikli malın qiyməti.

  • double — kəsr ədədləri saxlamaq üçün “standart” tipdir. Əksər hesablamalar üçün kifayət qədər dəqiqdir (nümunə: 3.1415926535…).
  • float — daha yüngül və daha az dəqiqliyə malik tip; yaddaşa qənaətin vacib olduğu kompüter qrafikası və ya böyük massivlərin emalı kimi tapşırıqlarda daha çox rast gəlinir.

Xüsusi ədədi tiplər

  • BigInteger — standart diapazonları aşan nəhəng ədədlərlə işləmək lazım olduqda, məsələn, kriptoqrafiyada və ya astronomik hesablamalarda.
  • BigDecimal — kəsr ədədlərlə dəqiq hesablamalar (maliyyə, faiz hesabı) üçün sinif; double və float üçün səciyyəvi olan qeyri-dəqiqliklərin qarşısını almağa kömək edir.

2. Dəyərlərin diapazonları

Tam tiplər həm müsbət, həm də mənfi ədədləri saxlaya bilər. Bu, dəyərlər “sıfırdan həm yuxarı, həm də aşağı” ola bildikdə rahatdır: məsələn, temperatur, hesabın balansı, dəniz səviyyəsinə nəzərən hündürlük.

Nümunə:

  • int : -10, 0, 50
  • long : 0, 10, -1000_000_000_000_000_000L

Tam tiplər

Tip Ölçü Dəyərlər diapazonu İstifadə nümunəsi
byte
1 bayt -128-dən 127-yə qədər -128, 0, 127
short
2 bayt -32 768-dən 32 767-yə qədər -1000, 0, 32000
int
4 bayt -2 147 483 648-dən 2 147 483 647-yə qədər -1000000, 0, 2000000
long
8 bayt -9 223 372 036 854 775 808-dən
9 223 372 036 854 775 807-yə qədər
-10_000_000_000, 1

Kəsr tiplər

Tip Ölçü Dəyərlərə nümunə Təsvir
float
4 bayt 3.14f, -0.001f tək dəqiqlik (7 rəqəm)
double
8 bayt 3.1415, -1.7E+308 ikiqat dəqiqlik (15–16 rəqəm)

3. Ədədlər üçün suffikslər

Bəzi hallarda hansı tipdən istifadə etmək istədiyini açıq şəkildə göstərmək lazımdır. Bu, suffikslər vasitəsilə edilir:

  • L və ya l — long tipi üçün (məsələn, 10000000000L)
  • F və ya f — float tipi üçün (məsələn, 3.14f)
  • D və ya d — double tipi üçün (adətən lazım deyil, çünki suffikssiz kəsr ədədlər — double olur)

Suffiks göstərilməsə, susmaya görə tam ədəd int, kəsr ədəd isə double sayılır. Məsələn, 42 — bu, int, 3.14 — bu, double-dır.

Bu nə üçündür? Məsələn, long tipli dəyişənə böyük ədəd mənimsədərkən xəta almamaq üçün:

long bigNumber = 9000000000L; // L silinsə, kompilyasiya xətası olacaq

Alt xətt şəklində ayırıcı _

Rəqəmlər uzun olanda, sıfırlarda çaşmaq asandır. Oxunaqlığı artırmaq üçün Java-da ədədin içində alt xətlərdən istifadə etmək olar.

int population = 146_700_000;
long stars = 100_000_000_000L;
Rəqəmləri oxunaqlı etmək üçün alt xətlərdən istifadə

Bu tamamilə qanunidir: kompilyator alt xətləri görməzdən gəlir, sizin üçün isə dərhal dərəcələri “gözlə” görmək rahatdır. Əsas odur — alt xətti əvvəldə, sonda, nöqtədən sonra və ya suffiksdən əvvəl qoymayın.

4. Simvol tipi char: nədir və nə üçün?

char tipi bir simvolu saxlamaq üçün istifadə olunur: hərf, rəqəm, durğu işarəsi, boşluq, xüsusi simvol və hətta smayl.

Nümunələr:

char letter = 'A';
char digit = '7';
char symbol = '?';
char cyrillic = '\u0416';
char euro = '€';
char smile = '☺'; // Bəli, belə də olar!

Vacib qaydalar:

  • char tipinin dəyəri tək dırnaq içində yazılır: 'A', '7', '#'.
  • Bu məhz bir simvoldur! 'AB' yazsanız — kompilyator etiraz edəcək.
  • Hər simvolun arxasında öz say kodu (Unicode) dayanır.

Unicode: dünyanın hər yerindən simvollar

Java Unicode standartından istifadə edir ki, bu da yalnız latın hərflərini deyil, həm də kiril əlifbasını, heroqlifləri, emojiləri və hətta qədim misir heroqliflərini (lazım olsa) saxlamağa imkan verir.

Maraqlı fakt:
char tipi, əslində, 16-bitlik ədəddir (0-dan 65535-ə qədər) və hər bir dəyərə müvafiq simvol uyğun gəlir.

5. Simvollar və ədədlər: Unicode vasitəsilə əlaqə

Hər simvol daxilən bir ədəd olduğuna görə, char-ı int-ə və əksinə rahatlıqla çevirmək olar.

Nümunə: simvolun Unicode kodunu öyrənmək

public class CharToInt {
    public static void main(String[] args) {
        char ch = 'A';
        int code = ch; // char → int qeyri-aşkar çevrilməsi

        System.out.println("Simvolun kodu '" + ch + "': " + code);
    }
}

Nəticə:

Simvolun kodu 'A': 65

İndi isə əksinə — koddan simvol almaq:

public class IntToChar {
    public static void main(String[] args) {
        int code = 1040; // 1040 — Unicode kodu (U+0410), kiril əlifbasındakı 'A' hərfi
        char ch = (char) code; // int → char açıq çevrilmə

        System.out.println("Kodu " + code + " olan simvol: " + ch);
    }
}

Nəticə:

Kodu 1040 olan simvol: \u0410

6. Java-nın əsas primitiv tipləri

Tip Ölçü (bit) Dəyərlər diapazonu Dəyərə nümunə Qeyd
byte
8 -128 ... 127 42 Çox nadir hallarda istifadə olunur
short
16 -32,768 ... 32,767 12345 Yaddaşa qənaət üçün
int
32 -2,147,483,648 ... 2,147,483,647 1000000 Tam ədədlər üçün əsas tip
long
64 ≈ −9.22 × 1018 ... ≈ 9.22 × 1018 5000000000L Çox böyük tam ədədlər üçün
float
32 ~±3.4 × 10-38 ... ±3.4 × 1038 3.14f Kəsr ədədlər, aşağı dəqiqlik
double
64 ~±1.7 × 10-308 ... ±1.7 × 10308 2.718 Kəsr ədədlər, yüksək dəqiqlik
char
16 0 ... 65 535 (Unicode) '\u0416', 'A', '?' Bir simvol
boolean
1 true, false true Məntiqi dəyər
1
Tapşırıq
JAVA 25 SELF, səviyyə, dərs
Bağlanıb
RPG qəhrəmanı üçün inventar yaradılması 🎮
RPG qəhrəmanı üçün inventar yaradılması 🎮
1
Tapşırıq
JAVA 25 SELF, səviyyə, dərs
Bağlanıb
Əjdahanın mağarasındakı xəzinənin hesablanması 🐉
Əjdahanın mağarasındakı xəzinənin hesablanması 🐉
1
Tapşırıq
JAVA 25 SELF, səviyyə, dərs
Bağlanıb
Qədim runların deşifrə edilməsi 🔮
Qədim runların deşifrə edilməsi 🔮
1
Tapşırıq
JAVA 25 SELF, səviyyə, dərs
Bağlanıb
Simvolların və rəqəmlərin iki tərəfli sehrləri ✨
Simvolların və rəqəmlərin iki tərəfli sehrləri ✨
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION