
读书笔记
文章平均质量分 71
千念飞羽
这个作者很懒,什么都没留下…
展开
-
渲染web视图
6将模型数据渲染成HTML6.1 理解视图解析在MVC模型中,控制器将数据填充到模型中,然后将模型传递给一个用来渲染的视图。控制器中返回的String类型的值是视图的名称。 逻辑处理和视图渲染是解耦的,控制器方法和视图在模型内容上达成一致,除此之外再无关联。原创 2017-06-01 16:45:41 · 2377 阅读 · 0 评论 -
读书笔记-java网络编程-4Internet-NetworkInterface类
3. NetworkInterfaceNetworkInterface表示一个本地的IP地址。如物理接口:以太网卡,虚拟接口:与机器的其他IP地址绑定到同一个物理硬件。 它提供了一些方法枚举所有本地地址(而不考虑接口),并由他们创建InetAddress对象,然后这些对象可用于创建socket,服务器socket等等。3.1 工厂方法可以通过IP地址、名字或者枚举来请求一个NetworkInter原创 2016-07-04 17:55:13 · 1166 阅读 · 0 评论 -
读书笔记-java网络编程-5URL和URI-简述
1. 简述1.1 URI统一资源标识符(Uniform Resource Identifier, URI)采用一种特定语法标识一个资源的字符串语法: 模式:模式特定部分模式包括: data 链接中直接包含的Base64编码数据 file 本地磁盘上的文件 ftp ftp服务器 http 使用超文本传输协议的国际互联网服务器 mailto 电子邮件地址 telnet 基原创 2016-07-04 21:00:48 · 645 阅读 · 0 评论 -
读书笔记-java网络编程-5URL和URI-URL类
2. URL类java.net.URL类是对url的抽象,是一个final类。URL类不可变,构造一个URL对象后,其字段不在改变,因此它是线程安全的。使用了策略设计模式。2.1 创建新的URLpublic URL(String url) throws MalformedURLExceptionpublic URL(String protocol, String hostname, String原创 2016-07-04 23:02:52 · 670 阅读 · 0 评论 -
读书笔记-java网络编程-5URL和URI-URI类
3. URI类URI是对URL的抽象,不仅包括URL还包括URN。 实际使用的URI大多是URL,但是大多数规范和标准都是URI定义的。在Java中这里两个类的主要区别是: 1. URI类完全有关于资源的标识和URI的解析,它没有提供方法来获取URI所标识资源的表示 2. 相比URL,URI类更规范 3. URI对象可以表示相对的URI,URL类在储存URI之前会将其绝对化。简单的原创 2016-07-05 10:53:53 · 614 阅读 · 0 评论 -
读书笔记-java网络编程-5URL和URI-x-www-form-urlencoded
4. x-www-form-urlencodedURL中使用的字符必须是来自ASCII码的固定子集。具体的说:大小写字母,数字标点符号:- _ .!~*’(和,)用于特定用途的符号:/ & ? @ # ; $ + = 和 %其他所有字符均需要用%转义,特定用途的符号不做特定用途用时也要转义URL类不自动编码解码,但是由getPath和toExternalForm时候回出现错误。 java原创 2016-07-05 11:26:58 · 998 阅读 · 0 评论 -
读书笔记-java网络编程-5URL和URI-代理
5. 代理代理的作用:出于安全原因防止远程主机了解到本地网络配置的秘密细节为了通过滤出站请求,限制可以浏览的网络。出于性能考虑,运行多个用户从本地缓存获取同样的一些经常访问的文档,而不是重复从远程主机下载5.1 系统属性 没看懂基本操作所要做的就是设置一些系统属性,指示本地代理服务器的地址。 如果使用存储的HTTP代理,则将http.proxyHost设置为代理服务器的域名或IP地址原创 2016-07-05 12:02:06 · 841 阅读 · 0 评论 -
读书笔记-java网络编程-6URL和URI-HTTP协议和cookie的java实现
6 HTTP协议这章内容大部分比较浅显。这里抽取一部分不太熟悉的说下:6.1 HTTP协议6.1.1 概述6.1.2 Keep-Alive6.2 HTTP方法get: 可以获取一个资源的表示。 get没有副作用,如果失败可以重新获取。 通常get的输出会缓存。可以通过首部来控制 可以对get请求加书签。也可以预取get请求。但是其他方法不可以。 如果没有明确的用户动作,好的浏览器和爬虫不原创 2016-07-06 11:39:08 · 1040 阅读 · 0 评论 -
读书笔记-java网络编程-7URLConnection-获取URL首部
7 URLConnection7.1 URLConnection简介URLConnection是一个抽象类,表示指向URL指定资源的活动连接。有两个不同但是相关的用途: 1. 一个是与服务器(特别是HTTP服务器)的交互,可以用来查看服务器发送的首部,设置连接的属性,设置客户端的请求的首部等。利用它也可以实现POST和PUT方法来发送数据。 2. URL是Java的协议处理器机制的一部分。所谓的原创 2016-07-06 13:48:01 · 686 阅读 · 0 评论 -
读书笔记-java网络编程-7URLConnection-缓存
7.5 缓存7.5.1缓存简述通常来说,get通过http访问获得的页面可以缓存,也应当缓存,使用HTTPS或者POST方法访问的页面通常不应该缓存。不过HTTP首部可以对此作出调整:Expires首部(主要用于HTTP1.0)指示可以缓存这个资源表示,直到指定的时间为止Cache-control首部(HTTP1.1)提供了粒度更细的缓存策略: max-age=[seconds]s-maxa原创 2016-07-06 13:59:57 · 525 阅读 · 0 评论 -
读书笔记-java网络编程-4Internet-InetAddress类
2. InetAddress类java.net.InetAddress类是java对IP地址的高层表示。一般来说他包含一个主机名和一个IP地址2.1创建新的InetAddressInetAddress没有公共的构造函数,而是采用静态方法,可以连接到DNS服务器来解析主机名。最常用的是:2.1.1 getByName和getAllByNameInetAddress address = InetAdd原创 2016-07-04 16:19:29 · 756 阅读 · 0 评论 -
读书笔记-java网络编程-4Internet地址-地址简述
1. 地址简述连接到Internet网络的设备为节点node,计算节点称为主机host 地址IPv4: 4字节长 点分十进制dotted quad格式 152.19.134.132IPv6 16字节长。 通常写成为冒号分隔的8个区块,每个区块是4个十六进制。 前导的0不需要写出。 两个冒号表示多个0区块,但是每个地址中双冒号最多出现一次。在混合网络中,IPv6的最后四个字节有时写为原创 2016-07-04 15:49:38 · 494 阅读 · 0 评论 -
读书笔记-java网络编程-3线程-线程池和Executor
5. 线程池和Executor如果线程之间的切换太过频繁也会消耗过多的资源,避免大量的线程切换可以保证提高任务完成的效率 如果线程自然阻塞如等待网络数据,没什么正常影响,但是如果是CPU受限,如果能避免大量线程切换可以提高效率。java.util.concurent中的Executors类可非常容易的建立线程池。 只需要将各个任务做完一个Runnable对象通过submit提交给这个线程池,你就原创 2016-07-04 15:35:18 · 632 阅读 · 0 评论 -
读书笔记-如何正确的发布并发对象
本文是对《java并发编程实战》第三章对象的共享的整理,并不解释java的并发编程原理,而是说明从编程技巧上如何实现更好的发布对象。当然通常情况下我们考虑如何正确的使用同步组件去写出正确的同步代码,但是即使不适用同步组件也有很多其他方法来保证正确的访问代码。本文主要从线程封闭和不变性的角度考虑如何写出正确的多线程程序。原创 2016-12-19 21:04:12 · 906 阅读 · 0 评论 -
读书笔记-C++PrimerPlus-8.2.6 对象、继承和引用10.2.5 修改实现
C++ Prime Plus 随笔-关于显示格式的总结原创 2015-08-09 16:13:55 · 574 阅读 · 0 评论 -
SUSUAN算子实现
#include "opencv2\opencv.hpp"using namespace std;using namespace cv;int main(int argc, char** argv){ //确定37格模板的坐标偏移量 int OffSetX[37] = { -1, 0, 1, -2, -1, 0, 1, 2, -3, -2, -1, 0,原创 2015-10-18 00:27:38 · 724 阅读 · 0 评论 -
读书笔记-C++PrimerPlus-CPP流的总结
首先推荐一个C++参考文档组织的比较好的网站http://www.cplusplus.com/,最近见得好像比较到自己组织的比较好。本文也是根据这个网上的资料总结得到的。流的简介iostream是C++中提供流的输入输出函数的面向对象库。流是表示设备被输入输出操作的抽象。一个流基本上可以看做是无限长的字符串的来源或者目的地的表示。通常来说流都与物理字符串设备的源或者字符串相关联,比如说硬盘文件,键盘原创 2016-06-20 02:33:29 · 606 阅读 · 0 评论 -
读书笔记-java网络编程-2java流的工作原理及应用-
java流的基本原理和结构1.java流的基本原理和结构1.1采用装饰者模式的java流设计java流的设计采用装饰器模式的方式,装饰者模式采用共同抽象类或者接口A,被装饰者的组件B直接继承于抽象类,而所有的装饰者也有一个共同的抽象类或者接口C,而这个装饰者们的公共抽象类和接口C也是继承或者实现了A。下面是一张装饰者模式的通用原理图。 而在装饰者模式的所有类中实现了相同原创 2016-07-02 21:55:18 · 764 阅读 · 0 评论 -
读书笔记-java网络编程-3线程-java线程概述
解决服务器超负荷问题: - 重用进程 - 采用线程 如果一个应用同时需要大量的长时间链接,就应该考虑异步IO而不是线程。1. java的线程简介:1.1 java线程实例Thread t = Thread();t.start();在主线程中运行上述代码,就会自动的创建一个线程。并运行Thread实例t的run()方法。当然run方法要实现定义好。原创 2016-07-03 15:57:32 · 444 阅读 · 0 评论 -
读书笔记-java网络编程-3线程-从线程返回信息
2. 从线程返回信息run()和start()方法都是没有返回值也没有输入参数的。那如何返回参数就是一个比较麻烦的事情。 最直接的想法是建立一个私有的字段,然后通过get之类的方法访问,但是这样的思路会有一个基本的问题就是竞态条件: race condition:竞态条件,能否得到正确的结果依赖于进程的相对速度,而你无法控制这一点。 否定了这样直接的方法后,还有一种新手常用的获取数据的方法。原创 2016-07-03 16:02:10 · 506 阅读 · 0 评论 -
读书笔记-java网络编程-3线程-同步
3. 同步当不同的进程方法同一个资源的时候,只有一个进程可以获得资源的访问权限,而其他进程将要继续阻塞。3.1同步块 synchronized (System.out) { System.out.print(input+":"); System.out.print(DatatypeConverter.printHexBinary(dige原创 2016-07-03 17:01:10 · 514 阅读 · 0 评论 -
读书笔记-java网络编程-3线程-线程调度
4. 线程调度4.1线程调度java中10是最高优先级,0是最低优先级,默认的优先级5。 这与Unix优先级相反。 Windows只有7个优先级。 尽量不要设置过高的优先级否则会导致低优先级饥饿。public final void setPriority(int newPriority)使用这条语句来指定设置优先级。4.2 抢占主要有两种线程调度机制: 抢占式(preemptive):调度器原创 2016-07-03 20:06:21 · 601 阅读 · 0 评论 -
读书笔记-现代操作系统-2进程与线程-2.3进程间通信
2. 进程与线程2.3 进程间通信进程间通信(Inter Process Communication)IPC问题:一个进程如何把信息传递给另一个确保两个或更多进程在关键活动中不会出现交叉正确的顺序运行程序 后两个对于线程也成立,通常来说线程可以通过共享地址空间实现信息传递,当然你也可以采用其他方式比如说消息传递机制等等。2.3.1 竞争条件和临界区两个或多个进程读写某些数据,而最后结果取决原创 2016-07-07 23:17:40 · 795 阅读 · 0 评论 -
读书笔记-现代操作系统-2进程与线程-2.4调度
2.4调度计算密集型/IO密集型何时调度:在创建一个新进程后再一个进程退出时在一个进程IO和信号量或其他原因阻塞时中断发生时调度算法分类:批处理交互式实时调度算法的目标:所有系统:公平-给每个进程公平的CPU份额策略强制执行-看到所宣布的策略执行平衡-保存系统的所有部分忙碌批处理:吞吐量-每小时最大作业数周转时间-从提交到终止间的最小时间CPU利用率-保存CPU始终忙碌原创 2016-07-08 15:23:22 · 556 阅读 · 0 评论 -
读书笔记-现代操作系统-6死锁-6.7其他问题
6.7 其他问题6.7.1 两阶段加锁数据库中常用的,两阶段加锁: 进程试图对所有所需的记录进行加锁,一次锁一个记录。如果第一阶段加锁成功,就开始第二阶段,完成更新过后然后释放锁。如果第一阶段加锁失败,那么该进程释放它所有加锁的记录,然后重新开始第一阶段。这种方法类似于提取或者至少是未释放一些不可逆操作之前请求所有资源。6.7.2 通信死锁两个或者两个以上进程利用发送信息来通信时,当进程a向进程b原创 2016-07-13 15:52:54 · 688 阅读 · 0 评论 -
读书笔记-现代操作系统-7多媒体操作系统-7.1多媒体简介7.2 多媒体文件
7.1多媒体简介多媒体材质:CD-ROM->DVD(5-17G)->Blu-ray(25G/50G)/HD DVD(15G/30G)多媒体应用方向: 1. 从网上下载多媒体 2. 视频本身 3. 游戏制作 4. 视频点播:一个或多个视频服务器、一个分布式网络以及一个在每间房中用来对信号进行解码的机顶盒。多媒体两个关键特征: 1. 多媒体使用极高的数据率 2. 多媒体要求实时回放。NTSC原创 2016-07-16 21:11:43 · 631 阅读 · 0 评论 -
读书笔记-现代操作系统-7多媒体操作系统-7.3视频编码7.4音频压缩
7.3 视频压缩首先压缩算法需要两个概念一个是在源端对数据进行压缩,另一个是在目的端对数据进行解压缩。或者分别被称为编码和解码 有些算法具有不对称性,这是指压缩和解压缩的复杂度是不一样的。这对实际应用而言是很有意义的。 另一个是有损和无损的概念,文件压缩通常都是需要无损的,但是对于视频来说有损压缩更常见。7.3.1 JPEG标准Joint Photographic Experts Group 联原创 2016-07-16 22:09:06 · 688 阅读 · 0 评论 -
读书笔记-现代操作系统-7多媒体操作系统-7.5多媒体进程调度
多媒体操作系统和传统操作系统有三个部分由区别:进程调度文件系统磁盘调度7.5.1 调度同质进程最简单的视频服务器可以支持显示固定书名的电影,所有电影都使用相同的帧率、视频分辨率、数据率以及其他参数。 可以简单的采用轮转调度,唯一的区别是需要定时机制,以确保每一进程以恰当的频率调度。7.5.2 一般实时调度但是通常来说不同电影的帧率大小等等参数都不一样,所有通常需要考虑一般的模型: 多个进原创 2016-07-16 22:49:31 · 530 阅读 · 0 评论 -
读书笔记-现代操作系统-7多媒体操作系统-7.6多媒体文件系统泛型7.7文件存放
7.6 多媒体文件系统泛型多媒体系统和传统的文件系统有很大的不同,采用的是类似VCR工作方式一样的拉取型服务器(pull server): 用户进程发出start系统调用,指定要读取的文件和其他各种参数,然后用户进程以帧进来的速率对他们进行处理。直到用户发出stop停止命令停止数据退给用户。7.6.1 VCR控制功能视频服务通常也需要实现VCR控制功能,包括暂停、快进和倒带。暂停:用户发送一个消息原创 2016-07-17 21:43:20 · 1150 阅读 · 0 评论 -
读书笔记-现代操作系统-7多媒体操作系统-7.8 高速缓存7.9多媒体磁盘调度
7.8 高速缓存7.8.1 块高速缓存如果两个观众观看的时间点不超过ΔT\Delta T的帧缓存起来,这样就可以不必在重复读取,但是也需要考虑到内存使用率和高速缓存的时间等等诸多因素另一个扩展的思想是。通过缓慢的调整播放的速率来使高速缓存的两个帧逐渐迁移到一起,实现同步。这个与之前的近似点播的思想相似。7.8.2 文件高速缓存可以将最流行的文件放入高速缓存。或者将流行的文件的前几分钟放入高速缓存。这原创 2016-07-17 22:07:31 · 522 阅读 · 0 评论 -
读书笔记-现代操作系统-8多处理机系统-8.1多处理机
多处理通常来说分为3类:共享内存的多处理,多个cpu共享同一个储存器,单向通信时间2-10ns消息传递多计算机,每个储存器局部对应一个cpu,且只能被该cpu访问,这些cpu通过互联网网络发送多字消息通信,典型通信时间10-50us广域分布式系统,所有计算机都有自己的储存器,通过消息传递进系统通信,与2不同的是这里使用了完整的计算,典型的通信时间10-100ms 8.1 多处理机原创 2016-07-21 16:47:11 · 1472 阅读 · 0 评论 -
读书笔记-现代操作系统-8多处理机系统-8.2多计算机
8.2 多计算机为了避免多处理机的构造困难,造价高昂的问题,多计算机(multicomputes)成为一个更加容易构建的系统。因为其基本部件只是一台配有高性能网络接口卡的PC裸机。获得高性能的设计互联网络以及接口卡。这与多处理机中构造共享储存器是完全类似的。8.2.1 多计算机硬件1.互联技术 也就网络拓扑有多种连接方式主要的有: 两种交换机制: 包交换:每个消息首先被分解成原创 2016-07-22 14:24:44 · 1396 阅读 · 0 评论 -
读书笔记-现代操作系统-8多处理机-8.3虚拟化
8.3 虚拟化虚拟化(virtualization)这种技术允许一台机器中存在多台虚拟机,每一台虚拟机可能运行不同的操作系统。 虚拟化起作用的原因是: 大部分服务器停机的原因不是因为硬件的故障,而是因为臃肿、不可靠、有漏洞的软件,特别是操作系统。使用虚拟化技术,唯一一个运行在内核态的软件是管理程序(hypervisor),它的代码量比一个完整操作系统的代码量少两个数量级,漏洞更少。优势: -原创 2016-07-22 21:56:22 · 815 阅读 · 0 评论 -
读书笔记-现代操作系统-6死锁-6.5死锁避免
6.5 死锁避免系统判断分配资源是否安全,并且只能在保证安全的条件下分配资源。6.5.1 资源轨迹图 当在t点时系统必须做出正确的判断,应该将一部分程序挂起以避免产生死锁6.5.2 安全状态和不安全状态安全状态 如果没有死锁状态,而且即使所有进程突然请求对资源的最大需求,也仍然存在某种调度次序能够使得每个进程运行完毕,则该状态是安全的。 如果线程可以通过仔细的调度避免死锁,所有状态时安全的,原创 2016-07-13 15:26:39 · 847 阅读 · 0 评论 -
读书笔记-现代操作系统-6死锁-6.3鸵鸟算法6.4死锁检测和死锁恢复
6.3 鸵鸟算法不考虑死锁问题。 因为实际工作中很可能有其他更为严重的问题。如果死锁的频率不高可不考虑死锁。6.4 死锁检测和死锁恢复6.4.1 每种类型一个资源的死锁检测步骤: 1. 对图中的每一个节点N,将N作为起始点执行下面5个步骤。 2. 将L初始化为空表,并清除所有的有向边标记。 3. 将当前节点添加到L的尾部,并检测该节点是否在L中已出现两次,如果是。那么该图包含了一个环(已列在原创 2016-07-13 14:56:15 · 3781 阅读 · 0 评论 -
读书笔记-现代操作系统-6死锁-6.1资源6.2 死锁概述
6. 死锁6.1 资源为了尽可能使关于死锁的讨论通用,我们把这类需要排他性使用的对象成为资源。 资源可以是硬件设备或是一组信息。 资源就是随着时间的推移必须能获得、使用以及释放的任何东西6.1.1 可抢占资源和不可抢占资源可抢占资源(preemptable resource)可以从拥有它的进程中抢占而不会产生任何副作用。 比如进程a和b都占用了打印机,进程a占用了打印机,但是在打印机完成之前用原创 2016-07-13 14:13:12 · 626 阅读 · 0 评论 -
读书笔记-现代操作系统-3储存管理-3.1无储存器抽象3.2一种储存器抽象:地址空间
3. 储存管理3.1 无储存器抽象早期计算机没有内存抽象,都采用物理地址,多道程序设计都采用多线程的方式。 也可以采用静态重定位的方式:为每个程序加上一个固定的常数。速度比较慢且容易出错3.2一种储存器抽象:地址空间物理地址暴露带来的严重问题:如果用户程序可以寻址内存每个字节,他们很容易破换操作系统使用绝对的物理地址,多道程序设计很困难3.2.1 地址空间的概念想要互相独立的内存空间,需要解原创 2016-07-09 22:09:56 · 628 阅读 · 0 评论 -
读书笔记-现代操作系统-3储存管理-3.3虚拟内存
3.3 虚拟内存虚拟内存的基本思想: 每个程序拥有自己的地址空间,这个空间被分割成多个块。每一块 称作一页或页面(page)。每一页有连续的地址空间。这些页被映射到物理内存,但并不是所有的页都必须在内存中才能运行。当程序引用到一部分在物理内存中地址空间时,由硬件立刻执行必要的映射,当程序引用一部分不在物理内存中的地址空间时,由操作系统负责将缺失的部分装入物理内存并重新执行失败的指令。3.3.1 分原创 2016-07-09 23:17:15 · 870 阅读 · 0 评论 -
读书笔记-现代操作系统-3储存管理-3.4页面置换算法
3.4 页面置换算法3.4.1 最优页面置换算法无法实现的算法。简单的说置换出最长指令之后需要访问的页面。3.4.2 最近未使用页面置换算法系统为每一个页面设置两个位,一个是被访问时设置R位,另一个是修改页面被写入时设置M位。 如果在一段时间内(比如说20ms)未访问则将R设置为未访问。 如果已经修改则需要将M设置为访问。所有页面分为四类没有被访问,没有被修改没有被访问原创 2016-07-10 09:59:09 · 925 阅读 · 0 评论 -
读书笔记-现代操作系统-3储存管理-3.5分页系统中的设计问题
3.5 分页系统中的设计问题3.5.1 局部分配策略和全局分配策略怎样在互相竞争的可运行程序之间分配内存。 局部页面置换算法,只在进程内部分配,如果有缺页则置换本进程内的页面。 全局页面置换算法,在所有进程所占内存分配,如果有缺页则置换所有进程中最适合的页面。 通常来说全局页面置换更好,尤其是在工作集的大小随进程运行时间发生变化时这种现象更加明显。若使用局部算法,即使有大量空闲页框存在,工作集原创 2016-07-11 10:10:14 · 586 阅读 · 0 评论