Отвечая на вопрос Как я могу иметь уникальное целое приложение широкого диапазона:
Если оно должно быть уникальным даже после перезапуска или если ваше приложение кластеризовано, вы можете использовать последовательность базы данных.
Еслион просто должен быть уникальным во время выполнения, использовать статический AtomicInteger .
РЕДАКТИРОВАТЬ (пример добавлен):
public class Sequence {
private static final AtomicInteger counter = new AtomicInteger();
public static int nextValue() {
return counter.getAndIncrement();
}
}
Использование:
int nextValue = Sequence.nextValue();
Это потокобезопасный (разные потоки всегда будут получать разные значения, и никакие значения не будут "потеряны")