java对象内存分配问题

wb821147966 2008-02-27 09:27:33
请问:
对于java对象内存对象我是这样理解的:
1,当用new创建一个对象时 会调用这个对象的构造函数 并初始化构造函数中的成员 在堆中为这些成员分配内存空间 同时在栈中也分配同样大小的空间 而并没有为方法分配内存空间 当调用方法时再为方法的成员分配堆或栈内存空间
2,如果没有为方法分配内存空间 怎么调用它呢
...全文
206 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
类中非静态方法是内存地址的偏移量,通过对象的内存地址加上方法的偏移量就可以找到了。
insiku 2008-02-27
  • 打赏
  • 举报
回复
类中非静态方法是内存地址的偏移量,通过对象的内存地址加上方法的偏移量就可以找到了。

============================================

你觉得SUN的工程师会做出为每个对象分配方法内存空间的傻事?


我觉得方法都存储在类的内存空间内
静态方法和非静态方法的区别只是调用的时候是否传入调用者的地址的区别
healer_kx 2008-02-27
  • 打赏
  • 举报
回复
连C程序员都不一定知道代码存储在什么位置,你着这个急干啥?
Coolfatman 2008-02-27
  • 打赏
  • 举报
回复
类的方法是在loader的时候分配空间的。
数据是在对象创建的时候分配的。所以不用担心。

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧