`
xiaomogui
  • 浏览: 238966 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java基础之堆栈

阅读更多

 

     1. JVM在它的生存周期中有一个明确的任务,那就是运行Java程序,因此当Java程序启动的时候,就产生JVM的一个实例;当程序运行结束的时候,该实例也跟着消失了。

 

     2. 一个JVM实例的行为不光是它自己的事,还涉及到它的子系统、存储区域、数据类型和指令这些部分,它们描述了JVM的一个抽象的内部体系结构,其目的不光规定实现JVM时它内部的体系结构,更重要的是提供了一种方式,用于严格定义实现时的外部行为。

 

     3.   每个JVM都有两种机制,一个是装载具有合适名称的类(类或是接口),叫做类装载子系统;另外的一个负责执行包含在已装载的类或接口中的指令,叫做运行引擎。每个JVM又 包括方法区、堆、Java栈、程序计数器和本地方法栈这五个部分。

 

     4. JVM的每个实例都有一个它自己的方法域和一个堆,运行于JVM内的所有的线程都共享这些区域;

 

     5. 当虚拟机装载类文件的时候,它解析其中的二进制数据所包含的类信息,并把它们放到方法域中;当程序运行的时候,JVM把程序初始化的所有对象置于堆上;而每个线程创建的时候,都会拥有自己的程序计数器和Java栈,其中程序计数器中的值指向下一条即将被执行的指令,线程的Java栈则存储为该线程调用Java方法的状态;本地方法调用的状态被存储在本地方法栈,该方法栈依赖于具体的实现。

 

     6.Java的堆是一个运行时数据区,类的实例(对象)从中分配空间,它的管理是由垃圾回收来负责的:不给程序员显式释放对象的能力。Java不规定具体使用的垃圾回收算法,可以根据系统的需求使用各种各样的算法。

 

     7. Java方法区与传统语言中的编译后代码或是Unix进程中的正文段类似。它保存方法代码(编译后的java代码)和符号表。


     8.Java虚拟机的寄存器用于保存机器的运行状态,与微处理器中的某些专用寄存器类似。

 

     9.Java虚拟机的栈有三个区域:局部变量区、运行环境区、操作数区。

 

     10.局部变量区  每个Java方法使用一个固定大小的局部变量集。它们按照与vars寄存器的字偏移量来寻址。局部变量都是32位的。

 

     11.运行环境区  在运行环境中包含的信息用于动态链接,正常的方法返回以及异常捕捉。

 

     12.操作数栈区  机器指令只从操作数栈中取操作数,对它们进行操作,并把结果返回到栈中。

 

     13. 虚拟机通过调用某个指定类的方法main启动,传递给main一个字符串数组参数,使指定的类被装载,同时链接该类所使用的其它的类型,并且初始化它们。

 

     14. 一个类在初始化之前它的父类必须被初始化。

 

 

 

 

 

 

 


  • 大小: 9.1 KB
分享到:
评论

相关推荐

    Java 程序使用堆栈反转字符串.docx

    每个 Java 程序都会为您提供不同的方法来解决 Java 中的特定问题。如果您是 Java 编程新手,我们强烈建议您阅读有关Java 教程的文章,其中我们通过实际示例和程序介绍了 Java 编程的所有基础知识和高级主题。

    Java中的JVM基础-数据类型和堆栈_.docx

    Java中的JVM基础-数据类型和堆栈_.docx

    【IT十八掌徐培成】Java基础第04天-04.OOP-堆栈的溢出与设置-private关键字.zip

    【IT十八掌徐培成】Java基础第04天-04.OOP-堆栈的溢出与设置-private关键字.zip

    Java后端面试问题整理.docx

    • Java基础 • 熟练的使用Java语言进行面向对象程序设计,熟悉Java语言特性 • 熟悉常用排序,堆栈,树等数据结构和算法 • 熟悉常用集合数据结构(数组、Hashmap、ConcurrentHashMap、HashTable、ArrayList、Vetor...

    java基础知识总结

    非常全的java基础知识总结,包括线程,IO,堆栈,内部类,匿名类,面试题等等

    java基础心得总结.rar

    描述java基础容易忽略的问题,如下面几个知识点: int a = 1;1会存放在栈里 String s1 = "thanks";thanks会存放在data segment里 String s2 = new String("thanks");thanks会存放在data segment里 String a ="th...

    java学习手册

    java学习手册,它包含排序动画执行过程、java运行时堆栈内存结构图,J2SE基础、面试题、编程题以及二千多道选择题等。大部分代码都可以直接在手机上运行、调试,观察运行时变量状态以及变量值。j2se基础包含30章,...

    Java项目实训+推箱子游戏2023版

    推箱子游戏是java基础学习的综合运用,主要涉及的知识点如下: 1.java基础知识运用; 2.堆栈集合的应用,实训悔棋功能; 3.Swing组件的灵活应用; 4.IO流的应用,读取地图文件,解析地图内容; 5.音频文件的播放,实...

    java语言教学PPT(基础版)

    从结构上看,它由一组抽象的部件组成,这些部件包括指令集、寄存器组、类文件格式规定、堆栈、内存垃圾收集区和存储区六部分。JVM仅仅规定了部件的功能和规格,但并没规定部件的具体实现技术。所以,JVM是一种不具体...

    java 基础问题集

    堆栈分配问题 import问题 构造方法 对于初学者 疑惑的解答 较详细 有例子

    Java程序员大厂面试(进大厂必看)

    囊括了JAVA基础,MySQL,Spring框架,微服务,网络等等Java程序员需要掌握的各个知识领域 1. Java基础包括了:集合,HashMap,JVM等常见考点, 说一下 JVM 的主要组成部分及其作用? 说一下 JVM 运行时数据区 深拷贝...

    stackedmap:Java的地图堆栈,对于涉及范围较长的上下文和临时上下文的处理很有用,这些上下文位于寿命较长的上下文之上。 还可以在JSP(页面,请求,会话,应用程序)上下文,Spring Webflow等中看到

    堆叠地图当使用地图作为上下文时,一个频繁使用的案例是插件或处理步骤的临时“本地”上下文,需要在一个或多个寿命较长的其他上下文(例如,跨处理步骤的整个工作流... 每次都会从基础堆栈式集合中计算出keySet()和v

    10G的Java面试题视频课

    囊括了JAVA基础,MySQL,Spring框架,微服务,网络等等Java程序员需要掌握的各个知识领域 1. Java基础包括了:集合,HashMap,JVM等常见考点, 说一下 JVM 的主要组成部分及其作用? 说一下 JVM 运行时数据区 深拷贝...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

     《Java JDK 7学习笔记》将IDE操作纳为教学内容之一,使读者能与实践结合,提供的视频教学能更清楚地帮助读者掌握操作步骤。 内容简介 书籍 计算机书籍  《java jdk 7学习笔记》是作者多年来教学实践经验的总结...

    21天学通Java_6

    第2周介绍Java类库,包括向量、堆栈、映射、散列表和位组等数据结构,以及Swing组件、布局管理器和Java Web Start等;第3周介绍高级主题,包括输入和输出、对象序列化、通过Internet进行通信、使用数据库、XML、Web...

    解析Java虚拟机开发

    Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种...

    java基础知识-try-catch的使用

    如果没有找到匹配的catch块,异常将向上层调用堆栈传递,直到找到合适的catch块或程序终止。 通常在catch块中,可以打印异常信息、记录日志、发送警报、返回默认值等方式来处理异常。取决于具体情况,你可以根据...

    Java异常处理.md

    - 当代码执行过程中出现如除数为零的`ArithmeticException`等错误时,Java会立即转至相应的catch块进行异常处理,如输出错误信息并打印堆栈跟踪。 2. **finally块的使用**: - 不论try块中的代码是否抛出异常,...

    2011Java新版面试题

    此面试题为本人最近搜集整理,为目前企业面试最会被考到的问题,包括:java基础、多线程、常见排序算法、23种设计模式、堆栈、tomcat和jboss性能优化、JDK新特性、SSH框架、SQL数据库、面向对象设计原则等一系列综合...

Global site tag (gtag.js) - Google Analytics