JAVA 应用与开发 - 高级类特性应用与开发 高级类特性 让我们愉快的 Coding 起来吧... ��� �������������� October 9, 2018 ���� ��抽象类�接口的������定义方法 ��抽象类�接口的����� ����类的�类�����类�����类�匿名��类的 �� ��匿名内部类的���继承�接口实现的�法 ����类�的��方法 1 29 �� 1 抽象类 2 接口 接口 3 抽象类�接口�� 4 ��类 5 ��类� 2 29 抽象类 �����类 抽象类 ����象的������的�象����类 来��的�����来������的类�� �来���象的�����类������� 的��来������的�象���的类�� 抽象类� 抽象类���来������������� ����的抽象������������� �������的����的抽象� 3 29 �����类 抽象类 ����象的������的�象����类 来��的�����来������的类�� �来���象的�����类������� 的��来������的�象���的类�� 抽象类� 抽象类���来������������� ����的抽象������������� �������的����的抽象� �: 我�抽象 3 29 ����类 �定义 Java0 码力 | 61 页 | 677.55 KB | 1 年前3
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 应用与开发》课程讲义 - 王晓东. . . . 24 3.3.3 二维数组赋初值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.4 Arrays 类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.5 字符串 . . . . . . . . . . . 26 3.5.1 字符串变量的创建 . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.5.2 String 类的常用方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.5.3 理解 Java 字符串 . . . . . . . . . . 32 4.1.2 包的创建 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.3 导入包中的类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 4.1.4 Java 包特性 . . . . . . . . . .0 码力 | 330 页 | 6.54 MB | 1 年前3
Java 应用与开发 - 线程编程动态执行的过程,是操作系统进行资源分配和调度的一个独 立单位,是应用程序运行的载体。 (展示类 UNIX 系统的进程树) ▶ 进程一般由程序段、数据段和进程控制块三部分构成进程 实体。 大纲 线程基础 线程控制 线程的同步 相关知识回顾 什么是线程 根据多任务原理,在一个程序内部也可以实现多个任务(顺序控 制流)的并发执行,其中每个任务被称为线程(Thread)。更专 业的表述为: 线程是程序内部的顺序控制流。 大纲 线程 1 寄存器 栈 线程 2 寄存器 栈 线程 3 线程与进程的关系 1. 每个进程都有独立的代码和数据空间(进程上下文),进程切换的 开销大。 2. 线程作为“轻量的进程”,同一类线程共享代码和数据空间,每个 线程有独立的运行栈和程序计数器(PC),线程切换的开销小。 3. 多进程——在操作系统中能同时运行多个任务(程序)。 4. 多线程——在同一应用程序中有多个顺序流同时执行。 线程 1 寄存器 栈 线程 2 寄存器 栈 线程 3 线程与进程的关系 1. 每个进程都有独立的代码和数据空间(进程上下文),进程切换的 开销大。 2. 线程作为“轻量的进程”,同一类线程共享代码和数据空间,每个 线程有独立的运行栈和程序计数器(PC),线程切换的开销小。 3. 多进程——在操作系统中能同时运行多个任务(程序)。 4. 多线程——在同一应用程序中有多个顺序流同时执行。0 码力 | 82 页 | 1010.73 KB | 1 年前3
Apache Shiro参考手册中文版The Tutorial class 我们将运行一个简单的命令行应用程序,因此,我们需要创建一个拥有 public static void main(String[] args)方法的 Java 类。 在包含你 pom.xml 文件的同样目录下,创建 src/main/java 子目录。在 src/main/java 目录下创建具有下面内容的 Tutorial.java 文件: 是很有益处的。因此,在我们的教程应用程序中第一 件要做的事情就是配置 SecurityManager 实例。 Configuration 虽然我们能够直接实例化一个 SecurityManager 类,但 Shiro 的 SecurityManager 实现有足够的配置选项及内置组件 使得在 Java 源代码做这件事情变得较为痛苦——如果使用一个灵活的基于文本的配置格式来配置 SecurityManager, LDAP 的 AcitveDirectory,以及更多。 Referencing the Configuration 现在我们已经定义好了一个 INI 文件,我们可以在我们的教程应用程序类中创建 SecurityManager 实例了。改变 main 方法来反映以下的更新内容: 好了,在仅仅添加了 3 行代码后,Shiro 就在我们的简单应用程序中启用了!很容易是吧?0 码力 | 92 页 | 1.16 MB | 1 年前3
Apache Shiro 1.2.x Reference Manual 中文翻译文件: 教程中的 class 我们将运行一个简单的命令行应用程序,因此我们将需要创建一个带 public static void main(String[] args) 方法 Java 类。 包含 pom.xml 文件的同一个目录下,创建一个*src/main/java 子目录。 在 src/main/java 创建一 个 Tutorial.java 文件,包含以下内容: src/main/java/Tutorial Architecture 架构 Cryptography 在安全框架中是一个自然的附加产物,Shiro 的 crypto 包包含了易用且易懂的 加密方式,Hashes(即digests)和不同的编码实现。该包里所有的类都亦于理解和使用,曾 经用过 Java 自身的加密支持的人都知道那是一个具有挑战性的工作,而 Shiro 的加密 API 简 化了 java 复杂的工作方式,将加密变得易用。 Realms (org creation) 退出登录(Logout) 及其它。 但这些功能都在一个单独的组件中管理,并且,当所有功能集中在一个类中实现是灵活和可 定制是非常困难的。 为了实现配置的简单、灵活、可插拔,Shiro在设计时实现了高模块化--尽管模块化, SecurityManager(包括它的继承类)并没有做到,相反地,SecurityManager实现更像一个 轻量级的‘容器(container)’,代表0 码力 | 196 页 | 2.34 MB | 1 年前3
Java 应用与开发 - Java 内存模型与分配机制Virtual Machine, JVM) ▶ Java 程序运行在 JVM 上,JVM 是程序与操作系统之间的桥梁。 ▶ JVM 实现了 Java 的平台无关性。 ▶ JVM 是内存分配的前提。 类装载子系统 Class文件 Class文件 Class文件 方法区 Java堆 Java栈 程序计数器 本地方法栈 执行引擎 本地接口 通过全限定名装载 操作系统 操作系统本地库 运行时数据区 程序内存运行分析 Java 内存管理建议 JVM 内存模型 动画演示 JVM 内存模型 JVM内存模型 Heap Method Area Runtime Constant Pool Thread Thread Thread PC Register JVM Stack Native Method Stack PC Register JVM Stack Native Method Stack Java 程序内存运行分析 Java 内存管理建议 Java 程序运行过程会涉及的内存区域 程序计数器 当前线程执行的字节码的行号指示器。 栈 保存局部变量的值,包括:用来保存基本数据类型的值; 保存类的实例,即堆区对象的引用(指针),也可以用来 保存加载方法时的帧。(Stack) 堆 用来存放动态产生的数据,如 new 出来的对象和数组。 1。(Heap) 常量池 JVM 为每个已加载的类型维护一个常量池,常量池就是0 码力 | 44 页 | 818.30 KB | 1 年前3
Java 源码剖析——彻底搞懂Reference 和ReferenceQueue家介绍了Java中的四种引用类型,很多同学都希望能够对引用,还有不同类型引用的原理进行更深入 了解。因此博主查看了抽象父类Reference和负责注册引用对象的引用队列ReferenceQueue的源码 在此和大家一起分享,并做了一些分析,感兴趣的同学可以一起学习。 Reference源码分析 首先我们先看一下Reference类的注释: /** * Abstract base class for reference close cooperation with the garbage collector, this class may * not be subclassed directly. 引用对象的抽象基类。此类定义了常用于所有引用对象的操作。因为引用对象是通过与垃圾回收器的 切合作来实现的,所以不能直接为此类创建子类。 */ 该类提供了两个构造函数: Reference(T referent) { private T referent; /* Treated specially by GC */ 在这里我们首先明确一些名词,Reference类也被称为引用类,它的实例 Reference Instance就是引 实例,但是由于它是一个抽象类,它的实例只能是子类软(soft)引用,弱(weak)引用,虚(phantom)引用 的某个,至于引用实例所引用的对象我们称之为实际对象(也就是我们上面所写出的referent)。0 码力 | 6 页 | 283.24 KB | 1 年前3
JAVA 应用与开发 - 集合与映射����� 不提供数据访问保护,有可能出现多个线程先后更改数据导 致出现“脏数据”。(ArrayList、LinkedList、HashMap 等) ArrayList Obj Thread 1 Thread 2 V V size = 0 v = V size +1 v = K CPU 调度 T2 执行 K T1 执行 K size +1 CPU 调度 T1 执行 K �������� ���的����������的�������的������ �������来����的��������� 实现类基于 compareTo() 方法的排序被称为自然排序。 compareTo() 方法被称为它的自然比较方法,具体的排序原则 可由实现类根据需要而定。 方法格式 1 int compareTo(Object o) { 3 } CODE ± sample.setlistmap equals(y))”永远成立,否则逻 辑上不合理。所以上例同时重写了 equals() 方法。 2. 为保证能够实现元素的排序功能,TreeSet 集合要求向其加入的 对象元素必须是 Comparable 接口的实现类的实例,否者程序 运行时会抛出造型异常。 3. Comparable 接口并不专用于集合框架。 22 28 Comparable �� O 对上述程序的几点说明 1. 用户在重写 compareTo()0 码力 | 66 页 | 713.79 KB | 1 年前3
Java 应用与开发 - 面向对象编程进阶接��� 多态性 方法重载 关键字 static 关键字 final 大纲 多态性 方法重载 关键字 static 关键字 final 什么是多态? 在 Java 中,子类的对象可以替代父类的对象使用称为多态。 O Java 引用变量与所引用对象间的类型匹配关系 ▶ 一个对象只能属于一种确定的数据类型,该类型自对象创建 直至销毁不能改变。 ▶ 一个引用类型变量可能引用(指向)多种不同类型的对象 age school Student类型对象 Person类型变量p 大纲 多态性 方法重载 关键字 static 关键字 final 什么是多态? 在 Java 中,子类的对象可以替代父类的对象使用称为多态。 O Java 引用变量与所引用对象间的类型匹配关系 ▶ 一个对象只能属于一种确定的数据类型,该类型自对象创建 直至销毁不能改变。 ▶ 一个引用类型变量可能引用(指向)多种不同类型的对象 p[0] = new Student(); // �设 Student 类继承了 Person 类 3 p[1] = new Person(); 4 p[2] = new Graduate(); //�设 Graduate 类继承了 Student 类 父类引用对子类对象的能力屏蔽性 一个引用类型变量如果声明为父类的类型,但实际引用的是子类 对象,该变量则不能再访问子类中添加的属性和方法。0 码力 | 49 页 | 659.74 KB | 1 年前3
共 408 条
- 1
- 2
- 3
- 4
- 5
- 6
- 41













