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 年前3Java 应用与开发 - 面向对象编程进阶
大纲 多态性 方法重载 关键字 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 年前3Java 应用与开发 - 面向对象编程进阶 PART1
大纲 包 继承 访问控制 方法重写 关键字 super 关键字 this Java 应用与开发 面向对象编程进阶 PART1 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 September 23, 2018 大纲 包 继承 访问控制 方法重写 关键字 super 关键字 this 学习目标 1. 掌握 Java 包、继承、访问控制、方法重写的概念、机制和 使用方法 集合、日期、国际化、各种实用工具 utility 的简写 java.io 可提供数据输入/输出相关功能的类 input/output 的简写 java.net Java 网络编程的相关功能类 网络 java.sql 提供数据库操作的相关功能类 结构化查询语言的简 写 大纲 包 继承 访问控制 方法重写 关键字 super 关键字 this 包的创建 package 语句作为 Java 源文件的第一条语句,指明该文件中定 继承 访问控制 方法重写 关键字 super 关键字 this 大纲 包 继承 访问控制 方法重写 关键字 super 关键字 this 什么是继承? 继承(Inheritance)是面向对象编程的核心机制之一,其本质是 在已有类型基础之上进行扩充或改造,得到新的数据类型,以满 足新的需要。 根据需要定义 Java 类描述“人”和“学生”信息: CODE ± Class Person0 码力 | 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跟我学Shiro - 张开涛
............................................................................................ 35 根对象 SECURITYMANAGER .................................................................................. ............................................................................... 44 第六章 REALM 及相关对象 .................................................................................................. Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信 息都在会话中;会话可以是普通 JavaSE 环境的,也可以是如 Web 环境的; Cryptography:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; Web Support:Web 支持,可以非常容易的集成到 Web 环境; Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以0 码力 | 219 页 | 4.16 MB | 10 月前3Java 应用与开发 - Servlet 编程
Web 容器 内,由 Web 容器负责它的对象的创建和销毁,不能直接由 其它类对象来调用。 ▶ 当 Web 容器接收到对它的 HTTP 请求时,自动创建 Servlet 对象,并自动调用它的 doPost 或 doGet 方法。 Servlet 的主要功能 ▶ 接收用户 HTTP 请求。 ▶ 取得 HTTP 请求提交的数据。 ▶ 调用 JavaBean 对象的方法。 ▶ 生成 HTML 类型或非 容器自动创建的请求对象和 响应对象,使得 Servlet 能够解析请求数据和发送响应给客户端。 大纲 Web 基础 Servlet 概述 Servlet 编程 Servlet 生命周期 Servlet 配置 Servlet 部署 Servlet 示例 重写 init 方法 当 Web 服务器创建 Servlet 对象后,会自动调用 init 方法完成 初始化功能,一般将耗时的连接数据库和打开外部资源文件的操 Web 容器创建 Servlet 对象后立即执行,且只执行 一次。 1 public void init(ServletConfig config) throws ServletException { 2 super.init(config); 3 // 这�放置初始化工作代码. 4 } 在 init 方法中使用 Web 容器传递的 config 对象取得 Servlet 的 各种配置初0 码力 | 50 页 | 725.36 KB | 1 年前3基于 Java EE 的企业应用系统设计 - Spring MVC 01
知道别人是不是已经曾经实现过类似的功能,到哪里去引 用。 3. 突然之间,某个需求发生了变化。于是,每个人蒙头开始全 程替换,还要小心翼翼的,生怕把别人的逻辑改了。 4. 逻辑处理程序需要自己来维护生命周期,对于类似数据库事 务、日志等众多模块无法统一支持。 大纲 Java Web 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 JSP 方式 O 仅有的一点优势 1. 无需额外的 知道别人是不是已经曾经实现过类似的功能,到哪里去引 用。 3. 突然之间,某个需求发生了变化。于是,每个人蒙头开始全 程替换,还要小心翼翼的,生怕把别人的逻辑改了。 4. 逻辑处理程序需要自己来维护生命周期,对于类似数据库事 务、日志等众多模块无法统一支持。 大纲 Java Web 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 JSP 方式 O 仅有的一点优势 1. 无需额外的 知道别人是不是已经曾经实现过类似的功能,到哪里去引 用。 3. 突然之间,某个需求发生了变化。于是,每个人蒙头开始全 程替换,还要小心翼翼的,生怕把别人的逻辑改了。 4. 逻辑处理程序需要自己来维护生命周期,对于类似数据库事 务、日志等众多模块无法统一支持。 大纲 Java Web 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 JSP 方式 O 仅有的一点优势 1. 无需额外的0 码力 | 67 页 | 792.43 KB | 1 年前3Java 应用系统开发 - ServletContext 和 Web 配置
大纲 Web 应用环境对象 Java EE Web 的配置 Servlet 配置对象 转发和重定向 本节习题 Java 应用系统开发 ServletContext 和 Web 配置 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 November 26, 2018 大纲 Web 应用环境对象 Java EE Web 的配置 Servlet 配置对象 转发和重定向 本节习题 掌握 Web 应用对象 ServletContext。 2. 了解 Web 应用的配置方法。 3. 掌握 MVC 模式 Web 开发中发挥核心作用的转发,区别转 发与重定向。 大纲 Web 应用环境对象 Java EE Web 的配置 Servlet 配置对象 转发和重定向 本节习题 大纲 Web 应用环境对象 Java EE Web 的配置 Servlet 配置对象 转发和重定向 本节习题 大纲 Web 应用环境对象 Java EE Web 的配置 Servlet 配置对象 转发和重定向 本节习题 接下来⋯ Web 应用环境对象 Java EE Web 的配置 Servlet 配置对象 转发和重定向 本节习题 大纲 Web 应用环境对象 Java EE Web 的配置 Servlet 配置对象 转发和重定向 本节习题 Web 应用环境对象 将 Web 应用部署到服务器上,启动0 码力 | 33 页 | 668.91 KB | 1 年前3Java 应用与开发 - JSP (Java Server Page)
概述 JSP 指令 JSP 动作 JSP 脚本 JSP 内置对象 本节习题 Java 应用与开发 JSP (Java Server Page) 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 December 3, 2018 大纲 JSP 概述 JSP 指令 JSP 动作 JSP 脚本 JSP 内置对象 本节习题 学习目标 1. 理解 JSP 和 Servlet JSP 动作、JSP 脚本。 3. 掌握 JSP 提供的内置对象与 Servlet 相关对象的对应,学会 各类对象的使用方法。 4. 能够使用 JSP 完成简单的 Java Web 编程。 5. 对 JSP 作为 MVC 设计模式中的视图构建方式有初步的 了解。 大纲 JSP 概述 JSP 指令 JSP 动作 JSP 脚本 JSP 内置对象 本节习题 大纲 JSP 概述 JSP 指令 JSP JSP 动作 JSP 脚本 JSP 内置对象 本节习题 大纲 JSP 概述 JSP 指令 JSP 动作 JSP 脚本 JSP 内置对象 本节习题 接下来⋯ JSP 概述 JSP 指令 JSP 动作 JSP 脚本 JSP 内置对象 本节习题 大纲 JSP 概述 JSP 指令 JSP 动作 JSP 脚本 JSP 内置对象 本节习题 JSP 基本概念 ▶ JSP(Java Server0 码力 | 47 页 | 740.36 KB | 1 年前3Apache Shiro 1.2.x Reference Manual 中文翻译
默认提供了一个基本的 INI 配置文件的解决方案,人们已经对庞大的 XML 文件 有些厌倦了,而一个 INI 文件易读易用,而且所依赖的组件很少,稍后你就会通过一个简单易 懂的示例明白 INI 在对简单对象进行配置的时候是非常有效率的,比如 SecurityManager 多种配置选择 Apache Shiro 1.2.x Reference Manual 中文翻译 10 2. Tutorial goodguy = winnebago:drive:eagle5 可以看到,在该配置文件中最基础地配置了几个静态的帐户,对我们这一个程序已经足够 了,在以后的章节中,将会看到如何使用更复杂的用户数据比如数据库、LDAP 和活动目录 等。 Referencing the Configuration 引用配置 现在我们已经定义了一个 INI 文件,我们可以在我们的示例程序中创建SecurityManager SecurityManager: SecurityManager 是 Shiro 架构的核心,配合内部安全组件共同组成 安全伞。然而,一旦一个程序配置好了SecurityManager 和它的内部对象, SecurityManager通常独自留下来,程序开发人员几乎花费的所有时间都集中在 Subjet Apache Shiro 1.2.x Reference Manual 中文翻译 19 30 码力 | 196 页 | 2.34 MB | 1 年前3
共 44 条
- 1
- 2
- 3
- 4
- 5