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 应用与开发 - HTTP 会话跟踪技术会话基本概念 会话跟踪技术 本节习题 Java 应用与开发 HTTP 会话跟踪技术 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 November 25, 2018 大纲 会话基本概念 会话跟踪技术 本节习题 学习目标 1. 掌握会话的基本概念,理解会话不是仅仅使用 HTTP 协议 就能够保证的,而是客户端浏览器和服务器端在 HTTP 协 议之上采用额外的技术协同的结果。 掌握常用的会话跟踪技术,了解采用 URL 重写维持会话跟 踪的方法;理解 Cookie 和 Session 的协同机制,掌握使用 Cookie 和 Session 实现会话跟踪的技术。 3. 能够使用 Cookie 和 Session 编写会话跟踪代码。 大纲 会话基本概念 会话跟踪技术 本节习题 大纲 会话基本概念 会话跟踪技术 URL 重写 Cookie Java EE 会话对象 本节习题 本节习题 大纲 会话基本概念 会话跟踪技术 本节习题 接下来⋯ 会话基本概念 会话跟踪技术 URL 重写 Cookie Java EE 会话对象 本节习题 大纲 会话基本概念 会话跟踪技术 本节习题 什么是会话 ▶ 在 Web 应用中把客户端浏览器开始请求 Web 服务器,访问 不同 Web 文档进行请求/响应,到结束访问的一系列过程称 为会话,即一次会话(Session)。 ▶ 当用户访问第一个0 码力 | 54 页 | 824.47 KB | 1 年前3
Java 应用与开发 - Java 技术概述及开发环境大纲 Java 技术概述 Java 平台核心机制 Java 开发环境 Java 基本开发流程 Java 应用与开发 Java 技术概述及开发环境 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 September 18, 2018 大纲 Java 技术概述 Java 平台核心机制 Java 开发环境 Java 基本开发流程 参考书目 1. 陈国君等编著, Java (3rd) 大纲 Java 技术概述 Java 平台核心机制 Java 开发环境 Java 基本开发流程 本章学习目标 1. 了解 Java 的发展历程 2. 理解 Java 平台的相关概念和机制 3. 掌握基本 Java 开发环境配置 大纲 Java 技术概述 Java 平台核心机制 Java 开发环境 Java 基本开发流程 大纲 Java 技术概述 Java 平台核心机制 Java 基本开发流程 大纲 Java 技术概述 Java 平台核心机制 Java 开发环境 Java 基本开发流程 ���� Java 技术概述 Java 平台核心机制 Java 开发环境 Java 基本开发流程 大纲 Java 技术概述 Java 平台核心机制 Java 开发环境 Java 基本开发流程 那些伟大的 LOGO 大纲 Java 技术概述 Java 平台核心机制 Java0 码力 | 33 页 | 1.17 MB | 1 年前3
《Java 应用与开发》课程讲义 - 王晓东Java 技术概述及开发环境 3 1.1 Java 技术概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1.1 Java 发展简史 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1.2 Java 技术的特点 . 28 3.6 课后习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 4 Java 面向对象编程进阶 A 31 4.1 包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 43 4.5 课后习题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5 Java 面向对象编程进阶 B 46 5.1 多态性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 50 码力 | 330 页 | 6.54 MB | 1 年前3
Apache Shiro 1.2.x Reference Manual 中文翻译帮助你熟悉 Shiro 的设 计和 API。 当你跟随本教程时,如果你不想编辑文件,您可以获得一个几乎相同的示例作为参考。 选择一 个地址: 在Apache Shiro 的 Subversion 存储库: https://svn.apache.org/repos/asf/shiro/trunk/samples/quickstart/ 在Apache Shiro 的源码发布 samples/quickstart 默认提供了一个基本的 INI 配置文件的解决方案,人们已经对庞大的 XML 文件 有些厌倦了,而一个 INI 文件易读易用,而且所依赖的组件很少,稍后你就会通过一个简单易 懂的示例明白 INI 在对简单对象进行配置的时候是非常有效率的,比如 SecurityManager 多种配置选择 Apache Shiro 1.2.x Reference Manual 中文翻译 10 2. Tutorial 访问,注意如果你在一个 JVM 中加载多个使用 shiro 的程序时不要这样做,在这个简 单示例中,这是可以的,但在其它成熟的应用环境中,通常会将 SecurityManager 放在程序 指定的存储中(如在 web 中的 ServletContexct 或者 Spring、Guice、 JBoss DI 容器实例) 中。 Using Shiro 使用 现在我们的 SecurityManager0 码力 | 196 页 | 2.34 MB | 1 年前3
Apache Shiro参考手册中文版配置文件提供了一个默认的"共性(common denominator)"解决方案。近来人们已 经相当厌倦了使用笨重的 XML 文件,且 INI 文件易于阅读,使用简单,依赖性低。你稍后将会看到有了对象导航图 的简单理解,INI 文件能够有效地被用来配置简单的对象图,如 SecurityManager。 Many Configuration Options Shiro 的 SecurityManager 注意,这是不可取的,如果你在单个的 JVM 只中会有不只一个启用 Shiro 的应用程序。对于这个简单的例子 而言,这是没有问题的,但更为复杂的应用程序环境通常将 SecurityManager 置于应用程序特定的存储中(如 在 Web 应用中的 ServletContext 或 Spring,Guice 后 JBoss DI 容器实例)。 Using Shiro 现在我们的 SecurityManager 在你的应用程序,在任何层,不论部署环境!这开辟了应用程序的新世界,由于任何需要会话的应用程序不必 再被强制使用 HttpSession 或 EJB Stateful Session Beans。并且,任何客户端技术现在能够共享会话数据。 因此,现在你能获取一个 Subject 以及他们的 Session。如果他们被允许做某些事,如对角色和权限的检查,像“检 查”真正有用的地方在哪呢? 嗯,我们0 码力 | 92 页 | 1.16 MB | 1 年前3
跟我学Shiro - 张开涛............................................................................................ 35 根对象 SECURITYMANAGER .................................................................................. ............................................................................... 44 第六章 REALM 及相关对象 .................................................................................................. ........................................................................................... 95 会话存储/持久化 ..............................................................................................0 码力 | 219 页 | 4.16 MB | 10 月前3
Nacos架构&原理
> 推荐序 推荐序 阿里巴巴合伙人 - 蒋江伟(小邪) 随着企业加速数字化升级,越来越多的系统架构采用了分布式的架构,主要目的是为了解决集中化 和互联网化所带来的架构扩展性和面对海量用户请求的技术挑战。这里面其中有⼀个关键点是软负 载。因为整个分布式架构需要有⼀个软负载来协作各个节点之间的服务在线离线状态、数据⼀致性、 以及动态配置数据的推送。这里面最简单的需求就是将⼀个配置准时的推送到不同的节点。即便如 便如 此简单需求,随着业务规模变大也会变的非常复杂。如何能将数据准确的在 3 秒钟之内推送到每⼀ 个计算节点,这是当时提出的⼀个要求,围绕这个要求,系统要做大量的研发和改造,类似的这种 关键的技术挑战点还非常非常的多。本书就是将面对复杂的分布式计算场景,海量并发的业务场景, 对软负载⼀个系统的进行阐述,通过 Nacos 开源分享阿里软负载最佳实践,希望能够帮助到各位开 发者,各位系统架构师,少走弯路。 - 胡伟琪(白慕) 阿里巴巴在 10 多年分布式应用架构实践过程中,产出了⼀大批非常优秀的中间件技术产品,其中软 负载领域的 Diamond、Configserver、Vipserver,无论在架构先进性、功能丰富度以及性能方面均 有非常出色的积累,2018 年初中间件团队决定把这⼀领域的技术进行重新梳理并开源,这就是本书 介绍的主角 Nacos,经过三年时间的发展,Nacos 已经被大量开发者和企业客户用于生产环境,本0 码力 | 326 页 | 12.83 MB | 10 月前3
共 46 条
- 1
- 2
- 3
- 4
- 5













