精华内容
下载资源
问答
  • 文档对象模型(DOM)属于VBScript客户端扩展部分,在文档对象模型中提供了大量对象,这些对象应用于浏览器上,这些对象在我们编写脚本时发挥着重要作用。 当用户在浏览器中打开一个页面时,浏览器就会自动创建...

    From : http://blog.csdn.net/yezi77321660/article/details/4139237

    文档对象模型(DOM)属于VBScript客户端扩展部分,在文档对象模型中提供了大量的对象,这些对象应用于浏览器上,这些对象在我们编写脚本时发挥着重要的作用。

    当用户在浏览器中打开一个页面时,浏览器就会自动创建文档对象模型中的一些对象,这些对象存放了HTML页面的属性和其他的相关信息,因为这些对象在浏览器上运行,所以我们有时也称之为浏览器对象。浏览器对象的层次图如图所示。

    一、window对象

    window对象表示浏览器中打开的窗口,提供关于窗口状态的信息。可以用window对象访问窗口中绘制的文档、窗口中发生的事件和影响窗口的浏览器特性。

    浏览器在打开HTML文档时生成window对象。如果文档定义一组帧,则浏览器对原文档生成一个window对象,并对每个帧生成window对象。这些对象是原父窗口的子窗口。父窗口中的动作会影响子窗口:例如,如果关闭父窗口,则子窗口也关闭。也可以通过用showModalDialog方法,生成新窗口,从而生成新的window对象。

    1.window对象的属性

    client保存浏览器版本与名称信息及其启用特性的信息

    closed窗口关闭时返回(true表示窗口关闭,否则为false)

    defaultStatus提供窗口状态条中显示的缺省消息

    dialogArguments返回从主窗口传递给模态对话框的变量或变量数组

    dialogHeight返回对话框的高度

    dialogLeft返回对话框左边坐标

    dialogTop返回对话框上边坐标

    dialogWidth返回对话框的宽度

    document提供窗口的文档对象引用

    event提供窗口的事件对象引用

    history提供窗口的历史对象引用

    length提供集合中的元素个数

    location提供文档的URL

    name指定窗口或帧的名称

    navigator提供窗口的浏览器对象引用

    offscreenBuffering指定是否对文档使用屏外缓冲

    opener提供生成当前窗口的窗口引用

    parent返回父窗口:对于通过FRAME生成的窗口,父窗口是FRAMESET元素所在的窗口

    returnValue指定从模态对话框返回主窗口的数值

    screen提供窗口的屏幕对象引用

    self提供引用当前窗口或帧的办法

    status设置或返回窗口底部状态条中的消息

    top返回最上层窗口对象,它是自己的父对象

    window提供当前窗口的引用,与self相同

    2.window对象的方法

    alert显示带消息和OK按钮的alert对话框

    blur使对象失去焦点并激活onBlur事件

    clearInterval取消由setInterval启动的间隔

    clearTimeout取消由setTimeout设置的超时

    close关闭当前浏览器窗口

    confirm显示带消息和OK按钮及Cancel按钮的确认对话框

    execScript执行指定的脚本

    focus使控件取得焦点并执行由onFocus事件指定的代码

    navigate显示某个URL,只用于VBScript

    open打开新窗口并装入指定URL文档

    prompt显示带消息和输入字段的提示对话框

    scroll相对于整个文档冼窗口滚动指定X和Y偏离量

    setInterval在指定毫秒数后重复求值一个表达式

    setTimeout在指定毫秒数后求值一个表达式

    showHelp显示指定URL的帮助文件

    showModalDialog将HTML文档作为模态对话框打开

    3.window对象的事件

    onBeforeunload页面删除之前。这个事件可以让用户不离开页面。可以用脚本编一个事件处

    理器,显示一个对话框,让用户选择不离开页面

    onBlur对象失去焦点时

    onError装入文档或图形发生错误时

    onFocus对象取得焦点时

    onHelp用户按F1键或单击浏览器Help按钮时

    onLoad浏览器打开指定对象之后

    onResize窗口调整尺寸时

    onScroll滚动框移动时

    onUnload页面删除之前

    二、history对象

    history对象保存当前对话中用户访问的URL信息。它的length属性提供浏览器历史清单中的项目个数。它的方法如表所示,可用于在历史清单中移动。

    1.history对象方法

    Back装入历史清单中上一个URL的文档

    Forward装入历史清单中下一个URL的文档

    Go装入历史清单中指定位置的文档

    三、location对象

    location对象提供当前页面的URL信息。它的方法可以重装当前页面或装入新页面。表列出了location对象的属性和方法。

    2.location对象的属性

    Hash返回HREF中#号后面的字符串

    Host提供URL的hostname:port部分

    Hostname提供URL的hostname部分

    Href提供整个URL

    Pathname提供URL中第三个斜杠后面的文件名

    Port返回URL的端口号

    Protocol返回表示URL访问方法的首字母子串

    Search提供完整URL中?号后面的查询字符串

    四、navigator对象

    navigator对象保存浏览器厂家、版本和功能的信息,共五个属性。

    1.navigator对象的事件

    AppCodeName提供浏览器的代码名

    AppName提供浏览器的产品名

    AppVersion提供浏览器的版本号

    CookieEnabled表示浏览器是否允许客户机方Cookie

    UserAgent作为HTTP协议的一部分发送的浏览器名

    五、screen对象

    screen对象的属性保存最终用户的屏幕分辨率和屏幕绘制文档的功能的信息。这个信息在设置浏览器窗口的特征时或要选择几个图形这一以充分利用和最终用户的屏幕特性时很有用。表列出了screen对象的属性。

    1.screen对象的事件

    colorDepth返回用户系统支持的最大颜色个数信息

    height提供用户屏幕的总高度

    pixelDepth提供系统每个象素占用的位数

    updateInterval保持用户机器上屏幕更新的间隔

    width提供用户屏幕的总宽度

    六、document对象

    Document对象代表的是当前的整个页面,所以在Document对象中存储着当前页面的一些信息,包括页面的前景色和背景色,也包括了页面中的表单、锚标、图象等对象,运用Document对象,我们还能够向页面中动态添加文本以及各种标签。


    1.document对象的属性

    2.document对象的方法

    展开全文
  • 对象是在堆中创建 对象的内部结构图为

    目录:
    java虚拟机汇总

    1. class文件结构分析
      1).class文件常量池中的常量项结构
      2). 常用的属性表的集合
    2. 类加载过程
      1).类加载器的原理以及实现
    3. 虚拟机结构分析
      1).jdk1.7和1.8版本的方法区构造变化
      2).常量池简单区分
    4. 对象结构分析<<== 现在位置
      1).压缩指针详解
    5. gc垃圾回收
    6. 对象的定位方式

    题外链接:(压缩指针详解)
    目标:能够算出一个对象的具体长度

    对象是在堆中创建的
    对象的内部结构图为
    在这里插入图片描述
    这就是一个对象的基本结构,下面每一个结构详细说明

    1.对象头中的MarkWord

    图为马士兵的64位虚拟机MarkWord头信息,每一行都是一种markWord的状态(不是全部代表markword)
    在这里插入图片描述
    然后是32位操作系统的
    在这里插入图片描述
    markWord在32操作系统中是32位,在64操作系统中,不管开不开启指针压缩(指针压缩详解)都是64位,8个字节
    下面逐个说明下每个字段的意义(64位的,32位同理),目前在jvm阶段的了解即可

    1. 锁状态
      在这里插入图片描述
      这里分为两个部分,偏向锁位和锁标志位,他们两个共同决定锁的状态(锁升级将在并发编程中说)
      偏向锁位:对象是否启用偏向锁标记,只占1个二进制位。为1时表示对象启用偏向锁,为0时表示对象没有偏向锁。
      锁标志位:这两位的标志决定了markword整体的格式,可以从图中很明了的看出,每一种锁标志位对应的整个markWord的存储格式都有所不同

    2. 锁状态为0 01
      此时

      1. 前25位没有使用,
      2. hashCode占了31位,存放该对象的哈希码
      3. 1位没有使用
      4. 4位分代年龄,表示了对象在堆中的分代信息,即最高15(这也是目前ps+po的分代年龄)
    3. 锁状态为1 01
      此时此对象为偏向锁状态,原来的hashCode无法存储,转存到管程Monitor中

      1. 前面54位为指向你那个线程的id
      2. 接下来2位为Epoch:偏向锁的时间戳,如果一个线程来对此对象加锁,发现时间戳和自己的不一样(这个是cas操作中的解决aba问题的版本号,每次偏向时加1),说明有其他线程执行了,此线程将会重新尝试偏向,即重偏向,重新执行cas操作修改前面54位的线程id,如果失败了说明此时有线程在使用,就立即进行锁膨胀(第一次发现有竞争时,就立即膨胀为轻量级锁,再在轻量级锁进行8次cas操作,如果都失败了,就再膨胀为重量级锁)
      3. 接下来1位没有用到
      4. 在接下来的4位仍然为分代年龄
    4. 锁状态为 00
      此时状态为轻量级锁(自旋锁),说明此时已经有至少一次竞争了
      1. 62位都为线程栈中栈的指针(注:和1 01的54位线程id不一样,一个是id,一个是指针)

    5. 锁状态为 10
      重量级锁,直接把自旋的线程全部由cpu扔到内存阻塞队列里去,这里由cpu到内存的过程涉及到了系统的中断,消耗资源较高,所以这也是jdk1.6以前synchronized只用重量级锁效率低的问题,现在引入了偏向自旋锁来减少这种中断的发生
      1. 62位都指向互斥量(重量级锁监视器)指针

    6. gc标记信息
      此需要知道CMS并发标记清除垃圾收集器,

      1. 62位为CMS过程中的标志信息

    2.对象头中的kClass

    这一部分存储对象的类型指针,该指针指向方法区的类元数据,JVM通过这个指针确定对象是哪个类的实例,长度:32位的JVM为32位,64位的JVM为64位。64位操作系统开启压缩指针后为32位(前面已经提到,一定要看压缩指针详解))

    3.实例数据

    这里才是最大的数据存储区,没有什么可说的int a =3,就存个int类型的a值为3,如果值是常量或静态的则直接指向方法区中的对应数据,关于这部分的长度,在(压缩指针详解)解析

    4.对齐填充

    整个对象都要以8字节为基准,比如前面为12字节,那对齐填充就是4字节,加起来是16,可以被8整除,至于为什么,因为操作系统总线带宽是以8字节为基础传输,所以提高传输效率之类的巴拉巴拉。。。

    展开全文
  • 文档对象模型(DOM)属于VBScript客户端扩展部分,在文档对象模型中提供了大量对象,这些对象应用于浏览器上,这些对象在我们编写脚本时发挥着重要作用。 当用户在浏览器中打开一个页面时,浏览器就会自动...

    文档对象模型(DOM)属于VBScript客户端扩展部分,在文档对象模型中提供了大量的对象,这些对象应用于浏览器上,这些对象在我们编写脚本时发挥着重要的作用。

    当用户在浏览器中打开一个页面时,浏览器就会自动创建文档对象模型中的一些对象,这些对象存放了HTML页面的属性和其他的相关信息,因为这些对象在浏览器上运行,所以我们有时也称之为浏览器对象。浏览器对象的层次图如图所示。

    一、window对象

    window对象表示浏览器中打开的窗口,提供关于窗口状态的信息。可以用window对象访问窗口中绘制的文档、窗口中发生的事件和影响窗口的浏览器特性。

    浏览器在打开HTML文档时生成window对象。如果文档定义一组帧,则浏览器对原文档生成一个window对象,并对每个帧生成window对象。这些对象是原父窗口的子窗口。父窗口中的动作会影响子窗口:例如,如果关闭父窗口,则子窗口也关闭。也可以通过用showModalDialog方法,生成新窗口,从而生成新的window对象。

    1.window对象的属性

    client保存浏览器版本与名称信息及其启用特性的信息

    closed窗口关闭时返回(true表示窗口关闭,否则为false)

    defaultStatus提供窗口状态条中显示的缺省消息

    dialogArguments返回从主窗口传递给模态对话框的变量或变量数组

    dialogHeight返回对话框的高度

    dialogLeft返回对话框左边坐标

    dialogTop返回对话框上边坐标

    dialogWidth返回对话框的宽度

    document提供窗口的文档对象引用

    event提供窗口的事件对象引用

    history提供窗口的历史对象引用

    length提供集合中的元素个数

    location提供文档的URL

    name指定窗口或帧的名称

    navigator提供窗口的浏览器对象引用

    offscreenBuffering指定是否对文档使用屏外缓冲

    opener提供生成当前窗口的窗口引用

    parent返回父窗口:对于通过FRAME生成的窗口,父窗口是FRAMESET元素所在的窗口

    returnValue指定从模态对话框返回主窗口的数值

    screen提供窗口的屏幕对象引用

    self提供引用当前窗口或帧的办法

    status设置或返回窗口底部状态条中的消息

    top返回最上层窗口对象,它是自己的父对象

    window提供当前窗口的引用,与self相同

    2.window对象的方法

    alert显示带消息和OK按钮的alert对话框

    blur使对象失去焦点并激活onBlur事件

    clearInterval取消由setInterval启动的间隔

    clearTimeout取消由setTimeout设置的超时

    close关闭当前浏览器窗口

    confirm显示带消息和OK按钮及Cancel按钮的确认对话框

    execScript执行指定的脚本

    focus使控件取得焦点并执行由onFocus事件指定的代码

    navigate显示某个URL,只用于VBScript

    open打开新窗口并装入指定URL文档

    prompt显示带消息和输入字段的提示对话框

    scroll相对于整个文档冼窗口滚动指定X和Y偏离量

    setInterval在指定毫秒数后重复求值一个表达式

    setTimeout在指定毫秒数后求值一个表达式

    showHelp显示指定URL的帮助文件

    showModalDialog将HTML文档作为模态对话框打开

    3.window对象的事件

    onBeforeunload页面删除之前。这个事件可以让用户不离开页面。可以用脚本编一个事件处

    理器,显示一个对话框,让用户选择不离开页面

    onBlur对象失去焦点时

    onError装入文档或图形发生错误时

    onFocus对象取得焦点时

    onHelp用户按F1键或单击浏览器Help按钮时

    onLoad浏览器打开指定对象之后

    onResize窗口调整尺寸时

    onScroll滚动框移动时

    onUnload页面删除之前

    二、history对象

    history对象保存当前对话中用户访问的URL信息。它的length属性提供浏览器历史清单中的项目个数。它的方法如表所示,可用于在历史清单中移动。

    1.history对象方法

    Back装入历史清单中上一个URL的文档

    Forward装入历史清单中下一个URL的文档

    Go装入历史清单中指定位置的文档

    三、location对象

    location对象提供当前页面的URL信息。它的方法可以重装当前页面或装入新页面。表列出了location对象的属性和方法。

    2.location对象的属性

    Hash返回HREF中#号后面的字符串

    Host提供URL的hostname:port部分

    Hostname提供URL的hostname部分

    Href提供整个URL

    Pathname提供URL中第三个斜杠后面的文件名

    Port返回URL的端口号

    Protocol返回表示URL访问方法的首字母子串

    Search提供完整URL中?号后面的查询字符串

    四、navigator对象

    navigator对象保存浏览器厂家、版本和功能的信息,共五个属性。

    1.navigator对象的事件

    AppCodeName提供浏览器的代码名

    AppName提供浏览器的产品名

    AppVersion提供浏览器的版本号

    CookieEnabled表示浏览器是否允许客户机方Cookie

    UserAgent作为HTTP协议的一部分发送的浏览器名

    五、screen对象

    screen对象的属性保存最终用户的屏幕分辨率和屏幕绘制文档的功能的信息。这个信息在设置浏览器窗口的特征时或要选择几个图形这一以充分利用和最终用户的屏幕特性时很有用。表列出了screen对象的属性。

    1.screen对象的事件

    colorDepth返回用户系统支持的最大颜色个数信息

    height提供用户屏幕的总高度

    pixelDepth提供系统每个象素占用的位数

    updateInterval保持用户机器上屏幕更新的间隔

    width提供用户屏幕的总宽度

    六、document对象

    Document对象代表的是当前的整个页面,所以在Document对象中存储着当前页面的一些信息,包括页面的前景色和背景色,也包括了页面中的表单、锚标、图象等对象,运用Document对象,我们还能够向页面中动态添加文本以及各种标签。


    1.document对象的属性

    2.document对象的方法

    展开全文
  • JVM内存结构、Java内存模型以及Java对象模型之间区别 Java作为一种面向对象,跨平台语言,其对象、内存等一直是比较难知识点。而且很多概念名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论...

    JVM内存结构、Java内存模型以及Java对象模型之间的区别

    Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模型和Java对象模型,这就是三个截然不同的概念,但是很多人容易弄混。
    可以这样说,很多高级开发甚至都搞不不清楚JVM内存结构、Java内存模型和Java对象模型这三者的概念及其间的区别。甚至我见过有些面试官自己也搞的不是太清楚。不信的话,你去网上搜索Java内存模型,还会有很多文章的内容其实介绍的是JVM内存结构

    JVM内存结构

    我们都知道,Java代码是要运行在虚拟机上的,而虚拟机在执行Java程序的过程中会把所管理的内存划分为若干个不同的数据区域,这些区域都有各自的用途。其中有些区域随着虚拟机进程的启动而存在,而有些区域则依赖用户线程的启动和结束而建立和销毁。在《Java虚拟机规范(Java SE 8)》中描述了JVM运行时内存区域结构如下:
    在这里插入图片描述
    1、以上是Java虚拟机规范,不同的虚拟机实现会各有不同,但是一般会遵守规范
    2、规范中定义的方法区,只是一种概念上的区域,并说明了其应该具有什么功能。但是并没有规定这个区域到底应该处于何处。所以,对于不同的虚拟机实现来说,是由一定的自由度的。
    3、不同版本的方法区所处位置不同,上图中划分的是逻辑区域,并不是绝对意义上的物理区域。因为某些版本的JDK中方法区其实是在堆中实现的。
    4、运行时常量池用于存放编译期生成的各种字面量和符号应用。但是,Java语言并不要求常量只有在编译期才能产生。比如在运行期,String.intern也会把新的常量放入池中。
    5、除了以上介绍的JVM运行时内存外,还有一块内存区域可供使用,那就是直接内存。Java虚拟机规范并没有定义这块内存区域,所以他并不由JVM管理,是利用本地方法库直接在堆外申请的内存区域。
    6、堆和栈的数据划分也不是绝对的,如HotSpot的JIT会针对对象分配做相应的优化。

    java内存模型

    是根据英文Java Memory Model(JMM)翻译过来的。其实JMM并不像JVM内存结构一样是真实存在的。他只是一个抽象的概念。JSR-133: Java Memory Model and Thread Specification中描述了,JMM是和多线程相关的,他描述了一组规则或规范,这个规范定义了一个线程对共享变量的写入时对另一个线程是可见的。
    在这里插入图片描述

    JAVA对象模型

    Java是一种面向对象的语言,而Java对象在JVM中的存储也是有一定的结构的。而这个关于Java对象自身的存储模型称之为Java对象模型。
    HotSpot虚拟机中,设计了一个OOP-Klass Model。OOP(Ordinary 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对象在虚拟机中的表现形式有关。

    内存模型,英文名Memory Model,他是一个很老的老古董了。他是与计算机硬件有关的一个概念。那么我先给你介绍下他和硬件到底有啥关系。

    展开全文
  • 比如本文我们要讨论JVM内存结构、Java内存模型和Java对象模型,这就是三个截然不同概念,但是很多人容易弄混。 可以这样说,很多高级开发甚至都搞不不清楚JVM内存结构、Java内存模型和Java对象模型这三者...
  • 参考:http://wenku.baidu.com/view/4d39af1959eef8c75fbfb365.html###
  • 三者区别 JVM内存结构,和Java虚拟机运行时区域有关。 JVM内存模型,和Java并发编程有关。...详见JVM内存结构 VS Java内存模型 VS Java对象模型 下面是其结构图 JVM内存结构 JVM内存模型 JVM对象模型 ...
  • 比如本文我们要讨论JVM内存结构、Java内存模型和Java对象模型,这就是三个截然不同概念,但是很多人容易弄混。可以这样说,很多高级开发甚至都搞不不清楚JVM内存结构、Java内存模型和Java对象模型这三者概念及...
  • 平时我们比较容易搞混JVM内存结构、Java内存模型之间概念,以为JVM内存结构、Java内存模型是一样,其实这两者有着很大区别。 JVM内存结构 Java代码是要运行在虚拟机上,而虚拟机在执行Java程序过程中会...
  • 比如本文我们要讨论JVM内存结构、Java内存模型和Java对象模型,这就是三个截然不同概念,但是很多人容易弄混。 可以这样说,很多高级开发甚至都搞不不清楚JVM内存结构、Java内存模型和Java对象模型这三者概念...
  • java内存模型,jvm内存结构和java对象模型对比http://www.hollischuang.com/archives/2509java内存模型(JMM)https://blog.csdn.net/hollis_chuang/article/details/80880118 JMM是多线程并发概念,他描述了一...
  • 对象模型的细节

    千次阅读 2014-06-25 01:11:37
    对象模型的细节JavaScript 是一种基于原型的面向对象语言,而不是基于类的。正是由于这一根本的区别,其如何创建对象的层级结构以及如何继承属性和属性值,可能不是那么晴晰。本节将试着阐明这一问题。本节假设您...
  • 今天在简书上看到一篇博文,讲解了JVM内存结构/内存模型以及JAVA对象模型这三个概念之间区别,在此做一个记录: (1)JVM内存结构: 此概念与我们通常讲JVM内存区域划分是同一个概念:JVM在运行过程...
  • 注明:转载.JVM内存结构、Java内存模型和Java对象模型,这就是三个截然不同概念,但是很多人容易弄混。
  • JVM内存结构 VS Java内存模型 ... 目录JVM内存结构Java内存模型Java对象模型小结参考资料前面几篇文章中, 系统学习了下JVM内存结构、Java内存模型、Java对象模型, 但是发现自己还是对这三者概念和区...
  • 版权声明:本文为博主原创文章,未经博主允许不得转载。... Java作为一种面向对象,跨平台语言,其对象...比如本文我们要讨论JVM内存结构、Java内存模型和Java对象模型,这就是三个截然不同概念,但是很多人容易...
  • 比如本文我们要讨论JVM内存结构、Java内存模型和Java对象模型,这就是三个截然不同概念,但是很多人容易弄混。 可以这样说,很多高级开发甚至都搞不不清楚JVM内存结构、Java内存模型和Java对象模型这三者概念...
  • JVM这块知识绝对是学习java过程中重点和难点,我习惯把这块知识叫做javaSE高级基础,在学习jvm这块知识,你一定会遇到几个概念,那就是java内存结构,java内存模型,java对象模型和jvm内存结构!而这几个概念...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,152
精华内容 7,660
关键字:

对象模型的结构