Java'daki Veri Türleri: İlkel ve İlkel Olmayan Veri Türleri

Yayınlanan: 2020-12-01

İçindekiler

Tanıtım

Herhangi bir programlama dilinde, bir veri türü, bilgisayarın veya derleyicinin programcıların verileri nasıl atamak istediğini bilmesini sağlayan bir veri atfıdır. Bir veri türü, değerler atarken değişkenlere veya bir işleve bir kısıtlama ekler.

Bu veri türleri, o türdeki değerlerin saklanma şekli ve veriler üzerinde yapılabilecek işlemler gibi verilerin davranışını tanımlar. Java tarafından sağlanan tüm veri türlerine bir göz atalım.

İlkel Veri Türleri

İlkel bir veri türü, daha basit bir veri türüne daha fazla bölünemez. Java, 8 ilkel veri türü sağlar, hadi bunları keşfedelim!

Bayt

Bir bayt, -128 ile 127 arasındaki tam sayıları saklayan bir Tamsayı türüdür, bu, yalnızca 1 bayt bellek gerektirdiğinden, küçük sayılarla uğraşıyorsanız bellek kısıtlaması sorunlarını ortadan kaldırır. Bir bayt değişkeni, "byte" anahtar sözcüğü kullanılarak bildirilebilir. Bir bayta 127'den yüksek bir değer atamak, "uyumsuz türler" hatası verir.

bayt n1 = 98 ;

sistem . dışarı . println(n1);

Yukarıdaki pasaj, beklendiği gibi 98 yazdırır.

Kısa

Kısa, -32768 ile 32767 arasındaki tam sayıları depolayan bir Tamsayı türüdür, diskten 2 bayt bellek tüketir. Kısa bir değişken, "short" anahtar sözcüğü kullanılarak bildirilebilir. Kısa bir değişkene 32767'den büyük bir değer atamak, "uyumsuz türler" hatası verir.

kısa n1 = 9876 ;

sistem . dışarı . println(n1);

Yukarıdaki pasaj, çıktı olarak 9876 yazdırır.

Int

Bir int, -2147483648 ile 2147483647 arasındaki tam sayıları saklayan bir tamsayı türüdür, diskte 4 bayt bellek tüketir. Genellikle programcılar, sayısal değerleri saklayan bir değişkeni bildirmek için bir int kullanmayı tercih ederler. Java derleyicisi, aralıktan daha büyük bir değer atamaya çalışırsa "uyumsuz türler" hatası verir.

int n1 = 987654 ;

sistem . dışarı . println(n1);

Yukarıdaki pasaj, çıktı olarak 987654 yazdırır.

Uzun

Şimdi, bu, diskte 8 bayt bellek tüketen ilginç bir veri türüdür. -9223372036854775808 ile 9223372036854775807 arasındaki tam sayıları saklayan bir tamsayı türüdür, bu aralığın okunması oldukça uzun sürer.

Bu, yaptığımız işlemler için int veri türü taştığında kullanılır. Atama yaparken değeri bir 'L' ile bitirmemiz gerektiğini unutmayın.

uzun n1 = 987654321098765L ;

sistem . dışarı . println(n1);

Yukarıdaki kod parçası, beklendiği gibi 987654321098765 yazdırır.

Batmadan yüzmek

Float, kayan noktalı bir veri türüdür, yani ondalık kesinlik dahil değerleri depolayabilir. Tüm harcamalarınızı not etmek için bir kod geliştirdiğinizi varsayalım, ancak oldukça katısınız ve harcadığınız her kuruşun kaydını tutmak istiyorsunuz. Bu durumda int işi yapmayacaktır çünkü int sadece tam sayıları saklayabilir.

Bu görev için kayan noktalı bir veri türüne ihtiyacımız var. Bir kayan nokta, 3.4e-038 ile 3.4e+038 arasında değişen kesirli sayıları saklayabilir, 7 basamağa kadar ondalık kesinlik saklayabilir. Değeri bir 'f' ile bitirmeniz gerektiğini unutmayın.

kayan nokta n = 98.76f ;

sistem . dışarı . println(n);

Yukarıdaki pasaj, çıktı olarak 98.76 yazdırır.

Okuyun: JavaBeans Özellikleri ve Faydaları: Nasıl Kullanmalısınız?

Çift

Double, şamandıraya benzer, ancak adından da anlaşılacağı gibi, ondalık kesinlik durumunda şamandıranın iki katıdır. 15 basamaklı bir ondalık hassasiyete sahip olabilir ve 1.7e-308 ile 1.7e+308 arasında değişen kesirli sayıları saklayabilir. Değeri “d” ile bitirmeniz gerektiğini unutmayın.

Float ve double arasındaki farkı anlamak için bir kod üzerinden geçelim.

genel sınıf Testi {

public static void main ( String args[])

{

kayan nokta a1 = 1.f / 70 ;

kayan nokta b1 = 0 ;

çift ​​a2 = 1.d / 70 ;

çift ​​b2 = 0 ;

kayan nokta f1 = 1f ;

çift ​​f2 = 1d ;

for ( int i = 0 ;i < 490 ;i ++ ){

b1 = b1 + a1;

b2 = b2 + a2;

if (i > 1 && i <= 50 ){

f1 = f1 * ben;

f2 = f2 * ben;

}

}

sistem . dışarı . println(b1); //satır 1

sistem . dışarı . println(b2); //hat 2

sistem . dışarı . println(f1); //satır3

sistem . dışarı . println(f2); //satır4

}

}

“(1/70)*490” ifadesinin elle hesaplanması bize cevap olarak 7'yi verir, ancak java'da float ve double kullanarak yürütmek farklı bir cevap verir. Yukarıdaki pasajda, bir kayan değişken ve bir çift değişken 1/70 ile başlatılır ve bu değeri başka bir değişkene 490 kez eklemek bize cevap olarak 7 vermelidir.

Yukarıdaki snippet'i çalıştırırken 1. satır 7 basamaklı ondalık hassasiyete sahip 6.9999795 yazdırırken, 2. satır 15 basamaklı ondalık hassasiyete sahip 6.9999999999999978 yazdırır. Bu nedenle, kayan nokta size doğru bir ondalık kesinlik sağlamıyorsa, o zaman ikiye katlamayı seçebilirsiniz. Ayrıca, bir şamandıranın sonsuza çarpması daha olasıdır, çünkü şamandıra aralığı iki katına kıyasla daha azdır.

Örneğin, oldukça büyük bir sayının faktöriyelini saklarsanız, bu değişken sonsuza ulaşır. Yukarıdaki snippet'ten, 50 faktöriyelini depolamak için kullanılan iki değişken olduğunu görebiliriz ve sonucu yazdırdığımızda, 3. satır sonsuz yazdırır ve 4. satır 3.0414093201713376E64 yazdırır, bu nedenle, kayan nokta sayısal değerinizi karşılamıyorsa aralığı sonra çift seçebilirsiniz.

Hem kayan hem de çift, bilimsel sayılar olarak 'e' ile kullanılabilir, burada 'e' 10'un gücünü ifade eder. Örneğin, 3e2f, kayan veri türünde 300.0'a ve 3e4d, çift veri türünde 30000.0'a eşdeğerdir.

Boole

Bir boolean veri türü, yalnızca iki doğru ve yanlış değer alabilir, Java'da boolean anahtar sözcüğü kullanılarak bildirilir. Bu veri türü genellikle bir kodda yaptığımız değişiklikleri takip etmek için bayrak değişkeni olarak kullanılır. Örneğin, bir sayı 2 else false ile bölünebiliyorsa bayrağı true olarak ayarlamak.

boolean flag = true ;

boolean b1 = yanlış ;

sistem . dışarı . println(bayrak); // doğru yazdırır

sistem . dışarı . println(b1); //yanlış yazdırır

karakter

Tek bir karakteri depolamak için bir char veri türü kullanılır, bu veri türü char anahtar sözcüğü kullanılarak bildirilebilir. Atama yaparken karakteri tek tırnak içine almamız gerektiğini unutmayın, hem küçük hem de büyük harf karakterleri bir char veri türünde saklayabilir.

Bir char veri türünde birden fazla karakter depolamak hata verir. Ayrıca, char veri türüyle ilgili eğlenceli bir gerçek var ki, bir karakterin bir tamsayıya yazılması, o karakterin ASCII değerini depolar ve bunun tersi de doğrudur.

char c1 = ' bir ' ;

karakter c2 = 66 ;

sistem . dışarı . println(c1); //satır 1

sistem . dışarı . println(c2); //hat 2

sistem . dışarı . println(( int )c1); //satır3

Yukarıdaki snippet satırı 1'de, beklendiği gibi çıktı olarak 'a' yazdırılır. 66, ASCII tablosunda B'ye atıfta bulunduğundan, satır 2 çıktı olarak 'B' yazdırır. Satır 3, 'a' ASCII değeri olduğundan çıktı olarak 97 yazdırır.

Peki ya birden fazla karakter saklamak istiyorsak? İlerleyen paragraflarda onlara geleceğiz.

Ayrıca Okuyun: Yeni Başlayanlar İçin 17 İlginç Java Projesi Fikri ve Konusu

İlkel Olmayan Veri Türleri

Java'daki İlkel olmayan veri türleri, nesnelere atıfta bulundukları için referans türleri olarak da adlandırılır. İlkel olmayan veri türleri programcı tarafından oluşturulur ve önceden tanımlanmamıştır. İlkel olmayanlar nesneler olarak adlandırıldığından, ilkel türde bir durum olmayan null ile atanabilirler.

İlkel veri türlerinin aksine, ilkel olmayan bir veri türü büyük harfle başlamalıdır. İlkel olmayan tüm veri türleri eşit boyuttadır ve ilkel veri türleri durumunda farklı olan diskte eşit bellek tüketir.

Sicim

Bir dize, Java'da ilkel olmayan türlerin programcılar tarafından tanımlandığı gerçeğiyle çelişen özel bir veri türüdür. Dize veri türü, ilkel olmayan bir veri türüdür ancak Java'da önceden tanımlanmıştır, bazı insanlar buna özel dokuzuncu ilkel veri türü de der.

Bu, bir karakterin birden çok karakter depolayamadığı durumu çözer, karakter dizisini depolamak için bir dize veri türü kullanılır. Metin sırasını çift tırnak içine almanız gerektiğini unutmayın.

String s1 = Merhaba ;

sistem . dışarı . println(s1);

Yukarıdaki snippet, beklendiği gibi "Hey There" yazacaktır.

Diziler, Sınıflar, Arayüzler, vb. Java'daki diğer birkaç ilkel olmayan veri türüdür.

Veri türleri aralığı nasıl hesaplanır?

İlkel veri türlerinin aralıklarını izledikten sonra, bunu hatırlamamıza gerek var mı? Eh, cevap HAYIR olacaktır. Ancak her bir veri türünün boyutunu hatırlamamız gerekiyor ve ardından bu veri türünün aralığını hesaplayabiliriz.

Örneğin, bir bayt veri türü diskte 1 bayt bellek tüketir. Derleyici düzeyinde, tüm veriler bit biçiminde depolanır ve bir bayt 8 bit içerir. Şimdi 8 bitten biri sayının işaretini belirtmek için kullanılıyor ve kalan 7 bit gerçek sayıyı saklayabilir, yani 7 bit kullanarak saklayabileceğimiz maksimum sayı 128'dir.

Bu nedenle, -128 bayt veri türünün alt sınırıdır ve +127 üst sınırdır, çünkü sıfır, sayı satırında negatif sayılardan sonraki ilk sayıdır.

Kayan nokta türlerinde de benzer şekilde, veriler işaretli bit, mantis ve üs olmak üzere 3 parçaya bölünür. Mantis kısmı ondalık kesinliği depolamak için kullanılır, bir kayan nokta 23 mantis biti artı bir gizli bit ve bir double 52 mantis biti artı bir gizli bit içerir.

Float için, log(2^24)/log(10) yaklaşık olarak 7'ye eşittir, yani 7 basamaklı ondalık kesinlik.

Double için, log(2^53)/log(10) yaklaşık olarak 15'e eşittir, yani 15 basamaklı ondalık kesinlik.

Dünyanın En İyi Üniversitelerinden Yazılım Mühendisliği Kurslarına Kaydolun . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

Çözüm

Java'da çeşitli veri türlerini gördük, ilkel ve ilkel olmayan veri türlerini anladık, ilkel ve ilkel olmayan arasındaki farkı anladık. Veri türlerinin bildirimi hakkında temel bilgilere sahip olmak için örnek kod parçacıkları üzerinde yürüdü.

Tamsayı veri türlerinin çeşitli veri türlerinin aralığının nasıl hesaplanacağını, kayan noktalı veri türlerinin ondalık kesinliğinin nasıl hesaplanacağını anladı.

Artık Java'daki çeşitli veri türlerinin farkında olduğunuza göre, onları keşfetmeye başlayın!

Java, OOP'ler ve tam yığın yazılım geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500 saatten fazla sıkı eğitim sunan Tam Yığın Yazılım Geliştirmede Yönetici PG Programına göz atın. 9+ proje ve ödev, IIIT-B Mezun statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.

Geleceğin Kariyerine Hazırlanın

Yazılım Mühendisliği Yüksek Lisans Programına Hemen Başvur