自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (1)
  • 收藏
  • 关注

转载 设计模式之状态模式

定义状态模式状态模式(state pattern):属于对象的行为型模式。又叫状态对象模式(pattern of objects for state);当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变其了类。涉及的角色抽象状态(State)角色:定义一个接口,用以封装环境(Context)对象的一个特定的状态相关的行为。 环境(Context)角色:维护一个...

2018-07-31 15:54:32 297

转载 设计模式之组合模式

什么是组合模式组合模式提供了一种层级结构,并允许我们忽略对象与对象集合之间的差别。调用者并不知道手里的东西是一个对象还是一组对象,不过没关系,在组合模式中,调用者本来就不需要知道这些。举个例子假设我们要去描述文件系统,文件系统里有文件和文件夹,文件夹里又有文件夹和文件。。。没错,这是一个层级结构,就像菜单一样,菜单里有菜单项和子菜单,子菜单里有菜单项和子子菜单。。层级结...

2018-07-27 17:36:17 202

原创 设计模式之迭代器模式

什么是迭代器模式用迭代器来封装集合对象的遍历细节,使调用者能够通过统一的接口来实现对集合的遍历。迭代器也给集合对象提供了一定的保护,想要遍历集合,直接调用迭代器的方法就好了,我们不知道也不必知道集合内部的数据管理方式。举个例子有这样的一个需求。一家集团公司在北京和上海分别有一家子公司,每家公司内部有自己的部门,且自己提供了打印部门的方法。其中一个子公司以数组来保存部门列表,另外一个...

2018-07-27 14:42:22 96

转载 JAVA集合总体大纲

原文地址tengj.top前言Java集合是java提供的工具包,包含了常用的数据结构:集合、链表、队列、栈、数组、映射等。Java集合工具包位置是java.util.* Java集合主要可以划分为4个部分:List列表、Set集合、Map映射、工具类(Iterator迭代器、Enumeration枚举类、Arrays和Collections) Java集合工具包框架图(如下)...

2018-07-26 11:04:01 220

原创 设计模式之模板方法模式

定义模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤。UML类图这里涉及到两个角色:抽象模板(Abstract Template),具体模板(Concrete Template)。抽象模板有如下责任: 定义了一个或多个抽象操作,以便让子类实现。这些抽象操作叫做基本操作,它们是一个顶级...

2018-07-25 18:11:59 130

转载 JAVA多线程学习(9)-内存模型

转载自hollischuang为什么要有内存模型在介绍Java内存模型之前,先来看一下到底什么是计算机内存模型,然后再来看Java内存模型在计算机内存模型的基础上做了哪些事情。要说计算机的内存模型,就要说一下一段古老的历史,看一下为什么要有内存模型。内存模型,英文名Memory Model,他是一个很老的老古董了。他是与计算机硬件有关的一个概念。那么我先给你介绍下他和硬件到...

2018-07-25 11:05:40 164

原创 深入理解JAVA虚拟机学习笔记——第二章Java内存区域与内存溢出异常

运行时数据区域Java虚拟机在执行Java程序的过程中将其管理的内存划分为若干个不同的区域。各个区域有不同的用途,创建时间和销毁时间。 程序计数器程序计数器(Program Counter Register)是一块比较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器;PCR为线程私有内存;是唯一一个在Java虚拟机规范中没有规定任何OOM(OutOfMemoryEr...

2018-07-23 14:57:54 263

转载 Java多线程学习(8)执行器

文章转载自JAVA8简明教程构建一个新的线程是有一定代价的,因为涉及与操作系统的交互 。如果程序中创建了大量的生命期很短的线程,应该使用线程池 ( thread pool ) 。 一个线程池中包含许多准备运行的空闲线程 。将 Runnable 对象交给线程池 ,就会有一个线程调用 run 方法。当 run方法退出时,线程不会死亡 , 而是在池中准备为下一个请求提供服务 。另一个使用...

2018-07-20 20:21:44 916

原创 Java多线程学习(7)volatile关键字

volatile的定义Java编程语言中允许线程访问共享变量。为了确保共享变量能被一致地和可靠的更新,线程必须确保它是排他性的使用此共享变量,通常都是获得对这些共享变量强制排他性的同步锁。Java编程语言提供了另一种机制,volatile域变量,对于某些场景的使用这要更加的方便。可以把变量声明为volatile,以让Java内存模型来保证所有线程都能看到这个变量的同一个值。vo...

2018-07-20 16:39:33 224

转载 Java多线程学习(6)内存模型和并发编程的基本概念

原文来自海子内存模型的相关概念大家都知道,计算机在执行程序时,每条指令都是在CPU中执行的,而执行指令过程中,势必涉及到数据的读取和写入。由于程序运行过程中的临时数据是存放在主存(物理内存)当中的,这时就存在一个问题,由于CPU执行速度很快,而从内存读取数据和向内存写入数据的过程跟CPU执行指令的速度比起来要慢的多,因此如果任何时候对数据的操作都要通过和内存的交互来进行,会大大降低...

2018-07-20 15:40:42 148

原创 Java多线程学习(5)synchronized 关键字

在前面一节中 , 介绍了如何使用 Lock 和 Condition 对象。 然而,大多数情况下,并不需要那样的控制,并且可以使用一种嵌人到Java 语言内部的机制 。从 1.0 版开始,Java中的每一个对象都有一个内部锁.如果一个方法用 synchronized 关键字声明 ,那么对象的锁将保护整个方法.也就是说,要调用该方法,线程必须获得内部的对象锁 。如下:public sync...

2018-07-20 14:36:32 148

原创 Java多线程学习(4)线程的同步

为什么需要同步在多线程程序中,如果多个线程同时操作相同资源,将会破坏操作过程的原子性,会导致数据的不准确,因此需要在公共资源中加入同步锁,保证在该线程未完成之前,其他线程不能访问该资源。竞争条件大多数实际的多线程应用中,两个或两个以上的线程需要共享对同一数据的存取。如果两个线程存取相同的对象,并且每一个线程都调用了一个修改该对象状态的方法,将会发生什么呢? 可以想象,线程彼此踩了对...

2018-07-19 18:23:47 113

原创 Java多线程学习(3)线程的状态和属性

线程的状态线程共有如下6种状态:New(新创建)Runable(可运行)Blocked(被阻塞)Waiting(等待)Timed waiting(计时等待)Terminated(被终止)各个状态间的转换关系如下图所示: 图片和资料来源新建(new):新创建了一个线程对象。可运行(runnable):线程对象创建后,其他线程(比如main线程)调用了该对象的s...

2018-07-18 18:39:06 209

原创 Java多线程学习(2)线程的常用方法和创建

在上一节我们介绍了线程和进程的区别,这一小节我们来具体介绍线程的基础知识。线程的基本方法 编号 方法 说明 1 public void start() 使该线程开始执行;Java 虚拟机调用该线程的 run 方法。 2 public void run() 如果该线程是使用独立的 Runnable 运行对象构造的,则调用该 Runnable ...

2018-07-18 15:31:44 172

原创 Java多线程学习(1)进程与线程

通俗解释开个QQ,开了一个进程;开了迅雷,开了一个进程。在QQ的这个进程里,传输文字开一个线程、传输语音开了一个线程、弹出对话框又开了一个线程。所以运行某个软件,相当于开了一个进程。在这个软件运行的过程里(在这个进程里),多个工作支撑的完成QQ 的运行,那么这“多个工作”分别有一个线程。所以一个进程管着多个线程。通俗的讲:“进程是爹妈,管着众多的线程儿子”…专业术语首...

2018-07-18 10:51:37 110

原创 设计模式之外观模式

定义 外观模式提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易地使用。类图实现,外观模式涉及到的角色外观(Facade)角色:客户端直接调用这个角色的方法,该角色知道哪些子系统类负责处理请求,将客户的请求代理给适当的子系统对象。子系统(SubSystem)角色:子系统角色集合实现子系统的功能,处理 Facade 对象指派的任务。...

2018-07-17 17:35:03 130

原创 设计模式之适配器模式

定义适配器大家都不陌生,每个国家规定的标准电压不同,在我国生产的电脑如何能在美国充电使用,答案是使用适配器,即引入一个电源适配器。在软件开发中,有时也存在类似这种不兼容的情况,我们也可以像引入一个电源适配器一样引入一个称之为适配器的角色来协调这些存在不兼容的结构,这种设计方案即为适配器模式。适用场景1、系统需要使用现有的类,而此类的接口不符合系统的需要。2、想要建立一个可以...

2018-07-17 15:08:46 106

原创 设计模式之命令模式

概述命令模式(Command Pattern):将一个请求封装为一个对象,从而让我们可用不同的请求对客户 进行参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。命令模式是一种对象 行为型模式,其别名为动作(Action)模式或事务(Transaction)模式。命令模式可以将请求发送者和接收者完全解耦,发送者与接收者之间没有直接引用关系,发 送请求的对象只需要知道如何发送请求...

2018-07-11 18:19:09 292

转载 Mybatis学习笔记(6)-输出映射

输出映射MyBatis的输出映射分为两种方式,resultType和resultMapresultType我们上面所有的例子里都是定义的resultType,resultType可以是简单类型,比如我们想获取用户信息的,还有就是输出POJO对象或者POJO列表。 不管是POJO对象还是POJO列表,我们在resultType中的定义都是一样的,只不过接口定义不一样:单个对象p...

2018-07-09 17:47:42 166

原创 Mybatis学习笔记(5)-输入映射

输入映射本文主要讲解mybatis的输入映射(parameterType)。通过parameterType指定输入参数的类型,类型可以是简单类型hashmappojo的包装类型简单类型其中,简单类型即java的基本数据类型 例如:根据id查找用户表中该用户的基本信息,此处parameterType类型为int简单类型<select id="findUse...

2018-07-06 16:01:23 363

原创 Mybatis学习笔记(4)-使用Mapper代理方法开发Dao

思路Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由MyBatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同上边Dao接口实现类方法。 Mapper接口开发需要遵循以下规范:Mapper.xml文件中的namespace与mapper接口的类路径相同:<!--namespace命名空间,作用就是对sql进行分类化管理,理解sql隔离...

2018-07-05 18:07:30 366

原创 Mybatis学习笔记(3)-使用原始方法开发dao

需求:根据用户id查询一个用户信息根据用户名称模糊查询用户信息列表添加用户信息删除用户信息 使用Mybatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper接口开发方法。本文将先介绍原始Dao开发方法,Mapper接口开发方法会在后续文章中介绍。SqlSession的使用范围SqlSession中封装了对数据库的操作,如:查询、插入、更新、删除等...

2018-07-05 11:20:24 141

原创 mybatis学习笔记(2)-入门实例2

接着上一节入门实例,新增其他操作。新增用户user.xml<!-- 添加用户 parameterType:指定输入 参数类型是pojo(包括 用户信息) #{}中指定pojo的属性名,接收到pojo对象的属性值,mybatis通过OGNL获取对象的属性值 --> <insert id="insertUser"...

2018-07-04 14:34:05 125

原创 mybatis学习笔记(2)-入门实例

目标使用mybatis完成对单个表的CRUD操作步骤使用idea新建一个maven项目,这个相信大家都会,就不啰嗦了。配置pom.xml文件<dependencies> <dependency> <groupId>org.mybatis</groupId> &...

2018-07-04 13:54:20 163

原创 mybatis学习笔记(1)-mybatis概述

JDBC介绍在JavaWeb开发中,必须要面对的一个问题就是用Java访问数据库,对此Java提供了一套API名叫JDBC(Java Database Connectivity),它是Java访问数据库的一种规范。通过使用JDBC中的接口和类,可以使Java客户端程序访问数据库,比如建立数据库连接、执行SQL语句进行数据的存取操作。Java使用JDBC访问数据库的步骤为:得到数据库驱...

2018-07-04 11:49:26 172

转载 设计模式之工厂模式

原作者:hollischuang http://www.hollischuang.com/archives/1420定义工厂模式从简到繁共分成简单工厂模式(也叫静态工厂模式),工厂方法模式(也叫多态工厂模式),抽象工厂模式。简单工厂模式1、定义简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工...

2018-07-03 16:36:13 194

原创 Java面试题(基础篇四)

36、a.hashCode() 有什么用?与 a.equals(b) 有什么关系? hashCode() 方法对应对象整型的 hash 值。它常用于基于 hash 的集合类,如 Hashtable、HashMap、LinkedHashMap等等。它与 equals() 方法关系特别紧密。根据 Java 规范,两个使用 equal() 方法来判断相等的对象,必须具有相同的 hash code。...

2018-07-03 11:59:19 105

原创 Java面试题(基础篇三)

26、String s = new String(“xyz”);创建了几个StringObject?是否可以继承String类?两个或一个都有可能,”xyz”对应一个对象,这个对象放在字符串常量缓冲区,常量”xyz”不管出现多少遍,都是缓冲区中的那一个。NewString每写一遍,就创建一个新的对象,它使用常量”xyz”对象的内容来创建出一个新String对象。如果以前就用过’xyz’,那么这...

2018-07-03 11:52:27 131

原创 JAVA面试题(基础篇二)

16、ArrayList和Vector的区别这两个类都实现了List接口(List接口继承了Collection接口),他们都是有序集合,即存储在这两个集合中的元素的位置都是有顺序的,相当于一种动态的数组,我们以后可以按位置索引号取出某个元素,并且其中的数据是允许重复的,这是与HashSet之类的集合的最大不同处,HashSet之类的集合不可以按索引号去检索其中的元素,也不允许有重复的元素。...

2018-07-03 11:17:54 162

原创 Java面试题(基础篇一)

1. 一个”.java”源文件中是否可以包括多个类(不是内部类)?有什么限制?可以有多个类,但只能有一个public的类,并且public的类名必须与文件名相一致。2、Java有没有goto?java中的保留字,现在没有在java中使用。3、说说&和&&的区别。&和&&都可以用作逻辑与的运算符,表示逻辑与(and),当运算符两边的...

2018-07-02 18:00:55 132

转载 Servlet中文乱码原因

Get方式获取使用如下页面表单内容:<form action="http://127.0.0.1:8080/day07/params" method="get"> 用户名:<input name="username" type="text" />&am

2018-07-02 10:57:24 396

go语言程序设计

GO语言程序设计_人们邮电出版社_PDF带书签目录高清完整版

2018-06-07

空空如也

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

TA关注的人

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