我知道我可以这样使用逗号运算符
for (int i = 1, j = 15; j>10; i++, j--) {
// do something neat
}
但是有些文章似乎建议可以在for循环声明之外使用逗号运算符,例如
int j = 2, k = 4 ;
int x ;
// Assignment statement with comma operator
x = j + 1, k ;
来源:http :
//www.cs.umd.edu/~clin/MoreJava/ControlFlow/comma.html
要么
int x = (expression) ? (i++,2) : 3;
来源:http://codingdict.com/questions/144878
对于代码混淆竞赛或使我的同事困惑,这将是一个绝妙的技巧,但是两个示例都无法编译(Java 1.6,Eclipse
Juno),错误是“分配的左侧必须是变量”。我尝试查看编译器设置,以查看是否可以禁止它以防止错误代码,但没有运气。
怎么了?逗号运算符是旧规范的一部分吗?编写这些示例的人是否使用允许此操作的其他Java设置?
怎么了?
在C中起作用的一些技巧在Java中不起作用。
逗号运算符是旧规范的一部分吗?
这在Java AFAIK中从未起作用。
编写这些示例的人是否使用允许此操作的其他Java设置?
假定Java与C或C
类似,这是一个常见错误,因为它很相似。SO上的大部分编码错误是由于人们试图用Java编写C
而在它没有达到他们期望的目标时感到困惑。
顺便说一句:假设C 就像Java,因为我对C 的了解不是最新的,所以我犯了同样的错误。
但是有些技巧可以使Java正常工作,但可能不适用于C。
您可以使用所有货币符号,也可以使用一些看起来最多的货币符号。
例如
if( ⁀ ‿ ⁀ == ⁀ ⁔ ⁀ || ¢ + ¢== ₡)
您可以使用不可见的字符和c对,在打印时可以反转其余行的顺序。;)
该程序编译并运行并打印您可以在Java标识符中使用的所有奇数字符
for (char ch = 0; ch < Character.MAX_VALUE; ch++)
if (Character.isJavaIdentifierPart(ch) && !Character.isJavaIdentifierStart(ch))
System.out.printf("%04x <%s>%n", (int) ch, "" + ch);
这使得它太容易了。
http://vanillajava.blogspot.co.uk/2012/08/uses-for-special-characters-in-
java-code.html
http://vanillajava.blogspot.co.uk/2012/09/hidden-
code.html
问题内容: 为什么以下工作正常? 但是据说这是危险的/不正确的: 是否需要在循环外声明变量? 问题答案: 局部变量的范围应始终尽可能小。 在你的例子我相信是不会使用的外while循环,否则你就不会问这个问题,因为它声明的内部while循环不会是一个选项,因为它不会编译。 所以,既然是不使用外循环,在尽可能小的范围是内 while循环。 所以,答案是着重那绝对应该被while循环内声明。没有,没有,
问题内容: 我一直想知道,一般而言,在循环之前声明一个扔掉的变量(而不是在循环内部重复)是否会产生(性能)差异?Java中的一个例子(毫无意义): a)循环前声明: b)循环内的声明(反复): a或b哪个更好? 我怀疑重复变量声明(示例b)在理论上会产生更多开销,但是编译器足够聪明,因此无关紧要。示例b的优点是更紧凑,并将变量的范围限制在使用它的地方。尽管如此,我还是倾向于根据示例a进行编码。 问
C++ 运算符 使用逗号运算符的为了把几个表达式串在一起。整个逗号表达式的值是以逗号分隔的列表中的最后一个表达式的值。从本质上讲,逗号的作用是导致一系列运算被顺序执行。 最右边的那个表达式的值将作为整个逗号表达式的值,其他表达式的值会被丢弃。例如: var = (count=19, incr=10, count+1); 在这里,首先把 count 赋值为 19,把 incr 赋值为 10,然后
逗号运算符的目的是将几个表达式串起来。 以逗号分隔的表达式列表的值是最右侧表达式的值。 本质上,逗号的效果是导致执行一系列操作。 其他表达式的值将被丢弃。 这意味着右侧的表达式将成为整个逗号分隔表达式的值。 例如 - var = (count = 19, incr = 10, count+1); 这里首先指定计数值19,指定incr值10,然后将count加1,最后指定var最右边表达式的值,c
问题内容: 在循环内部声明变量是否不好?在我看来,这样做,如下面的第一个代码块所示,将使用第二次的十倍的内存…由于在循环的每次迭代中都创建了一个新的字符串。这样对吗? 与 问题答案: 在循环内部声明变量是否不好? 一点也不!它将变量本地化到其使用点。 在我看来,如下面的第一个代码块所示,这样做将使用十倍于第二个内存的内存。 编译器可以优化内容以保持内存使用效率。仅供参考:如果您使用关键字告诉您变量
我试图将我的编程风格从命令式切换到声明式,但有一些概念困扰着我,比如当涉及到循环时的性能。例如,我有一个原始数据,在操作它之后,我希望得到3个预期结果:itemsHash、namesHash、rangeItemsHash 为了达到预期的结果,命令式只循环一次,而声明式至少循环3次(、、)。哪一个比较好?在性能上有什么权衡吗?