一个简单的关于int 和short ,byte 的问题,高手请进
时间:2011-12-08
来源:互联网
请教大家一个问题,,,
public class IntegerTest {
public static void main(String[] args) {
short short_test;
int int_test;
float float_test;
short_test=100;//为什么这个可以编译通过? 100默认不是int 类型的吗?
//float_test=1.2;
int_test=50;
short_test=int_test;//为什么这个就会报非运行时异常.
System.out.println(short_test);
}
百度上我也搜了 ,都没有从问题的本质出发,我想知道他们底层是怎么实现的. 顺便也分析下byte 谢谢.
public class IntegerTest {
public static void main(String[] args) {
short short_test;
int int_test;
float float_test;
short_test=100;//为什么这个可以编译通过? 100默认不是int 类型的吗?
//float_test=1.2;
int_test=50;
short_test=int_test;//为什么这个就会报非运行时异常.
System.out.println(short_test);
}
百度上我也搜了 ,都没有从问题的本质出发,我想知道他们底层是怎么实现的. 顺便也分析下byte 谢谢.
作者: Ricky_LS 发布时间: 2011-12-08
short_test=100;//为什么这个可以编译通过? 100默认不是int 类型的吗?
照你这么说,short类型就没法赋值了?
short s = 1;不是一样的道理?
只要在short的范围以内,就可以直接赋值。
short_test=int_test;//为什么这个就会报非运行时异常.
int_test是一个变量,编译期只知道这是一个int,又不知道这个int到底是多大,那么,到底short到底能不能容下这个int呢?编译器崩溃了!编译期不是神啊!
照你这么说,short类型就没法赋值了?
short s = 1;不是一样的道理?
只要在short的范围以内,就可以直接赋值。
short_test=int_test;//为什么这个就会报非运行时异常.
int_test是一个变量,编译期只知道这是一个int,又不知道这个int到底是多大,那么,到底short到底能不能容下这个int呢?编译器崩溃了!编译期不是神啊!
作者: goldenfish1919 发布时间: 2011-12-08
引用 1 楼 goldenfish1919 的回复:
short_test=100;//为什么这个可以编译通过? 100默认不是int 类型的吗?
照你这么说,short类型就没法赋值了?
short s = 1;不是一样的道理?
只要在short的范围以内,就可以直接赋值。
short_test=int_test;//为什么这个就会报非运行时异常.
int_test是一个变量,编译期只知道这是一个int,又不知道这个int到底是……
short_test=100;//为什么这个可以编译通过? 100默认不是int 类型的吗?
照你这么说,short类型就没法赋值了?
short s = 1;不是一样的道理?
只要在short的范围以内,就可以直接赋值。
short_test=int_test;//为什么这个就会报非运行时异常.
int_test是一个变量,编译期只知道这是一个int,又不知道这个int到底是……
+1
作者: xiaoqiuwyh 发布时间: 2011-12-08
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28