当前位置: 首页 > 知识库问答 >
问题:

Java程序设计语言中的编码

顾跃
2023-03-14

请参阅JLS7。第3.2节第16页指出

class Y {
String hello = "hello";
}
Classfile /c:/Work/SR1/e2/tmp/Y.class
Last modified Jan 5, 2014; size 240 bytes
MD5 checksum 96694fda4f346a62d5412c56dc36c45d
Compiled from "X.java"
class Y
  SourceFile: "X.java"
  minor version: 0
  major version: 52
  flags: ACC_SUPER
  Constant pool:
  #1 = Class              #2             //  Y
  #2 = Utf8               Y
  #3 = Class              #4             //  java/lang/Object
  #4 = Utf8               java/lang/Object
  #5 = Utf8               hello
  #6 = Utf8               Ljava/lang/String;
  #7 = Utf8               <init>
  #8 = Utf8               ()V
  #9 = Utf8               Code
  #10 = Methodref          #3.#11         //  java/lang/Object."<init>":()V
  #11 = NameAndType        #7:#8          //  "<init>":()V
  #12 = String             #5             //  hello
  #13 = Fieldref           #1.#14         //  Y.hello:Ljava/lang/String;
  #14 = NameAndType        #5:#6          //  hello:Ljava/lang/String;
  #15 = Utf8               LineNumberTable
  #16 = Utf8               SourceFile
  #17 = Utf8               X.java
  {
  ...

谢谢

共有1个答案

孔鸿宝
2023-03-14

在正在执行的程序中,文本(通常1)用UTF-16表示。

但是在“.class”文件中,常量池中的文本(即字符串、标识符等)用UTF-8编码,以节省空间。(UTF-8中常量池条目的编码是由JVM规范--第4.4节...规定的,与默认字符集无关。)

当类文件被加载时,UTF-8常量池条目被类加载器转码为UTF-16。

 类似资料:
  • 这本书将教会你使用Rust 编程语言。Rust 是一个系统编程语言,它注重于三个方面:安全,速度和并发性。为了实现这些目标,它没有采用垃圾回收机制(GC)。这让它在其它语言并不擅长的场景中大展身手:嵌入到其它语言中、在特定的时间和空间要求下编程、编写例如设备驱动和操作系统这样的底层代码。

  • 对于一个开发者而言,能够胜任系统中任意一个模块的开发是其核心价值的体现。 对于一个架构师而言,掌握各种语言的优势并可以运用到系统中,由此简化系统的开发,是其架构生涯的第一步。 对于一个开发团队而言,能在短期内开发出用户满意的软件系统是起核心竞争力的体现。 每一个程序员都不能固步自封,要多接触新的行业,新的技术领域,突破自我。

  • 语言处理程序 汇编程序 地址寄存器AR、数据寄存器DR、指令寄存器IR对汇编语言透明的不可见,程序计数器PC可见 算术指令 带符号数左移*2或右移/2 SAL算数左移:把目的操作数的低位向高位移,空出低位补0 SAR算术右移:把目的操作数的高位向低位移,空出高位用最高位(符号位)填补 逻辑指令 用于无符号数*2或/2 SHL逻辑左移:移位后空出位补0 SHR逻辑右移:移位后空出位补0 循环移位指令

  • Windows 环境下32位汇编语言是一种全新的编程语言。它使用与 C++ 语言相同的API接口,不仅可以用来开发出大型的软件,而且是了解操作系统运行细节的最佳方式。本书从编写应用程序的角度,从 Hello World 这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过60多个实例逐渐深入Win32汇编语言的方方面面。

  • 事物并非总是简单明了,Rust 程序设计语言的本质在于 授权(empowerment):无论你现在编写的是何种代码,Rust 能授权你在更为广泛的编程领域走得更远,写出自信。

  • Fortran语言的发展概况 本节介绍Fortran的起源与发展历史,讲述Fortran由产生到形成标准FortranIV、Fortran77,并进一步形成新标准Fortran90/95的发展历程。 1.1.1 Fortran的历史 a) FortranIªFortranIV Fortran是目前国际上广泛流行的一种高级语言,适用于科学计算。Fortran是英文FORmula TRANslatio