java中不同数据类型的运算
2017-02-24 19:11
211 查看
今天上班的时候,不是很忙,看到java编程的群里发了一个问题:1+‘1’+1+1+“0”,请问等于多少,我相信不少人看到这样的问题肯定有点蒙,至少我刚开始的时候是懵逼的,很好奇答案到底是什么,于是就在mian函数里面输入System.out.println(1+'1'+1+1+"1");看控制台打印的是多少?结果呢。。。结果后面再说哈哈(结果是你们经常和女朋友说的)。
出于好奇我就仔细的研究了一下,到底是什么原因,到底怎么得来的。
我就开始从前面一个一个测试:
控制台输出:50,那说明‘1’就表示49,在ascii码表里里面可以查到字符1对应的10进制ascii值为49,”0“表示在后面拼接一个字符0,这样就很容易知道结果了。
当我换了位置重新测试一下又发现了问题:
控制台输出结果都是:111,先开始我也为第二结果为1149
说明第一个为字符时,后面不管什么类型都是字符,还有最后输出的结果的数据类型都是字符类型。
总结:不同的数据类型运算,从前往后计算,如果是整形,正常的10进制计算,遇到字符转成10进制的ascii码值计算,有字符就直接拼接字符,遇到字符的,后面都是字符,就没必要转化。
这些在开发中应该很少遇到,当时在一些面试题中可能会出现,希望能帮助到大家,第一次写博客,可能很多地方写的不好,以后继续努力,继续坚持,谢谢大家!
出于好奇我就仔细的研究了一下,到底是什么原因,到底怎么得来的。
我就开始从前面一个一个测试:
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码值计算,有字符就直接拼接字符,遇到字符的,后面都是字符,就没必要转化。
这些在开发中应该很少遇到,当时在一些面试题中可能会出现,希望能帮助到大家,第一次写博客,可能很多地方写的不好,以后继续努力,继续坚持,谢谢大家!
相关文章推荐
- java中不同类型数据运算时转换问题
- java基础复习1--基本数据类型、运算符号、表达式语句与程序结构
- C语言中不同数据类型间混合运算的转换规则
- Java中基本数据类型的转换、原码和补码的表示及运算
- java个人学习笔记02(注释+数据类型+算术逻辑运算)
- JAVA基础——数据类型及运算
- C语言中不同数据类型间混合运算的转换规则
- java基本数据类型之间赋值与运算归纳
- Java基础<二>--->关键字、数据类型、运算
- java运算中的数据类型变化
- 在Java中byte类型数据在运算的问题
- C语言不同数据混合运算时类型转换
- javascript不同类型数据之间的运算的转换方法
- java 存储不同类型数据
- java、进制、数据类型与运算
- 在Java中byte类型数据在运算的问题
- 我的读书笔记之-----Java基本数据类型间的运算
- javascript不同类型数据之间的运算的转换方法
- javascript不同类型数据之间的运算是如何转换的
- Java反射技术绕过ArrayList泛型编译期间检查, 将不同类型数据存到一起