⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java 编程的动态性,第 1 部分:类和类装入.htm

📁 javn的Java书籍JAVA集合框架.rar我看过了是很有帮助的
💻 HTM
📖 第 1 页 / 共 4 页
字号:
  <TR vAlign=top>
    <TD bgColor=#ffffff colSpan=5><IMG height=8 alt="" 
      src="Java 编程的动态性,第 1 部分:类和类装入.files/c.gif" width=100 
  border=0></TD></TR></TBODY></TABLE><!-- END HEADER AREA--><!-- START BODY AREA-->
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
  <TBODY>
  <TR vAlign=top>
    <TD width=10><IMG height=1 alt="" 
      src="Java 编程的动态性,第 1 部分:类和类装入.files/c.gif" width=10 border=0></TD>
    <TD width="100%">
      <TABLE cellSpacing=0 cellPadding=0 width=168 align=right border=0>
        <TBODY>
        <TR><!-- Sidebar Gutter-->
          <TD width=8><IMG height=21 alt="" 
            src="Java 编程的动态性,第 1 部分:类和类装入.files/c.gif" width=5></TD>
          <TD width=160><!-- Start TOC-->
            <TABLE cellSpacing=0 cellPadding=0 width=160 border=0>
              <TBODY>
              <TR>
                <TD width=160 bgColor=#000000 height=1><IMG height=1 alt="" 
                  src="Java 编程的动态性,第 1 部分:类和类装入.files/c.gif" width=160></TD></TR>
              <TR>
                <TD align=middle 
                background="Java 编程的动态性,第 1 部分:类和类装入.files/bg-gold.gif" 
                  height=5><B>内容:</B></TD></TR>
              <TR>
                <TD width=160 bgColor=#666666 height=1><IMG height=1 alt="" 
                  src="Java 编程的动态性,第 1 部分:类和类装入.files/c.gif" width=160></TD></TR>
              <TR>
                <TD align=right>
                  <TABLE cellSpacing=0 cellPadding=3 width="98%" border=0>
                    <TBODY>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/java/j-dyn0429/#1">用二进制表示的类</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/java/j-dyn0429/#2">字节码和堆栈</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/java/j-dyn0429/#3">装入类</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/java/j-dyn0429/#4">结束语</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/java/j-dyn0429/#resources">参考资料</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/java/j-dyn0429/#author1">关于作者</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/java/j-dyn0429/#rating">对本文的评价</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><!-- End TOC--><!-- Start Related Content Area-->
            <TABLE cellSpacing=0 cellPadding=0 width=160 border=0>
              <TBODY>
              <TR>
                <TD width=160 bgColor=#000000 height=1><IMG height=1 alt="" 
                  src="Java 编程的动态性,第 1 部分:类和类装入.files/c.gif" width=160></TD></TR>
              <TR>
                <TD align=middle 
                background="Java 编程的动态性,第 1 部分:类和类装入.files/bg-gold.gif" 
                  height=5><B>相关内容:</B></TD></TR>
              <TR>
                <TD width=160 bgColor=#666666 height=1><IMG height=1 alt="" 
                  src="Java 编程的动态性,第 1 部分:类和类装入.files/c.gif" width=160></TD></TR>
              <TR>
                <TD align=right>
                  <TABLE cellSpacing=0 cellPadding=3 width="98%" border=0>
                    <TBODY>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/cnedu.nsf/java-onlinecourse-bytitle/AED03F980AC3C03C48256A7600222BB5?OpenDocument">教程:了解 
                        Java ClassLoader</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/java/j-native/index.shtml">衡量 
                        Java 本机编译</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/java/j-obfus/index.shtml">如何封锁您的(或打开别人的) 
                        Java 代码</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-106.ibm.com/developerworks/java/library/j-jalapeno/">The 
                        Jikes Research Virtual Machine (RVM)</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-106.ibm.com/developerworks/toolbox/">developerWorks 
                        Toolbox 订阅</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><!-- End TOC--><!-- Start Related Content Area-->
            <TABLE cellSpacing=0 cellPadding=0 width=160 border=0>
              <TBODY>
              <TR>
                <TD width=160 bgColor=#000000 height=1><IMG height=1 alt="" 
                  src="Java 编程的动态性,第 1 部分:类和类装入.files/c.gif" width=160></TD></TR>
              <TR>
                <TD align=middle 
                background="Java 编程的动态性,第 1 部分:类和类装入.files/bg-gold.gif" 
                  height=5><A class=nav 
                  href="http://www-900.ibm.com/developerWorks/cn/java/index.shtml"><B>Java 
                  专区中还有:</B></A></TD></TR>
              <TR>
                <TD width=160 bgColor=#666666 height=1><IMG height=1 alt="" 
                  src="Java 编程的动态性,第 1 部分:类和类装入.files/c.gif" width=160></TD></TR>
              <TR>
                <TD align=right>
                  <TABLE cellSpacing=0 cellPadding=3 width="98%" border=0>
                    <TBODY>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/cnedu.nsf/java-onlinecourse-bytitle?OpenView&amp;Count=500">教学</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/cntools.nsf/dw/java-all-byname?OpenDocument&amp;count=500">工具与产品</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/cntools.nsf/dw/java-beans-bytitle?OpenDocument&amp;count=500">代码与组件</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/cnpapers.nsf/java-papers-bynewest?OpenView&amp;Count=500">所有文章</A></TD></TR>
                    <TR>
                      <TD><A 
                        href="http://www-900.ibm.com/developerWorks/cn/cntips.nsf/java-tips-bydate?OpenView&amp;Count=500">实用技巧</A></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE><!-- End Related dW Content Area-->
            <TABLE cellSpacing=0 cellPadding=0 width=160 border=0>
              <TBODY>
              <TR>
                <TD width=150 bgColor=#000000 colSpan=2 height=2><IMG height=2 
                  alt="" src="Java 编程的动态性,第 1 部分:类和类装入.files/c.gif" 
              width=160></TD></TR>
              <TR>
                <TD width=150 bgColor=#ffffff colSpan=2 height=2><IMG height=2 
                  alt="" src="Java 编程的动态性,第 1 部分:类和类装入.files/c.gif" 
              width=160></TD></TR></TBODY></TABLE><!-- END STANDARD SIDEBAR AREA--></TD></TR></TBODY></TABLE><SPAN 
      class=atitle2>研究类以及 JVM 装入类时所发生的情况</SPAN><BR>级别:中级 
      <P><A 
      href="http://www-900.ibm.com/developerWorks/cn/java/j-dyn0429/#author1">Dennis 
      M. Sosnoski</A>(<A 
href="mailto:dms@sosnoski.com">dms@sosnoski.com</A>)<BR><!-- <a href="#author2">Author name</a> (<a href="mailto:userid@us.ibm.com">email address</a>)<br /> -->总裁,Sosnoski 
      Software Solutions, Inc.<BR>2003 年 6 月 </P>
      <BLOCKQUOTE>这一有关 Java 编程动态方面的新的系列文章研究了执行 Java 应用程序时幕后所发生的事情。企业 Java 专家 
        Dennis Sosnoski 提供了 Java 二进制类格式以及在 JVM 
        内部类所发生的情况的内幕。接着,他将讨论类装入问题,其范围涉及从运行简单的 Java 应用程序所需的类的数量到可能造成 J2EE 
        及类似的复杂体系结构出现问题的类装入器冲突。</BLOCKQUOTE>
      <P>本文是这个新系列文章的第一篇,该系列文章将讨论我称之为 <I 
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">Java 
      编程的动态性</I>的一系列主题。这些主题的范围从 Java 
      二进制类文件格式的基本结构,以及使用反射进行运行时元数据访问,一直到在运行时修改和构造新类。贯穿整篇文章的公共线索是这样一种思想:在 Java 
      平台上编程要比使用直接编译成本机代码的语言更具动态性。如果您理解了这些动态方面,就可以使用 Java 
      编程完成那些在任何其它主流编程语言中不能完成的事情。</P>
      <P>本文中,我将讨论一些基本概念,它们是这些 Java 平台动态特性的基础。这些概念的核心是用于表示 Java 类的二进制格式,包括这些类装入到 
      JVM 时所发生的情况。本文不仅是本系列其余几篇文章的基础,而且还演示了开发人员在使用 Java 平台时碰到的一些非常实际的问题。</P>
      <P><A name=1><SPAN class=atitle2>用二进制表示的类</SPAN></A><BR>使用 Java 
      语言的开发人员在用编译器编译他们的源代码时,通常不必关心对这些源代码做了些什么这样的细节。但是本系列文章中,我将讨论从源代码到执行程序所涉及的许多幕后细节,因此我将首先探讨由编译器生成的二进制类。</P>
      <P>二进制类格式实际上是由 JVM 规范定义的。通常这些类表示是由编译器从 Java 语言源代码生成的,而且它们通常存储在扩展名为 
      <CODE>.class</CODE> 的文件中。但是,这些特性都无关紧要。已经开发了可以使用 Java 
      二进制类格式的其它一些编程语言,而且出于某些目的,还构建了新的类表示,并被立即装入到运行中的 JVM。就 JVM 
      而言,重要的部分不是源代码以及如何存储源代码,而是格式本身。</P>
      <P>那么这个类格式实际看上去是什么样呢?清单 1 提供了一个(非常)简短的类的源代码,还附带了由编译器输出的类文件的部分十六进制显示:</P>
      <P><B>清单 1. Hello.java 的源代码和(部分)二进制类文件</B><BR>
      <TABLE cellSpacing=0 cellPadding=5 width="100%" bgColor=#cccccc 
        border=1><TBODY>
        <TR>
          <TD><PRE><CODE>
public class Hello
{
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}

0000: cafe babe 0000 002e 001a 0a00 0600 0c09  ................
0010: 000d 000e 0800 0f0a 0010 0011 0700 1207  ................
0020: 0013 0100 063c 696e 6974 3e01 0003 2829  .....&lt;init&gt;...()
0030: 5601 0004 436f 6465 0100 046d 6169 6e01  V...Code...main.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -