byte — 8 бит | -128 .. 127
short — 16 бит | -32 768 .. 32 767
int — 32 бит | -2 147 483 648 .. 2 147 483 647
long — 64 бит | ~±9.2 × 10^18
float — 32 бит | дробные, суффикс f
double — 64 бит | дробные точнее
boolean — true / false
char — 16 бит | один символ Unicode
int a = 10;
long b = 100L; // суффикс L
float c = 3.14f; // суффикс f
double d = 3.14;
boolean flag = true;
char ch = 'A';
// Неизменяемая переменная
final int MAX = 100;
// Вывод типа (Java 10+)
var x = 42; // int
var s = "hello"; // String
String s = "hello";
int[] arr = {1, 2, 3};
Integer boxed = 42; // обёртка над int
Отличие от примитивов:
- Хранят ссылку, а не значение
- Могут быть null
- Методы есть (.length(), .equals() и др.)
int → Integerlong → Longdouble → Doublefloat → Floatboolean → Booleanchar → Characterbyte → Byteshort → ShortInteger x = 5; // autoboxing (int → Integer)
int y = x; // unboxing (Integer → int)
// Осторожно с null!
Integer n = null;
int z = n; // NullPointerException!
int i = 10;
long l = i; // OK
double d = i; // OK
double d = 9.99;
int i = (int) d; // i = 9 (отбрасывает дробь)
long l = 300L;
byte b = (byte) l; // может переполниться!
String s = "Java";
s.length() // 4
s.charAt(0) // 'J'
s.toUpperCase() // "JAVA"
s.toLowerCase() // "java"
s.contains("av") // true
s.substring(1, 3) // "av"
s.replace("J","j") // "java"
s.trim() // убрать пробелы по краям
s.equals("Java") // true (не ==!)
s.isEmpty() // false
s.split(",") // массив строк
String a = "Hi" + " " + "there"; // "Hi there"
String b = "Val: " + 42; // "Val: 42"
// StringBuilder — для циклов (эффективнее)
StringBuilder sb = new StringBuilder();
sb.append("Hi");
sb.append(" ");
sb.append("there");
String result = sb.toString(); // "Hi there"
// Объявление
int[] arr = new int[5]; // {0,0,0,0,0}
int[] arr = {10, 20, 30};
// Доступ
arr[0] = 99;
int x = arr[2]; // 30
// Длина
arr.length // 3 (не метод!)
// 2D массив
int[][] matrix = new int[3][3];
matrix[0][0] = 1;
// Примитивы — через ==
int a = 5;
int b = 5;
a == b // true
// Объекты — через .equals()
String s1 = "hi";
String s2 = "hi";
s1.equals(s2) // true
s1 == s2 // может быть false (ссылки!)