java中不同数据类型的运算

今天上班的时候,不是很忙,看到java编程的群里发了一个问题:1+‘1’+1+1+“0”,请问等于多少,我相信不少人看到这样的问题肯定有点蒙,至少我刚开始的时候是懵逼的,很好奇答案到底是什么,于是就在mian函数里面输入System.out.println(1+'1'+1+1+"1");看控制台打印的是多少?结果呢。。。结果后面再说哈哈(结果是你们经常和女朋友说的)。

出于好奇我就仔细的研究了一下,到底是什么原因,到底怎么得来的。

我就开始从前面一个一个测试:

public class DateType {
	public static void main(String[] args) {
		System.out.println(1+'1');
	}
}		

控制台输出:50,那说明‘1’就表示49,在ascii码表里里面可以查到字符1对应的10进制ascii值为49,”0“表示在后面拼接一个字符0,这样就很容易知道结果了。

当我换了位置重新测试一下又发现了问题:

public class DateType {
	public static void main(String[] args) {
		System.out.println("1"+1+1);
	}
}
public class DateType {
	public static void main(String[] args) {
		System.out.println("1"+1+'1');
	}
}

控制台输出结果都是:111,先开始我也为第二结果为1149
说明第一个为字符时,后面不管什么类型都是字符,还有最后输出的结果的数据类型都是字符类型。

总结:不同的数据类型运算,从前往后计算,如果是整形,正常的10进制计算,遇到字符转成10进制的ascii码值计算,有字符就直接拼接字符,遇到字符的,后面都是字符,就没必要转化。

这些在开发中应该很少遇到,当时在一些面试题中可能会出现,希望能帮助到大家,第一次写博客,可能很多地方写的不好,以后继续努力,继续坚持,谢谢大家!




  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱折腾的Albert

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值