Я некоторые Java-код, который использует фигурные скобки два способовЧто фигурные скобки в Java означают сами по себе?
// Curly braces attached to an 'if' statement:
if(node.getId() != null)
{
node.getId().apply(this);
}
// Curly braces by themselves:
{
List<PExp> copy = new ArrayList<PExp>(node.getArgs());
for(PExp e : copy)
{
e.apply(this);
}
}
outAMethodExp(node);
Что эти автономные фигурные скобки после первого if
заявления означает?
Дополнительная "выгода" в данном случае является то, что `copy` может быть мусор, собранный до` outAMethodExp() `возвращает. Если это длительный или интенсивный вызов, это может быть полезно. Я добавляю «выгоду» в кавычки, потому что рефакторинг в отдельные методы, как правило, намного чище и яснее, чем использование этого синтаксиса. – dimo414 2015-02-16 21:56:59
Фактически, определение области видимости переменной ** не влияет на сбор мусора. Во всех современных JVM, о которых я знаю, JIT может определить, что объект имеет право на GC, независимо от наличия или отсутствия конкретизирующих конструкций, таких как фигурные скобки. – 2016-10-19 09:46:00