Java中初学者比较爱出错的运算问题

原创 2004年08月09日 20:38:00

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

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个操作数是否是同一对象

Java中初学者比较爱出错的运算问题(zt)

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

初学者在java学习中常见的30个问题

本文回答了30个JAVA入门级初学者的常见问题。如我可以用%除以一个小数吗? a += b 和 a = a + b 的效果有区别吗? 声明一个数组为什么需要花费大量时间? 为什么Java库不用随机pi...
  • GePriniusce
  • GePriniusce
  • 2016-07-29 03:47:50
  • 898

java中,数值型Double运算出错问题

在java中(在python,js其他语言中也存在),某些double型数值运算会出错,例如0.1+0.2或者0.1*3会得到结果0.30000000000000004,网上有人提出解决办法如下: ...
  • XiaoKanZheShiJie
  • XiaoKanZheShiJie
  • 2015-08-02 15:13:57
  • 1098

Integer的计算比较

Integer的计算比较
  • kingo0
  • kingo0
  • 2017-02-14 11:25:27
  • 1108

java 浮点数 运算出错

java 浮点 运算出错
  • wangjun5159
  • wangjun5159
  • 2016-05-10 13:50:45
  • 1105

Java同一变量赋值的特殊性

看到一道java面试题, http://www.iteye.com/topic/644423 public static void main(String[] args) {  int ...
  • zpyzly
  • zpyzly
  • 2012-03-06 17:37:01
  • 745

java初学者常见的问题

本文为那些准Java程序员们准备了一系列广为流传的Java最佳编程实践:1.    优先返回空集合而非null如果程序要返回一个不包含任何值的集合,确保返回的是空集合而不是null。这能节省大量的”i...
  • u011225629
  • u011225629
  • 2016-03-30 09:17:13
  • 2316

Java学习笔记(运算符/Java的算术运算符/赋值运算符/比较运算符/逻辑运算符)

一:什么是运算符          运算符是一种“功能”符号,用以通知 Java 进行相关的运算。譬如,我们需要将变量 age 的值设置为 20 ,这时候就需要一个“=”,告诉程序需要进行赋值操作。...
  • angeljing521
  • angeljing521
  • 2016-08-11 17:02:18
  • 1736

java double类型运算问题

问题重现: double i = 0.1; System.out.println(i+i+i); 运行上面的语句,最终的结果是: 很奇怪,并不是想象中的0.3,错误在哪里? 原因:这其实是计算...
  • u010900754
  • u010900754
  • 2016-04-13 14:12:33
  • 863

java中不同数据类型的运算

今天上班的时候,不是很忙,看到java编程的群里发了一个问题:1+‘1’+1+1+“0”,请问等于多少,我相信不少人看到这样的问题肯定有点蒙,至少我刚开始的时候是懵逼的,很好奇答案到底是什么,于是就在...
  • qq_36325121
  • qq_36325121
  • 2017-02-24 19:11:47
  • 820
收藏助手
不良信息举报
您举报文章:Java中初学者比较爱出错的运算问题
举报原因:
原因补充:

(最多只允许输入30个字)