《Java 应用与开发》课程讲义 - 王晓东. . . . 97 9.3.1 系统属性概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 9.3.2 遍历、操作系统属性 . . . . . . . . . . . . . . . . . . . . . . . . . . 97 9.4 标准输入/输出 . . . . . . . . . . . . . . 10.3.3 Vector 类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 10.3.4 什么是线程安全 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 10.3.5 Stack . . . . . . . . . . . . . 96 10.1 集合相关 API 的关系 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 10.2 线程安全 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 11.1 AWT 组件和容器层次架构0 码力 | 330 页 | 6.54 MB | 1 年前3
Hello 算法 1.1.0 Java版i; } return -1; } 值得说明的是,我们在实际中很少使用最佳时间复杂度,因为通常只有在很小概率下才能达到,可能会带来 一定的误导性。而最差时间复杂度更为实用,因为它给出了一个效率安全值,让我们可以放心地使用算法。 从上述示例可以看出,最差时间复杂度和最佳时间复杂度只出现于“特殊的数据分布”,这些情况的出现概率 可能很小,并不能真实地反映算法运行效率。相比之下,平均时间复杂度可以体现算法在随机输入数据下的 ,用于表示各种语言的字母、标点符号甚至表情符号等。 ‧ 布尔类型 bool ,用于表示“是”与“否”判断。 基本数据类型以二进制的形式存储在计算机中。一个二进制位即为 1 比特。在绝大多数现代操作系统中,1 字节(byte)由 8 比特(bit)组成。 基本数据类型的取值范围取决于其占用的空间大小。下面以 Java 为例。 ‧ 整数类型 byte 占用 1 字节 = 8 比特,可以表示 28 的字符串 str 。 ‧ C 和 C++ 未明确规定基本数据类型的大小,而因实现和平台各异。表 3‑1 遵循 LP64 数据模型,其用于 包括 Linux 和 macOS 在内的 Unix 64 位操作系统。 ‧ 字符 char 的大小在 C 和 C++ 中为 1 字节,在大多数编程语言中取决于特定的字符编码方法,详见“字 符编码”章节。 ‧ 即使表示布尔量仅需 1 位(0 或 1),它在内存中通常也存储为0 码力 | 378 页 | 18.47 MB | 1 年前3
Hello 算法 1.0.0 Java版i; } return -1; } 值得说明的是,我们在实际中很少使用最佳时间复杂度,因为通常只有在很小概率下才能达到,可能会带来 一定的误导性。而最差时间复杂度更为实用,因为它给出了一个效率安全值,让我们可以放心地使用算法。 从上述示例可以看出,最差时间复杂度和最佳时间复杂度只出现于“特殊的数据分布”,这些情况的出现概率 可能很小,并不能真实地反映算法运行效率。相比之下,平均时间复杂度可以体现算法在随机输入数据下的 ,用于表示各种语言的字母、标点符号甚至表情符号等。 ‧ 布尔类型 bool ,用于表示“是”与“否”判断。 基本数据类型以二进制的形式存储在计算机中。一个二进制位即为 1 比特。在绝大多数现代操作系统中,1 字节(byte)由 8 比特(bit)组成。 基本数据类型的取值范围取决于其占用的空间大小。下面以 Java 为例。 ‧ 整数类型 byte 占用 1 字节 = 8 比特,可以表示 28 的字符串 str 。 ‧ C 和 C++ 未明确规定基本数据类型的大小,而因实现和平台各异。表 3‑1 遵循 LP64 数据模型,其用于 包括 Linux 和 macOS 在内的 Unix 64 位操作系统。 ‧ 字符 char 的大小在 C 和 C++ 中为 1 字节,在大多数编程语言中取决于特定的字符编码方法,详见“字 符编码”章节。 ‧ 即使表示布尔量仅需 1 位(0 或 1),它在内存中通常也存储为0 码力 | 376 页 | 17.59 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Java 版i; } return -1; } 值得说明的是,我们在实际中很少使用最佳时间复杂度,因为通常只有在很小概率下才能达到,可能会带来 一定的误导性。而最差时间复杂度更为实用,因为它给出了一个效率安全值,让我们可以放心地使用算法。 从上述示例可以看出,最差时间复杂度和最佳时间复杂度只出现于“特殊的数据分布”,这些情况的出现概率 可能很小,并不能真实地反映算法运行效率。相比之下,平均时间复杂度可以体现算法在随机输入数据下的 ,用于表示各种语言的字母、标点符号甚至表情符号等。 ‧ 布尔类型 bool ,用于表示“是”与“否”判断。 基本数据类型以二进制的形式存储在计算机中。一个二进制位即为 1 比特。在绝大多数现代操作系统中,1 字节(byte)由 8 比特(bit)组成。 基本数据类型的取值范围取决于其占用的空间大小。下面以 Java 为例。 ‧ 整数类型 byte 占用 1 字节 = 8 比特,可以表示 28 的字符串 str 。 ‧ C 和 C++ 未明确规定基本数据类型的大小,而因实现和平台各异。表 3‑1 遵循 LP64 数据模型,其用于 包括 Linux 和 macOS 在内的 Unix 64 位操作系统。 ‧ 字符 char 的大小在 C 和 C++ 中为 1 字节,在大多数编程语言中取决于特定的字符编码方法,详见“字 符编码”章节。 ‧ 即使表示布尔量仅需 1 位(0 或 1),它在内存中通常也存储为0 码力 | 379 页 | 18.48 MB | 10 月前3
Hello 算法 1.0.0b5 Java版i; } return -1; } 值得说明的是,我们在实际中很少使用最佳时间复杂度,因为通常只有在很小概率下才能达到,可能会带来 一定的误导性。而最差时间复杂度更为实用,因为它给出了一个效率安全值,让我们可以放心地使用算法。 从上述示例可以看出,最差或最佳时间复杂度只出现于“特殊的数据分布”,这些情况的出现概率可能很小, 并不能真实地反映算法运行效率。相比之下,平均时间复杂度可以体现算法在随机输入数据下的运行效率, ,需要注意以下几点。 ‧ C 和 C++ 未明确规定基本数据类型大小,而因实现和平台各异。表 3‑1 遵循 LP64 数据模型,其用于包 括 Linux 和 macOS 在内的 Unix 64 位操作系统。 ‧ 字符 char 的大小在 C 和 C++ 中为 1 字节,在大多数编程语言中取决于特定的字符编码方法,详见“字 符编码”章节。 ‧ 即使表示布尔量仅需 1 位(0 或 1),它在内存中通常被存储为 位的编码就足够表 示所有的 Unicode 字符了。 ‧ C# 使用 UTF‑16 编码,主要因为.NET 平台是由 Microsoft 设计的,而 Microsoft 的很多技术,包括 Windows 操作系统,都广泛地使用 UTF‑16 编码。 由于以上编程语言对字符数量的低估,它们不得不采取“代理对”的方式来表示超过 16 位长度的 Unicode 字符。这是一个不得已为之的无奈之举。一方面,包含代理对的字符串中,一个字符可能占用0 码力 | 376 页 | 30.69 MB | 1 年前3
Hello 算法 1.0.0b4 Java版return -1; } � 实际应用中我们很少使用「最佳时间复杂度」,因为通常只有在很小概率下才能达到,可能会 带来一定的误导性。相反,「最差时间复杂度」更为实用,因为它给出了一个“效率安全值”, 让我们可以放心地使用算法。 从上述示例可以看出,最差或最佳时间复杂度只出现在“特殊分布的数据”中,这些情况的出现概率可能很 小,因此并不能最真实地反映算法运行效率。相较之下,「平均时间复杂度」可以体现算法在随机输入数据下 位的编码就足够表 示所有的 Unicode 字符了。 ‧ C# 使用 UTF‑16 编码,主要因为.NET 平台是由 Microsoft 设计的,而 Microsoft 的很多技术,包括 Windows 操作系统,都广泛地使用 UTF‑16 编码。 由于以上编程语言对字符数量的低估,它们不得不采取“代理对”的方式来表示超过 16 位长度的 Unicode 字符。这是一个不得已为之的无奈之举。一方面,包含代理对的字符串中,一个字符可能占用 算法:在缓存淘汰算法(LRU)中,我们需要快速找到最近最少使用的数据,以及支持快速地添 加和删除节点。这时候使用双向链表就非常合适。 循环链表常被用于需要周期性操作的场景,比如操作系统的资源调度。 ‧ 时间片轮转调度算法:在操作系统中,时间片轮转调度算法是一种常见的 CPU 调度算法,它需要对一 组进程进行循环。每个进程被赋予一个时间片,当时间片用完时,CPU 将切换到下一个进程。这种循 环的操作就可以通过循环链表来实现。0 码力 | 342 页 | 27.39 MB | 1 年前3
Java 应用与开发 - 线程编程的线程模型,以及如何创建线程;理解后台线程。 2. 线程控制:理解线程的生命周期,明白各阶段的含义;掌握 线程控制方法,理解各线程控制方法对线程状态切换的作 用。 3. 线程的同步:理解临界资源问题,进一步明白线程安全的意 义;了解关键字 synchronized 的用法;了解死锁的概念;通 过生产者—消费者问题分析理解线程同步。 大纲 线程基础 线程控制 线程的同步 大纲 线程基础 相关知识回顾 线程的概念模型 线程生命的周期 线程优先级 线程串行化 线程休眠 线程让步 线程挂起与恢复 线程等待与通知 线程的同步 大纲 线程基础 线程控制 线程的同步 相关知识回顾 概念回顾 O 任务调度 ▶ 大部分操作系统的任务调度是采用时间片轮转的抢占式调度 方式,一个任务执行一小段时间后强制暂停去执行下一个任 务,每个任务轮流执行。 ▶ CPU 的执行效率非常高,时间片非常短,在各个任务之间 快速地切换,让人感觉像是多个任务在“同时进行”,这也 Task 1 Task 2 Task 3 大纲 线程基础 线程控制 线程的同步 相关知识回顾 概念回顾 O 进程 ▶ 进程是一个具有一定独立功能的程序在一个数据集上的一次 动态执行的过程,是操作系统进行资源分配和调度的一个独 立单位,是应用程序运行的载体。 (展示类 UNIX 系统的进程树) ▶ 进程一般由程序段、数据段和进程控制块三部分构成进程 实体。 大纲 线程基础 线程控制 线程的同步0 码力 | 82 页 | 1010.73 KB | 1 年前3
Linux Docker Mess0发布,可支持多个处理器,约由40万行代码。Linux 全球用户数约在350万左右。 n 1997年夏,制作电影《泰坦尼克号》所用的160台Alpha图形工作站中,有105台 采用了Linux操作系统。 n ... ... n http://www.kernel.org n 最新的内核稳定版本为4.4.3。 Linux History Ken Thompson C语言之父和Unix之父 期间非常出人意料地对NVIDIA爆出了粗 口。 FOAAS. http://www.foaas.com/ Linux的特点 n Linux is free n 开放性 n 可靠的系统安全 n 良好的可移植性 n 多用户性 n 多任务 n 良好的用户界面 n 设备独立性 n 强大的网络功能 n Linux的版本一般指内核版本; n Linux通过不通的命名机制来区分内核类别,采用三个由“ Docker? n 应用环境管理复杂 n 云计算时代的到来 n 虚拟化手段的变化 n LXC的便携性 Docker Docker Container和普通的虚拟机Image相比,最大的区别是它并不包含操作系统内核。 Docker vs. LXC 基本上可以认为目前的Docker是LXC的一个高级封装,提供了各种辅助工具和标准接口 方便使用LXC,你可以依靠LXC和各种脚本实现与Docker类似的功能,就像你不使用0 码力 | 77 页 | 7.40 MB | 1 年前3
Java 应用与开发 - Java 技术概述及开发环境致的问题;解释器运行时实施检查,可发现数组和 字符串访问的越界;提供了异常处理机制。安全性。 多线程 网络编程 编译和解释并存 大纲 Java 技术概述 Java 平台核心机制 Java 开发环境 Java 基本开发流程 Java 技术的特点 面向对象 平台无关性 分布式 可靠性 多线程 C++ 没有内置的多线程机制,需调用操作系统的 多线程功能来进行多线程序设计;Java 提供了多线 程支持。 Java 基本开发流程 大纲 Java 技术概述 Java 平台核心机制 Java 开发环境 Java 基本开发流程 Java 平台 Java应用程序 Java API Java 虚拟机 操作系统(Windows, Linux, Mac) 硬 件 O 核心概念 ▶ Java 虚拟机 ▶ 垃圾回收机制 ▶ Java 运行时环境(Java Runtime Environment, JRE)0 码力 | 33 页 | 1.17 MB | 1 年前3
Apache Shiro 1.2.x Reference Manual 中文翻译Management 9. Cryptography 密码 III. Web Applications 10. Web 10.1. Configuration 配置 10.2. 基于路径的 url 安全 10.3. Default Filters 默认过滤器 10.4. Session Management 10.5. JSP Tag Library IV. Auxiliary Support 21. Beginner's Webapp Tutorial 初学者web应用教程 22. Application Security With Apache Shiro 用Shiro保护你的应用安全 23. CacheManager 缓存管理 24. Apache Shiro Cryptography Features 加密功能 Apache Shiro 1.2.x Reference Manual Apache Shiro是一个功能强大、灵活的,开源的安全框架。它可以干净利落地处理身份验 证、授权、企业会话管理和加密。 Apache Shiro的首要目标是易于使用和理解。安全通常很复杂,甚至让人感到很痛苦,但是 Shiro却不是这样子的。一个好的安全框架应该屏蔽复杂性,向外暴露简单、直观的API,来 简化开发人员实现应用程序安全所花费的时间和精力。 Shiro能做什么呢? 验证用户身份0 码力 | 196 页 | 2.34 MB | 1 年前3
共 29 条
- 1
- 2
- 3













