在java中如何获得某个实例占用多少内存

在java中如何获得某个实例占用多少内存,第1张

java中可以用getBytes()length获取字符串占用内容的大小,原理是java中任何字符都采用Unicode编码,所以衡量占用内存大小采用占用的字节数。

举例如下:

public class TestStringSize {

public static final void main(String[] args) {

Systemoutprintln("占用内存大小:"+"学java"getBytes()length);

}

}

输出结果:

占用内存大小:6 byte

public class 对象地址 

{

public static void main(String[] args) 

{

Systemoutprintln("\n\t\t==========如何获取对象地址==========\n");

init();

}//初始化!

private static void init()

{

//演示:创建对象!

Dog d1=new Dog();

Dog d2=new Dog("白色");

d1show();

d2show();

Systemoutprintln("\n对象内存地址-->>对象所属类型:"+d1+"<<--这就是对象内存中哈希值16进制的地址");

Systemoutprintln("对象内存地址-->>对象所属类型:"+d2+"<<--这就是对象内存中哈希值16进制的地址\n");

Systemoutprintln("d1对象所属类:"+d1getClass());

Systemoutprintln("d1对象所属地址十进制:"+d1hashCode()+"转成16进制就和上面一样了\n");

Systemoutprintln("d2对象所属类:"+d2getClass());

Systemoutprintln("d2对象所属地址十进制:"+d2hashCode()+"转成16进制就和上面一样了\n");

}

}

//测试类,小狗!

class Dog

{

String color="黑色";

Dog(){}

Dog(String color){thiscolor=color;}

void show()

{

Systemoutprintln("这是一个"+color+"的小狗");

}

}

这个问题太不好回答了。

但是又很好回答。

比如:

String str1=new String("我爱我家");

这个时候已经在内存中分配一个内存块用来存储这个字符串数据了。

所以呢你取的时候也是很简单的。

直接读取str1就ok了。

你所说的取内存数据是想问什么呢?

 java中不建议直接获取字符串内存地址,因为java不像c语言,获取内存地址是C语言的强项,java的弱项。但是java内存地址还是有一个应用场景,就是判断两个字符串内存地址是否相等来判断是否是同一个对象,用双等号“==”来比较的。参考代码如下:

public class Test01 {

/

@param args

/

public static void main(String[] args) {

// TODO Auto-generated method stub

String str1="abc";

String str2=new String("abc");

Systemoutprintln(str1 == str2);//输出false

}

}

获取内存地址?这个不太现实的。

对于Java程序员来说,并不必显示地对内存进行管理,一切都是交给Java虚拟机去做的,而且,你也不一定做得比Java虚拟机来得专业。

在你没有运行java程序之前,没有内存一说,只有运行以后,程序会被java虚拟机给编译,运行,在编译运行的过程中,程序员自定义的变量、类、方法、接口等等都会被放到不同的内存区域中,这时你只能通过调试获取变量的值(此时的值是被放在内存中的)。在调试过程中,看见一个类或者方法有很长的一串字符,那就是内存地址,因为它不能像变量一样,看见具体的值。

所以,你获取不到内存地址的

希望我能帮到你

以上就是关于在java中如何获得某个实例占用多少内存全部的内容,包括:在java中如何获得某个实例占用多少内存、如何获得java对象的内存地址、JAVA程序如何从内存中获取数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10058782.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存