如果在算术运算中,short
自动升级为int
,那么原因是:
short thirty = 10 * 3;
对short
变量three
的合法赋值?
反过来,这:
short ten = 10;
short three = 3;
short thirty = ten * three; // DOES NOT COMPILE AS EXPECTED
除此之外:
int ten = 10;
int three = 3;
short thirty = ten * three; // DOES NOT COMPILE AS EXPECTED
不编译,因为在未按预期进行强制转换的情况下,不允许将int
值指定给short
。
数字文字有什么特别之处吗?
是的,文字大小写有一些特殊之处:10*3
将在编译时计算。因此,您不需要对乘以的文字进行显式的(短)
转换。
ten*three
不可在编译时计算,因此需要显式转换。
如果将10个
和3个
标记为final
,那将是另一回事。
因为编译器在编译时将10*3
替换为30。因此,实际上:short-three=10*3
是在编译时计算的。
尝试将ten
和三
更改为最终短
(使它们编译时间常量),看看会发生什么:P
使用javap-v
检查字节码的两种验证(10*3
和final short
)。你会发现两者几乎没有区别。
这是不同情况下的字节码差异。
案例1:
Java代码:main(){短s=10*3;}
字节码:
stack=1, locals=2, args_size=1
0: bipush 30 // directly push 30 into "s"
2: istore_1
3: return
案例2:
public static void main(String arf[]) {
final short s1= 10;
final short s2 = 3;
short s = s1*s2;
}
字节码:
stack=1, locals=4, args_size=1
0: bipush 10
2: istore_1
3: iconst_3
4: istore_2
5: bipush 30 // AGAIN, push 30 directly into "s"
7: istore_3
8: return
案例-3:
public static void main(String arf[]) throws Exception {
short s1= 10;
short s2 = 3;
int s = s1*s2;
}
字节码:
stack=2, locals=4, args_size=1
0: bipush 10 // push constant 10
2: istore_1
3: iconst_3 // use constant 3
4: istore_2
5: iload_1
6: iload_2
7: imul
8: istore_3
9: return
在上述情况下,10
和3
取自局部变量s1
和s2
问题内容: 为什么 初始空间 大于“ 10”的“ 2”? 我在latin1和utf8英语归类中都尝试过: 我知道它与类型有关,因为当它被强制转换时,它可以按预期工作: 这里到底发生了什么? 编辑: 以上所有操作都是在Fedora 13中使用8.4.8完成的。但是我只是在Centos 6中使用9.04进行了测试,结果相同: 数据库清单 新编辑: 这是为了进一步混淆: 问题答案: 我认为Postgre
本文向大家介绍什么是康威定律?相关面试题,主要包含被问及什么是康威定律?时的应答技巧和注意事项,需要的朋友参考一下 “任何设计系统的组织(广泛定义)都将产生一种设计,其结构是组织通信结构的副本。” —— Mel Conway 该定律基本上试图传达这样一个事实:即为了使软件模块起作用,整个团队应该进行良好的沟通。因此系统的结构反映了产生它的组织的社会边界。
本文向大家介绍康威定律是什么?相关面试题,主要包含被问及康威定律是什么?时的应答技巧和注意事项,需要的朋友参考一下 康威定律指出,“设计系统的组织,其产生的设计等同于组织之内、组织之间的沟通结构。” 面试官可能会问反微服务面试问题,比如康威定律与微服务的关系。一些松散耦合的api形成了微服务的体系结构。这种结构非常适合小团队实现自治组件的方式。这种体系结构使组织在重组其工作流程时更加灵活。
本文向大家介绍什么是阿姆达尔定律?,包括了什么是阿姆达尔定律?的使用技巧和注意事项,需要的朋友参考一下 阿姆达尔定律 假设莫妮必须参加邀请。Moni的另外两个朋友Diya和Hena也应邀参加。在某些情况下,所有三个朋友必须分别去那里,而且他们都必须在门口出现才能进入大厅。现在,莫妮(Moni)驾车而来,迪亚(Diya)乘公共汽车而赫纳(Hena)步行即可到达。现在,Moni和Diya到达那里的速度
产出:10 它可能是一个整数输出,它也不携带任何垃圾值,但当我将值分配给变量a作为和高于值时,它只是按原样打印输出,告诉我这里发生了什么!
问题内容: 例: 第一个参数采用Double并将其保存在该方法范围中。但是,什么是和? 我阅读了这篇文章,却找不到任何相关内容:https : //developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Methods.html 问题答案: 这就是Swift模仿目标C的命名参