java虚拟机

PS:貌似现在学这种东西的人没多少了,都在研究SSH,《深入Java虚拟机》是一本好书,但是文字实在太多,所以提取了精简的部分

 

 

在Java虚拟机规范中,一个虚拟机实例的行为是分别按照子系统、内存区、数据类型以及指令几个术语来描述的。

 



 

 

1.       子系统(类装载在子系统)

 

在Java虚拟机中,负责查找并装载类型的那部分被成为类装载子系统。Java虚拟机由两种类装载器:启动类装载器和用户自定义装载器。对于每个被装载的类型,Java虚拟机都会为它创建一个java.lang.Class类的实例来代表该类型。

 

 

类装载子系统除了要定位和导入二进制class文件以外,还必须负责验证被导入的正确性、为变量分配并初始化内存,以及帮助解析符号引用。这些动作必须严格按照一下顺序执行:

 

1)  装载   --------查找并装载类型的二进制数据

2)  连接   --------执行验证,准备、以及解析

3)  初始化 --------把变量初始化为正确初始值

 

详细请看:类(型)的生命周期--装载、连接、初始化、卸载

 

 

2.       内存区(运行时数据区)

 

当Java虚拟机运行时,它需要内存来存取很多东西。例如,字节码,从已经装载的class文件中得到的其他信息,程序创建的对象,传递给方法的参数,返回值,局部变量,已经运算的中间结果等。Java虚拟机把这些数据都组织到几个“运行时数据区”,以便于管理。

 

       某些运行时数据区是由程序中所有线程共享的,还有一些则是只能有一个线程拥有。每个Java虚拟机实例都有一个方法区以及一个堆,它们是由该虚拟机实例中所有线程共享的。当虚拟机装载一个class文件时,它会从这个class文件包含的二进制数据中解析类型信息。然后,它把这些是类型信息放到方法区中。当程序运行时,虚拟机会把所有该程序在运行时创建的对象都放到堆中。

 

       当每一个新线程创建时,它都将得到它自己的PC寄存器(程序计数器)以及一个Java栈。如果线程正在执行的是一个Java方法,那么PC寄存器的值将总是只是下一条将被执行的指令,而它的Java栈则总是存储该线程中Java方法的调用状态----包括它的局部变量,被调用时传进来的参数,它的返回值,以及运算的中间结果等。

 

详细请看:运行时数据区

 

 

3.       数据类型

 

数据类型可以分为两种:基本类型和引用类型。基本类型的变量持有原始值,引用类型的变量持有引用值。

 

    Java虚拟机中还有一个只在内部使用的基本类型:returnAddress,这个基本类型被用来实现Java程序中的finally子句。

 

引用类型被统称为“引用”,有三种引用类型:类类型,接口类型,以及数组类型,它们的值都是对动态创建对象的引用。

 

 


 

R语言做一个 GM (1,1)灰色预测模型 累加生成是GM(1,1)模型的另一个重要步骤,它通过构造累加生成序列,把非线性非平稳时间序列转化为线性平稳时间序列。GM(1,1)是一种基于灰色系统理论的预测模型,通常用于中小样本的非线性、非平稳时间序列数据分析。灰色预测模型的核心是灰度处理,将原始时间序列转化为灰色时间序列。这里使用R语言中的diff函数对时间序列进行一次差分,然后对结果取累加和得到灰度序列。以上是GM(1,1)灰色预测模型在R语言中的实现步骤。需要注意的是,GM(1,1)模型适用于中小样本的时间序列预测,对于长期预测效果可能较差。 阅读详情

相关推荐

紫光PG2L100H平台DDR3 IP核调试实战:从AXI接口到状态机设计的避坑指南

本文详细介绍了在紫光PG2L100H FPGA平台上调试DDR3 IP核的实战经验,重点解析了AXI接口的特殊行为和状态机设计的关键技巧。通过具体代码示例和调试方法,帮助开发者规避常见陷阱,实现高性能DDR3控制器设计,达到1.2GB/s的稳定带宽。

weixin_28717969的博客 218

Dalvik虚拟机、Java虚拟机与ART虚拟机

一、Java虚拟机 1. Java的是Java字节码。 传统的Java程序经过编译,生成Java字节码保存在class文件中,Java虚拟机通过解码class文件中的内容来运行程序。 2. Java虚拟机基于栈架构。 程序在运行时虚拟机需要频繁的从栈上读取或写入数据,这个过程需要更多的指令分派与内存访问次数,会耗费不少CPU时间。 二、Dalvik虚拟机(Android 4....

YSoul的博客 7338

同物种,不同版本之间的坐标转化

是最常用的工具,如果有可用的链文件,这通常是最便捷的方法。CrossMap是一个功能强大的替代工具,支持多种文件格式和物种。自定义生成链文件适用于没有现成资源的情况,虽然复杂一些,但可以满足特定需求。Ensembl 和 Gramene提供的工具适用于支持的物种,尤其在植物基因组领域可能更具优势。选择合适的方法取决于你正在处理的物种、基因组版本以及现有的资源。

qq_40256654的博客 1853

浅谈Java虚拟机(一)—什么是Java虚拟机

首先,来看下面这张图,Java技术体系所包含的内容:Oracle Java SE 8 产品组件上图来自于Oracle官网 java SE(java 平台标准版) 8 产品文档(),先别被这么多东西唬住,总体来说,Java SE包括了JDK(开发工具包)与JRE(运行环境)。开发人员要使用java开发,就需要依赖JDK,JDK中主要包含了编译与调试工具。

rita_0567的博客 900

解锁微信小程序Camera组件的隐藏技能:连续扫码背后的逻辑与陷阱

本文深入解析微信小程序Camera组件在连续扫码功能中的技术原理与优化方案,涵盖识别率提升、内存管理策略及典型问题排查。通过实战参数对比和代码示例,帮助开发者解决扫码枪应用中的性能损耗与界面卡顿问题,提升零售、物流等场景的工作效率。

weixin_29019241的博客 494

优秀的 Verilog/FPGA开源项目介绍(一)-PCIe通信

优秀的 Verilog/FPGA开源项目介绍(一)-PCIe通信今天开始会陆续介绍一些优秀的开源项目,项目基本都是和FPGA或HDL相关的。对于一些找工作或者急需项目经验的人来说,这些项目...

OpenFPGA的博客 8117

一起走进Java虚拟机的世界 —— 为什么要弄懂虚拟机

从本周开始,专栏Effective Java将开启一个全新的专题——Java虚拟机,在这个专题的课程里,您将学到如何定位OutOfMemory异常、如何进行JVM调优之类的知识,本文作为专题的开篇,带读者走进Java虚拟机的世界。

SexyCode 6721

触摸芯片RM1015B基本使用方法

RM1015B触摸芯片使用指南:该芯片采用4通道设计(实际使用3通道),通过I2C接口通信(设备地址0x2B)。硬件设计需注意中断/复位引脚复用,需上拉处理。软件配置包括初始化、中断处理和定时器扫描,通过设置各通道阈值(0-300W)调节灵敏度,值越小越灵敏。调试时可调用rm1015B_debug_func()输出波形数据。典型应用场景包括接近检测和手势识别,中断触发后需在8ms内响应。特别注意不同通道的寄存器映射关系及校准流程,确保检测准确性。

云淡风轻 178

初识Java虚拟机

主要介绍了Java语言和Java虚拟机的发展历史,并介绍了Java生态环境中两份非常重要的规范—Java语言规范和Java虚拟机规范。其中Java虚拟机规范将成为本书后续讨论的重点内容。同时,作为了解Java虚拟机的第一步,简要介绍了整数和浮点数在Java虚拟机中的 表示方式。

guye 1822

【华为OD机试真题】7、字符串筛选排序 | 机试真题+思路参考+代码解析(C++、Java、Py)

题目描述 >输入一个由N个大小写字母组成的字符串 按照ASCII码值从小到大进行排序 查找字符串中第K个最小ASCII码值的字母(k>=1) 输出该字母所在字符串中的位置索引(字符串的第一个位置索引为0) k如果大于字符串长度则输出最大ASCII码值的字母所在字符串的位置索引 如果有重复字母则输出字母的最小位置索引

KJ.JK 2267

如何将 Fiori Elements Object Page Header 工具栏里按钮用 JavaScript 代码设置成禁用状态

本文介绍了如何在SAP Fiori Elements应用中动态控制Object Page工具栏按钮的可用状态。通过UI5 Inspector工具分析发现,这些按钮的enabled属性都双向绑定到/ui/enabled模型字段。在StatusExt.controller.js中,通过获取按钮ID前缀拼接完整控件ID,使用setEnabled(false)方法即可禁用按钮。关键点包括:1)使用extensionAPI获取视图ID前缀;2)注意事件回调中的this上下文绑定;3)通过修改模型字段可同步更新所有绑定

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 375

java虚拟机在所有平台上都是一样的_Java代码如何运行在Java虚拟机中

我们都知道要运行 Java 代码就必须要有JRE,也就是Java运行时环境,JRE中包含了Java程序的必需组件,包括Java虚拟机以及Java核心类库,然而运行C++代码则不需要额外的运行时环境,只需要把代码编译成CPU能识别的指令即可,也就是机器码.那为什么Java不直接像C++那样而需要在虚拟机中运行呢?他在虚拟机中又是如何运行的?接着往下看.Java为什么要在虚拟机中运行刚才我们谈到C++...

weixin_39604516的博客 794

国家基本比例尺分幅土地利用现状图制作

本次主要解决的问题是如何构建脚本快速生成所涉及区域标准国家基本比例尺分幅,然后制作土地利用现状图模板,套用模板生成标准分幅土地利用现状图。

xyt1172228177的博客 2458

dalvik虚拟机和java虚拟机的关系_Android系统Dalvik虚拟机与Java虚拟机的区别

Dalvik虚拟机作为Android平台的核心组件,拥有如下几个特点:体积小,占用内存空间小;专有的DEX可执行文件格式,体积更小,执行速度更快;常量池采用32位索引值,寻址类方法名、字段名、常量更快;基于寄存器架构,并拥有一套完整的指令系统;提供了对象生命周期管理、堆栈管理、线程管理、安全和异常管理以及垃圾回收等重要功能;所有的Android程序都运行在Android系统进程里,每个进程对应着一...

weixin_35625676的博客 444

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

java虚拟机是什么?

一、java虚拟机定义: 虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。 所谓的java虚拟机,就是一台虚拟的机器。它是一款软件,用来执行一系列虚拟计算机指令,大体上虚拟机可以分为系统虚拟机和程序虚拟机。visual Box、VMare就属于

qq_46416934的博客 2125

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Java虚拟机的基本结构

本章主要介绍了Java虚拟机的基本结构,其中,对Java堆、Java栈和方法区做了较为完整的说明。同时,也对如何设置Jva虚拟机参数做了简要说明。

guye 2275

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

java虚拟机_Java虚拟机详解——简介

作者: YSOcean 原文链接:https://www.cnblogs.com/ysocean/p/7921930.html目录1、Oracle Java SE 8 产品组件2、虚拟机3、Java虚拟机4、Java虚拟机种类1、Oracle Java SE 8 产品组件通过上面给定的地址,我们可以看到如下这张图:通常来说 Java平台标准版(Java SE)包括 Java SE开发工具包(JDK...

weixin_39802519的博客 409

java虚拟机有什么作用_java虚拟机有什么用

Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之...

weixin_29247219的博客 1401

java虚拟机进程,Java虚拟机 和 java虚拟机下的进程

一、什么是Java虚拟机当你谈到Java虚拟机时,你可能是指:1、抽象的Java虚拟机规范2、一个具体的Java虚拟机实现3、一个运行的Java虚拟机实例二、Java虚拟机的生命周期一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。程序开始执行时他才运行,程序结束时他就停止。你在同一台机器上运行三个程序,就会有三个运行中的Java虚拟机。Java虚拟机总是开始于一个main()方法,...

weixin_32211137的博客 653

虚拟机与java虚拟机

1、虚拟机 所谓虚拟机(Virtual Machine), 就是一台虚拟的计算机。它是一款软件,用来执行一系列虚拟计算机指令。大体上,虚拟机可以分为系统虚拟机和程序虚拟机。 大名鼎鼎的Visual Box, VMware就属于系统虚拟机,它们完全是对物理计算机的仿真,提供了一个可运行完整操作系统的软件平台。 程序虚拟机的典型代表就是Java虚拟机,它专门为执行单个计算机程序而设计,在Java虚拟机中执行的指令我们称为Java字节码指令。 无论是系统虚拟机还是程序虚拟机,在上面运行的软件都被限制于虚

weixin_43319635的博客 563

初探Java虚拟机

初探Java虚拟机

a328062954的博客 427

java虚拟机HotSpot

(3)HotSpot VM: 是Sun/OracleJDK和OpenJDK的默认虚拟机,也是目前使用最广泛的Java虚拟机,HotSpot VM一开始并不是由Sun公司开发的,而是一家名为"Longview Technologies"的小公司设计得,甚至这个虚拟机最初并不是为Java语言所设计得,他来源于Strongtalk虚拟机,Strongtalk的很多技术其实是来源于一款为了支持Self语言实现“达到C语言50%以上的执行效率”的目标而设计得Self虚拟机;二、java语言规范:详见java语法。

w_t_y_y的博客 235

Java 虚拟机(六):Java 虚拟机总述

这是我们 Java 虚拟机系列文章的第六篇,Java 虚拟机总述。

qq_24428851的博客 1110

Java虚拟机的内部构成

Java虚拟机会在在执行Java程序的时候会把其内存划分为一些不同的区域,这些区域都有其各自的用途,并且永远其自己的生命周期,下面我们来看看这张图 由上图我们可以看出,虚拟机的内存区域可以按照是否是线程共享的分为两大块,线程共享的区域有方法区和堆,线程私有的分为虚拟机栈,本地方法栈和程序计数器。下面我们来详细看看这些东西里面都存着什么吧。 方法区 方法区和Java堆一样,同属于是线程共享的数据区域。 方法区用来存储一些已经被虚拟机加载的类型信息、常量、静态变量、即时编译后的代码缓存等数据。 其中方法区还有

魔法少女厄加特的博客 6504

Java虚拟机

Java虚拟机一、什么是Java虚拟机Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。1.为什么要使用Java虚拟机Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成

Holly 859

JAVA虚拟机发展

一、java发展史 1995年5月23日,Oak语言改名为Java,并且在SunWorld大会上正式发布Java 1.0版本。Java语言第 一次提出了“Write Once,Run Anywhere”的口号。 1996年1月23日,JDK 1.0发布,Java语言有了第一个正式版本的运行环境。JDK 1.0提供了一个纯 解释执行的Java虚拟机实现(Sun Classic VM)。JDK 1.0版本的代表技术包括:Java虚拟机、Applet、 AWT等。 1996年4月,十个最主要的操作系统和计算

毕富国的博客 877
上一篇: 运行时数据区
下一篇: 尝试使用注解开发
bhscHello
博客等级 码龄18年 1粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值