自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

总结沉淀

总结日常点滴积累

  • 博客(187)
  • 资源 (3)
  • 收藏
  • 关注

原创 操作系统存储管理之虚拟存储与分页式虚拟存储系统

虚拟存储实现思路在实际运行过程,把有关作业的全部信息都装入主存储器后,作业执行时实际上不是同时使用全部信息的,有些部分运行一遍便再也不用,甚至有些部分在作业执行的整个过程中都不会被使用到(如错误处理部分)。进程在运行时不用的,或暂时不用的,或某种条件下才用的程序和数据,全部驻留于内存中是对宝贵的主存资源的一种浪费,大大降低了主存利用率。 于是,提出了这样的问题:作业提交时,先全部进入辅助存储器,作

2017-04-24 13:20:07 15221

原创 操作系统存储管理之分段存储

需求从固定分区到动态分区,从分区方式到分页方式发展提高了主存空间利用率。 而分段存储管理的引入,则满足用户(程序员)编程和使用上的要求,这些要求其它各种存储管理技术难以满足。需求解析:在分页存储管理中,经连结编辑处理得到了一维地址结构的可装配模块,这是从0开始编址的一个单一连续的逻辑地址空间,虽然操作系统可把程序划分成页面,但页面与源程序无逻辑关系,也就难以实现对源程序以模块为单位进行分配、共享

2017-04-23 14:57:56 6256 1

原创 操作系统存储管理之页式存储管理深入浅出

用分区方式管理的存储器,每道程序总是要求占用主存的一个或几个连续存储区域,作业或进程的大小仍受到分区大小或内存可用空间的限制,因此,有时为了接纳一个新的作业而往往要移动已在主存的信息。这不仅不方便,而且开销不小。采用分页存储器既可免去移动信息的工作,又可尽量减少主存的碎片。分页式存储管理的基本原理如下: 1. 页框:物理地址分成大小相等的许多区,每个区称为一块(又称页框 page frame);

2017-04-23 14:34:05 6795 4

原创 操作系统之存储管理详解

存储器的层次目前,计算机系统均采用分层结构的存储子系统,以便在容量大小、速度快慢、价格高低诸因素中取得平衡点,获得较好的性能价格比。计算机系统的存储器可以分为 1. 寄存器 2. 高速缓存 3. 主存储器 4. 磁盘缓存 5. 固定磁盘 6. 可移动存储介质 以上7个层次组成了层次结构,如下图所示,越往上,存储介质的访问速度越快,价格也越高。 其中,寄存器、高速缓存、主存储器和磁盘缓存

2017-04-22 21:06:52 2122

原创 操作系统之进程描述详解

进程的描述操作系统的控制结构操作系统作为资源管理和分配程序,其本质任务是自动控制程序的执行,并满足进程执行过程中提出的资源使用要求,因此操作系统的核心控制结构是进程结构,资源管理的数据结构将围绕进程结构展开。为了有效的管理进程和资源,操作系统必须掌握每一个进程和资源的当前状态,通过构造一组表来管理和维护进程和每一类资源的信息,操作系统的控制表分为四类: 1. 进程控制表:来管理进程及其相关信息

2017-04-22 19:49:40 2226

原创 操作系统之进程的状态和转换详解

进程的状态和转换三态模型一个进程从创建而产生至撤销而消亡的整个生命周期,可以用一组状态加以刻划,根据三态模型,进程的生命周期可分为如下三种进程状态: 1. 运行态(running):占有处理器正在运行 2. 就绪态(ready):具备运行条件,等待系统分配处理器以便运行 3. 等待态(blocked):不具备运行条件,正在等待某个事件的完成下面是三个状态的转换图: 运行状态的进程将由于出现等

2017-04-22 19:15:31 29913 1

原创 操作系统调度算法

作业调度算法对于操作系统的周转时间,我们有以下定义: 1. 作业周转时间:作业完成时间-作业提交时间 2. 带权周转时间=周转时间/服务时间 3. 平均周转时间=作业周转总时间/作业个数 4. 平均带权周转时间=带权周转总时间/作业个数先来先服务(First Come, First Served,FCFS)按照作业进入系统的先后次序来挑选作业。这种算法容易实现,但效率不高,没有考虑作业要求

2017-04-22 18:49:26 1588

原创 Volatile关键字深入解析

Volatile关键字volatile 是轻量级的synchronized,在多处理器开发中保证了共享变量的“可见性”,即当一个线程修改共享变量时,另外一个线程能读到这个修改的值,和Synchronized区别在于,它的使用的执行成本更低,它不会引起线程上下文的切换和调度。如果一个字段被声明为bolatile,Java线程内存模型确保所有线程看到这个变量的值是一致的

2017-04-21 14:38:51 433

原创 MySQL增删改查之DML语句详解

DML语句主要指数据库对表记录的操作,包括表记录的插入(insert)、更新(update)、删除(delete)和查询(select)等以下我们的操作都基于下表进行:mysql> desc emp;+----------+---------------+------+-----+---------+-------+| Field    | Type

2017-04-02 17:40:08 2106

原创 MySQL分类与DDL语句实例详解

SQL分类DDL(Data Definition Languages):数据定义语言,定义不同数据段、数据库、表、列、索引等数据库对象,常用关键字包括create、drop、alter等DML(Data Manipulation Language):数据操控语句,用于添加、删除、更新和查询数据库记录,并检查数据完整性:常用关键字包括insert、delete、update和select

2017-04-02 16:52:52 869

原创 MySQL权限系统详解

一、基本介绍MySQL 的权限系统主要存储在几个被称为 grant tables 的系统表中,即:mysql.User,mysql.db,mysql.Host,mysql.table_priv 和 mysql.column_priv。由于权限信息数据量比较小,而且访问又非常频繁,所以 Mysql 在启 动的时候,就会将所有的权限信息都 Load 到内存中保存在几个特定的结构中。所以才有我

2017-04-02 15:12:43 1417

原创 Mysql物理文件组成详解

一、 日志文件通过 show variables like 'log_%'; 可以看到mysql的日志配置信息错误日志(Error Log)记录了mysql运行过程中较为严重的警告和错误信息以及Mysql每次启动和关闭的详细信息,利用 MySQL 的 FLUSH LOGS 命令来告诉 MySQL 备份旧日志文件并生成新的日志文件。 备份文件名以“.old”结尾。二进制日志:

2017-04-02 14:14:14 1042

原创 MySql常用存储引擎介绍

MyISAM 存储引擎每一个表都存放为三个以表名命名的物理文件,包括存放表结构定义信息的.frm文件,存放表数据的.MYD文件和所有索引数据的.MYI文件MyISAM支持以下三种索引B-Tree索引:所有的索引节点都按照平衡树的数据结构来存储,所有的索引数据节点都在叶节点,B-Tree 可以显著减少定位记录时所经历的中间过程,从而加快存取速度R-Tree索引:与B-Tree索引类似

2017-04-02 14:09:58 490

原创 理解计算机系统学习笔记

编译系统:预处理器、编译器、汇编器、链接器预处理阶段:预处理器根据以字符#开头的命令,修改原始C程序将所有的#define删除,并且展开所有的宏定义处理所有的条件预编译指令,比如#if #ifdef #elif #else #endif等处理#include 预编译指令,将被包含的文件插入到该预编译指令的位置。删除所有注释 “//”和”/* */”.添加行号和文件标识,以便

2017-03-31 14:16:38 529

原创 RSA非对称加密算法详解

加密技术加密技术是对信息进行编码和解码的技术,编码是把原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码(解密),加密技术的要点是加密算法,加密算法可以分为三类: 1. 对称加密 2. 非对称加密 3. 不可逆加密对称加密算法加密过程: 将明文分成N个组,然后对各个组进行加密,形成各自的密文,最后把所有的分组密文进行合并,形成最终的密文。优点: 算法公开、计算量小、加密

2016-12-11 23:10:50 37268

原创 hibernate5(15)注解映射[7]集合关联

集合注解映射集合关系映射可以看成是一对多关系映射的一种简化,在一个电商系统里,出售的产品可能会有多张展示图片,如果我们使用一对多来建立关联映射时,需要创建一个实体类Images,里面可能有属性:图片在服务器的访问路径url和图片所属产品productId。但如果我们使用集合关系映射,则无需新建一个实体类,只需在Product中定义一个集合成员属性即可。Set集合在产品中,我们的图片路径一般是不会相同

2016-04-13 08:42:36 6096 2

原创 hibernate5(14)注解映射[6]多对多中间表关联

在我们的角色管理系统中,一个用户可以有多种角色,一种角色可以赋予多个用户,显然用户和角色就是典型的多对多关系。又或者博客网站上,用户与文章点赞记录也是一个多对多关系,即一个用户可以点赞多篇文章,一篇文章可以给多个用户点赞等,这时候,我们往往需要附加一些信息,比如授权时间、点赞时间等。在上面两个实例中,都可对应于hibernate多对多映射关系的两种方式,在多对多映射中,我们往往使用中间表来建立关联关

2016-04-11 08:54:40 9632

原创 git分支原理命令图文解析

本地分支解析git 通过可变指针来实现对提交数据的历史版本的控制,每当我们提交新的更新,当前分支(设为master)则指向最后一个提交更新A,而最后一个提交对象则存在一个指针指向前一次的提交更新Q。如果我们创建一个新的分支,child,它和master共同指向A,这时,如果我们向child分支提交更新B,我们会发现child指向B,而master依然指向A。无论我们在child分支进行了任何开发,只

2016-04-11 08:29:43 6476 1

原创 hibernate5(13)注解映射[5]一对一共享主键关联

一对一共享主键下面我们直接通过实例来讲解共享主键配置: 主键主控方:Articlepackage com.zeng2.model;@Table(name = "t_article2")@Entitypublic class Article { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Inte

2016-04-10 09:09:02 5525

原创 hibernate5(12)注解映射[4]一对一外键关联

在实际博客网站中,文章内容的数据量非常多,它会影响我们检索文章其它数据的时间,如查询发布时间、标题、类别的等。这个时候,我们可以尝试将文章内容存在另一张表中,然后建立起文章——文章内容的一对一映射一对一关联有两种方式,一种是外键关联,另一种是复合主键关联。外键关联下面我们先看一个一对一单向关联的实例/*************关联关系维护方************/

2016-04-09 09:52:36 7032 1

原创 springMVC4(16)拦截器解析与登陆拦截模拟

在SpringMVC中,我们会经常使用到拦截器,虽然SpringAOP也能帮我们实现强大的拦截器功能,但在Web资源供给上,却没有SpringMVC来得方便快捷。 使用SpringMVC拦截器的核心应用场景是根据我们的实际需求,个性化定制拦截器,再对特定url进行拦截处理。 而自定义拦截器,首先需要我们实现HandlerInterceptor拦截器接口,下面是它的定义:

2016-04-08 20:36:25 14694

原创 hibernate5(11)注解映射[3]一对多多对一双向关联

在上两篇文章里,我们详细地分别讲解了一对多和多对一的单向关联配置的具体属性含义,在这一篇文章里,我们完成两者的的整合建立双向关联。 在实际的博客网站中,我们可能需要根据文章读取作者(用户)信息,但肯定也要让用户能获取自己的文章信息,针对这种需求,我们可以建立文章(多)对用户(一)的双向关联映射。 下面先看实例映射配置文件:/********************一方配置User********

2016-04-08 08:51:45 6318

原创 hibernate5(9)注解映射[1]多对一单向关联

在实际的项目开发中,我们常常需要建立我们实体类间的复杂关系,比如在一个博客网站中,用户会写文章,则文章与用户的关系就是多对一的映射关系。 现在先看一个配置实例:我们的文章实体类package com.zeng.model;import javax.persistence.CascadeType;import javax.persistence.Entity;import javax.persi

2016-04-07 19:52:23 4837 4

原创 hibernate5(10)注解映射[2]一对多单向关联

一对多单向关联映射在实际的博客网站中,用户肯定需要获取自己所写的文章,这时可以建立用户(一)对文章(多)的单向关联映射。 先来看我们的一方配置实例package com.zeng.model;import java.util.Set;import javax.persistence.CascadeType;import javax.persistence.Entity;import javax

2016-04-07 09:26:33 8040 1

原创 springMVC4(15)RestFul多视图混合输出

混合使用多种视图技术。在前面文章里,我们对jsp、json、xml个中视图都进行了较为详细的实例解析,但涉及到的都是单视图使用配置。在实际开发中,我们可能需要混合是使用多种视图技术。尤其是针对REST编程风格,我们可以通过一个URL、多种视图来切合REST风格的同一资源、多种表述。 现在加入我们要输出JSP、JSON、XML多种视图技术,如果使用我之前文章《springMVC4(4)json与对象

2016-04-07 00:19:26 6682 1

原创 springMVC4(14)各类视图输出实例分析

1. 模板视图FreeMarkerViewResolver 、 VolocityViewResolver 这两个视图解析器都是 UrlBasedViewResolver 的子类。 FreeMarkerViewResolver 会把 Controller 处理方法返回的逻辑视图解析为 FreeMarkerView ,而 VolocityViewResolver 会把返回的逻辑视图解析为 Volocit

2016-04-07 00:14:34 3326

原创 hibernate5(8)操纵对象入门[3]操控对象封装方法

为什么要说是“封装方法”呢?因为它帮我们封装好了底层的增删改查操作,直接调用相应方法即可灵活地操作我们数据库数据。它们由Session接口提供,下面我们通过实例一一分析这些方法。1.save方法Session 的 save() 方法使一个临时对象转变为持久化对象 Session 的 save() 方法完成以下操作: 1. 把 News 对象加入到 Session 缓存中,使它进入持久化状态 2

2016-04-06 09:21:56 2028

原创 springMVC4(13)视图解析器分类详解

在 《springMVC4(7)模型视图方法源码综合分析》 中,我们介绍了ModelAndView的用法,它会在控制层方法调用完毕后作为返回值返回,里面封装好了我们的业务逻辑数据和视图对象或视图名 。下一步,视图对象往往会对模型进一步渲染,再由视图解析器进一步解析并向前端发出响应。在下面,我们详细介绍视图和视图解析器的各种分类。 在View接口中,定义了一个核心方法是: void rend

2016-04-06 09:17:51 5321

原创 hibernate5(7)操纵对象入门[2]四大对象状态分析

状态类型在hibernate中,java对象的声明周期对应有4种状态: 状态 说明 瞬时(Transient) 由new操作符创建,且尚未与Hibernate Session 关联的对象被认定为瞬时(Transient)的。瞬时(Transient)对象不会(在清理Session时)被持久化到数据库中,也不会被赋予持久化标识(identifier)。使用Hibernate Sessio

2016-04-05 12:23:45 1402

原创 hibernate5(6)操纵对象入门[1]Session缓存

java对象在JVM中的存活条件在java中,我们使用User user = new User();来创建一个java对象时,JVM会为其分配一块内存空间,此时,这个对象被变量“user”引用,那么它就会一直存在于内存中,而如果我们我们的“引用者user”升级了,User user = new VipUser()。那么原来new User()不再被任何变量引用,它就会结束自己的生命周期,然后会被JV

2016-04-05 09:26:38 2201

原创 springMVC4(12)复杂对象和集合类型入参绑定

1. 复杂对象参数绑定对于普通的对象参数绑定,我们只需要对象成员变量名与请求参数名一一对应即可完成绑定。 而求对于组合对象,我们可以使用级联的方式来绑定方法参数。见下面实例: 我们先定义两个POJO类:User,Article其中Atricle是User的成员属性:public class Article { private Integer id; private String

2016-04-05 09:24:21 16599 2

原创 springMVC4(11)使用注解完成数据格式化

需求实例引入在实际开发中,我们会常常遇到需要对日期格式、数值格式进行转换的需求。在spring中,我们可以轻松通过注解的方式完成对数据的格式化处理,比如现在有个User POJO类: package com.mvc.model;import java.util.Date;public class Person { private String name; @DateTimeForm

2016-04-04 21:59:18 7601 4

原创 springMVC4(10)强大类型转换器实例解析

在《springMVC4(9)属性编辑器剖析入参类型转换原理 》一文中,我们通过分析Sping内置的属性编辑器来理解springMVC是如何完成请求参数到入参的类型的转换的。而在新版本中,SpringMVC使用了新的架构来完成类型转换的工作,而且它的工作更加强大,支持格式化参数输入输出,它的另一个实例可见我的另一篇文章《springMVC4(4)json与对象互转实例解析请求响应数据转换器》。在文

2016-04-04 15:28:55 8898

转载 Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC

Bean Validation 1.1当前实现是Hibernate validator 5,且spring4才支持。接下来我们从以下几个方法讲解Bean Validation 1.1,当然不一定是新特性: 集成Bean Validation 1.1到SpringMVC 分组验证、分组顺序及级联验证 消息中使用EL表达式 方法参数/返回值验证 自定义验证规则 类级别验证器 脚本验证器 cro

2016-04-04 00:58:11 2346 2

原创 springMVC4(9)属性编辑器剖析入参类型转换原理

我们通过Http请求提交的参数都以字符串的形式呈现,但最终在springMVC的方法入参中,我们却能得到各种类型的数据,包括Number、Boolean、复杂对象类型、集合类型、Map类型等,这些都是springMVC内置的数据类型转换器帮我们完成的。springMVC的将请求数据绑定到方法入参的流程如下所示:Created with Raphaël 2.1.0数据绑定流程图解ServletRequ

2016-04-03 12:16:07 4025 1

原创 springMVC4(8)模型数据绑定全面分析

使用@ModelAttribute、Model、Map、@SessionAttributes能便捷地将我们的业务数据封装到模型里并交由视图解析调用。下面开始一一分析在方法入参上使用@ModelAttribute使用@ModelAttribute可以直接将我们的方法入参添加到模型中。我们先看一个实例:1. springMVC核心文件配置:<!-- 扫描com.mvc.controller包下所有的类,

2016-04-03 10:02:23 5038

原创 springMVC4(7)模型视图方法源码综合分析

在完整web开发中,springMVC主要充当了控制层的角色。它接受视图层的请求,获取视图层请求数据,再对数据进行业务逻辑处理,然后封装成视图层需要的模型数据,再将数据导向到jsp等视图界面。 在前面,我们通过对@RequestMapping和方法入参绑定的分析,完成了视图层->控制层的数据交接,然后业务逻辑处理主要由Service层进行。那么接下来很关键的就是,如何将视图数据导向到特定的视图中。

2016-04-02 16:33:51 4274

原创 springMVC4(6)Unitils断言与整合测试

反射断言反射对象断言在实际场景中,我们比较两个对象是否相等,可能会去选择重写equals方法去比较对象里的每一个属性,或者是直接将对象的属性一个个取出来比较,但这都比较麻烦,Unitils为我们提供了反射断言可直接完成这一任务,如下例所示:@Testpublic void test1(){ User user1 = new User(1,"a","b"); User user2 =

2016-04-02 12:26:40 2247

原创 springMVC4(5)RestTemplate控制层单元测试

在前面我们进行web测试,总要在游览器进行,数据组装、请求方法更给等都极为麻烦。 RestTemplate是Spring提供的一个web层测试模板类,我们可以通过RestTemplate在客户端方便的进行web层功能测试。它支持REST风格的URL,而且具有AnnotationMethodHandlerAdapter的数据转换器HttpMessageConverters的装配功能。RestTemp

2016-04-02 09:24:40 4552 5

原创 趣谈spring事件:业务解耦与异步调用

分析需求引入事件机制使用spring的事件机制有助于对我们的项目进一步的解耦。假如现在我们面临一个需求: 我需要在用户注册成功的时候,根据用户提交的邮箱、手机号信息,向用户发送邮箱认证和手机号短信通知。传统的做法之一是在我们的UserService层注入邮件发送和短信发送的相关类,然后在完成用户注册同时,调用对应类方法完成邮件发送和短信发送 但这样做的话,会把我们邮件、短信发送的业务与我们的U...

2016-04-02 01:29:38 1716

AspectJ的JAR包

SpringAop中用到的AspectJ的Jar包,里面包括aspectjweaver.jar和aspectjrt-1.5.0.jar两个jar包

2016-03-21

mybatis反向生成model

借助数据库配置,通过此工具可方向代理生成对应的pojo类、mapper.xml文件和mapper.java接口类

2016-03-20

mybatis3+spring+springMVC4整合jar包

mybatis3+spring+springMVC4整合jar包,导入即可完美使用

2016-03-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除