Java'da yerel değişkenler. Taslaklar Eğitiminde Java'da H İlkel Türler

  • 28.06.2019

Bugün Java'daki türlere hızlıca bir göz atalım. Java'daki tüm türler iki gruba ayrılır - ilkel ve referans türleri.

Burada ilkel türlerle ilgileneceğiz.

Belki de en ilkel tür, boolean veri türüdür. o boole En basit veri türüdür. Bu türden bir değişken yalnızca iki değer saklayabilir: true veya false. Bu tür değişkenlerle aşağıdaki işlemler gerçekleştirilebilir: "!" - olumsuzlama (değil), "&&" - mantıksal VE (ve), "||" - mantıksal VEYA (veya), "^" - özel VEYA (xor). Bu işlemler için doğruluk tabloları mümkündür.

Diğer tamsayı veri türleri. Java'da bunlar aşağıdaki türleri içerir: bayt, kısa boylu, int ve uzun... Bu türlerin her biri farklı bir değer aralığını kabul eder, yalnızca tüm değerlerin her zaman tam sayı olması gerçeğiyle birleştirilirler. Yani bayt türü için aralık 128 ile 127 arasındadır, kısa tür için 32768 ile 32767 arasındadır, int türü için 2147483648 ile 2147483647 arasındadır ve uzun tür için aralık 9,2 · 10 18 ile 9,2 arasındadır. 10 18. Onlarla basitçe çıkarırız, ekleriz, böleriz, çarparız ...

Ve elbette kayan noktalı veri türleri, kesirli türler var. o batmadan yüzmek ve çift hassas tip çift... float yaklaşık olarak 3.4 · 10 38 ila 3.4 · 10 38 aralığında değerler alır ve 1.8 · 10 308 ila 1.8 · 10 308 aralığında iki katına çıkar. Ayrıca bu tiplere özel değerler var +? - artı sonsuzluk, -? - eksi sonsuz ve NaN - sayı değil (örneğin, 0'a bölerken).

Bu nedenle, herhangi bir türde bir değişken bildirmek istiyorsak, önce türünü ve ardından adını belirtmeliyiz:

Int i; yüzer f;

Başlangıç ​​değerini de hemen belirtebilirsiniz:

Int ben = 0; kayan nokta f = 3.5;

Java, örtük tür dönüştürme kullanır. Ne olduğunu? Örneğin, biri int türünde, diğeri ise float türünde iki değişken eklemek istiyorsunuz. Daha sonra int tipindeki değişkeniniz float tipine dönüştürülecek ve ancak bundan sonra ekleme gerçekleşecektir. Buna göre, sonuç float tipinde olacaktır. Bu durumda, daha küçük tür her zaman daha büyük bir türe ve bir tamsayı kesirli türe dönüştürülür. Örneğin, bu işe yarayacak:

Int a = 3; kayan nokta b = 4,5, c; c = a + b;

ama bu değil:

Int a = 3, c; kayan nokta b = 4,5; c = a + b;

Burada sonucun yazıldığı değişken int tipindedir ve sonucun kendisi de float tipinde olacaktır. Elbette, bir türü diğerine manuel olarak dönüştürebilirsiniz. Şu şekilde yapılır:

Int a = 3, c; kayan nokta b = 4,5; c = (int) (a + b);

burada (int) gösterimini kullanarak a ve b'nin toplamını int türüne dönüştürürüz. Ancak, tamsayı değişkeni c'nin 7.5 değerini saklayamayacağı açıktır. Kesirli türleri tam sayılara dönüştürürken, kesirli kısım basitçe atılır... Bu bazı hatalara neden olabilir, bu yüzden bunu unutmayın.

Java'daki ilkel türler, özel işlem gerektiren, dilin sık kullanılan önemli bir parçasıdır. Bu yayında, ilkel türler, çalışmalarının mekanizması ve işlenmesi ile ilgili tüm soruları cevaplamaya çalışacağız. Makale, hem Java öğrenmenin zorlu yoluna yeni başlayan yeni başlayanlar (ben onlardan biriyim) hem de dile yeterince aşina olan, bilgilerini tazeleyebilen ve umarım ilginç bir şeyler bulan insanlar için hazırlanmıştır. kendileri için.

ilkel türler

İlkel türler, tek (basit) değerleri temsil ettikleri için Java dilinin nesne yönelimini biraz ihlal eder. Bu özellik, maksimum verim sağlama arzusundan kaynaklanmaktadır. new kullanarak basit bir değişkenin nesnesini oluşturmak yeterince verimli değildir, çünkü new nesneyi öbek üzerine taşır. Bunun yerine, nesne referansı olmayan bir "otomatik" değişken oluşturulur. Değişken tek bir değer depolar ve yığında bulunur. Yığın, RAM'de bulunan bir veri depolama alanıdır. İşlemci, yığına bir işaretçi aracılığıyla bu alana doğrudan erişime sahiptir, bu nedenle yığın, veri depolamanın çok hızlı ve verimli bir yoludur. Hız açısından, yığın yalnızca kayıtlardan sonra ikinci sıradadır (kayıtlar işlemcinin içinde bulunduğundan mantıklıdır).
İlkel türlerin tüm boyutları kesinlikle sabittir ve makine mimarisinden bağımsızdır. Java programlarının taşınabilirliğinin artmasının nedenlerinden biri de budur.
Java, dört gruba ayrılabilecek sekiz ilkel tür tanımlar:

Bütün sayılar

Tamsayılar için dört temel tür tanımlanmıştır: bayt, kısa boylu, int, uzun... Bu türlerin tümü, pozitif veya negatif işaretli tamsayı değerlerini temsil eder. Java'da pozitif işaretsiz tamsayı değerleri yoktur ( imzasız). Daha önce belirtildiği gibi, ilkel türlerin tüm boyutları sabittir:
En küçük tam sayı türü bayt... Bu tür değişkenler, G / Ç akışlarıyla çalışmak ve ikili verileri değiştirirken çok uygundur. Sonra tip geliyor kısa boylu, diğer tüm türlerden daha az kullanılır. En sık kullanılan türdür int... Dizileri indekslemek için sürekli olarak döngülerde kullanılır. Türleri kullanarak görünebilir bayt ve kısa boylu geniş bir değer aralığının gerekli olmadığı yerlerde kullanmaktan daha verimli olacaktır. int... Ancak durum böyle değil, çünkü ifadeleri değerlendirirken bayt veya kısa türündeki değerler dönüştürülür. int(bu soruya daha sonra döneceğiz). Uzunluklar beğenildiğinde int değeri saklamak için yeterli değil, kullanmanız gerekiyor uzun... Değer aralığı yeterince büyüktür, bu da uzun büyük tamsayılarla çalışırken kullanışlıdır.

Kayan nokta sayıları

Kayan nokta sayıları (veya gerçek sayılar) türlerle temsil edilir batmadan yüzmek ve çift... Belirli bir ondalık basamağa kadar olan değerleri depolamak için kullanılır.
Bir çeşit batmadan yüzmek tek duyarlıklı kayan noktalı sayısal bir değer tanımlar. Bu tür, kesirli kısmı olan ancak fazla kesinliği olmayan sayısal bir değere ihtiyacınız olduğunda kullanılır. Bir çeşit çiftçift ​​duyarlıklı kayan nokta değerlerini depolamak için kullanılır. Çift duyarlıklı değerlerin işlenmesi, tek duyarlıklı değerlerin işlenmesinden daha hızlıdır. Bu nedenle, sınıfın matematiksel fonksiyonlarının çoğu java.lang.Math gibi değerleri döndür çift... En etkili kullanım çift tekrarlayan hesaplamaların kesinliğini korumanız veya büyük sayıları manipüle etmeniz gerektiğinde.

semboller

Belirtimde, char ilkel türü tamsayı türlerine (veya integral türleri), ancak biraz farklı bir rol oynadığı için, onun için kendi kategorisini tanımlayabilirsiniz. Rolü sembolleri temsil etmektir. tek kod... Karakterleri saklamak için 16 bit gerekir. Garip, çünkü ana dillerin karakterlerini temsil etmek için 8 bit yeterli (örneğin, İngilizce, Fransızca, İspanyolca). Ama uluslararasılaşmanın bedeli bu. tek kod dünyanın bilinen tüm dillerinde uluslararası karakterlerin tamamını kullanır.

mantıksal değerler

Boole ilkel türü, boole değerlerini depolamak içindir. Bu tür iki olası değerden birini alabilir: doğru (doğru) veya yanlış (yanlış). Tüm boole işlemlerinden (karşılaştırma işlemleri gibi) Boole değerleri döndürülür. Döngüler, ifadeler (örneğin, for, if) oluştururken zorunludur.

değişmezler

İlkel veri türlerinin değerleri çoğu durumda değişmez değerler kullanılarak başlatılır. Onları düşünelim.

Tamsayı değişmezleri

En sık kullanılan değişmezler. Herhangi bir tamsayı değeri, sayısal bir değişmez değerdir (örneğin, -10 , 10 - ondalık değerler). Sekizli, onaltılı ve ikili değişmezler kullanılabilir:

// ondalık değişmez, sayılar, 0 ile başlamaz int ondalık = 10; // 10 // sekizlik sabit değer 0'dan başlar, ardından sayılar int sekizlik = 010; // 8 // onaltılık sabit değer 0x veya 0X ile başlar, ardından sayılar ve semboller int onaltılık = 0x10; // 16 // ikili sabit değer OB veya 0B ile başlar, ardından sayılar int ikili = 0b10; // 2
Tüm tamsayı değişmezleri değerleri temsil eder int... Değişmez değer aralıktaysa bayt, kısa boylu veya karakter, o zaman tip dökümü olmadan bu tip bir değişkene atanabilir. Bir benzerini oluşturmak için uzun, " harfiyle değişmezi ekleyerek derleyiciye açıkça söylemelisiniz. ben" veya " L":

Bayt b1 = 127; bayt b2 = 128; // hata kısa s1 = -32768; kısa s2 = -32769; // hata karakter c1 = 0; karakter c2 = -1; // hata uzun l1 = 10l; uzun l2 = 0x7ffffffffffffffffL; // türün maksimum değeri long

Kayan nokta değişmezleri

Kayan noktalı karakterler için iki tür gösterim vardır: standart ve üstel:

// standart form çift d1 = 0 .; // 0 veya 0.0'a eşdeğer; çift ​​d2 = 0.125; // üstel form - "e" veya "E" sembolü kullanılır // ondan sonra verilen sayının iki katı ile çarpılması gereken 10 sayısının gücü d3 = 125E + 10; // derece pozitifse, "+" atlanabilir double d4 = 1.25e-10;
Tüm kayan nokta değişmezlerine varsayılan olarak bir tür atanır. çift... Yani bir değişmez gibi oluşturmak için batmadan yüzmek, harfi harfinden sonra belirtmeniz gerekir " F" veya " F". Ayrıca değişmezlere bir harf de ekleyebilirsiniz" NS" veya " NS", double türünde bir değişmez olduğunu belirtir, ancak neden?

Çift d1 = 0.125; kayan nokta f2 = 0.125f;
Onaltılık kayan nokta değişmezleri kullanılabilir, örneğin:

// P - verilen sayının iki katına çıkarılması gereken 2 sayısının kuvveti anlamına gelen ikili düzen d = 0x10.P10d; // tabi ki "d" olmadan da yapabilirsiniz float f = 0x20.P10f;
Dilin 7. versiyonunda uzun değişmezleri okuma kolaylığı için, "_" sembolünü bir hazır bilgi içinde kullanma yeteneği eklendi:

// herhangi bir sayıda "_" karakteri kullanarak herhangi bir kombinasyon yapabilirsiniz int phone = 111__111__111; int bin = 0b1000_1000_1000; çift ​​dolar = 23_000.450__500; // Bir değişmezin sonunda veya başında "_" karakterinin kullanılmasına izin verilmez, ayrıca "0x" ve "0b"nin kesilmesine izin verilmez

Karakter değişmezleri

Karakter değişmezleri tek tırnak içine alınır. Görüntülenen tüm karakterler bu şekilde belirtilebilir. Bir karakter doğrudan girilemiyorsa, " ile başlayan kaçış dizilerini kullanın. \ ". Tüm bu diziler uygun dizilerle değiştirilebilse de tek kod kod. Sekizli ("\ xxx") ve onaltılı ("\ uxxxx") formları kullanarak da bir karakter değişmezi oluşturabilirsiniz.

Karakter h = "a"; // standart form char a = "\ 001"; // sekizli biçim char c = "\ u0001"; // onaltılık biçim
Dize değişmezleri de vardır. Onlar hakkında bilgi alınabilir.

Boole değişmezleri

Mantıksal operatörlerle her şey basittir. Yalnızca iki boole değişmezi vardır:

Boole evet = doğru; // true boolean no = false; // Uzanmak
Boolean değişmezleri yalnızca türdeki değişkenlere atanabilir boole... Şunu anlamak da önemlidir YANLIŞ eşit değil 0 , a NS eşit değil 1 ... Bir değişkeni türe dönüştürmek boole diğer ilkel türlerde çalışmayacaktır.

Operasyonlar

Tamsayı türleri üzerinde

  • karşılaştırma operatörleri ( > , < , >= , <= ) ve eşitlik ( == , != )
  • tekli operatörler ( + , - )
  • çarpımsal ( * , / , % ) ve katkı maddesi ( + , - ) operatörler
  • artış ( ++ ) ve eksiltme ( -- ) önek ve sonek formlarında
  • ikonik ( >> , << ) ve imzasız ( >>> ) vardiya operatörleri
  • bitsel operatörler ( ~ , & , ^ , | )
  • koşullu operatör ( ? : )
  • döküm operatörü

Üstünde Kayan nokta türleri

Tüm aynı işlemler, bitsel ve kaydırma operatörleri dışında, tam sayılarda olduğu gibi kayan noktalı sayılar üzerinde gerçekleştirilebilir.

Aşırı boole türü

  • eşitlik operatörleri ( == ve != )
  • mantıksal operatörler ( ! ,& , | , ^ )
  • koşullu mantıksal operatörler ( && , || )
  • koşullu operatör ( ? : )

dönüşüm

Üç tür dönüşüm vardır:
  • genişleyen dönüşüm ( genişleme)
  • daralan dönüşüm ( daralma)
  • genişletme + daraltma (dönüştürme bayt NS karakter, Başta bayt dönüştürmek int, ve daha sonra int-v karakter)

Genişletme dönüşümü

Her iki tür de uyumluysa ve hedef türün uzunluğu orijinal türün uzunluğundan büyükse, bir genişletme dönüştürmesi yapılır (örneğin bayt dönüştürüldü int). Aşağıdaki tablo, mümkün olan tüm genişletme dönüşümlerini göstermektedir. Kurs, veri kaybına yol açabilecek dönüşümleri ve türleri işaretler.

Daraltma dönüşümü

Dönüşümleri daraltmak, sayısal bir değerin toplam değeri hakkında bilgi kaybına neden olabilir ve ayrıca kesinlik ve aralığı kaybedebilirsiniz. Tüm olası daraltma dönüşümleri tabloda gösterilmiştir:
kısa boylu bayt, karakter
karakter bayt, kısa
int bayt, kısa, karakter
uzun int, bayt, kısa, karakter
batmadan yüzmek uzun, int, bayt, kısa, karakter
çift kayan nokta, uzun, int, bayt, kısa, char

Uyumsuz iki türün dönüşümünü gerçekleştirmek için, dökümü kullanmalısınız ( döküm). Orijinal tamsayı türünün değerleri, hedef türün geçerli değer aralığından büyükse, hedef türün aralığına göre modulo bölme sonucuna indirgenecektir. Kayan nokta değeri bir tamsayı değerine dönüştürülürse, kesme meydana gelir (kesirli kısım atılır).

Bayt a = (bayt) 128; // - 128 bayt b = (bayt) 42; // hayalet mümkündür, ancak bu durumda gerekli değildir int i1 = (int) 1e20f; // 2147483647 int i2 = (int) Float.NaN; // 0 kayan nokta f1 = (değişen) -1e100; // -Sonsuz kayan nokta f2 = (kayan kayan) 1e-50; // 0.0

Terfi

Bir ara değerin gerekli kesinliği, ifadedeki işlenenlerden herhangi birinin geçerli değer aralığının dışında olduğunda, otomatik tür yükseltme kullanılır.

Int a = 100; kayan nokta b = 50.0f; çift ​​c = 50.0; çift ​​sonuç = a - b + c; // 100.0 // aslında: sonuç = (çift) ((kayan) a - b) + c;
Aşağıdaki şema, promosyon kurallarını iyi bir şekilde göstermektedir:

Sarıcı Sınıfları

İlkel türleri nesneler olarak temsil etmek için sarmalayıcı sınıflar ( sarmalayıcı sınıfları). Wrapper sınıflarının faydaları nelerdir?
  • sarmalayıcı sınıflarının nesnelerini yöntemlere parametre olarak veya genel parametreler olarak kullanma yeteneği
  • karşılık gelen veri türünün sınırlarından sorumlu olan sabitleri kullanma yeteneği ( MIN_VALUE ve MAKSİMUM DEĞER)
  • Sayı sistemleri arasında dönüştürme, diğer ilkel türlere dönüştürme yöntemlerini kullanma becerisi
Her ilkel tür için bir tane olmak üzere sekiz sarmalayıcı sınıfı vardır:
Hemen hemen tüm sınıflar (hariç Boole ve Karakter) soyut sınıftan miras alınır Sayı ve karşılaştırılabilir (arayüz karşılaştırılabilir). Hiyerarşi kabaca şu şekildedir:


// Tamsayı oluşturmanın birkaç yolu vardır i1 = new Tamsayı ("10"); Tamsayı i2 = yeni Tamsayı (10); Tamsayı i3 = Tamsayı.değerOf (10); Tamsayı i4 = Tamsayı.değerOf ("10", 10); // yalnızca ilkel tamsayı türlerinin sarmalayıcıları için sayı sistemini belirtebilirsiniz Karakter c1 = yeni Karakter ("c"); // sadece bir yol var // ilkel türlerin değerlerini alma int i5 = i1.intValue(); char c2 = c1.charValue();

Otomatik kutulama ve kutudan çıkarma

JDK 5 iki önemli özelliği tanıttı:
  • otomatik paketleme ( otomatik kutulama) İlkel bir türü otomatik olarak karşılık gelen bir sarmalayıcı sınıfına yerleştirme işlemidir. Açıkça bir nesne oluşturmaya gerek yoktur.
  • Ambalajın açılması ( kutudan çıkarma) Karşılık gelen sarmalayıcı sınıfından ilkel türün otomatik olarak çıkarılması işlemidir. İlkel bir tür elde etmek için açıkça bir yöntemi çağırmaya gerek yoktur.
Bu araçlar nesneler oluşturmayı, ilkel türler elde etmeyi ve koleksiyonlarla çalışmayı basitleştirmeyi kolaylaştırır.

Public static void main (String ... s) (Integer i1 = 10; // autoboxing - Integer.valueOf (10) int i2 = i1; // kutudan çıkarma - i1.intValue () yöntemi (10); // içine otomatik kutulama Integer sınıfının nesnesi - Integer.valueOf (10) ++ i1; // kutudan çıkarma - i1.intValue (), otomatik kutulama - Integer.valueOf (i1.intValue () + 1)) özel statik int yöntemi (Tamsayı i) (dönüş i ; // parametre olarak alınan nesnenin paketini açma - i.intValue ())

Bazı faydalı yöntemler

Tamsayı i1 = 128; i1.karşılaştır (5); // 1, yani, i.intValue ()> Tamsayı.değerOf (5) Tamsayı.decode ("0xabc"); // Integer.parseInt ("10", 3); // herhangi bir sayı sistemiyle çalışır // dönüştürme yöntemi i1.byteValue (); // (bayt) i.intValue () // yöntemleri kontrol et Float f = 20.5f; Boolean badFloat = f.isInfinite () || f.isNaN(); // yanlış, otomatik kutulama boolean // dizgeye dönüştür f.toString ();
Dikkatiniz için teşekkürler. Tüm eklemeler, açıklamalar ve eleştirilere açığız.

Veri türü üç bileşen tarafından belirlenir:

  • bir dizi değer veya nesne;
  • bir kümedeki tüm değerlere uygulanabilen bir dizi işlem;
  • verilerin sunumu, depolanmalarının tanımlanması.

Java'daki veri türleri nelerdir?

Programlama dili, önceden tanımlanmış bazı yerleşik türleri içerir ve programcıların kendi özel türlerini tanımlamalarına olanak tanır.

Java'da veri türleri ilkel ve başvuru türleri olarak ikiye ayrılır.

"İlkel", daha fazla bölünmenin imkansız olduğu anlamına gelir. Programlama dili, programlama dilinin genişletilmesine veya değiştirilmesine izin vermez. Bu veri türü, ilkel ve diğer kullanıcı tanımlı türlerle tanımlanır.

İlkel türde bir değişken bir değer içerir ve bir başvuru değişkeni bellekteki bir nesnenin adresini içerir.

Java dili. saat ve tarih

Bileşik veriler sınıflara, arayüzlere ve dizilere bölünür. Bir arabirim türünün üyeleri soyut yöntemler ve sabitlerdir. Java'da, tarih ve saat veri türleri Date () yapıcısı tarafından belirtilir:

  • d = yeni Tarih ().

Java dili. Veri Türleri: Dize

Dize, içinde tanımlanan bir sınıftır ve metinle (bir karakter dizisi) çalışmak için kullanılabilir.

Bir başvuru String değişkeninin bildirimi aşağıdaki gibidir: String str.

  • str = yeni Dize ("Merhaba").

Bu kod yürütüldüğünde ne olur? İlk olarak, bellek tahsis edilir ve str o bellek konumuyla ilişkilendirilir. Bu, ilkel bir değişken bildirmekten farklı değildir. İkinci kod parçacığı, bellekte "Merhaba" metniyle bir String nesnesi oluşturur ve buna bir başvuruyu (veya bir bellek adresini) str'de saklar.

Java referans veri türleri, bir değişkende saklanan bir nesneye bir referansı diğerine atamanıza da izin verir. Her ikisi de bellekteki aynı nesneye atıfta bulunur. Bu, aşağıdaki şekilde başarılabilir:

  • dize str1;
  • dize str2;
  • str1 = yeni Dize ("Merhaba");
  • str2 = str1;

String nesnesi, new operatörü kullanılarak oluşturulur. Ancak dizeler çok kullanıldığı için onu oluşturmanın daha kolay bir yolu var. Tüm dize değişmezleri, yani çift tırnak içine alınmış bir dizi karakter, String nesneleri olarak kabul edilir. Bu nedenle, new operatörü yerine dize değişmezlerini kullanabilirsiniz:

  • String str1 = "Merhaba".

Java ilkel veri türleri byte, short, int, long, char, float, double ve boolean'dır. İki kategoriye ayrılırlar: mantıksal ve sayısal. İkincisi, tam sayılara ve kayan nokta sayılarına bölünebilir.

Java tamsayı veri türleri, değerleri tamsayı olan sayısal türlerdir. Beş tanesi vardır: byte, short, int, long ve char.

Int

Int, 32 bit işaretli bir ilkel veri türüdür. Değişken 32 bit bellek kaplar. Geçerli aralık -2147483648 ila 2147483647'dir (-2 31 ila 2 31 - 1). Bu aralıktaki tüm tamsayılar, tamsayı değişmezleri veya sabitleridir. Örneğin 10, -200, 0, 30, 19 int değişmez değerlerdir. Bir int değişkenine atanabilirler:

  • int sayı1 = 21;

Tamsayı değişmezleri ikili, sekizli, ondalık ve onaltılı sayılar olarak ifade edilebilir.

Bir hazır bilgi sıfırla başlıyorsa ve en az iki basamaklıysa, sekizli biçimde olduğu kabul edilir. 0 ve 00 aynı değeri temsil eder - sıfır.

Onaltılık biçimdeki tüm int değişmezleri 0x veya 0x ile başlar ve en az bir onaltılık basamak içermelidir:

  • int num1 = 0x123.

Biçimdeki int değişmezleri 0b veya 0B ile başlar:

  • int num1 = 0b10101.

Uzun

64 bit imzalı ilkel bir türdür. Bir hesaplamanın sonucu int aralığını aştığında kullanılır. long için aralık -2 63 ile 2 63 - 1 arasındadır. Bu aralıktaki tüm tamsayılar uzun değişmez değerlerdir.

Java'da int ve long veri türleri arasında ayrım yapmak için, ikinci türün değişmez değeri her zaman L veya l ile biter.

Uzun tip tamsayı değişmezleri sekizli, onaltılı ve ikili biçimlerde de ifade edilebilir.

Uzun bir değişkene uzun bir değişmez değer atandığında, Java derleyicisi atanan değeri kontrol eder ve kabul edilebilir bir aralıkta olduğundan emin olur; aksi takdirde derleme hatası oluşacaktır.

Bir int'nin aralığı bir long'dan daha az olduğu için, bir int değişkeninin değeri her zaman long türünde bir değişkene atanabilir. Ancak int aralığında bile ters atama mümkün değildir. Bunun için açık bir gösterge kullanılır:

  • sayı1 = (int) sayı2;

Bayt

Bayt, 8 bitlik bir tamsayı ilkel türüdür. Aralığı -128 ila 127'dir (-2 7 ila 2 7 - 1). Java'da bulunan en küçük tamsayı türüdür. Kural olarak, program -128 ila 127 aralığında birçok değeri içerdiğinde veya ikili verilerle çalışırken bayt değişkenleri kullanılır. int ve long değişmezlerinden farklı olarak, bayt değişmezleri yoktur. Ancak, bayt aralığıyla çakıştığı için bir bayt değişkenine herhangi bir int değişmezi atayabilirsiniz.

Bir değişkenin değeri aralık dışındaysa, Java bir derleyici hatası verir.

Ayrıca, yalnızca bir int değişmezi atayabilirsiniz, ancak int değişkeninde saklanan değeri atayamazsınız, çünkü bu, hassasiyet kaybına neden olabilir. Bu, açık bir döküm gerektirecektir.

  • b1 = (bayt) sayı1.

Kısa boylu

16 bitlik işaretli bir tamsayı temel veri türünü temsil eder. Menzili -32768 ila 32767 (veya -2 15 ila 2 15 - 1)'dir.

Tipik olarak, program belirtilen aralığı aşmayan çok sayıda değer kullandığında kısa değişkenlere duyulan ihtiyaç ortaya çıkar. Kısa literal yoktur, ancak short aralığında herhangi bir int literal atayabilirsiniz. Bir bayt değişkeninin değeri her zaman atanabilir. Bir int veya long'u bir short'a atamak için kalan kurallar, byte ile aynıdır.

karakter

Char, bir Unicode karakterini temsil eden 16 bitlik işaretsiz bir ilkel veri türüdür. İşaretin olmaması, değişkenin negatif bir değere sahip olamayacağı anlamına gelir. Aralık, Unicode karakter kümesinin kodlamasıyla eşleşen 0 ila 65535'tir. Bir hazır bilgi, bir char değerini temsil eder ve aşağıdaki biçimlerde ifade edilebilir:

  • tek tırnak içine alınmış bir karakter;
  • kontrol karakterlerinin sırası;
  • bir dizi unicode kontrol karakteri;
  • sekizli kontrol karakterleri dizisi.

Bir karakter, tek tırnak içine alınarak ifade edilebilir: char C1 = "A". dize yalnızca bir karakter içerse bile, bir char değişkenine atanamayan bir dize değişmezini belirtir. İlkel bir değişkene başvuru atanmadığından buna izin verilmez. Tüm dize değişmezleri, String nesneleridir ve bu nedenle referanslardır, karakter değişmezleri ise ilkel türdedir.

Bir kaçış dizisi değişmezi, ters eğik çizgi ve ardından tek tırnak içinde bir karakter olarak yazılır. Toplamda 8 adet vardır: '\ n', '\ r', '\ f', '\ b', '\ t', '\\', '\” ',' \ ''.

Unicode kaçış dizisi "\ uxxxx" şeklindedir; burada \ u (bir ters eğik çizgi ve ardından küçük u harfi) başlangıcını belirtir ve xxxx, Unicode karakter kodunun tam olarak dört onaltılık basamağını temsil eder. Örneğin, "A" 65 ondalık ve 41 onaltılıktır. Böylece, bu karakter "\ u0041" olarak gösterilebilir.

Sekizli kaçış dizisi "\ nnn" olarak yazılır, burada n sekizlik bir basamaktır (0-7). Değerler "\ 000" ile "\ 377" arasında değişir, burada 377 8 255 10'a karşılık gelir. Bu nedenle, diğer programlama dilleriyle uyumluluk için gerekli olan 0'dan 255'e kadar bir kodla karakterleri temsil etmek için kullanılır. Dört onaltılık basamağın tümünü gerektiren tek kodlu dizilerin aksine, burada 1, 2 veya 3 sekizlik basamak kullanabilirsiniz: "\ n", "\ nn" veya "\ nnn".

Boole türü

Boolean'ın yalnızca iki geçerli değeri vardır: true ve false. Bunlara boole değişmezleri denir. Bir boole değişkeni başka bir türe dönüştürülemez ve bunun tersi de geçerlidir. Java, boole boyutunu belirtmez - Java Sanal Makinesinin özel uygulamasına bağlıdır.

Java Kayan Nokta Veri Türleri

Kesirli bir kısım içeren bir sayı, noktadan önce ve sonra sabit sayıda basamakla veya konumunun bir göstergesiyle bilgisayar belleğinde saklanabilir. Basamak sayısı değişebileceğinden, noktanın "yüzdüğü" söylenir.

Java dilinde kayan nokta veri türleri 32 bit kullanır. IEEE 754 standardına göre bu, örneğin 1.4 x 10 -45 ve 3.4 x 10 38 sayılarını hem pozitif hem de negatif olarak temsil etmenize olanak tanıyan tek duyarlılığa karşılık gelir.

f veya F ile biten her şeye kayan değişkenler denir. Ondalık biçimde ve bilimsel gösterimde gösterilebilirler. Örneğin:

  • kayan nokta f1 = 3.25F;
  • kayan nokta f2 = 32.5E-1F;
  • kayan nokta f3 = 0.325E + 1F.

Tip iki sıfır tanımlar: + 0.0F (veya 0.0F) ve -0.0F. Ancak karşılaştırma amacıyla her iki sıfır da eşit kabul edilir. Ayrıca iki tür sonsuzluk tanımlamıştır: pozitif ve negatif. Bazı işlemlerin sonuçları (örneğin, NaN özel değeriyle tanımlanmadı ve temsil edilmedi.

Çift hassasiyet

Double, kayan nokta sayılarını depolamak için 64 bit kullanır. Çift duyarlıklı sayılar 4,9 x 10 -324 ve 1,7 x 10 308 pozitif ve negatif değerlerini temsil edebilir.

Tüm gerçek sayılar varsayılan olarak çift değişmezdir. İsteğe bağlı olarak, örneğin 19.27d gibi d veya D son ekiyle açıkça belirtilebilirler. Çift değişmez ondalık biçimde ve bilimsel gösterimde ifade edilebilir.

İlkel değişken bildirim operatörünü, oluşturulan değişkene bir başlangıç ​​değeri atayan "=" başlatma operatörü takip edebilir.

1. Tamsayı değişken türleri

Tüm türler kendilerine ayrılan bellek miktarına göre farklılık gösterir. Tamsayı türlerinin özellikleri Tablo'da verilmiştir. 1.1. Sekme. 1.1. Java Tamsayı Türlerinin Özellikleri
Yukarıdaki tablodan da görebileceğiniz gibi, tamsayı değişkenleri, char türü hariç, Java dilinde işaretli değişkenler olarak kabul edilir. Tamsayı sabitleri programda üç yoldan biriyle belirtilebilir: ondalık, onaltılık ve sekizlik değerler şeklinde. Varsayılan olarak, tüm sayılar şu şekilde yorumlanır: ondalık ve int türündedir. Numaranın sonuna "l" harfini veya "L" harfini ekleyerek uzun türün üyeliğini açıkça belirtebilirsiniz. onaltılık değer, "0x" veya "0X" karakterleri ve ardından bir sayı değeri (0-9 rakamları ve A-F veya a-f harfleri) kullanılarak belirtilir, örneğin: 0x7FFF. Sekizlik bir sayı sıfırla başlamalı ve ardından 077777 gibi bir veya daha fazla sekizlik basamak gelmelidir. Sekizlik ve onaltılık sayılar pozitif veya negatif olabilir ve ondalık gösterimdeki sayılarla aynı aralıklarda değişebilir (örneğin, onaltılık bayt sayıların maksimum değeri 0x7F ve minimum değeri 0x80 iken sekizli sayıların 177 ve -200'ü vardır, sırasıyla.) Tamsayı değişkenlerini bildirme örnekleri: int x = 0; uzun i, j, k; bayt a1 = 0xF1, a2 = 0x07; kısa r1 = 017; semboller Java'da char anahtar sözcüğü kullanılarak tanımlanır ve Unicode standardı kullanılarak uygulanır. Bir programda veya normal bir sembol olarak sabit bir sembol belirtebilirsiniz. Bir karakter değeri, bir çift tek kesme işareti içine alınmalıdır, örneğin: char sembolü = "f"; Karakter yazmanın başka bir yolu, "\ u" karakter çifti ve ardından Unicode karakter kodunu temsil eden dört basamaklı bir onaltılık sayı (0000 ile FFFF arasında değişen) kullanmaktır, örneğin: char symbol = "\ u0042"; Klavyede mevcut olmayan bazı karakterler, tabloda gösterildiği gibi kaçış dizisini tanımlayan alfabetik bir karakterin ardından "\" karakterini içeren kaçış dizileri olarak adlandırılanlar kullanılarak belirtilebilir. 1.2. Sekme. 1.2. Java dilinde kullanılan kaçış dizileri
Okumak için başka ne var:

2. Gerçek değişken türleri

Java dili sayıları ve değişkenleri destekler. kayan nokta normal ve çift basamaklı - kayan ve çift tipler. Kayan nokta sayıları için, örneğin 4.6 veya 7.0 gibi bir noktayla ayrılmış tamsayı ve kesirli kısımlar belirtmeniz gerekir. Büyük sayılar için üstel gösterimi kullanabilirsiniz (mantisi sıralamadan ayırmak için "e" sembolünü veya "E" sembolünü kullanın), örneğin -3.58 × 107 sayısı –3.58E7 olarak yazılır ve 73.675 × 10-15 sayısı - 73.675e-15 olarak. Java gerçek türlerinin özellikleri Tablo'da sunulmuştur. 2.1. Sekme. 2.1. Java Float Özellikleri
Kayan nokta değişkenleri yalnızca sayısal değerleri değil, aynı zamanda özel olarak tanımlanmış bayraklardan (durum) herhangi birini de saklayabilir: negatif sonsuz, negatif sıfır, pozitif sonsuz, pozitif sıfır ve sayı değil (NaN). Tüm kayan nokta sabitlerinin double türünde olduğu varsayılır. Bir kayan sayı belirtmek için sonuna bir "f" veya "F" eklemelisiniz. Kayan nokta değişkenlerini bildirme örnekleri: kayan nokta x1 = 3.5f, x2 = 3.7E6f, x3 = - 1.8E-7f; çift ​​z = 1.0;

3. Boole tipi değişkenler

Boole değişkenleri (boole değişkenleri) iki değerden birini alabilir: "true" veya "false" ve programlama dillerinde ilişki (karşılaştırma) ve mantıksal işlemlerde kullanılır. Yani, 5> 3 karşılaştırmasının sonucu "doğru" olacaktır ve karşılaştırmanın sonucu 8'dir.< 1 будет «ложь». В отличие от C, где результату «ложь» сопоставлено целое значение типа int , равное 0, а результату «истина» – ненулевое значение типа int , и, соответственно, результатам сравнения присваивается целое значение (обычно 0 или 1), в Java для булевских переменных введен свой, отдельный тип данных. Переменные boole Java'da boolean anahtar sözcüğü kullanılarak ayarlanır ve iki değerden yalnızca birine sahip olabilir: NS veya YANLIŞ, örneğin boole anahtarı = true; İlk bağlantı