我在eclipse中试了一下,如果int值较小的话,会内部转换,较大的话会提示error
不过double转float需要显示的转化
写成1.2f
建议看下类型向上向下cast的原则
不过double转float需要显示的转化
写成1.2f
建议看下类型向上向下cast的原则
解决方案 »
- [求助]想把带Checkbox的JTree改造成单态树,试图对TreePath做改造不成功,请求指点思路!
- 求证一下 primitive type 都有继承Object的语意吗?
- 一直以来都有个问题不太明白.
- FileLock.lock为什么不阻塞?
- 关于静态类,急·~~~~~~~~~~帮帮忙~~~~~~~~~~~~~~~~~~~~~在线等
- JSpinner 构造问题?
- java 如何读取 outlook 通讯录
- 简单问题:我在jbuilder中用 import ConsoleReader.*的时候,提示我找不到目录???
- java 如何获取对象实例的大小
- 请大家帮翻译这句话
- hashmap数组里存放的key都是同一个对象
- 一个最基本的关于判断字符串是否为空的问题
short的取值范围为-32768~32767,占用2个字节(-2的15次方到2的15次方-1)
还有,20 是short类型不是int类型,除非:int s=20才是int类型,然后short sh=s;这样才会发生类型不匹配的现象。
这个不是赋值,而是定义,后面缺少了后缀f.要赋值你就重新定义一个double类型的变量,然后赋值,遵循数据类型转换原则。
这里其实是2个动作
1) short s; 声明了一个变量s,类型为short
2) 声明的同时完成了初始化, 初始化的值为20
所以这种情况下,下面的20被Java的编译器尝试与左边的s进行绑定,发现是范围内的数字,就绑定成功。
而下面这种情况就会是编译错误
int a = 20;
short s = a; 提示你把一个int转换成short,注意这里int并未声明为final的而
final int a = 20;
short s = a; 是编译成功的,为什么,因为这时a就是final的,编译器把这个过程直接做了编译优化,认为等价于赋值
short s = 20;