我从Java的官方教程中读到前缀和后缀++ - 具有不同的优先级:
后缀:expr ++ expr--
一元:++ expr --expr + expr -expr~!
根据教程,不应该这样
d = 1; System.out.println(d++ + ++d);
打印6(d++
使d 2,++d
使它3)而不是4?
我知道++d
事先评估的解释,但如果d++
有更高的优先权++d
,为什么不d++
首先评估?更重要的是,在什么情况下应该d++
表明它具有更高的优先级?
编辑:
我尝试了以下方法:
d = 1; System.out.println(++d * d++);
它返回4.它似乎应该是2*2,而不是1*3.
背景
我正在使用三星Galaxy标签(7")的Wi-Fi版本进行一个项目.在某些设备上,我们看到设备上的日期/时间被重置(不知道为什么)到某个日期在过去(如2000年1月1日).
问题(S)
如何以编程方式重置设备日期/时间?如果可能的话,我更愿意使用一些adb shell命令(我的shell脚本生锈).如果没有可以实现此目的的shell命令,有没有办法通过编写和安装应用程序来实现这一点(似乎是安全违规)?
我最近在考虑从Java抛出构造函数是否好.目前这是我收集的内容:
在这里,StackOverflow先生(又名Jon Skeet)似乎没有任何反对意见,但他确实暗示要让子类抛出异常.当子类抛出异常时会发生什么(什么都不好?)
http://futuretask.blogspot.com/2006/05/java-tip-10-constructor-exceptions-are.html
这篇博客文章"构造函数异常是邪恶的"告诉我一种方法来表明构造函数异常可能是危险的.然而,这个例子似乎真的很深奥.这里有真正的危险吗?
我想如果使用静态工厂方法(Effective Java 2nd ed.,Item 1)而不是公共构造函数,我们可以安全地从构造函数中删除异常到静态工厂方法.这是避免构造函数异常的有效方法吗?这在任何地方都有用或有用吗?
任何输入都有帮助和赞赏.谢谢!
我正在编写一个具有以下结构的网页:
为了保证正确性,只有在另一个表完全更新(即完成计算)之后才需要更新表.但是,我不知道如何有效地实现这一点,我wait
在JavaScript中找不到任何工具.
目前,我使用以下方法:
updated
并制作它false
;while
循环,直到updated
为true
;updated
为true
.这对我来说似乎不直观,但我想不出任何其他方式.有没有什么好方法可以做到这一点?
感谢您的任何投入!
我现在正在使用Ext-JS 4.0.2构建一个Web应用程序,我正在使用一个可编辑的网格来控制在同一页面上显示的数据.
为了使网格可编辑,我遵循API文档并使用以下内容:
selType: 'cellmodel',
plugins: [
Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 2
})
]
Run Code Online (Sandbox Code Playgroud)
但是,对于此网格,有几个单元不应该更改.
我可以简单地让事件处理程序在网格中更改后将数据更改回正确的状态,但这似乎是hacky,难以维护和不可读.有没有更好的方法来做到这一点?我读了API但找不到任何有用的属性.
UPDATE
至于这个特定的应用程序,只需禁用第一行即可.但我也有兴趣选择几个网格并使它们不可编辑(想象一个带网格的数独游戏).
我最近在亚马逊Ec2上试过码头; 当我试着开始; 我收到'地址已被使用'错误.
我确信此系统上没有其他服务器正在运行.
我甚至尝试将端口更改为8080到8090以外的其他端口
还是一样的.
这是堆栈跟踪.任何想法如何解决?
2011-08-16 17:22:14.722:WARN::FAILED SelectChannelConnector@10.122.219.58:8081 FAILED:
java.net.BindException: Address already in use
2011-08-16 17:22:14.722:WARN::FAILED org.eclipse.jetty.server.Server@7dc05ffd:
java.net.BindException: Address already in use
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.eclipse.jetty.start.Main.invokeMain(Main.java:469)
at org.eclipse.jetty.start.Main.start(Main.java:612)
at org.eclipse.jetty.start.Main.parseCommandLine(Main.java:265)
at org.eclipse.jetty.start.Main.main(Main.java:79)
Caused by: java.net.BindException: Address already in use
Run Code Online (Sandbox Code Playgroud)
这是netstat的输出
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 15507/nginx
tcp 0 0 0.0.0.0:4369 0.0.0.0:* LISTEN 24836/epmd
tcp 0 0 0.0.0.0:28017 0.0.0.0:* LISTEN …
Run Code Online (Sandbox Code Playgroud) 我在我的gcc上尝试过这个:
int a=1;
cout<<(--a)--;
Run Code Online (Sandbox Code Playgroud)
输出为0; 但改成它
cout<<--(a--);
Run Code Online (Sandbox Code Playgroud)
导致错误(减值操作数需要左值).有人可以告诉我这件事吗?
谢谢!
在我编写的项目中,我需要从函数返回一个线程安全且不可变的视图.但是,我不确定这一点.由于synchronizedList
与unmodifiableList
刚刚返回视图列表中,我不知道
Collections.synchronizedList(Collections.unmodifiableList(this.data));
会做的伎俩.
任何人都可以告诉我这是否正确,如果不是,是否有任何情况可能会失败?
感谢您的任何投入!
我试图在Java中测试自动装箱和拆箱的速度,但是当我尝试将它与原语上的空循环进行比较时,我注意到了一个奇怪的事情.这个片段:
for (int j = 0; j < 10; j++) {
long t = System.currentTimeMillis();
for (int i = 0; i < 10000000; i++)
;
t = System.currentTimeMillis() - t;
System.out.print(t + " ");
}
Run Code Online (Sandbox Code Playgroud)
每次我运行它,它返回相同的结果:
6 7 0 0 0 0 0 0 0 0
为什么前两个循环总是需要一些时间,其余的似乎被系统跳过?
在这篇文章的答案中,据说Just-In-Time编译将能够优化这一点.但如果是这样,为什么前两个循环还需要一些时间?
我正在阅读LYAH,在第9章中,我发现了一个奇怪的问题.作者提供了实现"randoms"功能的示例:
randoms' :: (RandomGen g, Random a) => g -> [a]
randoms' gen = let (value, newGen) = random gen in value:randoms' newGen
Run Code Online (Sandbox Code Playgroud)
好吧,这个编译得很好.但是,如果我将第二行更改为:
randoms' gen = (fst (random gen)) : (randoms' (snd (random gen)))
Run Code Online (Sandbox Code Playgroud)
此文件报告加载时出错:
IOlesson.hs:4:52:
Ambiguous type variable `a' in the constraint:
`Random a' arising from a use of `random' at IOlesson.hs:4:52-61
Probable fix: add a type signature that fixes these type variable(s)
Failed, modules loaded: none.
Run Code Online (Sandbox Code Playgroud)
如果我将此行更改为:
randoms' gen = (fst (random gen)) : (randoms' gen)
Run Code Online (Sandbox Code Playgroud)
然后这将做得很好,并且如预期的那样,这将返回所有相同元素的列表. …
java ×4
increment ×2
javascript ×2
adb ×1
amazon-ec2 ×1
android ×1
c++ ×1
constructor ×1
decrement ×1
events ×1
exception ×1
extjs ×1
galaxy ×1
ghci ×1
grid ×1
haskell ×1
jetty ×1
jit ×1
list ×1
loops ×1
performance ×1
prefix ×1
primitive ×1
synchronized ×1
types ×1
unmodifiable ×1
wait ×1