![]() |
1
13
我有足够的好奇心去测试它。源代码:
字节码:
所以你说得对,数组的字节码更短,因为数组创建有自己的jvm操作码。但那是什么意思?没什么,真的。它是一个虚拟机,所以绝对不能保证字节码指令的减少意味着实际物理CPU的工作减少。当然,我们可以开始分析,但那将是毫无意义的。如果真的有什么不同,不管是哪种方式,都不会有什么关系。如今物体的创造速度惊人。你可能得开始用
|
![]() |
2
14
使用java.lang.instrument.instrumentation检查大小:
我还有时间创建一个对象和一个字节[0](2次):对象是赢家。 (所有测试都在戴尔笔记本电脑、英特尔2GHz、Windos XP上运行)
使用
|
![]() |
3
5
根据 Java Language Spec ,“所有类和数组类型都继承类对象的方法”,所以我不知道byte[0]如何才能更高效。 这似乎是真的 first edition of the spec 以及:“数组类型的超类被视为对象”。 |
![]() |
4
3
使用数组更容易混淆读取器imho。 创建更少的对象比创建更多的对象更有效,因此如果它确实创建了足够多的对象,那么您创建的对象太多了。 |
![]() |
5
2
在Java中使用空数组作为锁对象的模式与性能几乎没有关系。
空数组(偶数
我习惯了做(从不在乎表现):
基元数组所需的字节码较少,因此可能
见: Is it okay to to make the lock transient for a Serializable class? |
![]() |
6
1
你的问题提到了“效率”,但没有说明你追求的是什么样的效率。迄今为止的答案涉及 大小 但在两种表示中取消引用和使用内部锁的运行时开销应该相同。
您还可以将使用内部锁的开销与使用
|
![]() |
J. Defenses · 节点JS,NeDB-如何使同步返回到父模块 7 年前 |
![]() |
StefanoN · Java多线程-按顺序只运行一次线程运行方法 7 年前 |
![]() |
merlin2011 · Android线程方法是否隐式同步? 7 年前 |
![]() |
ninbura · ffmpeg-时间码和分数帧速率(复制帧) 7 年前 |
![]() |
ninbura · 分段时音频缓慢去同步 7 年前 |