Java (WIP)
[Edit]Úvod
- Objektově orientovaný jazyk
- téměř je všechno objekt
- Zdrojový kód (
.java
) - překlad do bytecode- just-in-time compilation
- překlad bytecode do nativního kódu před/během vykonávání programu
- just-in-time compilation
- Nezávislý na architektuře
- program běží ve virtual machine
- verze 1.0 vyšla v roce 1996
- Java platforma se dělí na edice
- JSE - standard edition
- JEE - enterprise edition (od 2019 Jakarta EE)
- JME - micro edition
Vlastnosti
Komentáře
/* komentář */
// jednořádkový komentář
/** dokumentační komentář */
OOP
- Vše je objekt
- Objekt - instance třídy (
class
) nebo pole- nová instance pomocí operátoru
new
- nová instance pomocí operátoru
- Vše je definováno ve třídách (typech) žádné funkce nejsou mimo třídy
- Manipulace s objekty - reference
String s = new String("");
Primitivní datové typy
- výjimka - nejsou objekt
- předávají se by value předává se hodnota
- pevná velikost, pouze se znaménkem
int a = 10;
Typ | Velikost | Min | Max | Wrapper |
boolean |
- | - | - | Boolean |
char |
16-bit | Unicode | Unicode | Character |
byte |
8-bit | Byte | ||
short |
16-bit | Short | ||
int |
32-bit | Integer | ||
long |
64-bit | Long | ||
float |
32-bit | IEEE754 | IEEE754 | Float |
double |
64-bit | IEEE754 | IEEE754 | Double |
- Vnitřní reprezentace celočíselných typů
- signed two’s complement integers
přiklad s byte
0 ~ 00000000
127 ~ 01111111
-1 ~ 11111111
-128 ~ 10000000
- Typy s pohyblivou řádovou čárkou
- umožňují reprezentovat hodnotu NaN (not-a-number)
- jakékoliv porovnání dvou NaN je vždy
false
Autoboxing
- od java 5
- automatická konverze mezi primitivními typy
int a = 5; Integer b = a; // autoboxing int c = b; // autounboxing
Implicitní hodnoty
- boolean -
false
- ostatní primitivní typy -
0
- reference -
null
- lokální proměnné nejsou inicializovány -> chyba při překladu
Pole
- java kontroluje meze
- definice polí
int[] iPole; int iPole2[]; //tento zápis se nepužívá a obecně se bere jako prasečina
- Více rozměrná pole
int[][] iiArray;
- vytvoření pole - pouze dynamicky
iPole = new Int[10];
Třídy
Třída má: – atributy – metody – vnitřní/vnořné třídy