面试题: 看下面的程序是否有问题 如果有问题请指出 并说明 (关于数据类型-隐性转换的小陷阱)
来源:互联网 发布:vb小游戏 编辑:程序博客网 时间:2024/04/29 04:58
package Exercise;
public class Text_10 {
// 面试题: 看下面的程序是否有问题 如果有问题请指出 并说明
public static void main(String[] args) {
byte b1 = 3;
byte b2 = 4;
// 无法编译 byte b4 = b1 + b2;
// 答案:存在隐性转换,因此会自动提升到int类型,但原数据类型是byte,所以需要强制转换
int b41 = b1 + b2;
byte b42 = (byte) (b1 + b2);
System.out.println("b41=" + b41 + ";b42=" + b42);
short s = 1;
// s=s+1; 编译不通过的,提示损失精度 。
s = (short) (s + 1);// 答案:存在隐性转换,因此会自动提升到int类型,但原数据类型是short,所以需要强制转换
short s1 = 1;
s1 += 1; /*
* 能编译通过。隐式类型转换可以从小到大自动转
* 即byte->short->int->long如果反过来会丢失精度,必须进行显示类型转换 , 而s+=1的意思与s
* = s+1不同,s=s+1这句先执行s+1然后把结果赋给s,
* 由于1为int类型,所以s+1的返回值是int,编译器自动进行了隐式类型转换,
* 所以将一个int类型赋给short就会出错,而s+=1不同由于是+=操作符, 在解析时候s+=1就等价于s =
* (short)(s+1), 翻番来讲就是 s+=1 <=> s = (s的类型)(s+1)。
*/
public class Text_10 {
// 面试题: 看下面的程序是否有问题 如果有问题请指出 并说明
public static void main(String[] args) {
byte b1 = 3;
byte b2 = 4;
// 无法编译 byte b4 = b1 + b2;
// 答案:存在隐性转换,因此会自动提升到int类型,但原数据类型是byte,所以需要强制转换
int b41 = b1 + b2;
byte b42 = (byte) (b1 + b2);
System.out.println("b41=" + b41 + ";b42=" + b42);
short s = 1;
// s=s+1; 编译不通过的,提示损失精度 。
s = (short) (s + 1);// 答案:存在隐性转换,因此会自动提升到int类型,但原数据类型是short,所以需要强制转换
short s1 = 1;
s1 += 1; /*
* 能编译通过。隐式类型转换可以从小到大自动转
* 即byte->short->int->long如果反过来会丢失精度,必须进行显示类型转换 , 而s+=1的意思与s
* = s+1不同,s=s+1这句先执行s+1然后把结果赋给s,
* 由于1为int类型,所以s+1的返回值是int,编译器自动进行了隐式类型转换,
* 所以将一个int类型赋给short就会出错,而s+=1不同由于是+=操作符, 在解析时候s+=1就等价于s =
* (short)(s+1), 翻番来讲就是 s+=1 <=> s = (s的类型)(s+1)。
*/
阅读全文
0 0
- 面试题: 看下面的程序是否有问题 如果有问题请指出 并说明 (关于数据类型-隐性转换的小陷阱)
- .有两个CIDR地址块208.128/11和208.130.28/22。是否有那一个地址块包含了另一个地址?如果有,请指出,并说明理由。
- PHP数据类型隐性转换的陷阱
- 这几天编的随机数生成小程序,给学校利用的,请大家参考并指出问题!
- 近段时间遇到的 问题 纯记录 有问题请指出
- 渲染流水线的工作过程——个人理解,有问题请指出
- 在MFC中生成数据源过程中所遇到的问题及解决(如有错误,请指出)
- 关于Java的二进制输入输出流的一点总结(有错误请指出)
- 4.2分析下面程序,请指出错误的原因和程序错在哪里,并改正错误。
- 请检查如下代码,如有问题,请正确指出!(java、多线程)
- 指出下面代码的输出,并解释为什么(指针问题)
- 请大家看一下一个c语言中的链表问题,下面的代码是有错误的!!请大家说出错误的原因,以及修改的方法!!!
- sdl学习心的(有错误请指出)
- 有问题的程序
- 常用js判断(自己在总结的,有问题欢迎指出)
- Oracle数据类型的隐性转换
- 几个基础java的问题!~(仔细看哦 有陷阱的!!!勿陷)
- C语言实现的二叉树遍历(递归),如果有错误欢迎指出
- Git命令参考手册
- OkHttp3 配置Https证书请求
- 正则表达式的特殊字符
- Python实现SocketServer(一)
- 软件工程各阶段的评审内容
- 面试题: 看下面的程序是否有问题 如果有问题请指出 并说明 (关于数据类型-隐性转换的小陷阱)
- @RequestBody应用
- centos 安装git
- 三栏布局
- 自定义ProgressBar
- 活下去拿第一才是绝地求生的第一要务
- 达芬奇的这本“禁书”,竟让全世界顶礼膜拜了 500 年!
- android 理解 简介
- 【转】linux & windows C++开发差异