Java
Примитивные типы
boolean
char
byte, short, int, long
float, double
Для примитивных типов выделяется память в Стеке и занимает меньше места.
int sum = 34 + 113; int difference = 91 - 205; int product = 2 * 8; int quotient = 45 / 3;
Целочисленные типы
int decimal = 99; //десятичная int octal = 0755; //восмеричной, с префиксом "0" int hex = 0xFF; //шестнацатеричной, c префиксом "0x" int binary = 0b101; // двоичной, с префиксом "0b" int tenMillion = 10_000_000; //между цифрам разрешено добовлять "_" для удобства чтения, появилось в JSE7 long tenBillion = 10_000_000_000L; //суфикс "L" означает что тип числа "long"
Вещественные типы
double simple = -1.234; // double exponential = -123.4e-2; //-123.4*10^(-2) double hex = 0x1.Fp10; //1.F*2^10 float floatWithSuffix = 36.6f; //суфикс "f" означает что тип "float" double doubleWIthSuffix = 4d; Math.abs((a + b) - c) < 0.0001; //is equivalent to "a + b = c", погрешность вычислений – 0.0001 (1E-4)
Операции инкремента и декремента
int a = 2; a += a;//return 4 a = 2; a += ++a; //++a вернет значение после изменения, return 5 a = 2; a += a++;//a++ вернет значение до изменения, return 4 a = 10; // a = 10 int b = ++a; // префиксный инкремент возвращает новое значение => b = 11 и a = 11 int c = a++; // постфиксный инкремент возвращает старое значение => с = 11 и a = 12 int i = 0; i = i++; //is equivalent to, int temp = i; // temp = 0 i++; // i=1 i = temp; // i = 0
Операторы сравнения
<, <=, ==
>, >=, !=
boolean операции
! - отрицание
&& - "и", конъюнкция
|| - "или", дизъюнкция
^ - исключающиее "или", XOR
&=, |=, ^= - сокращенная форма
Работа с масивом
Arrays.equals(arr1, arr2); //сравнивает два массива, для одномерных массиовов Arrays.deepEquals(a, b); //глубокое сравнение двух массивов Arrays.toString(arr); //распичатать массив Arrays.deepToString(arr); //распичатать многомерный массив
Интерфейс Queue
Queue работает по FIFO первый зашел первый вышел
//Добавление boolean add(E e); //если очередь достигла максимального размера, то бросает throw boolean offer(E e); /если очередь достигла максимального размера, то возвращает false //Извлечения первого элемента из головы очереди E remove(); //если очередь пуста, то бросает throw E poll(); //если очередь пуста, то вернет null //Подсмотреть элемент в голове очереди не удаляя его E element(); //если очередь пуста, то бросает throw E peek(); //если очередь пуста, то вернет null
Optional
Optional призванный помочь разработчикам в обработке NullPointerException
JavaDoc
habr
Optional<String> baz = Optional.empty(); baz = Optional.of("baz"); baz = Optional.ofNullable("buz"); baz.ifPresent(System.out::println); String s = baz.orElse("new baz"); String s = baz.get();
Generices
Если отдавать то использовать "? extends T"
Если принимать то "? super T"
java.lang.Class
Class - объект, который представляет в runtime данные о классе объекта
//Основные методы static Class<T> forName(String className) //получить класс по имени String getCanonicalName() //вернет полное имя класса Fields[] getField(String name) Class[] getInterfaces() Method[] getMethods() Constructor[] getConstructors()
Collections
Сортировки
//Для List Collections.sort(words, String::compareTo); //simply Collections.sort(words, (o1, o2) -> o1.compareTo(o2)); // or custom sorting
//Для Map HashMap<String, Double> map = new HashMap<>(); TreeMap<String, Double> sorted_map = new TreeMap<>((a, b) -> { if (map.get(a) >= map.get(b)) { return -1; } else { return 1; } // returning 0 would merge keys }); map.put("A", 67.4); map.put("B", 67.1); map.put("C", 67.4); map.put("D", 99.5); System.out.println("unsorted map: " + map); //до сортировки sorted_map.putAll(map); System.out.println("results: " + sorted_map); //после сортировки
Other
Calendar
Calendar c = Calendar.getInstance(); c.setTime(new Date()); c.set(Calendar.HOUR, 16); c.getTime();
DataFormat
String dateString = new SimpleDateFormat("HH:mm d MMMM", new Locale("ru")).format(updateTime);