当前位置: 首页 > news >正文

电子商务网站模板 htmlwordpress旅游公司主题

电子商务网站模板 html,wordpress旅游公司主题,长沙新能源建站补贴,网站定制费用Java作为一种面向对象的#xff0c;跨平台语言#xff0c;其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似#xff0c;很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模型和Java对象模型#xff0c;这就是三个截然不同的概念跨平台语言其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模型和Java对象模型这就是三个截然不同的概念但是很多人容易弄混。 首先这三个概念是完全不同的概念。本文主要对这三个概念加以区分以及简单介绍。其中每一个知识点都可以单独写一篇文章本文主要是简要介绍。 ** 一、JVM内存结构 ** 我们都知道Java代码是要运行在虚拟机上的而虚拟机在执行Java程序的过程中会把所管理的内存划分为若干个不同的数据区域这些区域都有各自的用途。其中有些区域随着虚拟机进程的启动而存在而有些区域则依赖用户线程的启动和结束而建立和销毁。在《Java虚拟机规范Java SE 8》中描述了JVM运行时内存区域结构如下 各个区域的功能不是本文重点就不在这里详细介绍了。这里简单提几个需要特别注意的点 1、以上是Java虚拟机规范不同的虚拟机实现会各有不同但是一般会遵守规范。 2、规范中定义的方法区只是一种概念上的区域并说明了其应该具有什么功能。但是并没有规定这个区域到底应该处于何处。所以对于不同的虚拟机实现来说是由一定的自由度的。 3、不同版本的方法区所处位置不同上图中划分的是逻辑区域并不是绝对意义上的物理区域。因为某些版本的JDK中方法区其实是在堆中实现的。 4、运行时常量池用于存放编译期生成的各种字面量和符号应用。但是Java语言并不要求常量只有在编译期才能产生。比如在运行期String.intern也会把新的常量放入池中。 5、除了以上介绍的JVM运行时内存外还有一块内存区域可供使用那就是直接内存。Java虚拟机规范并没有定义这块内存区域所以他并不由JVM管理是利用本地方法库直接在堆外申请的内存区域。 6、堆和栈的数据划分也不是绝对的如HotSpot的JIT会针对对象分配做相应的优化。 如上做个总结JVM内存结构由Java虚拟机规范定义。描述的是Java程序执行过程中由JVM管理的不同数据区域。各个区域有其特定的功能。 JVM内存结构详解 见JVM内存结构传送门 ** 二、Java内存模型 ** Java内存模型看上去和Java内存结构JVM内存结构差不多很多人会误以为两者是一回事儿这也就导致面试过程中经常答非所为。 在前面的关于JVM的内存结构的图中我们可以看到其中Java堆和方法区的区域是多个线程共享的数据区域。也就是说多个线程可能可以操作保存在堆或者方法区中的同一个数据。这也就是我们常说的“Java的线程间通过共享内存进行通信”。 Java内存模型是根据英文Java Memory ModelJMM翻译过来的。其实JMM并不像JVM内存结构一样是真实存在的。他只是一个抽象的概念。JSR-133: Java Memory Model and Thread Specification中描述了JMM是和多线程相关的他描述了一组规则或规范这个规范定义了一个线程对共享变量的写入时对另一个线程是可见的。 那么简单总结下Java的多线程之间是通过共享内存进行通信的而由于采用共享内存进行通信在通信过程中会存在一系列如可见性、原子性、顺序性等问题而JMM就是围绕着多线程通信以及与其相关的一系列特性而建立的模型。JMM定义了一些语法集这些语法集映射到Java语言中就是volatile、synchronized等关键字。 在Java中JMM是一个非常重要的概念正是由于有了JMMJava的并发编程才能避免很多问题。这里就不对Java内存模型做更加详细的介绍了想了解更多的朋友可以参考《Java并发编程的艺术》。 详见Java内存模型 ** 三、Java对象模型 ** Java是一种面向对象的语言而Java对象在JVM中的存储也是有一定的结构的。而这个关于Java对象自身的存储模型称之为Java对象模型。 HotSpot虚拟机中设计了一个OOP-Klass Model。OOPOrdinary Object Pointer指的是普通对象指针而Klass用来描述对象实例的具体类型。 每一个Java类在被JVM加载的时候JVM会给这个类创建一个instanceKlass保存在方法区用来在JVM层表示该Java类。当我们在Java代码中使用new创建一个对象的时候JVM会创建一个instanceOopDesc对象这个对象中包含了对象头以及实例数据。 这就是一个简单的Java对象的OOP-Klass模型即Java对象模型。 ** 四、总结 ** 我们再来区分下JVM内存结构、 Java内存模型 以及 Java对象模型 三个概念。 JVM内存结构和Java虚拟机的运行时区域有关。 Java内存模型和Java的并发编程有关。 Java对象模型和Java对象在虚拟机中的表现形式有关。 关于这三部分内容本文并未分别展开因为涉及到的知识点实在太多如果读者感兴趣可以自行学习。 注本文来自hollischuang
http://www.pierceye.com/news/664658/

相关文章:

  • 云南省建设工程投标中心网站网页的制作步骤是什么
  • 保定网站设计概述更换动易网站模板的方法
  • 新手如何注册网站域名做 理财网站有哪些
  • 南宁快速建站模板企业网站的开发与应用
  • 网站运营适合什么样的人做企业宣传及介绍ppt
  • 怎么样网站开源小升初在线做试卷的网站
  • 中国建设银行章丘支行网站网站排版设计欣赏
  • 儿童摄影网站建设专业做网站制作自助建站系统
  • 注册做网站的公司有哪些wordpress 4.1 下载
  • 用ps做美食网站一个网站多少钱?
  • 网站建设 试题揭阳专业做网站公司
  • 手机上怎么创建自己的网站河南企业网站优化
  • 定陶区城乡和住房建设局网站新手怎么做网站
  • 工商银行与建设银行网站对比石嘴山网站seo
  • seo快速建站自学程序员的步骤
  • 做旅行网站的依据及意义如何制作自己想要的图片
  • 电子商务网站怎么做网站建设企业建站哪家好?来这里看看
  • 网站备案电话号码购物商城网站建设方案
  • 手机商城系统徐州seo计费管理
  • 西安网站公司哪家好信息推广的方式有哪些
  • 网站开发注意的事项商丘网站制作软件
  • 51zwd一起做网站广州广东省网站备案查询
  • 如何生成一个网站自己弄公司网站
  • 企业信用信息查询网官网孝感网站seo
  • 中淼建设工程有限公司网站分类用wordpress
  • 腾讯建设网站首页做销售网站
  • 推广引流网站聚名网注册
  • 原来做网站后来跑国外了多伦多网站建设多少钱
  • 手机建站平台做母婴网站设计思路
  • 免费个人手机网站九八智能建站