Numerics&Operators Flashcards
Cela cisla - defaultni typ
kolik je min, pokud znam max
0 … int
0l … long
-(max)-1
napr. pro 127 je to -128
byte - pamet, max
1 byte
127
short - pamet, max
2 bytes
32 767
int - pamet, max
4 bytes
2 147 000 000 2 miliardy
long - pamet, max
8 bytes
9 223 000 000 000 000 000 (9.223 * 10^3*6) 9 trilionu
Desetinna cisla - defaultni typ
Dva typy zapisu
0 … double
0f … float
123.456
1.23456E2
float - pamet
4 bytes
double - pamet
8 bytes
signed integer - jak je ulozen
dvojkovy doplnek:
pro zaporne cislo odecti 1 a prevrat vsechny bity
Automaticke castovani
Lze jen z mensiho typu na vetsi
Napr. int to long, float to long
char - pamet, default, rozsah
2 bytes
\U0000
0 - 64 535
char - druhy zapisu (4)
‘X’
unicode (hex) \uXXXX
ascii (octal) \XXX
escape sequences \r \n \t \f ' " \
auto-boxing
auto-unboxing
auto-boxing: zabaleni int do Integer
auto-unboxing: rozbaleni Integer na int
caste pouziti ubira na vykonu!
vlastnosti wrapper classes (2)
konstanty (2)
jsou signed
jsou immutable
MIN_VALUE, MAX_VALUE
Metody wrapper classes:
tvorba z primitivu
tvorba ze stringu
rozbaleni do primitivu
Integer.valueOf(5);
Integer.parseInt(“5”);
integer.intValue();
prevedeni primitivu na String
String.valueOf(5);
Typ pouzivany tam, kde je vyzadovana desetinna presnost (finance)
Cim lze tu presnost zmatlat
Co pouzit misto toho
BigDecimal
new BigDecimal(x)
BigDecimal.valueOf(x)
BigDecimal - jak se dela scitani, odecitani, nasobeni, deleni, modulo
Rozbaleni do double
Konstanta pro male cislo
bd.add(other); subtract / multiply / divide / remainder
- primitivni operatory nefunguji!!!
bd.doubleValue()
BigDecimal.ONE
BigDecimal - nastaveni presnosti na dve des. mista s beznym zaokrouhlovanim
bd.setScale(2, RoundingMode.HALF_UP)
Deleni - operator, kdy neni celociselne
/
pokud je delitel (to druhe) desetinny
Co porovnava ==
hodnotu na stacku
tedy pro primitivy obsah
pro objekty reference
Automatic casting u ciselnych primitivu: poradi
byte > short > int > long > float > double
Typ vysledku u primitivnich cisel
pro typy mensi nez int je vysledek int (short + byte = int) - cisla v rovnici se prevedou pred operaci na int
pro ostatni je podle nejvetsiho typu (int + float = float)
Co udela operace byte 127+5
Compilation error, type overflow