给女朋友讲了讲 V8 引擎
通过类的全限定名(包名 + 类名),获取到该类的.class文件的二进制字节流 将二进制字节流所代表的静态存储结构,转化为方法区运行时的数据结构 在内存中生成一个代表该类的java.lang.Class对象,作为方法区这个类的各种数据的访问入口 总结:加载二进制数据到内存 —> 映射成jvm能识别的结构 —> 在内存中生成class文件。
链接是指将上面创建好的class类合并至Java虚拟机中,使之能够执行的过程,可分为验证、准备、解析三个阶段。 ① 验证(Verify) 确保class文件中的字节流包含的信息,符合当前虚拟机的要求,保证这个被加载的class类的正确性,不会危害到虚拟机的安全。 ② 准备(Prepare) 为类中的静态字段分配内存,并设置默认的初始值,比如int类型初始值是0。被final修饰的static字段不会设置,因为final在编译的时候就分配了 ③ 解析(Resolve) 解析阶段的目的,是将常量池内的符号引用转换为直接引用的过程(将常量池内的符号引用解析成为实际引用)。如果符号引用指向一个未被加载的类,或者未被加载类的字段或方法,那么解析将触发这个类的加载(但未必触发这个类的链接以及初始化。) 事实上,解析器操作往往会伴随着 JVM 在执行完初始化之后再执行。 符号引用就是一组符号来描述所引用的目标。符号引用的字面量形式明确定义在《Java 虚拟机规范》的Class文件格式中。直接引用就是直接指向目标的指针、相对偏移量或一个间接定位到目标的句柄。 解析动作主要针对类、接口、字段、类方法、接口方法、方法类型等。对应常量池中的 CONSTANT_Class_info、CONSTANT_Fieldref_info、CONSTANT_Methodref_info等。
初始化就是执行类的构造器方法init()的过程。 这个方法不需要定义,是javac编译器自动收集类中所有类变量的赋值动作和静态代码块中的语句合并来的。 若该类具有父类,jvm会保证父类的init先执行,然后在执行子类的init。
类加载器的分类 如今的供应链管理已经变得非常复杂。 对于许多产品而言,供应链可以跨越数百个阶段,多个地理位置(国际),多个发票和付款,涉及多个个人和实体,并且需要数月的时间。由于当前供应链的复杂性和缺乏透明性,人们对区块链如何改变供应链和物流行业抱有浓厚的兴趣。 这种兴趣来自当前供应链管理(SCM)的一长串问题,包括:
区块链和供应链管理 区块链技术和供应链管理系统以多种方式相互构建。实际上,通过使用区块链技术可以轻松地消除当前供应链的一些缺陷。供应链管理(SCM)是区块链可以更好地破坏和改变的最重要的行业之一。 凭借区块链技术的去中心化、透明性和不变性,它是拯救供应链管理行业的理想工具。此外,区块链可以提高供应链的效率和透明度,并对从仓储到交付再到付款的一切产生积极影响。最重要的是,区块链提供了共识-链中没有关于交易的争议,因为链上的所有实体都具有相同版本的分类帐。 区块链可以在两个方面对SCM产生重大影响:可追溯性和透明性 可追溯性区块链通过映射和可视化企业供应链来提高运营效率。越来越多的消费者要求采购有关他们所购买产品的信息。区块链可帮助组织了解其供应链,并通过真实、可验证和不变的数据吸引消费者。 透明区块链通过捕获关键数据点(例如证书和声明)来建立信任,然后公开提供对此数据的开放访问。一旦在区块链上注册,其真实性就可以由第三方进行验证。信息可以实时更新和验证。此外,其固有的加密技术的强大安全性将消除不必要的审核,从而节省了大量的时间和金钱。 将区块链技术应用于SCM可以带来巨大的好处,包括:
区块链在供应链管理中的应用 -沃尔玛,例如,正在使用IBM的Food Trust区块链系统来跟踪其肉类产品及其他物品的来源以及区块链记录,其中每块肉的来源、加工、存储及其按出售日期。联合利华、雀巢、泰森和多尔也将区块链用于类似目的。 -全球最大的采矿公司BHP Billiton使用区块链与供应商更好地跟踪和记录整个采矿过程中的数据。不仅可以提高内部效率,还可以使公司与合作伙伴进行更有效的沟通。
-钻石巨头De Beers使用区块链技术来追踪宝石,从他们的产品构思到销售给消费者为止。这样可以确保公司避免出现“冲突”或“血腥钻石”,并向消费者保证他们购买的是真品。 (编辑:甘孜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |