Java 将字节转换为GB是否正确?

Java 将字节转换为GB是否正确?,java,Java,我想检查Java应用程序中使用了多少内存,然后我使用了: System.out.println("Free memory (bytes): " + Runtime.getRuntime().freeMemory()/(1024*1024*1024)); 我将字节数转换为GB。但在谷歌上,它显示一个字节=1e-9GB。哪一个是正确的?这取决于视角 从技术上讲,1GB等于1024兆字节 但从存储的角度来看,它是按1000兆字节计算的 所以这没什么大不了的,

我想检查Java应用程序中使用了多少内存,然后我使用了:

 System.out.println("Free memory (bytes): " +
                    Runtime.getRuntime().freeMemory()/(1024*1024*1024));

我将字节数转换为GB。但在谷歌上,它显示一个字节=1e-9GB。哪一个是正确的?

这取决于视角

从技术上讲,1GB等于1024兆字节

但从存储的角度来看,它是按1000兆字节计算的


所以这没什么大不了的,你可以选择你要用哪个视角来表达。

这取决于视角

从技术上讲,1GB等于1024兆字节

但从存储的角度来看,它是按1000兆字节计算的


所以这没什么大不了的,你可以选择你要用哪个视角来判断。

JVM总是使用或1024^3或
1JVM总是使用或1024^3或
1取决于。它可以是(1000*1000*1000)或(1024*1024*1024)。取决于谁在出售它,以及内存的类型。顺便说一句,b
=位,
b
=字节
g
=克,
g
=千兆。它可以是(1000*1000*1000)或(1024*1024*1024)。取决于谁在出售它,以及内存的类型。顺便说一句,b
=位,
b
=字节
g
=克,
g
=千兆。
System.out.println("Free memory: " +
                   (Runtime.getRuntime().freeMemory() * 1000 >> 30) / 1e3 + 
                   " GiB"));
System.out.println("Free memory: " +
                   (Runtime.getRuntime().freeMemory() / 1_000_000 / 1e3 + 
                   " GB"));