A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© liuyangyang 中级黑马   /  2013-4-8 20:14  /  1486 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 liuyangyang 于 2013-4-10 18:47 编辑

每一个类都是Object类的子类,每当创建一个类的对象时,内存中都会出现Object这个类的字节码吗?

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

6 个回复

倒序浏览
java字节码是javac编译后产生的,当下次你再运行这个程序时,java虚拟机就直接执行字节码,不再调用java代码。
回复 使用道具 举报
根据下面这个程序,我认为编译后的字节码中也应该含有Object相关的字节码的
  1. public class GetParentClass {

  2.         /**
  3.          * @param args
  4.          */
  5.         public static void main(String[] args) {
  6.                 // TODO Auto-generated method stub
  7.                 Class<?> room2Class = Room2.class.getSuperclass();//从Room2的字节码中获取其默认的父类
  8.                 System.out.println(room2Class);        //结果为class java.lang.Object
  9.         }
  10. }

  11. class Room2{//默认继承Object类
  12.         private String id;
  13.         private int price;
  14.         public String getId() {
  15.                 return id;
  16.         }
  17.         public void setId(String id) {
  18.                 this.id = id;
  19.         }
  20.         public int getPrice() {
  21.                 return price;
  22.         }
  23.         public void setPrice(int price) {
  24.                 this.price = price;
  25.         }
  26.         public Room2(String id, int price) {
  27.                 super();
  28.                 this.id = id;
  29.                 this.price = price;
  30.         }       
  31. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
Object类是所有类的父类,当一个类的对象创建时,会先创建他的父类,所以肯定会有其父类的编译文件的,由此,我认为不管什么类运行,因为他们都是Object的子类,所以程序底层都会先创先Object对象的,所以应该有Object的字节码的
回复 使用道具 举报
Object类是所有类的父类,当一个类的对象创建时,会先创建他的父类,所以肯定会有其父类的编译文件的,由此,我认为不管什么类运行,因为他们都是Object的子类,所以程序底层都会先创先Object对象的,所以应该有Object的字节码的

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
若还有问题,继续追问; 没有的话,将帖子分类改成【已解决】哦~

点进自己的帖子,编辑->标题左侧有下拉菜单->改变分类->保存~
回复 使用道具 举报
当把一个类加载进内存的时候,会先把它的父类加载进内存,而Object是所有类的父类,所以会先于该类加载进内存,生成字节码文件。把类加载进内存的时候,如果此时内存中已经有该字节码文件,则不需要重新加载,而是直接调用该字节码,所以创建对象时Object只要加载一次后就不需要再加载了,内存中会有Object的字节码。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马