Чтобы знать как проще, нужно знать как обоими способами; поделитесь со мной про "со стороны бд". Вот что пришло в голову: определить количество цифр с помощью length, и для каждого количества – свой набор сравнений между вырезанными функцией substr цифрами.
Интересуют ещё алгоритмы через check, а так же способна ли на сравнение символов строки между собой регулярка?
Сергей Горностаев, а если к одной константе обращаемся много раз, компилятор при переводе в байт-код умеет ведь посчитать её (выполнить то, что после знака =) только 1 раз вместо множества раз?
Для этого наверно ему нужно какие-то данные в оперативную память загрузить, но только на время компиляции?
Сергей Горностаев, я обратился к статическому полю – инициализация класса (выполнение статического блока её часть) не произошла:
public class Solution {
static final int c = 10;
static {
System.out.println("static");
}
}
class MyClass {
public static void main(String[] args) {
System.out.println(Solution.c);
}
}
// Вывод: 10
Я имел ввиду без последующей инициализации класса...
Сергей Горностаев,
1. Ссылочный тип: что бы поместить в такую переменную (константу) что-то, нужен созданный объект, или поместить null. При компиляции объекты не создаются, значит не свернётся?
2. Я запускаю приведённый в вопросе код с ключом -verbose:class и вижу в консоли, что класс Solution не загружается (согласно тому как работает и что обозначает -verbose:class). А при обращении к переменной статической – загружается. В чём отличие? Загрузка при обращении к статической константе какая-то неполная?
1. А если константа будет сложного типа, и для инициализации надо создать объект – компилятор не свернёт?
2. Правильно ли я понимаю:
– при первом обращении к статической константе класса, будет загрузка только в metaspace с инициализацией пула констант?
– а при первом обращении к статической переменной класса: тоже самое + 1) загрузка всего класса (тела методов и т. д.) в оперативную память, 2) инициализация полей (не обязательно произойдёт), 3) выполнение статических блоков инициализации?
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Интересуют ещё алгоритмы через check, а так же способна ли на сравнение символов строки между собой регулярка?