永发信息网

java创建对象底层原理是什么,java中的对象到底在内存中是什么,别说什么类的具体实例化

答案:2  悬赏:0  手机版
解决时间 2021-02-06 14:53
java创建对象底层原理是什么,java中的对象到底在内存中是什么,别说什么类的具体实例化
最佳答案
对象是类的实例,同一个类的不同实例当然拥有相同的机器指令(相同的方法行为),不同的实例拥有不同的属性内存,相同的指令操作不同的内存得到各自的结果。
举个例子:
我们描述一个类:水果,它有两个属性,名称和数量,一个方法设置数量(setNum)。
现在,我们实例两个水果,一个苹果和一个西瓜(假如初始是一个),此时得为苹果和西瓜各自准备一个不同的存放空间(不能重叠了是吧,这就是为不同对象分配不同的堆内存),然后我们为两个对象都执行设置数量方法(都是setNum,同一个行为),假如苹果改为2,西瓜
改为5,此时两个不同对象执行了同一个方法得到个各自的结果。

下面补充一些官方描述:
java创建类时,也即是你所说的原类,其实只是对那个类的对象的外观与行为的描述(此时并未开辟堆内存,当然static例外)。只有当使用new创建那个类的对象时才会分配数据存储空间,其方法才供外界调用。
java为指定类创建对象,其实就是为类的描述创建属性值存储空间并初始化,并在堆栈中创建其指针,如果有方法局部变量,方法也会有自己的临时堆栈。
一个对象是一个堆栈地址所指向的一组堆内存,然后对象的行为则是java语言编译后的机器指令代码,指令执行操纵内存的数据。

如果有更合理的理解,或者认为我的理解有不对的地方欢迎指正,学习就是不断接近真相。
全部回答
java是用c++写的!你尝试往c++那方面想一下!然而c++的类又和c++的结构体有惊人的相似之处。然而c++的结构体又是c语言的结构体的加强!c语言的结构体呢?又是存放数据的一个集合!
class Student{
String name;
int age;
int score;
}


struct student{
char name[10];
int age;
int score;
}stu;
看!是不是很像!功能也大致相同!
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
定南县人民医院-男性泌尿科地址在哪,我要去
华为荣耀6跨屏穿越怎么关
GoGoFuture健身工作室地址在哪,我要去那里办
龙和虎哪一个比较厉害,龙如果在山上打得赢虎
金蝶成品烟道佛山有没有卖
妙善堂这个地址在什么地方,我要处理点事
【chrysler是什么车】美国克莱斯勒汽车公司的
膀子吊的意思是什么啊?知道的请说下!
为什么女儿离家越久回家越像客人
3s健身工作室怎么去啊,我要去那办事
什么叫KT板?
七年级语文周报第35期答案
大园圃在什么地方啊,我要过去处理事情
奔驰C200是不是suv
大家进来看看哪个玫瑰好看
推荐资讯
求一些关于名侦探柯南里非常好听的歌曲!!!
帮我想一个唯美的网名吧,像拾、这一抹残妆之
远程教育怎么收费
欧罗马在哪里啊,我有事要去这个地方
《冰与火之歌》有什么经典的英文台词
城管执法粗暴.强行收东西合法吗
中国邮政储蓄银行于田储蓄所在哪里啊,我有事
默运的意思是什么啊?知道的请说下!
男,70岁。乏力腰痛半个月。体健。查体:轻度
掍合的意思是什么啊?知道的请说下!
下面四组短语,选择一组填到横线上,能使上下
求一篇Value and belief的文章
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?