当前位置: 代码迷 >> Java相关 >> Java小题目有点不明白
  详细解决方案

Java小题目有点不明白

热度:94   发布时间:2007-01-08 00:15:23.0
Java小题目有点不明白
short s1 = 1; s1 = s1 + 1;short s1 = 1; s1 += 1;谁是正确的谁是错误的并说明理由?
sleep() 和 wait() 有什么区别?
,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?为什么?

搜索更多相关的解决方案: Java  

----------------解决方案--------------------------------------------------------
short 比 int 短,1 为 int 型
所以s1 = s1 + 1中 右边将自动转化为int型,而左边是short型,所以出错了
Math.round(xxx)取 最靠近整数的值
----------------解决方案--------------------------------------------------------
sleep是自动唤醒进程的
wait()不能自动唤醒进程,需要其他进程唤醒
----------------解决方案--------------------------------------------------------

长见识了
----------------解决方案--------------------------------------------------------
以下是引用亮剑在2007-1-8 0:15:23的发言:
short s1 = 1; s1 = s1 + 1;short s1 = 1; s1 += 1;谁是正确的谁是错误的并说明理由?
sleep() 和 wait() 有什么区别?
,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?为什么?

s1=s1+1;有错,s1是short型,s1+1是int型,不能显式转化为short型。

sleep()方法是使线程停止一段时间的方法。在sleep 时间间隔期满后,线程不一定立即恢复执行。这是因为在那个时刻,其它线程可能正在运行而且没有被调度为放弃执行,除非(a)“醒来”的线程具有更高的优先级,(b)正在运行的线程因为其它原因而阻塞。
wait()是线程交互时,如果线程对一个同步对象x 发出一个wait()调用,该线程会暂停执行,被调对象进入等待状态,直到被唤醒或等待时间到。

Math.round(11.5)返回12,Math.round(-11.5)返回-11.
它的原理是参数+0.5后取整.


----------------解决方案--------------------------------------------------------
楼上解释得很到位

----------------解决方案--------------------------------------------------------

唉,我都忘了这些东西了!现在又记多一遍了!


----------------解决方案--------------------------------------------------------
刻苦学习中........
----------------解决方案--------------------------------------------------------

呵呵


----------------解决方案--------------------------------------------------------
  相关解决方案