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

如何制作一个网站做淘宝券国内响应式布局网站

如何制作一个网站做淘宝券,国内响应式布局网站,西安市住房和城乡建设局门户网站,网站开发asp.net1. 对象的创建 遇到new指令时 当Java虚拟机遇到一个字节码new指令时。 首先会去检查这个指令的参数是否能在常量池中定位到一个类的符号引用#xff0c;并且检查这个符号引用代表的类是否被加载、解析和初始化过。 如果没有#xff0c;那么必须执行类的加载过程(加载、检查…1. 对象的创建 遇到new指令时 当Java虚拟机遇到一个字节码new指令时。 首先会去检查这个指令的参数是否能在常量池中定位到一个类的符号引用并且检查这个符号引用代表的类是否被加载、解析和初始化过。 如果没有那么必须执行类的加载过程(加载、检查、准备、解析、初始化) 类加载后 类加载检查通过后接下来虚拟机会为新生对象分配内存。对象所需内存的大小在类加载完成后便可完全确定。 划分内存 如果Java堆中内存是绝对规整的那么只需一个指针作为分界点的指示器对象需要多少内存就移出多少内存。我们称这种方式为指针碰撞。 如果Java堆中的内存不是规整的那么虚拟机就必须维护一个表记录那些内存块是可用的在分配的时候从列表中找到一块足够大的空间划分给对象实例并更新列表的记录这种分配方式称为空闲列表。 分配安全 在线程并发情况下可能会出现正在给对象A分配一块内存但指针还没来得及修改对象B又使用了原来的指针进行分配这就会造成内存不安全。 解决方案1对分配内存空间的操作进行同步处理——实际上虚拟机是采用CAS配上失败重试的方式保证更新操作的原子性。 解决方案2把内存分配的动作按照线程划分在不同空间之中进行即每个线程在Java堆中预先分配一小块内存称为本地线程分配缓冲(TLAB) 分配内存之后该怎么做? Java虚拟机会将必要的信息存放到对象的对象头中其中包括这个对象是哪个类的实例、如何才能找到类的元数据信息、对象的哈希码、对象的GC分代年龄信息等。 分配好对象头之后对象创建才刚刚开始(Java程序的角度) 目前对象的构造函数即Class文件中的init()方法还没执行所有的字段都为默认的零值对象需要的其他资源和状态信息也还没有按照预定的意图构造好。new指令之后会接着执行init方法按照程序员的意愿对对象进行初始化这样一个真正可用的对象才算完全被构造出来。 2. 对象的内存布局 在HotSpot虚拟机中对象在堆内存中的存储布局可以划分为三个部分对象头、实例数据、对齐填充。 对象头结构 HotSpot虚拟机对象的对象头部分包括两类信息。 第一类是用于存储对象自身的运行时数据如哈希码(HashCode) 、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等官方称它为“MarkWord?。MarkWord被设计成一个有着动态定义的数据结构。 对象头的另外一部分是类型指针即对象指向它的类型元数据的指针Java虛拟机通过这个指针来确定该对象是哪个类的实例。并不是所有的虚拟机实现都必须在对象数据上保留类型指针换句话说查找对象的元数据信息并不一定要经过对象本身这点我们会在下一节具体讨论。此外如果对象是一个Java数组那在对象头中还必须有一块用于记录数组长度的数据因为虚拟机可以通过普通Java对象的元数据信息确定Java对象的大小但是如果数组的长度是不确定的将无法通过元数据中的信息推断出数组的大小。 对象第二部分数据(内存) 接下来实例数据部分是对象真正存储的有效信息即我们在程序代码里面所定义的各种类型的字段内容无论是从父类继承下来的还是在子类中定义的字段都必须记录起来。 对象第三部分 对象的第三部分是对齐填充这并不是必然存在的也没有特别的含义它仅仅起着占位符的作用。由于HotSpot虚拟机的自动内存管理系统要求对象起始地址必须是8字节的整数倍换句话说就是任何对象的大小都必须是8字节的整数倍。对象头部分已经被精心设计成正好是8字节的倍数(1倍或者2倍)因此如果对象实例数据部分没有对齐的话就需要通过对齐填充来补全。 3. 对象的访问定位 创建对象自然是为了后续使用该对象我们的Java程序会通过栈上的reference数据来操作堆上的具体对象。由于reference类型在《Java虚拟机规范》里面只规定了它是-一个指向对象的引用并没有定义这个引用应该通过什么方式去定位、访问到堆中对象的具体位置所以对象访问方式也是由虚拟机实现而定的主流的访问方式主要有使用句柄和直接指针两种: 句柄:如果使用句柄访问的话Java堆中将可能会划分出一块内存来作为句柄池reference中存储的就是对象的句柄地址而句柄中包含了对象实例数据与类型数据各自具体的地址信息其结构如图2-2所。 .如果使用直接指针访问的话Java堆中对象的内存布局就必须考虑如何放置访问类型数据的相关信息reference中存储的直接就是对象地址如果只是访问对象本身的话就不需要多一次间接访问的开销如图2-3所示。 两者的区别 使用直接指针来访问最大的好处就是速度更快它节省了一次指针定位的时间开销由于对象访问在Java中非常频繁因此这类开销积少成多也是一项极为可观的执行成本就本书讨论的主要虚拟机HotSpot而言它主要使用第二种方式进行对象访问。
http://www.dnsts.com.cn/news/245758.html

相关文章:

  • 网站用什么技术做的龙之向导外贸网站怎么样
  • 上海微信网站公司哪家好响应式布局页面
  • 网站建设与维护蒋勇从小制作小灯笼
  • 网站右侧悬浮代码查权重网站
  • 古蔺网站建设网站外链什么时候做
  • 用模板网站做h5宣传页多少钱关于招聘的网站开发图
  • 设计网站printerestwordpress头部加导航
  • 哪里有网站建设开发公司培训课程表
  • 制作一个网站大概需要多少钱河北建设工程信息网停用公告
  • 农村学校资源网站建设与研究工业产品设计效果图
  • 网站开发需求调研响应式网站应该怎么做
  • 成都建设网站哪家好网站建设与管理职责
  • 手机网站模板更换方法天津小型企业网站设计
  • 刷网站百度关键词软件h5手机模板网站
  • c#可以做网站吗网站规划教学设计
  • 沈阳做微网站的公司自己做副业可以抢哪个网站
  • 网站域名不备案用wordpress建立学校网站
  • 模板建站广团黄石做网站公司
  • 网站建设招聘兼职阿里云免费服务器
  • 网站建设公司东莞高手总结wordpress函数
  • 征集二级网站建设意见 通知泰州网站制作策划
  • 赤峰网站建设招聘加强和改进网站建设建设方案
  • 做网站需要编程基础企业在线咨询服务系统
  • 手机网站建设推荐乐云seo网站用vps做dns
  • 大气网站后台界面模块化网站建设
  • 做网站用什么笔记本上海专业网站建设市场
  • 重庆网站建设案例玩客云做网站
  • 济南建站哪家好WordPress关联搜索插件
  • 做一个简单的网站多少钱seo网上培训课程
  • 一家网站建设公司需要什么资质应用商城下载