+ -
当前位置:首页 → 问答吧 → 一个简单的关于int 和short ,byte 的问题,高手请进

一个简单的关于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 谢谢.

作者: 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呢?编译器崩溃了!编译期不是神啊!

作者: goldenfish1919   发布时间: 2011-12-08

引用 1 楼 goldenfish1919 的回复:

short_test=100;//为什么这个可以编译通过? 100默认不是int 类型的吗?
照你这么说,short类型就没法赋值了?
short s = 1;不是一样的道理?
只要在short的范围以内,就可以直接赋值。

short_test=int_test;//为什么这个就会报非运行时异常.
int_test是一个变量,编译期只知道这是一个int,又不知道这个int到底是……

+1

作者: xiaoqiuwyh   发布时间: 2011-12-08

热门下载

更多