不同的是,他们在内存中所占的空间大小不同,short通常为int所占一半,也有一些实现为和int一样,但不会比int大。
所占内存空间不同,那么可用表示的整数范围也就不同。
至于具体能表示什么范围,这个问题是体系结构和编译环境相关的。你可以试试以下C++程序
#include <iostream>
using namespace std
int main()
{
cout<<sizeof(short)<<endl
cout<<sizeof(int)<<endl
cout<<sizeof(long)<<endl
cout<<sizeof(__int64)<<endl
}
在我的电脑上VC8,编译运行结果是
2
4
4
8
也就是说short占2字节(byte),int和long一样占4字节,__int64占8字节,占字节数越多,所能表示的数的范围越大!
如: 2字节有符号整数 ,即 16位, 范围是 -2^15 ~ 2^16-1 , 2^n表示2的n次方。
不能直接setVal(1)这样,会报错,setVal((Short)1)这样也报错,short直接可以用,只要范围在:-32768 到 32767即可。long也可以不写L的,直接赋值就可以。
short a = 1
void method(a){}
或者
void method((short)1){}
原因:如果不转换或者声明short的话,默认为int类型。
扩展资料:
Java原来是用作编写消费类家用电子产品软件的语言,所以它是被设计成写高可靠和稳健软件的。Java消除了某些编程错误,使得用它写可靠软件相当容易。
Java是一个强类型语言,它允许扩展编译时检查潜在类型不匹配问题的功能。Java要求显式的方法声明,它不支持C风格的隐式声明。这些严格的要求保证编译程序能捕捉调用错误,这就导致更可靠的程序。
参考资料来源:百度百科-Java
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)