众所周知,java使用以下数据类型
byte Occupy 8 bits in memory
short Occupy 16 bits in memory
int Occupy 32 bits in memory
long Occupy 64 bits in memory
如果我像这样创建一个类
class Demo{
byte b;
int i;
long l;
}
Demo obj = new Demo();
现在我的问题是,obj的大小是< or > or =,b+i+l的大小,也就是104 bytes。请给
如果在一个类中需要8个布尔成员变量,Java是否有效地将它们放在一个字节中?还是会为每个字节使用一个字节?换句话说,内存占用是否与以下不同:
boolean a;
boolean b;
boolean c;
boolean d;
boolean e;
boolean f;
boolean g;
boolean h;
与
public static final int a = 0x01;
public static final int b = 0x02;
public static final int c = 0x04;
public static final int d = 0x08;
pub
这是一个非常简单的问题,也可能是一个毫无价值的问题: Whitch下面两个中的一个消耗了更多的内存?
boolean[][] var = new boolean[32768][32768];
或
byte[][] var = new byte[32768][32768];
我听到传言说,在这两种情况下,java都在自己的byte中存储所有数据。那么巫术更有效吗?是否可能以某种方式将long值视为boolean数组?
在Java中是否有一种方法来检查变量是否初始化为not在类中。我找到的是,但不是Java。听就是我要找的一个例子。
private float[] Average;
private void Check(){
if(/*variable is not initialized*/){ Average = new float[4];}
}