在JAVA中,常量池是一个非常重要的概念,想必很多人都知道常量池,那么,JAVA中的常量池又分为哪三种呢?分别是字符串常量池、Class常量池和运行时常量池。今天就由陕西新榜样软件科技有限公司的西安JAVA培训向大家介绍一下什么是Class常量池!
我们知道,计算机通常情况下只识别0和1,所以JAVA程序员写的代码都需要经过编译成0和1构成的二进制格式才能够让计算机运行。
为了让JAVA语言能够具有良好的跨平台能力,JAVA独具匠心的提供了一种可以在所有平台上都能使用的一种中间代码——字节码(ByteCode)。
有了字节码,无论是哪种平台(如Windows、Linux等),只要安装了虚拟机,都可以直接运行字节码。
同样,有了字节码,也解除了JAVA虚拟机和JAVA语言之间的耦合。这话可能很多人不理解,JAVA虚拟机不就是运行JAVA语言的么?这种解耦指的是什么?
其实,目前JAVA虚拟机已经可以支持很多除JAVA语言以外的语言了,如Groovy、JRuby、Jython、Scala等。之所以可以支持,就是因为这些语言也可以被编译成字节码。而虚拟机并不关心字节码是有哪种语言编译而来的。
JAVA语言中负责编译出字节码的编译器是一个命令是JAVAc。
JAVAc是收录于JDK中的JAVA语言编译器。该工具可以将后缀名为.java的源文件编译为后缀名为.class的可以运行于JAVA虚拟机的字节码。
我们需要知道的是,在Class文件的4个字节的魔数后面的分别是4个字节的Class文件的版本号在版本号后面的,就是Class常量池入口了。同时也就是我们JAVA中的Class常量池!
以上便是JAVA中的Class常量池,希望上述内容能让你更清楚的了解Class常量池!