Questions tagged «final»



8
Java Final变量是否具有默认值?
我有一个这样的程序: class Test { final int x; { printX(); } Test() { System.out.println("const called"); } void printX() { System.out.println("Here x is " + x); } public static void main(String[] args) { Test t = new Test(); } } 如果我尝试执行它,我将得到编译器错误:variable x might not have been initialized基于Java默认值,我应该得到以下输出? "Here x is 0". 最终变量会具有dafault值吗? …
81 java  final 

2
在ArrayBlockingQueue中,为什么将最终成员字段复制到本地最终变量中?
在中ArrayBlockingQueue,所有需要锁定的方法都将final在调用之前将其复制到局部变量lock()。 public boolean offer(E e) { if (e == null) throw new NullPointerException(); final ReentrantLock lock = this.lock; lock.lock(); try { if (count == items.length) return false; else { insert(e); return true; } } finally { lock.unlock(); } } 没有任何理由复制this.lock到一个局部变量lock时,现场this.lock的final? 此外,E[]在执行操作之前,它还会使用的本地副本: private E extract() { final E[] items = this.items; …

7
java:“最终” System.out,System.in和System.err?
System.out声明为public static final PrintStream out。 但是您可以致电System.setOut()重新分配它。 ??如果是这样怎么可能final? (System.in和适用于System.err) 更重要的是,如果您可以对public static final字段进行突变,那么就可以为final您提供的保证(如果有)意味着什么?(我从未意识到,也没想到System.in/out/err表现为final变量)
80 java  final 


2
使用try / catch进行最终变量分配
因为我认为这是一种很好的编程习惯,所以final如果我的所有(局部或实例)变量只打算编写一次,则可以对其进行修改。 但是,我注意到,当变量赋值可以引发异常时,您不能将所述变量定为最终变量: final int x; try { x = Integer.parseInt("someinput"); } catch(NumberFormatException e) { x = 42; // Compiler error: The final local variable x may already have been assigned } 有没有办法不用临时变量来做到这一点?(或者这不是最终修饰符的正确位置吗?)
73 java  final 

12
最终的ArrayList是什么意思?
通过使ArrayList(或其他Collection)成为最终形式,我们可以获得哪些优点/缺点?我仍然可以将新元素添加到ArrayList中,删除元素并进行更新。但是,什么才是最终的效果呢?
68 java  arraylist  final 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.