Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
Java中初学者比较爱出错的运算问题

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

其实我开始也是在运算上老爱出错,今天专门把他总结出来,大家可以先不要看答案,自己想想看,应该得到什么样的结果,然后再看看答案,就知道自己错在那里了,希望对大家的学习有所帮助!

public class test
{
 public void go()
 {
  int i=2, j=10;
  byte x=2,y=10;
  System.out.println((++i)*(j--));//1
  System.out.println("i="+i+"j="+j);//2
  System.out.println(9/2);//3
  System.out.println(5/10);//4
  System.out.println(5/10.0);//5
  System.out.println(x+y);//6
  System.out.println("hello"+2+3);//7
  System.out.println(2+3+"hello");//8
  System.out.println("hello"=="hello");//9
  System.out.println(new String("hello")==new String("hello"));//10
  System.out.println(new String("hello").equals(new String("hello")));// 11
  class interTest
  {
   String s="hello"; 
  }
  interTest it1=new interTest();
  interTest it2=new interTest();
  it1.s="hello";
  it1.s=it2.s;
  System.out.println(it1.equals(it2));//12
 }
 public static void main(String args[])
 {
  test t=new test();
  t.go();
 }
}

答案:

  1. 30  当一元运算符在操作数的前面时,是先进行自加,然后在进行运算,而当运算符在操作数的后面是,是先运算后自加,然后自加的数值参加下次运算。和for循环有点类似
  2. 1=3,j=9    同上
  3. 4  因为9和2全是int类型,所以结果也是int类型,只保留一个整数位4
  4. 0 同理
  5. 0.5   一个是int,一个是double,结果也就是double
  6. int 20 虽然2个操作数全是byte,但是结果是int
  7. hello23 前面的操作数为字符串,则系统自动将后续的操作数自动转换为字符串
  8. 5hello  如果前面的操作数不是字符串,则运算结果由后续操作数决定
  9. true 这2个操作数其实是一个对象
  10. false 这2个对象的值是一样的,但他们是2个不一样的对象
  11. true 使用equals比较的是2个对象的值;
  12. false 并不是所有类的equals()方法都是比较对象内容一样的,string类的equals方法是经过重载(overload)的。而类intertest的方法是从object类继承的,其功能还是比较2个操作数是否是同一对象



相关文章

相关软件