重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

java代码区方法区 java代码分析

Java中new一个对象时,对象中的方法存在于哪个内存区里

1、答:堆,new一个对象,一定是在堆中 方法内部new出来的对象,在哪里存着?答:堆,new出来对象的实例变量都存在堆上面。栈,这个东西,需要理解为:线程运行时,才会创建,执行完,就没了。

创新互联建站拥有网站维护技术和项目管理团队,建立的售前、实施和售后服务体系,为客户提供定制化的成都网站设计、网站制作、网站维护、西部信息服务器托管解决方案。为客户网站安全和日常运维提供整体管家式外包优质服务。我们的网站维护服务覆盖集团企业、上市公司、外企网站、电子商务商城网站建设、政府网站等各类型客户群体,为全球上1000+企业提供全方位网站维护、服务器维护解决方案。

2、类信息在虚拟机的方法区中,对象信息在堆中。你调用一个对象的方法时,它会到方法区找此对象对应的类信息,如果是调用方法,有一个方法表会让机器快速找到此方法的字节码,然后调用。方法的执行过程是在虚拟机的栈里进行。

3、stack segment(栈)当中;当new 一个对象的时候,此对象放在了heap segment(堆)当中;而static 的变量或者字符串常量 则存在在 data segment(数据区)中;那么类中方法的话,是存在在 code segment(代码区)中了。

4、当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。

5、类加载时 方法信息保存在一块称为方法区的内存中, 并不随你创建对象而随对象保存于堆中。可参考《深入java虚拟机》前几章。

谁能简单阐述下java编译执行的过程

第一步(编译): 创建完源文件之后,程序会先被编译为.class文件。Java编译一个类时,如果这个类所依赖的类还没有被编译,编译器就会先编译这个被依赖的类,然后引用,否则直接引用,这个有点象make。

③编译过程,与java application应用程序相同,编译应用程序的java部分。④解释执行,同样在dos方式下, 输入命令:appletviewer filename.html(这里的filename.不要求与java 文件同名)。

解释器在java虚拟机中,编译器在JDK或JRE 中。java虚拟机就是常说的java 运行环境,其缩写是 JRE,安装在操作系统下的一个目录中,这个目录在安装时可以由你自行指定,就像你安装其它应用软件一样。

首先把源文件编译成字节码文件,即类文件;然后由解释器负责解释执行类文件。程序的运行需要一定的硬件和软件环境,这个环境被称为平台。

第二步(运行):java类运行的过程大概可分为两个过程:类的加载 类的执行。需要说明的是:JVM主要在程序第一次主动使用类的时候,才会去加载该类。

步骤:编写java源文件:可用记事本等相关的文本文档写源代码,也可使用java开发集成环境,如:JCreator LE JCreator pro eclipse Myeclipse 等相关的集成开发工具。

菜鸟:刚学java,堆区,栈区,静态区,代码区,晕了!!!

一种常规用途的内存池(也在RAM区域),其中保存了java对象。和堆栈不同:“内存堆”或“堆”最吸引人的地方在于编译器不必知道要从堆里分配多少存储空间,也不必知道存储的数据要在堆里停留多长的时间。

栈里存放的是值类型(int、float等)的值和引用类型(String、你自己创建的类对象等)在堆中的地址;堆中存放引用类u型的值,如果堆中某个值的地址在栈中没有被指向,他就会被GC回收。方法区存储所有的类和静态变量。

栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。


分享名称:java代码区方法区 java代码分析
分享链接:http://cqcxhl.com/article/dcdcgpd.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP