先以两个问题开篇:
1.如果一个类有多个子类,那么new多个子类对象时,父类的对象是一个还是多个?
2.每个类型有一个常量池,还是每个对象都有自己的常量池?
你可以很快地正确回答吗?了解了java虚拟机方法区的原理,这两个问题就很清晰了。
java虚拟机把内存划分为方法区、堆和线程栈。简单说方法区用来存储类型的元数据信息,一个.class文件是类被java虚拟机使用之前的表现形式,一旦这个类要被使用,java虚拟机就会对其进行装载、连接(验证、准备、解析)和初始化。而装载(这里涉及到类加载器的相关理论)后的结果就是由.class文件转变为方法区中的一段特定的数据结构。这个数据结构会存储如下信息:
类型信息
这个类型的全限定名
这个类型的直接超类的全限定名
这个类型是类类型还是接口类型
这个类型的访问修饰符
任何直接超接口的全限定名的有序列表
字段信息
字段名
字段类型
字段的修饰符
方法信息
方法名
方法返回类型
方法参数的数量和类型(按照顺序)
方法的修饰符
除了常量以外的所有类
相关推荐
存放类的class字节码信息、静态与非静态方法、静态成员变量、常量、字符串常量池
深入讲解Java虚拟机系列之方法区
下面小编就为大家带来一篇详谈java 堆区、方法区和栈区。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
详细的总结了java中在内存中创建的堆、栈、方法区、常量池的区别和用途
Java内存模型 线程公有方法区:Java方法区和堆一样,方法区是一块所有线程共享的内存区域,他保存系统的 类信息。比如类的字段、方法、常量池等。方法区的大小决定系统可以保存多少个类。如果 系统定义太多的类,...
synchronized关键字不属于方法特征签名的一部分,所以可以在覆盖方法的时候加上去。也就是说,在父类的方法声明上可以没有synchronized关键字,而在子类覆盖该方法时加上synchronized关键字。 注意:使用...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
在JAVA语言中,输入和输出功能依靠流来完成,输入输出流则 依靠InputStream和OutputStream两个类及其子类实现。lnputStream 类及其子类主要负责输入数据, 如果需要通过键盘输入数据. InputStream类巾的read方法是...
主要为大家详细介绍了java处理图片背景颜色的方法,蓝底寸照批量转换为白底,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的...
通过对某测区的Li DAR点云数据进行处理,并比较了不同语言环境下的处理结果,验证了在Java语言环境下该方法进行Li DAR点云数据处理的可行性,以及利用该方法引入树结构的网格空间索引在Java语言环境下的实现性。
mutexThread.java 一个能管理临界区的线程类 demoMutex.java 使用上面这个类来演示线程的互斥 commSource.java 一个共享资源的类 demoSynchrony.java 演示线程的同步 setDataThread.java 设置数据的线程类 ...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的...
详细地址抽取全国省市区,包含2018版最新全国省市区基础数据,使用方便简单,仅一java表态方法就可解析地址中省市区,不依赖数据库,防重复解析,防三级地址重名干扰。
java.nio 定义作为数据容器的缓冲区,并提供其他 NIO 包的概述。 java.nio.channels 定义了各种通道,这些通道表示到能够执行 I/O 操作的实体(如文件和套接字)的连接;定义了用于多路复用的、非阻塞 I/O 操作的...
第2章概述Java虚拟机的整体架构,包括class文件格式、数据类型、原始类型、引用类型、运行时数据区、栈帧、浮点算法、异常等,这对理解本书后面的内容有重要帮助;第3章详述如何将Java语言编写的程序转换为Java...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...
Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...