网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > JAVA > 其它技术 > Class文件详解 (2)  

Class文件详解 (2)

2005-07-26  作者:BitsCN整理  来源:中国网管联盟  点评 投稿 收藏


  继续分析Class文件的结构。
  
  上次读取了constant pool,紧接着是这个类或接口的Access flags,JVM定义的关于class或interface的Access flags有:
  
  private static short ACC_PUBLIC  = 0x0001;
  private static short ACC_FINAL   = 0x0010;
  private static short ACC_SUPER   = 0x0020;
  private static short ACC_INTERFACE = 0x0200;
  private static short ACC_ABSTRACT = 0x0400;
  
  // read access flags:
  short access_flags = input.readShort();
  System.out.print("Access flags:");
  if((access_flags & ACC_PUBLIC) == ACC_PUBLIC)
  System.out.print(" public");
  if((access_flags & ACC_FINAL) == ACC_FINAL)
  System.out.print(" final");
  if((access_flags & ACC_SUPER) == ACC_SUPER)
  System.out.print(" super");
  if((access_flags & ACC_INTERFACE) == ACC_INTERFACE)
  System.out.print(" interface");
  if((access_flags & ACC_ABSTRACT) == ACC_ABSTRACT)
  System.out.print(" abstract");
  System.out.println(); 网管论坛bbs_bitsCN_com
  
  然后是this class和super class:
  
  // read this class and super class:
  short this_class_index = input.readShort();
  short super_class_index = input.readShort();
  System.out.println("This class = " + this_class_index);
  System.out.println("Super class = " + super_class_index);
  
  根据this class的index可以从constant pool中得到这个class的信息,super class也一样。每个class都有super class,只有Object的super class index=0。
  
  接下来是这个class继承了多少个interface和每个interface在constant pool中的index:
  
  // read interfaces count:
  short interfaces_count = input.readShort();
  System.out.println("Interfaces count = " + interfaces_count);
  // read each interface:
  for(int i=1; i<=interfaces_count; i++) {
  short interface_index = input.readShort();
  System.out.println("No. " + i + " interface index = " + interface_index);
  }
  
  结果如下:
  
  Access flags: public final super 网管下载dl.bitscn.com
  This class = 2
  Super class = 4
  Interfaces count = 0
  

TAGs   详解   class   short   access_flags   super   System.out.println      
 上一篇:虚拟机监视器Xen和虚拟化技术(二)   下一篇:Class文件详解 (1)
相关文章列表
Class文件详解 (2) 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
1.JACOB配置方法及两个常见错误解决
2.用java api进行sort
3.Java中this、super用法简谈
4.Class文件详解 (2)
5.Apache目录服务器中存储Java对象
6.Java 操作二维数组实例
7.Lucene 索引文件格式的规格定义
8.英文打字练习
9.Java如何共享资源
10.editplus能够编译java嘛? 如何设置
最新推荐文章:
1.J2SE实现windows读取网卡的物理地址
2.使用Jetty和DWR创建伸缩性Comet程序
3.经验分享:我的20天项目经历
4.实现Java跨平台运行的十二个注意事项
5.成功的必要条件:开源思想推动创新
6.100行Java代码构建一个线程池
7.用Stripes做Java Web开发
8.j2me创意--Wap浏览器的源代码
9.使用Hashtable对字符串进行碰撞
10.定制 bugzilla 进行项目管理
网管论坛交流:
·不疯魔不成活
·令你大开眼界的真正标准化机房,已整理重
·为赈灾,女孩舍身拍“裸照”
·Windows Server 2003服务器群集创建和配
·exchange2k3全套官方资料
·双儿一周岁了。。。特殊的礼物来啦。。
·存储备份技术版块守则
·无盘技术交流区守则
·DOS命令基础大全之命令详解<作者吐血
·Windows XP 操作系统默认设置需要注意的