当前位置:  技术问答>java相关

错在那里???

    来源: 互联网  发布时间:2017-03-12

    本文导语:  public class e2 { public static void main(String[] args)  { int i=10; short j; int k=j; j=i; System.out.println(j); } } | 很简单,可能导致精度的缺失 short在java中是2字节,而int是4字节类型,你把一个int型的数据...

public class e2
{
public static void main(String[] args) 
{
int i=10;
short j;
int k=j;
j=i;
System.out.println(j);
}
}

|
很简单,可能导致精度的缺失
short在java中是2字节,而int是4字节类型,你把一个int型的数据转化到一个short,就有可能出项精度丢失。
如果你的int型数据值大于short的最大或者最小表示范围就会发生的。
如你的int为100000,而short的表示范围为(-32768---32767)

|
public class e2
{
public static void main(String[] args) 
{
int i=10;//4 bytes
short j; //2 bytes
int k=j;//应该使用short默认值,要么报错j没有初始化
j=i;//出错,从小转大可以,否则要使用(int)
System.out.println(j);
}
}

|
在你没有初始化j的情况下,就用j来给k赋值,这里是错误的。
还有就是j=i;有可能造成精度损失

|
类成员可以先不初始化,但方法里的变量必须初始化

|
short和int要求的位数不同需进行强制转换并且j需要初始化

|
up

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。














站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3