
public class Imports {
public void read(Files files) {
Paths.get("name");
}
}
Классы
Files
и Paths
находятся в одном пакете java.nio.file
Size: a a a
public class Imports {
public void read(Files files) {
Paths.get("name");
}
}
Files
и Paths
находятся в одном пакете java.nio.file
import java.nio.files.*;
import java.nio.files.Files;
import java.nio.files.Paths;
import java.nio.*;
подпакеты не импортируютсяimport java.nio.*.*;
можно использовать только одно сокращение с символом *import java.nio.files.Paths.*;
нельзя импортировать методы, только классыX
переменная Y
и класс Y
находятся в одном скоупе. По спецификации в таком случае переменная имеет больший приоритет.null
к нужному типу и обратиться к статической переменной классаSystem.out.println(((X.Y) null).Z);
static class XY extends X.Y {};
System.out.println(XY.Z);
public static <T extends X.Y> void main(String[] args) {
System.out.println(T.Z)
}
Thread
, но не запускаем его с помощью метода start
. Вместо этого основной поток вызывает метод run
экземпляра Thread
, который выполняется синхронно в основном потоке. Так как одному объекту разрешено повторно получать один и тот же монитор, основной поток получает монитор на BlackWhite.class
, когда метод run вызывает метод printBlack
. Чтобы запустить новый поток, нужно вызвать метод start
класса Thread
. Если в программе заменить t.run
на t.start
, то программа всегда будет печатать "WhiteBlack", так как новый поток не сможет приступить к выполнению, пока главный поток не завершится и не отпустит блокировку. Random r = new Random();
Переменная r ссылается на новый объект типа Random. Запись Random()
, которая используется вместе с ключевым словом new, выглядит как метод и является конструктором.public class JavaDev {
public JavaDev() {
// constructor
}
}
public void JavaDev() { }
является методом, но не конструктором. И такой метод не вызовется, если написать new JavaDev()
.class Student {
int age = 16;
String name;
public Student(String name) {
this.name = name;
}
}
int i = 123;
литералом будет число 123. По умолчанию целочисленные литералы в Джаве определены типом int. Поэтому нужно быть аккуратным при записи чисел, которые выходят за диапазоны int. Например, максимальное значение int равно 2,147,483,647. Проверить это можно следующей строкой System.out.println(Integer.MAX_VALUE);
long max = 3123456789;
И получаю ошибку компиляции. Чтобы Джава поняла, что литерал не int, а long, нужно в конце числа написать дописать букву L: long max = 3123456789L;
long max = 3_123_456_789L;
System.out.println(56); // 56
System.out.println(0b11); // 3
System.out.println(017); // 15
System.out.println(0x1F); // 31