Java 对象的创建过程链滴 Java 对象的创建过程 作者:vcjmhg 原文链接:https://ld246.com/article/1619614850780 来源网站:链滴 许可协议:署名-相同方式共享 4.0 国际 (CC BY-SA 4.0) 概述 在之前的一篇文章《关于java继承的哪些事》简单讲了Java创建对象的过程,但具体细节当时并没有 细讲。因而本篇文章以HotSpot虚拟机为例, 来讲一下Java虚拟机是如何创建一个对象的? 简单来说Java对象的创建过程总共分为5步: Java创建对象的过程 类加载检查 首先当虚拟机遇到一个new指令时,首先会去检查这个参数能否在常量池中定位到这个类的符号引用 并且检查这个符号引用所代表的的类是否已经被加载、连接、解析和初始化过,如果没有需要先执行 的加载操作(详细过程可参考"类的加载流程" )。 分配内存 当类加载检查通过后 当类加载检查通过后,接下来虚拟机需要为新生对象分配内存,为对象分配空间的任务等同于把一块 定大小的内存从 Java 堆中划分出来。分配内存的方式主要有两种:指针碰撞和空闲列表。 具体选择哪种方式取决于Java堆是否规整。而Java堆是否规整取决于垃圾收集器所采用的垃圾回收算 是否具有空间压缩整理的能力。 具体来说,指针碰撞分配内存空间的过程如下: 在Java堆规整的情况下,所有被使用过的内存放到一边,所有未被使用过的内存放置到另一边,中间0 码力 | 4 页 | 389.87 KB | 1 年前3
Java 应用与开发 - 面向对象编程进阶大纲 多态性 方法重载 关键字 static 关键字 final Java 应用与开发 面向对象编程进阶 PART2 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 September 30, 2018 大纲 多态性 方法重载 关键字 static 关键字 final 学习目标 1. 理解多态和虚方法调用的概念,掌握其用法 2. 掌握方法重载的方法 3. 掌握 final 什么是多态? 在 Java 中,子类的对象可以替代父类的对象使用称为多态。 O Java 引用变量与所引用对象间的类型匹配关系 ▶ 一个对象只能属于一种确定的数据类型,该类型自对象创建 直至销毁不能改变。 ▶ 一个引用类型变量可能引用(指向)多种不同类型的对象 ——既可以引用其声明类型的对象,也可以引用其声明类型 的子类的对象。 1 Person p = new Student(); Student类型对象 Person类型变量p 大纲 多态性 方法重载 关键字 static 关键字 final 什么是多态? 在 Java 中,子类的对象可以替代父类的对象使用称为多态。 O Java 引用变量与所引用对象间的类型匹配关系 ▶ 一个对象只能属于一种确定的数据类型,该类型自对象创建 直至销毁不能改变。 ▶ 一个引用类型变量可能引用(指向)多种不同类型的对象 ——既可以0 码力 | 49 页 | 659.74 KB | 1 年前3
Java 应用与开发 - 面向对象编程进阶 PART1大纲 包 继承 访问控制 方法重写 关键字 super 关键字 this Java 应用与开发 面向对象编程进阶 PART1 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 September 23, 2018 大纲 包 继承 访问控制 方法重写 关键字 super 关键字 this 学习目标 1. 掌握 Java 包、继承、访问控制、方法重写的概念、机制和 使用方法 继承 访问控制 方法重写 关键字 super 关键字 this 大纲 包 继承 访问控制 方法重写 关键字 super 关键字 this 什么是继承? 继承(Inheritance)是面向对象编程的核心机制之一,其本质是 在已有类型基础之上进行扩充或改造,得到新的数据类型,以满 足新的需要。 根据需要定义 Java 类描述“人”和“学生”信息: CODE ± Class Person 一个类的方法中使用到另一个类的对象(uses-a)1。 聚合关系 一个类的对象包含(通过属性引用)了另一个类的 对象(has-a)2。 泛化关系 一般化关系(is-a),表示类之间的继承关系、类和 接口之间的实现关系以及接口之间的继承关系。 1车能够装载货物,车的装载功能(load() 方法)对货物(goods)有依赖。 2车有发动机、车轮等,Car 对象是由 Engine 等对象构成的。 大纲 包0 码力 | 39 页 | 614.13 KB | 1 年前3
《Java 应用与开发》课程讲义 - 王晓东28 3.6 课后习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4 Java 面向对象编程进阶 A 31 4.1 包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 43 4.5 课后习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5 Java 面向对象编程进阶 B 46 5.1 多态性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 5 . . . . . 48 5.1.3 虚方法调用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.1.4 对象造型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.1.5 instanceof 运算符 . . .0 码力 | 330 页 | 6.54 MB | 1 年前3
Java 应用与开发 - HTTP 会话跟踪技术会话基本概念 会话跟踪技术 本节习题 大纲 会话基本概念 会话跟踪技术 URL 重写 Cookie Java EE 会话对象 本节习题 大纲 会话基本概念 会话跟踪技术 本节习题 接下来⋯ 会话基本概念 会话跟踪技术 URL 重写 Cookie Java EE 会话对象 本节习题 大纲 会话基本概念 会话跟踪技术 本节习题 什么是会话 ▶ 在 Web 应用中把客户端浏览器开始请求 Web 文档进行请求/响应,到结束访问的一系列过程称 为会话,即一次会话(Session)。 ▶ 当用户访问第一个 Java Web 组件时,Java EE Web 服务器 自动为用户创建一个会话对象。 例如,当当网进行图书浏览、购买、完成结算的全过程可能是一 次会话;登录 126 邮箱,完成浏览收件箱、编写邮件、发送邮件、 登出邮箱可以是一次会话。 大纲 会话基本概念 会话跟踪技术 本节习题 Cookie 对象,可以将客 户信息保存在 Cookie 中,完成会话跟踪功能。 4. HttpSession 对象 Java EE API 专门提供了 HttpSession 会 话对象保存客户的信息来实现会话跟踪。 一般 3 和 4 组合使用。 大纲 会话基本概念 会话跟踪技术 本节习题 接下来⋯ 会话基本概念 会话跟踪技术 URL 重写 Cookie Java EE 会话对象 本节习题0 码力 | 54 页 | 824.47 KB | 1 年前3
统一建模语言 UML 参考手册 - 基本概念Ivar Jacobson Grady Booch � 译者序 译者序 译者序 译者序� 统一建模语言 ��� 是一种直观化 明确化 构建和文档化软件系统产物的通用可视 化建模语言 ��� 由面向对象领域的三位大师 ������ ����� ���� �������� 和 ����� �������� 于 ���� 年发布 并提交给 ��� ��� 于 �� 月为 ��� 所采用 现已成为业界 标准 ���������������������������������������������������������������������������������������������� ��� 对象图�������������������������������������������������������������������������������������������������� 规范没有定义标准过程 但可用 于迭代的开发过程 并支持现有的大多数面向对象的开发过程 � ��� 捕捉系统静态结构和动态行为的信息 系统建模成独立对象的集合 它们互相交互 以实现功能 从而最终使外部使用者获益 静态结构定义了对系统具有重要意义的各种对 象和实现 以及它们之间的关系 动态行为定义了对象时间上的历史和为达成目标对象间 的通讯 从不同但是相关的视角来对系统建模 允许了多种角度对系统的理解0 码力 | 123 页 | 2.61 MB | 1 年前3
Python 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.6.6 range 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 4.7 文本序列类型 . . . . . . . . . . . . . 55 4.8.1 bytes 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 4.8.2 bytearray 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 i 4.10.1 字典视图对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 4.11 上下文管理器类型0 码力 | 2207 页 | 10.45 MB | 9 月前3
Python 标准库参考指南 3.10.15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.6.6 range 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 4.7 文本序列类型 --- . . . . . . . . . . . . . . 52 4.8.1 bytes 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.8.2 bytearray 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.10.1 字典视图对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 4.11 上下文管理器类型 .0 码力 | 2072 页 | 10.39 MB | 9 月前3
Python 标准库参考指南 3.8.20 高阶函数和可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . . . . 328 10.3 operator --- 标准运算符替代函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 11 文件和目录访问 343 11.1 pathlib --- 面向对象的文件系统路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 12 数据持久化 389 12.1 pickle --- Python 对象序列化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 12.2 copyreg --- 注册配合 . . . . . . . . 404 12.3 shelve --- Python 对象持久化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 12.4 marshal --- 内部 Python 对象序列化 . . . . . . . . . . . . . . . . . . . . .0 码力 | 1927 页 | 9.69 MB | 9 月前3
Python 标准库参考指南 3.8.20 高阶函数和可调用对象上的操作 . . . . . . . . . . . . . . . . . . . . . . . . 328 10.3 operator --- 标准运算符替代函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336 11 文件和目录访问 343 11.1 pathlib --- 面向对象的文件系统路径 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378 12 数据持久化 389 12.1 pickle --- Python 对象序列化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389 12.2 copyreg --- 注册配合 . . . . . . . . 404 12.3 shelve --- Python 对象持久化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 12.4 marshal --- 内部 Python 对象序列化 . . . . . . . . . . . . . . . . . . . . .0 码力 | 1927 页 | 9.69 MB | 9 月前3
共 403 条
- 1
- 2
- 3
- 4
- 5
- 6
- 41













