Java 应用与开发 - 类加载和反射反射 类的加载、连接和初始化 类加载器 使用反射生成并操作对象 本节习题 Java 应用与开发 类加载和反射 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 December 24, 2018 大纲 反射 类的加载、连接和初始化 类加载器 使用反射生成并操作对象 本节习题 学习目标 1. 理解什么是反射机制,通过常见场景认识反射的作用。 2. 掌握类的加载、连接和初始化概念。 3. 理解类加载器及类加载机制。 4. 掌握使用反射生成并操作对象的方法。 大纲 反射 类的加载、连接和初始化 类加载器 使用反射生成并操作对象 本节习题 大纲 反射 类的加载、连接和初始化 类加载器 使用反射生成并操作对象 本节习题 大纲 反射 类的加载、连接和初始化 类加载器 使用反射生成并操作对象 本节习题 接下来⋯ 反射 类的加载、连接和初始化 类加载器 使用反射生成并操作对象 本节习题 大纲 反射 类的加载、连接和初始化 类加载器 使用反射生成并操作对象 本节习题 反射机制 ▶ 程序运行时,允许改变程序结构或变量类型,这种语言称为 动态语言。从这个观点看,Perl、Python、Ruby 是动态语 言,C++、Java、C# 不是动态语言。 ▶ 但是 Java 有着一个非常突出的动态相关机制:反射 (Reflection),可以于运行时加载、探知、使用编译期间完 全未知的类。换句话说,Java0 码力 | 46 页 | 714.40 KB | 1 年前3
Java 应用系统开发 - ServletContext 和 Web 配置应用环境对象 Java EE Web 的配置 Servlet 配置对象 转发和重定向 本节习题 Java 应用系统开发 ServletContext 和 Web 配置 王晓东 wangxiaodong@ouc.edu.cn 中国海洋大学 November 26, 2018 大纲 Web 应用环境对象 Java EE Web 的配置 Servlet 配置对象 转发和重定向 本节习题 学习目标 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 应用部署到服务器上,启动 Web0 码力 | 33 页 | 668.91 KB | 1 年前3
Java 应用与开发 - Java 内存模型与分配机制当前线程执行的字节码的行号指示器。 栈 保存局部变量的值,包括:用来保存基本数据类型的值; 保存类的实例,即堆区对象的引用(指针),也可以用来 保存加载方法时的帧。(Stack) 堆 用来存放动态产生的数据,如 new 出来的对象和数组。 1。(Heap) 常量池 JVM 为每个已加载的类型维护一个常量池,常量池就是 这个类型用到的常量的一个有序集合。包括直接常量 (基本类型、String)和对其他类型、方法、字段的符号 当前线程执行的字节码的行号指示器。 栈 保存局部变量的值,包括:用来保存基本数据类型的值; 保存类的实例,即堆区对象的引用(指针),也可以用来 保存加载方法时的帧。(Stack) 堆 用来存放动态产生的数据,如 new 出来的对象和数组。 1。(Heap) 常量池 JVM 为每个已加载的类型维护一个常量池,常量池就是 这个类型用到的常量的一个有序集合。包括直接常量 (基本类型、String)和对其他类型、方法、字段的符号 当前线程执行的字节码的行号指示器。 栈 保存局部变量的值,包括:用来保存基本数据类型的值; 保存类的实例,即堆区对象的引用(指针),也可以用来 保存加载方法时的帧。(Stack) 堆 用来存放动态产生的数据,如 new 出来的对象和数组。 1。(Heap) 常量池 JVM 为每个已加载的类型维护一个常量池,常量池就是 这个类型用到的常量的一个有序集合。包括直接常量 (基本类型、String)和对其他类型、方法、字段的符号0 码力 | 44 页 | 818.30 KB | 1 年前3
跟我学Shiro - 张开涛及 ROLEPERMISSIONRESOLVER .......................................................... 29 第四章 INI 配置 .................................................................................................. ......................................................................................... 35 INI 配置 .................................................................................................. ..................................................................................... 64 WEB INI 配置 ..................................................................................................0 码力 | 219 页 | 4.16 MB | 10 月前3
Apache Shiro 1.2.x Reference Manual 中文翻译Configuration 配置 II. Core 核心 5. Authentication 认证 6. Authorization 授权 6.1. Permissions 权限 7. Realms 8. Session Management 9. Cryptography 密码 III. Web Applications 10. Web 10.1. Configuration 配置 10.2 实例。 Configuration 配置 虽然我们可以直接对 SecurityManager 实例化,但在 Java 代码中对Shiro 的 SecurityManager 所须的选项和内部组件进行配置会让人感觉有点小痛苦--而将这些 SecurityManager 配置用一个灵活的配置文件实现就会简单地多。 为此,Shiro 默认提供了一个基本的 INI 配置文件的解决方案,人们已经对庞大的 懂的示例明白 INI 在对简单对象进行配置的时候是非常有效率的,比如 SecurityManager 多种配置选择 Apache Shiro 1.2.x Reference Manual 中文翻译 10 2. Tutorial 教程 Shiro 的 SecurityManager 的实现和其所依赖的组件都是 JavaBean,所以可以用多种形式对 Shiro 进行配置,比如XML(Spring, JBoss0 码力 | 196 页 | 2.34 MB | 1 年前3
Linux Docker Messn Upstart基于事件机制,系统的所有服务、任务都是由事件驱动的。 System V 启动流程依赖/etc/inittab,init进程启动后第一时间找inittab,根据inittab中的配置初 始化系统,设置系统runlevel及进入各runlevel对应要执行的命令。 假设当前inittab中设置的默认runlevel是5,则init会运行/etc/init.d/rc 5命令,该命令会 统服务的启动、停止也可以作为事件源触发其他服务。并且事件并不一定得由系统内部 产生,用户可以手工的键入start/stop [Service]产生事件来启动/终止服务。 系统服务基于/etc/init中的配置确定自身应该何时启动和终止。 man upstart-events Ubuntu启动流程分析 n Ubuntu并不是完全使用的是Upstart方式的初始化,由于6.10之前的版本采用的SysV 进入/etc/init目录,会发现几个跟rc有关的配置文件: rc.conf rc-sysinit.conf rcS.conf n rc-sysinit在startup事件发生时被启动 n rc在系统runlevel变化时被启动 n rcS在系统runlevel为S时启动 Ubuntu启动流程分析 n 采用Upstart方式启动的服务则在/etc/init/目录中有属于自己的一份配置文件,终端 下键入: initctl0 码力 | 77 页 | 7.40 MB | 1 年前3
《Java 应用与开发》课程讲义 - 王晓东215 16.4.2 Servlet 处理流程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 16.5 Servlet 配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216 16.5.1 Servlet 声明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 20 ServletContext 和 Web 配置 251 20.1 Web 应用环境对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252 20.1.1 Web 2 Java EE Web 的配置 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 20.2.1 配置文件 web.xml . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 20.2.2 web.xml 的主要配置项 . . . . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3
Nacos架构&原理
Nacos 配置模型 21 Nacos 内核设计 28 Nacos ⼀致性协议 28 Nacos 自研 Distro 协议 38 Nacos 通信通道 42 Nacos 寻址机制 56 Nacos 服务发现模块 63 Nacos 注册中心的设计原理 63 Nacos 注册中心服务数据模型 80 Nacos 健康检查机制 89 Nacos 配置管理模块 97 配置⼀致性模型 97 281 Eureka 平滑迁移 Nacos 方案 281 Nacos 打通 CMDB 实现就近访问 288 跨注册中心服务同步实践 298 配置管理最佳实践 310 Nacos 限流最佳实践 310 Nacos 无缝支持 confd 配置管理 320 结语 326 结语 326 作者 < 6 作者 李艳林(彦林) 李晓双 孙立(涌月) 柳遵飞(翼严) 廖春涛(春少) 和互联网化所带来的架构扩展性和面对海量用户请求的技术挑战。这里面其中有⼀个关键点是软负 载。因为整个分布式架构需要有⼀个软负载来协作各个节点之间的服务在线离线状态、数据⼀致性、 以及动态配置数据的推送。这里面最简单的需求就是将⼀个配置准时的推送到不同的节点。即便如 此简单需求,随着业务规模变大也会变的非常复杂。如何能将数据准确的在 3 秒钟之内推送到每⼀ 个计算节点,这是当时提出的⼀个要求,围绕这个要求,系统要做大量的研发和改造,类似的这种0 码力 | 326 页 | 12.83 MB | 10 月前3
基于 Java EE 的企业应用系统设计 - Spring MVC 01failed. <% } %> 大纲 Java Web 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 JSP 方式 O 仅有的一点优势 1. 无需额外的配置文件,无需框架的帮助,即可完成逻辑。 2. 简单易上手。 O 劣势 1. Java 代码由于混杂在一个 HTML 环境中而显得混乱不堪,可 读性非常差。一个 JSP 文件有时候会变成几十 K,甚至上百 事 务、日志等众多模块无法统一支持。 大纲 Java Web 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 JSP 方式 O 仅有的一点优势 1. 无需额外的配置文件,无需框架的帮助,即可完成逻辑。 2. 简单易上手。 O 劣势 1. Java 代码由于混杂在一个 HTML 环境中而显得混乱不堪,可 读性非常差。一个 JSP 文件有时候会变成几十 K,甚至上百 事 务、日志等众多模块无法统一支持。 大纲 Java Web 应用的开发演化 MVC 模式示例 Spring MVC 数据绑定和表单标签库 JSP 方式 O 仅有的一点优势 1. 无需额外的配置文件,无需框架的帮助,即可完成逻辑。 2. 简单易上手。 O 劣势 1. Java 代码由于混杂在一个 HTML 环境中而显得混乱不堪,可 读性非常差。一个 JSP 文件有时候会变成几十 K,甚至上百0 码力 | 67 页 | 792.43 KB | 1 年前3
Hello 算法 1.1.0 Java版是找一台计算机,运行这两个算法,并监控记录它们的运行时间和内存占用情况。这种评估方式能够反映真 实情况,但也存在较大的局限性。 一方面,难以排除测试环境的干扰因素。硬件配置会影响算法的性能。比如在某台计算机中,算法 A 的运行 时间比算法 B 短;但在另一台配置不同的计算机中,可能得到相反的测试结果。这意味着我们需要在各种机 器上进行测试,统计平均效率,而这是不现实的。 另一方面,展开完整测试非常耗费资源。 者的优劣并根据情境选择合适的方 法至关重要。 2.3 时间复杂度 运行时间可以直观且准确地反映算法的效率。如果我们想准确预估一段代码的运行时间,应该如何操作呢? 1. 确定运行平台,包括硬件配置、编程语言、系统环境等,这些因素都会影响代码的运行效率。 2. 评估各种计算操作所需的运行时间,例如加法操作 + 需要 1 ns ,乘法操作 * 需要 10 ns ,打印操作 print() 需要 优化数据结构的操作效率。 ‧ 空间效率高:数组为数据分配了连续的内存块,无须额外的结构开销。 ‧ 支持随机访问:数组允许在 ?(1) 时间内访问任何元素。 ‧ 缓存局部性:当访问数组元素时,计算机不仅会加载它,还会缓存其周围的其他数据,从而借助高速缓 存来提升后续操作的执行速度。 连续空间存储是一把双刃剑,其存在以下局限性。 ‧ 插入与删除效率低:当数组中元素较多时,插入与删除操作需要移动大量的元素。0 码力 | 378 页 | 18.47 MB | 1 年前3
共 31 条
- 1
- 2
- 3
- 4













