Комментарии (6)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Артём
Уровень 41
7 января 2020, 05:48
если есть объект, у которого есть final-поле, то этот объект можно будет использовать только после установки этого final-поля (и всего, на что это поле может ссылаться). Не стоит, впрочем, забывать, что если вы передадите из конструктора ссылку на конструируемый объект (т.е. this) наружу, то кто-то может увидеть ваш объект в недостроенном состоянии. достаточно сделать поле, запись в которое происходит последней, final, как всё магически заработает и без volatile и без синхронизации каждый раз
Артём
Уровень 41
15 сентября 2019, 12:34
InputStream
Артём
Уровень 41
15 сентября 2019, 12:21
OutputStream
Артём
Уровень 41
30 августа 2019, 07:45
Если бы метод был бы статическим , то он был бы общим для всех объектов , и блокировался доступ для всех нитей , которые обращаются к этому методу. Обратите внимание , что есть мьютекс объекта и мьютекс класса . Если нить обращается к не статическому методу , то блокируется мьютекс этого объекта и ВСЕ НЕ статические синхронизированные методы этого объекта становятся заблокированными. Если нить обращается к статическому методу ( а он общий для всех ) то блокируется мьютекс класса и ВСЕ СТАТИЧЕСКИЕ методы становятся заблокированными. Но если у объекта один синхронизированный метод статический , а другой синхронизированный метод не статический они могут одновременно выполняться .
Артём
Уровень 41
22 августа 2019, 17:36
// 1.
for (Map.Entry<String, String> entry: hashmap.entrySet())
    System.out.println(entry.getKey() + " = " + entry.getValue());

// 2.
for (String key: hashmap.keySet())
    System.out.println(hashmap.get(key));

// 3.
Iterator<Map.Entry<String, String>> itr = hashmap.entrySet().iterator();
while (itr.hasNext())
    System.out.println(itr.next());
Артём
Уровень 41
18 июля 2019, 12:42
kaizen way..