/ / Програмиране: Java. Типове данни

Програмиране: Java. Видове данни

Типът данни се определя от три компонента:

  • набор от стойности или обекти;
  • набор от операции, които могат да бъдат приложени към всички стойности в набор;
  • представяне на данни, дефиниране на тяхното съхранение.

Какви са типовете данни в Java?

Езикът за програмиране съдържа някои предварително дефинирани вградени типове и позволява на програмистите да дефинират свои собствени, персонализирани.

В Java типовете данни се делят на примитивни и референтни типове.

"Примитивно" означава, че по-нататъкразделяне не е възможно. Неговият език за програмиране не позволява да се разширява или променя. Този тип данни се описва от примитивни и други дефинирани от потребителя типове.

Променлива от примитивен тип съдържа стойност, а референтната променлива съдържа адреса на обект в паметта.

java типове данни

Java език. Типове данни: час и дата

Композитните данни са разделени на класове, интерфейси и масиви. Членовете на интерфейсния тип са абстрактни методи и константи. В Java типовете данни за дата и час са посочени от конструктора Date ():

  • d = нова дата ().

Низът също е пример за връзка.

Java език. Типове данни: String

Низът е клас, дефиниран в библиотеката на Java и може да се използва за манипулиране на текст (поредица от символи).

Декларацията на референтна променлива String е както следва: String str.

Преди да присвоите препратка към обект на такава променлива, трябва да го създадете с помощта на новия оператор. Например можете да създадете обект от класа String с текст "Hello":

  • str = нов низ ("Здравей").

Какво се случва, когато се изпълни този код? Първо, паметта се разпределя и името str се свързва с това място в паметта. Това не се различава от декларирането на примитивна променлива. Втората част от кода създава String обект в паметта с текст "Hello" и съхранява препратка към него (или адрес на паметта) в str.

Препращаните към Java типове данни също позволяватприсвояване на препратка към обект, съхранявана в една променлива, на друга. И двамата се отнасят до един и същ обект в паметта. Това може да се постигне, както следва:

  • String str1;
  • String str2;
  • str1 = нов низ ("Здравей");
  • str2 = str1;

Има нулева постоянна препратка, която може да бъде присвоена на всяка референтна променлива. Не се отнася за нито един обект.

Обектът String се създава с помощта на новия оператор. Но тъй като низовете се използват много, има по-лесен начин да го създадете. Всички низови литерали, тоест последователност от символи, затворени в двойни кавички, се третират като String обекти. Следователно, вместо новия оператор, можете да използвате низ литерали:

  • String str1 = "Здравей".

Java примитивни типове данни - байт, кратък, int,long, char, float, double и boolean. Те попадат в две категории: логически и цифрови. Последните могат да бъдат разделени на цели числа и числа с плаваща запетая.

Java целочислените типове данни са числови типове, чиито стойности са цели числа. Има пет от тях: байт, къс, int, дълъг и char.

java типове данни

Международна

Int е 32-битов примитивен тип данни с подпис. Променливата заема 32 бита памет. Валидният диапазон е от -2147483648 до 2147483647 (-231 до 231 - 1). Всички цели числа в този диапазон са целочислени литерали или константи. Например 10, -200, 0, 30, 19 са int литерали. Те могат да бъдат присвоени на променлива int:

  • int num1 = 21;

Целочислените литерали могат да бъдат изразени като двоични, осмични, десетични и шестнадесетични числа.

Когато литералът започва с нула и има поне две цифри, се счита, че е в осмичен формат. 0 и 00 представляват една и съща стойност - нула.

Всички int литерали в шестнадесетичен формат започват с 0x или 0x и трябва да съдържат поне една шестнадесетична цифра:

  • int num1 = 0x123.

Int литералите в двоичен формат започват с 0b или 0B:

  • int num1 = 0b10101.

java типове данни време

Дълго

Това е 64-битов подписан примитивен тип. Използва се, когато резултатът от изчисленията може да надвиши обхвата int. Голям обхват - от -263 до 263- 1. Всички цели числа в този диапазон са литерали от дълъг тип.

За да се прави разлика между типовете данни int и long в Java, литералът на последния тип винаги завършва с L или l.

Целочислените литерали от дълъг тип могат също да бъдат изразени в осмичен, шестнадесетичен и двоичен формат.

Когато дълъг литерал е присвоен на дълга променлива,Java компилаторът проверява присвоената стойност и се уверява, че тя е в приемлив диапазон; в противен случай ще възникне грешка при компилацията.

Тъй като обхватът на int е по-малък от този на long,стойността на променлива int винаги може да бъде присвоена на променлива от тип long. Но обратното присвояване не е възможно дори в обхвата на int. За това се използва изрично указание:

  • num1 = (int) num2;

java типове данни за низове

Байт

Байтът е 8-битов целочислен примитивен тип. Обхватът му е от -128 до 127 (-27 до 27 - един). Това е най-малкият цял ​​тип, наличен в Java.По правило байтовите променливи се използват, когато програмата включва много стойности в диапазона от -128 до 127 или при работа с двоични данни. За разлика от int и long литерали, няма байтови литерали. Можете обаче да присвоите всеки int литерал на байтова променлива, тъй като тя припокрива байтовия диапазон.

Ако стойността на променлива е извън обхвата, Java ще изведе грешка на компилатора.

Освен това можете да присвоите само int литерал, но не и стойността, съхранявана в променливата int, тъй като това може да доведе до загуба на точност. Това ще изисква изричен актьорски състав.

  • b1 = (байт) num1.

Къс

Представлява 16-битов примитивен тип данни с подписване на цяло число. Обхватът му е от -32768 до 32767 (или -215 до 215 - един).

Обикновено нуждата от кратки променлививъзниква, когато програма използва голям брой стойности, които не надвишават посочения диапазон. Няма кратък литерал, но можете да присвоите всеки int литерал в рамките на краткия диапазон. Стойността на байтова променлива винаги може да бъде присвоена. Останалите правила за присвояване на int или long на short са същите като за байт.

примитивни Java типове данни

Чар

Char е 16-битов неподписанпримитивен тип данни, който представлява Unicode символ. Липсата на знак означава, че променливата не може да има отрицателна стойност. Диапазонът е от 0 до 65535, което съответства на кодирането на Unicode набор от символи. Буквалът представлява стойност на знак и може да бъде изразен в следните форми:

  • знак, затворен в единични кавички;
  • последователност от контролни знаци;
  • последователност от контролни знаци на unicode;
  • последователност от осмични контролни знаци.

Символът може да бъде изразен чрез затварянето му вединични кавички: char C1 = "A". Двойните кавички означават низов литерал, който не може да бъде присвоен на променлива char, дори ако низът съдържа само един знак. Това не е разрешено, тъй като не е зададена препратка към примитивна променлива. Всички низови литерали са String обекти и следователно препратки, докато символните литерали са от примитивен тип.

Литералът на екранираща последователност се записва като обратна наклонена черта, последвана от символ в единични кавички. Има общо 8 от тях: ‘n’, ‘r’, ‘f’, ‘b’, ‘t’, ‘\’, ‘” ’,‘ ’’.

Unicode Escape Sequence е"uxxxx", където u (обратна наклонена черта, последвана от малка буква u) означава неговото начало, а xxxx представлява точно четири шестнадесетични цифри от кода на символа Unicode. Например „A“ е 65 десетични и 41 шестнадесетични. По този начин този знак може да бъде представен като "u0041".

Окталната евакуационна последователност се записва като "nnn", където n е осмична цифра (0-7). Стойностите варират от "00" до "377", където 3778 съответства на 25510... Следователно, той се използва за представянесимволи с код от 0 до 255, необходими за съвместимост с други програмни езици. За разлика от unicode последователностите, които изискват и четирите шестнадесетични цифри, тук можете да използвате 1, 2 или 3 осмични цифри: "n", "nn" или "nnn".

референтни типове данни на Java

Булев тип

Boolean има само две валидни стойности:вярно и невярно. Те се наричат ​​булеви литерали. Булева променлива не може да бъде предадена на друг тип и обратно. Java не посочва размера на булевото значение - това зависи от конкретното изпълнение на JVM.

Типове данни с плаваща запетая на Java

Число, което съдържа дробна част в паметтаКомпютърът може да се съхранява в представяне с фиксиран брой цифри преди и след точката или посочване на нейната позиция. Тъй като броят на цифрите може да варира, се казва, че точката "плава".

В езика Java типовете данни с плаваща запетая използват 32 бита. Според стандарта IEEE 754 това съответства на единична точност, която ви позволява да представите, например, числа 1,4 х 10-45 и 3,4 х 1038, както положителни, така и отрицателни.

Всички реални числа, завършващи на f или F, се наричат ​​плаващи литерали. Те могат да бъдат представени в десетичен формат и в научна нотация. Например:

  • плувка f1 = 3.25F;
  • плувка f2 = 32,5E-1F;
  • поплавък f3 = 0,325E + 1F.

Типът определя две нули: + 0.0F (или 0.0F) и -0.0F.За целите на сравнението обаче и двете нули се считат за равни. Освен това той определи два вида безкрайност: положителна и отрицателна. Резултатите от някои операции (например разделяне на 0.0F на 0.0F) са недефинирани и са представени със специалната стойност NaN.

Java типове данни за дата и час

Двойна точност

Double използва 64 бита за съхраняване на числа с плаваща запетая. Числата с двойна точност могат да представляват положителни и отрицателни стойности от 4,9 х 10-324 и 1,7 х 10308.

Всички реални числа са по подразбиранедвойни литерали. По желание те могат да бъдат изрично посочени с наставката d или D, например 19.27d. Двойният буквал може да бъде изразен в десетична форма и в научна нотация.