您当前的位置:首页 > 发表论文>论文发表

虚拟机论文题目

2023-03-09 01:27 来源:学术参考网 作者:未知

虚拟机论文题目

计算机网络技术专业毕业论文题目

你是不是在为选计算机网络技术专业毕业论文题目烦恼呢?以下是我为大家整理的关于计算机网络技术专业毕业论文题目,希望大家喜欢!

1. 基于移动互联网下服装品牌的推广及应用研究

2. 基于Spark平台的恶意流量监测分析系统

3. 基于MOOC翻转课堂教学模式的设计与应用研究

4. 一种数字货币系统P2P消息传输机制的设计与实现

5. 基于OpenStack开放云管理平台研究

6. 基于OpenFlow的软件定义网络路由技术研究

7. 未来互联网试验平台若干关键技术研究

8. 基于云计算的海量网络流量数据分析处理及关键算法研究

9. 基于网络化数据分析的社会计算关键问题研究

10. 基于Hadoop的网络流量分析系统的研究与应用

11. 基于支持向量机的移动互联网用户行为偏好研究

12. “网络技术应用”微课程设计与建设

13. 移动互联网环境下用户隐私关注的影响因素及隐私信息扩散规律研究

14. 未来互联网络资源负载均衡研究

15. 面向云数据中心的虚拟机调度机制研究

16. 基于OpenFlow的数据中心网络路由策略研究

17. 云计算环境下资源需求预测与优化配置方法研究

18. 基于多维属性的社会网络信息传播模型研究

19. 基于遗传算法的云计算任务调度算法研究

20. 基于OpenStack开源云平台的网络模型研究

21. SDN控制架构及应用开发的研究和设计

22. 云环境下的资源调度算法研究

23. 异构网络环境下多径并行传输若干关键技术研究

24. OpenFlow网络中QoS管理系统的研究与实现

25. 云协助文件共享与发布系统优化策略研究

26. 大规模数据中心可扩展交换与网络拓扑结构研究

27. 数据中心网络节能路由研究

28. Hadoop集群监控系统的设计与实现

29. 网络虚拟化映射算法研究

30. 软件定义网络分布式控制平台的研究与实现

31. 网络虚拟化资源管理及虚拟网络应用研究

32. 基于流聚类的网络业务识别关键技术研究

33. 基于自适应流抽样测量的网络异常检测技术研究

34. 未来网络虚拟化资源管理机制研究

35. 大规模社会网络中影响最大化问题高效处理技术研究

36. 数据中心网络的流量管理和优化问题研究

37. 云计算环境下基于虚拟网络的资源分配技术研究

38. 基于用户行为分析的精确营销系统设计与实现

39. P2P网络中基于博弈算法的优化技术研究

40. 基于灰色神经网络模型的网络流量预测算法研究

41. 基于KNN算法的Android应用异常检测技术研究

42. 基于macvlan的Docker容器网络系统的设计与实现

43. 基于容器云平台的网络资源管理与配置系统设计与实现

44. 基于OpenStack的SDN仿真网络的研究

45. 一个基于云平台的智慧校园数据中心的设计与实现

46. 基于SDN的数据中心网络流量调度与负载均衡研究

47. 软件定义网络(SDN)网络管理关键技术研究

48. 基于SDN的数据中心网络动态负载均衡研究

49. 基于移动智能终端的医疗服务系统设计与实现

50. 基于SDN的网络流量控制模型设计与研究

51. 《计算机网络》课程移动学习网站的设计与开发

52. 数据挖掘技术在网络教学中的应用研究

53. 移动互联网即时通讯产品的用户体验要素研究

54. 基于SDN的负载均衡节能技术研究

55. 基于SDN和OpenFlow的流量分析系统的研究与设计

56. 基于SDN的网络资源虚拟化的研究与设计

57. SDN中面向北向的`控制器关键技术的研究

58. 基于SDN的网络流量工程研究

59. 基于博弈论的云计算资源调度方法研究

60. 基于Hadoop的分布式网络爬虫系统的研究与实现

61. 一种基于SDN的IP骨干网流量调度方案的研究与实现

62. 基于软件定义网络的WLAN中DDoS攻击检测和防护

63. 基于SDN的集群控制器负载均衡的研究

64. 基于大数据的网络用户行为分析

65. 基于机器学习的P2P网络流分类研究

66. 移动互联网用户生成内容动机分析与质量评价研究

67. 基于大数据的网络恶意流量分析系统的设计与实现

68. 面向SDN的流量调度技术研究

69. 基于P2P的小额借贷融资平台的设计与实现

70. 基于移动互联网的智慧校园应用研究

71. 内容中心网络建模与内容放置问题研究

72. 分布式移动性管理架构下的资源优化机制研究

73. 基于模糊综合评价的P2P网络流量优化方法研究

74. 面向新型互联网架构的移动性管理关键技术研究

75. 虚拟网络映射策略与算法研究

76. 互联网流量特征智能提取关键技术研究

77. 云环境下基于随机优化的动态资源调度研究

78. OpenFlow网络中虚拟化机制的研究与实现

79. 基于时间相关的网络流量建模与预测研究

80. B2C电子商务物流网络优化技术的研究与实现

81. 基于SDN的信息网络的设计与实现

82. 基于网络编码的数据通信技术研究

83. 计算机网络可靠性分析与设计

84. 基于OpenFlow的分布式网络中负载均衡路由的研究

85. 城市电子商务物流网络优化设计与系统实现

86. 基于分形的网络流量分析及异常检测技术研究

87. 网络虚拟化环境下的网络资源分配与故障诊断技术

88. 基于中国互联网的P2P-VoIP系统网络域若干关键技术研究

89. 网络流量模型化与拥塞控制研究

90. 计算机网络脆弱性评估方法研究

91. Hadoop云平台下调度算法的研究

92. 网络虚拟化环境下资源管理关键技术研究

93. 高性能网络虚拟化技术研究

94. 互联网流量识别技术研究

95. 虚拟网络映射机制与算法研究

96. 基于业务体验的无线资源管理策略研究

97. 移动互联网络安全认证及安全应用中若干关键技术研究

98. 基于DHT的分布式网络中负载均衡机制及其安全性的研究

99. 高速复杂网络环境下异常流量检测技术研究

100. 基于移动互联网技术的移动图书馆系统研建

101. 基于连接度量的社区发现研究

102. 面向可信计算的分布式故障检测系统研究

103. 社会化媒体内容关注度分析与建模方法研究

104. P2P资源共享系统中的资源定位研究

105. 基于Flash的三维WebGIS可视化研究

106. P2P应用中的用户行为与系统性能研究

107. 基于MongoDB的云监控设计与应用

108. 基于流量监测的网络用户行为分析

109. 移动社交网络平台的研究与实现

110. 基于 Android 系统的 Camera 模块设计和实现

111. 基于Android定制的Lephone系统设计与实现

112. 云计算环境下资源负载均衡调度算法研究

113. 集群负载均衡关键技术研究

114. 云环境下作业调度算法研究与实现

115. 移动互联网终端界面设计研究

116. 云计算中的网络拓扑设计和Hadoop平台研究

117. pc集群作业调度算法研究

118. 内容中心网络网内缓存策略研究

119. 内容中心网络的路由转发机制研究

120. 学习分析技术在网络课程学习中的应用实践研究

vr技术浅析论文2000字范文

摘 要

由于无人值守变电站越来越多,这对电力管理部门在技术和管理上都带来了新的挑战。无人值守变电站的自动化、智能化的程度越来越高,各种在线监控系统也越来越多,对于信息化管理的要求也更高。因此亟待需要一个统一监控平台将电气设备、环境、图像、各种报警装置全方位直观展现,以便管理操作人员能快速、直观、便捷的查看到所需的实时或历史数据。本项目即是针对以上所列出的无人值守变电站运行管理的新挑战,通过基于虚拟现实(VR)技术的变电站远程统一智能监控平台的应用研究,来提高无人值守变电站的运行管理水平。

【关键词】虚拟现实 电力 智能 监控平台

1 引言

随着电力自动化技术的快速发展,越来越多的常规变电站改造为无人值守变电站,无人值守变电站的电压等级和范围越来越广,成为未来发展的必然趋势。在常规变电站改造为无人值守变电站以后,它实现了变电站运行的自动化、精度化,确保了对变电站事故的处理效率和准确性,进一步保障了 系统安全 ,减少了人员的误操作,减少了大量的运行值班人员,提高了劳动生产率,降低了成本,带动了企业科技进步。

但是无人值守的模式无论是在技术上还是管理上都对原有的模式带来了新的挑战。无人变电站的电压等级各站有所不同,设备型号复杂,对于管理运行人员熟悉设备的运行、维护和操作的要求高。并且无人值守变电站的自动化、智能化的程度越来越高,各种在线监控系统也越来越多,对于信息化管理的要求也更高。因此亟待需要将不同监控系统按照设备的真实场景进行统一、整合、分析,电气设备、环境、图像、各种报警装置能全方位直观展现,以便管理操作人员能快速、直观、便捷的查看到所需的实时或历史数据。

2 项目内容

本项目即是针对以上所列出的无人值守变电站运行管理的新挑战,通过基于虚拟现实(VR)技术的变电站远程统一智能监控平台(以下简称“平台”)的应用研究,来提高无人值守变电站的运行管理水平,如图1所示。

2.1 平台的功能

2.1.1 真实三维再现变电站场景

直观再现变电站的建筑、主控室、开关室及环境场景; 直观显示电气一次部分以及电气部分的实际连接;直观显示开关柜的位置、外观 ; 直观显示辅控设备的现场安装位置。

2.1.2 集中展示设备工况

3D实景中沉浸、快速、便捷地查看任意电气设备的相关数据、数值、图像,并可进行历史变化趋势的对应分析、判断。

与Scada系统融合――实时展示电气设备的Scada遥测、遥信数据,并统计开关跳闸次数、变压器调档次数及瓦斯保护动作次数;

与图像监测系统融合――实时显示现场监测图像;

与在线测温系统融合――实时显示在线温度;

与现场巡检系统融合――展示设备巡检历史记录。

2.1.3 自动灵活查看实时图像

双击场景中的设备,图像设备自动进行转向、对焦,颠覆传统人工查找摄像机、转动云台、聚焦等一系列繁琐动作;无需查找图像设备,可快速、便捷、准确地进行对应设备的远程外观察看、拍照、热红外成像测温、热红外拍照等一系列动作,并智能生成人性化的记录、 报告 等。

2.1.4 设备异常告警

整个三维场景中,每个设备模型会随着实时采集来的数据,智能判断设备工作状态是否正常;对于出现异常的,三维场景会自动将设备渲染成告警模式并定位,不断提示操作人员及时排除故障;解警后,可在设备数据面板中查看历史告警记录。

2.1.5 远程巡视

设定所需巡检的设备点以及关注的数据量、视频图像外观、热红外成像等必要的巡检信息,系统自动生成巡检路径;巡视人员通过平台随机或定时进行远程巡检,当进入已设定的巡检设备点时,系统将相关的设备相关在线监测数据,进行集中展示;对实时巡检的结果、过去时间短的变化趋势等进行正常与否进行巡视、判定,形成远程综合分析巡检结果记录,如图2所示。

2.2 基于虚拟现实(VR)技术实现的变电站远程统一智能监控平台的特点

2.2.1 直观逼真

虚拟现实是人们通过计算机对复杂数据进行可视化、操作以及实时交互的环境。本平台中将通过三维模型忠实逼真地再现了安阳市北郊变电站场景,产生了沉浸式的交互环境。

2.2.2 统一管理

基于虚拟现实(VR)技术实现的变电站远程统一智能监控平台可融合各种平台系统,展示其相应数据或图像,如Scada电气数据(遥信、遥测数据)、在线测温数据、辅助监控系统的视频图像等。

2.2.3 智能监控

基于虚拟现实(VR)技术实现的变电站远程统一智能监控平台融合数字视频监控、RFID无线识别、智能门禁、智能报警等多种监控方式:

整个三维场景中,每个设备模型会随着实时采集来的数据,智能判断设备工作状态是否正常。对于出现异常的,三维场景会自动将设备渲染成告警模式并定位,不断提示操作人员及时排除故障;

所有的图像、安防、消防、周界、门禁、温湿度、各种传感设备、三维一次电气设备及其附件的各种属性、数据、动作、变化规律,均可以作为告警条件,进行告警及组合告警触发。

2.2.4 智能远程巡检

优化目前传统的现场巡检模式,通过在该平台上设定巡检路线、巡检设备、巡检数据量、设备外观等不同巡检内容,巡视人员在定时或随机通过该平台上进行远程巡检,当进入巡检设备点时,系统将相关的设备相关在线监测数据,进行集中展示,并对实时巡检的结果、过去时间短的变化趋势等进行正常与否进行巡视、判定,形成综合分析结果记录,能远程、高效进行电气设备多系统、跨平台巡测,减少现场巡检频次,形成和现场巡检的高度互补、统一。

3 技术实现   3.1 3D建模技术

三维建模软件为3dMax,它是Autodesk公司开发的基于PC系统的三维动画渲染和制作软件,它功能强大,扩展性好。它适合制作建筑模型、物体动画模型以及人物动画模型等,可利用系统自带的材质库,或自制的贴图,来达到逼真的效果。

3DMax还可以将模型文件导出多种格式的文件,可用于 Java3D开发的引擎平台加载,如obj文件、3ds文件、mdl文件和smd文件等。

本平台引擎所适用的模型有obj、3ds和ms3d。基本场景静止模型采用obj文件格式;刀闸开合、门开合的动画采用3ds格式;漫游人物动画采用ms3d格式。

3.2 平台引擎技术

由于本平台采用B/S架构,所以平台引擎选择用Java3D 来实现VR技术。Java 3D是Java语言在三维图形领域的扩展,是一组应用编程接口(API)。客户端只需要使用标准的Java虚拟机就可以浏览,因此具有不需要安装插件的优点。而且Java3D是基于Internet的软件开发平台,它能将图形功能与Internet很好地集成在一起,因此它非常适用于开发基于网络的VR系统。

本平台算法有如下创新点:

(1)创新采用双视野模式展示变电站复杂场景中的人物/眼睛视野模式;更加直观,沉浸地再现变电站复杂真实场景,实现变电站复杂场景及电气设备、屏柜等多视角三维展。

(2)针对三维变电站场景地形的复杂性,改进传统2D启发式搜索A*算法,大幅度提升变电站复杂三维场景自动寻径的消耗时间。

(3)改进了三维变电站复杂场景中地面高低的检测算法,创新地增加了多维射线,来检测路面的高度信息,提高检验的精确性。

(4)根据变电站场景的复杂性、电气设备的布局复杂以及空间局限性,改进传统的AABB碰撞检测算法,采用动态AABB碰撞检测算法,大幅度提高碰撞检测的准确性。

(5)在变电站三维复杂场景中人物平滑移动,摒弃传统的BSP树,采用椭球体算法并添加滑动公式,实现碰撞后的平滑移动及电力巡检人物碰撞后的椭球体滑动处理。

3.3 系统接口技术

本平台与 其它 所需展示的系统接口程序采用Web Service模式。它是基于网络的、分布式的模块化组件,它执行特定的任务,遵守具体的技术规范,这些规范使得Web Service能与其他兼容的组件进行互操作。Web Services 利用 SOAP(简单对象访问协议)和 XML(Extensible Markup Language可扩展标记语言 )对这些模型在通讯方面作了进一步的扩展以消除特殊对象模型的障碍。XML是用于标记电子文件使其具有结构性的标记语言,提供统一的 方法 来描述和交换独立于应用程序或供应商的结构化数据,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言,非常适合 Web 传输。

本平台的一大功能是可以展示不同系统的实时参数,不同的系统有不同的编程方式,而且像Scada系统,数据量大,且实时性要求很高,接口程序需要设计的灵活、高效,扩展性好。

与Scada系统接口:Scada系统中有所有电力设备所有遥测、遥信数据,本平台需要快速、便捷的从如此庞大的数据量中检索出所需的数据是个难点

与变电站辅控系统接口:本平台需要从辅控系统中要快速便捷地检索出实时图像、及智能报警信号,而图像的文件一般比较大,快速流畅地在3D平台中展示是个难点。

预留与其它系统的接口:因为本平台可以融合其它多种系统平台的数据,所以要求它在扩展性上做到有足够的冗余设计。

4 结论

基于虚拟现实(VR)技术的统一监控平台三维系统采用先进的软硬件技术,在系统功能方面立足电力变电站智能化管理和安全运行的实际情况,解决了传统管理中很多人工难以解决的问题,同时面向变电站整体模块,克服过去各系统数据条块分割、人工关联的弊端,从变电站实际指挥、运行诊断、检修操作等实际使用的角度出发,实现变电运行设备数据准确及时的采集,电气设备、各种监控装置等真实位置场景及实时状态进行直观、立体、逼真的集中再现及变电站三维巡视的漫游、数据记录、外观记录、巡视分析报告录入等数据的直观、统一再现。规范了业务流程的管理,减少了人工和材料损耗,实现了信息数据及分析的自动生成,实现了变电运行的智能及集中化管理。

参考文献

[1]陈卓等.基于虚拟现实的变电站培训仿真巡视功能研究 [J].现代计算机(下半月版),2010(09).

[2]张照彦等.虚拟现实在变电站仿真中的应用 [J].计算机仿真,2008,25(2).

JAVA虚拟机内存分配与回收机制

[转帖] Java 中的堆和栈
简单的说:
Java把内存划分成两种:一种是栈内存,一种是堆内存。
在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。
当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。
堆内存用来存放由new创建的对象和数组。
在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。
在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量。
引用变量就相当于是为数组或对象起的一个名称,以后就可以在程序中使用栈中的引用变量来访问堆中的数组或对象。

具体的说:
栈与堆都是Java用来在Ram中存放数据的地方。与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆。
Java的堆是一个运行时数据区,类的(对象从中分配空间。这些对象通过new、newarray、anewarray和multianewarray等 指令建立,它们不需要程序代码来显式的释放。堆是由垃圾回收来负责的,堆的优势是可以动态地分配内存大小,生存期也不必事先告诉编译器,因为它是在运行时 动态分配内存的,Java的垃圾收集器会自动收走这些不再使用的数据。但缺点是,由于要在运行时动态分配内存,存取速度较慢。
栈的优势是,存取速度比堆要快,仅次于寄存器,栈数据可以共享。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本 类型的变量(,int, short, long, byte, float, double, boolean, char)和对象句柄。
栈有一个很重要的特殊性,就是存在栈中的数据可以共享。假设我们同时定义:
int a = 3;
int b = 3;
编译器先处理int a = 3;首先它会在栈中创建一个变量为a的引用,然后查找栈中是否有3这个值,如果没找到,就将3存放进来,然后将a指向3。接着处理int b = 3;在创建完b的引用变量后,因为在栈中已经有3这个值,便将b直接指向3。这样,就出现了a与b同时均指向3的情况。这时,如果再令a=4;那么编译器 会重新搜索栈中是否有4值,如果没有,则将4存放进来,并令a指向4;如果已经有了,则直接将a指向这个地址。因此a值的改变不会影响到b的值。要注意这 种数据的共享与两个对象的引用同时指向一个对象的这种共享是不同的,因为这种情况a的修改并不会影响到b, 它是由编译器完成的,它有利于节省空间。而一个对象引用变量修改了这个对象的内部状态,会影响到另一个对象引用变量。

String是一个特殊的包装类数据。可以用:
String str = new String("abc");
String str = "abc";
两种的形式来创建,第一种是用new()来新建对象的,它会在存放于堆中。每调用一次就会创建一个新的对象。
而第二种是先在栈中创建一个对String类的对象引用变量str,然后查找栈中有没有存放"abc",如果没有,则将"abc"存放进栈,并令str指向”abc”,如果已经有”abc” 则直接令str指向“abc”。

比较类里面的数值是否相等时,用equals()方法;当测试两个包装类的引用是否指向同一个对象时,用==,下面用例子说明上面的理论。
String str1 = "abc";
String str2 = "abc";
System.out.println(str1==str2); //true
可以看出str1和str2是指向同一个对象的。

String str1 =new String ("abc");
String str2 =new String ("abc");
System.out.println(str1==str2); // false
用new的方式是生成不同的对象。每一次生成一个。
因此用第二种方式创建多个”abc”字符串,在内存中其实只存在一个对象而已. 这种写法有利与节省内存空间. 同时它可以在一定程度上提高程序的运行速度,因为JVM会自动根据栈中数据的实际情况来决定是否有必要创建新对象。而对于String str = new String("abc");的代码,则一概在堆中创建新对象,而不管其字符串值是否相等,是否有必要创建新对象,从而加重了程序的负担。
另一方面, 要注意: 我们在使用诸如String str = "abc";的格式定义类时,总是想当然地认为,创建了String类的对象str。担心陷阱!对象可能并没有被创建!而可能只是指向一个先前已经创建的 对象。只有通过new()方法才能保证每次都创建一个新的对象。 由于String类的immutable性质,当String变量需要经常变换其值时,应该考虑使用StringBuffer类,以提高程序效率。

java中内存分配策略及堆和栈的比较
2.1 内存分配策略
按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的.
静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间.这种分配策略要求程序代码中不允 许有可变数据结构(比如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间需求.
栈式存储分配也可称为动态存储分配,是由一个类似于堆栈的运行栈来实现的.和静态存储分配相反,在栈式存储方案中,程序对数据区的需求在编译时是完全未知 的,只有到运行的时候才能够知道,但是规定在运行中进入一个程序模块时,必须知道该程序模块所需的数据区大小才能够为其分配内存.和我们在数据结构所熟知 的栈一样,栈式存储分配按照先进后出的原则进行分配。
静态存储分配要求在编译时能知道所有变量的存储要求,栈式存储分配要求在过程的入口处必须知道所有的存储要求,而堆式存储分配则专门负责在编译时或运行时 模块入口处都无法确定存储要求的数据结构的内存分配,比如可变长度串和对象实例.堆由大片的可利用块或空闲块组成,堆中的内存可以按照任意顺序分配和释 放.

2.2 堆和栈的比较
上面的定义从编译原理的教材中总结而来,除静态存储分配之外,都显得很呆板和难以理解,下面撇开静态存储分配,集中比较堆和栈:
从堆和栈的功能和作用来通俗的比较,堆主要用来存放对象的,栈主要是用来执行程序的.而这种不同又主要是由于堆和栈的特点决定的:
在编程中,例如C/C++中,所有的方法调用都是通过栈来进行的,所有的局部变量,形式参数都是从栈中分配内存空间的。实际上也不是什么分配,只是从栈顶 向上用就行,就好像工厂中的传送带(conveyor belt)一样,Stack Pointer会自动指引你到放东西的位置,你所要做的只是把东西放下来就行.退出函数的时候,修改栈指针就可以把栈中的内容销毁.这样的模式速度最快, 当然要用来运行程序了.需要注意的是,在分配的时候,比如为一个即将要调用的程序模块分配数据区时,应事先知道这个数据区的大小,也就说是虽然分配是在程 序运行时进行的,但是分配的大小多少是确定的,不变的,而这个"大小多少"是在编译时确定的,不是在运行时.
堆是应用程序在运行的时候请求操作系统分配给自己内存,由于从操作系统管理的内存分配,所以在分配和销毁时都要占用时间,因此用堆的效率非常低.但是堆的 优点在于,编译器不必知道要从堆里分配多少存储空间,也不必知道存储的数据要在堆里停留多长的时间,因此,用堆保存数据时会得到更大的灵活性。事实上,面 向对象的多态性,堆内存分配是必不可少的,因为多态变量所需的存储空间只有在运行时创建了对象之后才能确定.在C++中,要求创建一个对象时,只需用 new命令编制相关的代码即可。执行这些代码时,会在堆里自动进行数据的保存.当然,为达到这种灵活性,必然会付出一定的代价:在堆里分配存储空间时会花 掉更长的时间!这也正是导致我们刚才所说的效率低的原因,看来列宁同志说的好,人的优点往往也是人的缺点,人的缺点往往也是人的优点(晕~).

2.3 JVM中的堆和栈
JVM是基于堆栈的虚拟机.JVM为每个新创建的线程都分配一个堆栈.也就是说,对于一个Java程序来说,它的运行就是通过对堆栈的操作来完成的。堆栈以帧为单位保存线程的状态。JVM对堆栈只进行两种操作:以帧为单位的压栈和出栈操作。
我们知道,某个线程正在执行的方法称为此线程的当前方法.我们可能不知道,当前方法使用的帧称为当前帧。当线程激活一个Java方法,JVM就会在线程的 Java堆栈里新压入一个帧。这个帧自然成为了当前帧.在此方法执行期间,这个帧将用来保存参数,局部变量,中间计算过程和其他数据.这个帧在这里和编译 原理中的活动纪录的概念是差不多的.
从Java的这种分配机制来看,堆栈又可以这样理解:堆栈(Stack)是操作系统在建立某个进程时或者线程(在支持多线程的操作系统中是线程)为这个线程建立的存储区域,该区域具有先进后出的特性。
每一个Java应用都唯一对应一个JVM实例,每一个实例唯一对应一个堆。应用程序在运行中所创建的所有类实例或数组都放在这个堆中,并由应用所有的线程 共享.跟C/C++不同,Java中分配堆内存是自动初始化的。Java中所有对象的存储空间都是在堆中分配的,但是这个对象的引用却是在堆栈中分配,也 就是说在建立一个对象时从两个地方都分配内存,在堆中分配的内存实际建立这个对象,而在堆栈中分配的内存只是一个指向这个堆对象的指针(引用)而已。

转自:

呵呵,在看到你的问题前10分钟才看的这个文章...

相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页