我正在尝试了解使用new运算符创建Java对象时将分配的大小.
考虑一下我正在创建一个类
public class NewClass {
NewClass() { }
}
Run Code Online (Sandbox Code Playgroud)
当我创建一个NewClass使用的实例NewClass nc = new NewClass();.NewClass在堆中创建的大小是多少?
~Jegan
我对java的内存分配技术有点困惑.任何人都可以帮助我,java将如何为以下代码分配内存?
Integer a;
a = new Integer(1);
Run Code Online (Sandbox Code Playgroud)
我要求,为此Integer a,jvm将创建64位引用,a = new Integer(1) 为此它将分配更多的内存来存储值1.这是正确的吗?
当我在某处读到时,在创建实例并从堆分配空间时分配内存.如果它是正确的,那么在实例和对象创建期间分配了多少内存?
我试图大致了解Integer数组和int数组之间的内存成本差异.虽然关于原始int和Integer对象之间的差异似乎有很多信息,但我仍然对如何计算int []和Integer []数组的内存成本感到困惑(开销成本) ,填充等).
任何帮助,将不胜感激.谢谢!
我正在尝试执行Math.pow()操作来查找10到长数的幂.结果预计会非常大,因此,我将其存储在BigInteger中.我试过以下:
tempBigInt = java.math.BigDecimal.valueOf(Math.pow(10, i)).toBigInteger();
Run Code Online (Sandbox Code Playgroud)
我通过一个循环来运行它,其中'i'一直在增加,直到满足某个条件.此代码工作正常,除非它计算Math.pow(10,23).奇怪的是,这是唯一出错的价值,从而使我的最终结果不正确.
我也尝试通过我的IDE验证这一点,看起来Java不喜欢Math.pow(10,23).可能是一个错误.如果有人知道是什么导致了这种异常行为,你能否解释一下,并且可能提供一种更好,无错误的方法来实现这一行代码?[tempBigInt是一个BigInteger,我很长]
C有一个sizeof运算符,它需要有一个,因为用户必须管理对malloc的调用,并且因为原始类型(如long)的大小不是标准化的.但是在java中我们找不到对象的大小?另外为什么java没有sizeof运算符或方法?