我正在尝试决定如何设计我的应用程序.
我有大约300个类的实例,就像这样:
public class ParamValue {
protected String sValue = null;
protected short shValue = 0;
protected short mode = PARAM_VALUE_MODE_UNKNOWN;
/*
* ...
*/
}
Run Code Online (Sandbox Code Playgroud)
我有一组这些实例.我不知道这些短路真的需要2个字节,还是4个字节?
我需要通过AIDL传递这些对象的列表List<Parcelable>.包裹不能readShort()和writeShort(),它只能使用int.因此,在这里使用short我也必须手动将两个短裤装入一个int,包裹它,然后打开包装.看起来太突兀了.
你能否告诉我短路占用多少字节,在这里使用short而不是int是否有意义?
更新:
我为未来的读者更新了我的问题.
所以,我写了一个测试应用程序,我发现在我的情况下,绝对没有理由使用short,因为它需要相同的空间int.但是,如果我像这样定义短裤阵列:
protected short[] myValues[2];
Run Code Online (Sandbox Code Playgroud)
然后它比int数组占用更少的空间:
protected int[] myValues[2];
Run Code Online (Sandbox Code Playgroud)
从技术上讲,在Java语言中,a short是2个字节.在JVM内部,虽然short是一个存储类型,而不是一个完整的原始数据类型等int,float或double.JVM寄存器一次总是保持4个字节; 没有半字或字节寄存器.JVM是否实际上short在对象内部存储了两个字节,或者它是否始终存储为4个字节,实际上取决于实现.
这一切都适用于"真正的"JVM.Dalvik的做法有所不同吗?不知道.
| 归档时间: |
|
| 查看次数: |
4672 次 |
| 最近记录: |