自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

「有且仅有」

闻道有先后,术业有专攻,如是而已

原创 ThreadLocal

我们知道线程也是一个「对象」,当线程这种对象想为我们提供一个「可以存取我们自定义变量的功能时」,来看下它是怎么做的。

2018-06-05 16:46:01 151 0

原创 观察者模式 Observer Pattern

父博文地址:设计模式 - Design Patterns 一、是什么 定义: 观察者模式定义了对象之间的「一对多依赖」,当一的对象改变时,它所有的依赖者都能够收到通知。 行为: 一对多依赖中,「一」的一方保存所有「多」的一方的实例。 二、实例 1. 类图的实现 Subj...

2018-05-27 13:23:59 604 1

原创 装饰者模式 Decorator Pattern

一、是什么 问题 使用继承是静态的扩展: 随着系统功能增多造成了类数量指数级增加。 且基类的功能并不适用于所有子类。 寻找一个设计模式原则 开闭原则:类应该对扩展开放,对修改关闭。换句话说:在不修改类的前提下扩展类。 装饰者模式定义 动态的将责任附加到对象 上。若要扩展功能,装饰者提供...

2018-05-27 08:46:53 219 0

原创 工厂方法 Factory Method

父博文地址:设计模式 - Design Patterns 一、是什么? 作用 当我在超类中写操作产品的业务逻辑,而想把创建产品的行为推迟到子类时,我可以使用工厂方法。 将客户(超类中的业务代码)和具体创建对象的代码解耦。 行为 工厂方法利用继承,把创建对象的工作推迟到子类(...

2018-05-20 14:09:55 346 0

原创 抽象工厂 Abstract Factory

父博文地址:设计模式 - Design Patterns 一、是什么? 作用: 当我需要创建一个产品家族(很多产品)时,我可以使用抽象工厂。 客户通过抽象接口来创建产品家族,而不需要知道实际产出的具体产品类型。 实现了解耦客户和具体产品。 行为 定义一个抽象工厂接口,每个抽...

2018-05-20 13:49:17 284 0

原创 简单工厂 Simple Factory

父博文地址:设计模式 - Design Patterns 一、是什么? 简单工厂(通常也被称为“工厂模式”)并不属于GoF的23个设计模式,是另外的一个被广泛运用的设计模式。 作用:分离客户和实际创建对象的代码。 行为:将创建对象的代码搬到一个新的类 - 称为简单工厂类,提供成员方...

2018-05-19 22:53:50 293 0

原创 全角和半角

一、是什么? 「全角」和「半角」是指计算机中CJK 字符的显示格式。(读完全文就可知,这是个不算太严谨但可以稍加补充解释,就能严谨的定义) 字符存储空间 在计算机字符被设计时,西方字符,例如拉丁字母、符号和数字都被归位到了「1字节」所能表示的「256」个空间中,这表现在「ASCII」字符集...

2018-05-12 23:31:57 3152 0

原创 为什么我们需要Spring Framework ?

一、为什么我们需要Spring Framework ? 1. 从J2EE说起 1998 年Sun 公司发表JDK 1.2 时,分别发表了标准版-J2SE、企业版-J2EE、微型版-J2ME。J2EE 诞生。 2005 年Java One 大会上Sun 公布了JDK 1.6,J2XX 全部...

2018-04-07 20:04:08 2238 0

原创 设计一个RESTful 规则

一、什么是RESTful历史Roy Thomas Fielding (菲尔丁) 是HTTP 协议的主要作者之一。它在2000年于加州大学艾尔文分校所做的博士毕业论文Architectural Styles and the Design of Network-based Software Archi...

2018-03-23 11:45:36 326 0

原创 Apache Kafka 简介与使用

Kafka Apache Kafka is a distributed streaming platform. It has three key capabilities: 可以使你能pub/sub streams of records. 从这方面看,它很像一个消息队列。 使你可以存...

2017-07-05 22:27:56 6009 0

原创 单例模式 - Singleton Patterns

单例模式是最容易理解的设计模式。道理简单,不过如何写出一个“正确”的单例模式一开始并不简单。Talk is cheap. Show me the code.

2017-04-23 20:21:16 398 0

原创 Git 常用配置

一、SSH 首先要明白,Git 和SSH 的关系是:Git 使用了SSH 协议构建一个安全传输通道。SSH 协议大体是这样运作的: SSH 下的Client 发起对Server 的TCP 连接成功后,Server 会首先向Client 出示自己的身份信息,在Client 操作信任后进入下一步...

2017-04-14 15:40:44 862 0

原创 多媒体-声音

1. 声音信号 声音是由于物体震动而产生的一种连续的波,称为声波。声波在时间和幅度上都是连续的模拟信号,称为模拟声音信号 。 声音=声波=模拟声音信号声音 = 声波 = 模拟声音信号 // TODO 音波图 声音信号的两个基本参数是:幅度和频率; 幅度:指声波的振幅,通常用声...

2017-03-14 23:27:31 1207 0

原创 WEB即时通讯/消息推送

写在前面 通常进行的Web开发都是由客户端主动发起的请求,然后服务器对请求做出响应并返回给客户端。但是在很多情况下,你也许会希望由服务器主动对客户端发送一些数据。 那么,该如何实现这个需求,或者说该如何向网页推送消息呢? 一、推送方式 我们知道,HTTP/HTTPS协议是被设计基于“请...

2017-03-09 22:12:04 26483 8

原创 Redis 主从、哨兵Sentinel、Jedis

上篇说到了Redis安装、运行 现在记录一下,Redis主从复制的配置 一、配置 在Master上修改redis.conf // 不想用密码,所以把保护模式设置为no protected-mode no // 其实master上不需要配置什么,这里只是取消了保护模式 在Slave...

2017-02-15 15:52:48 8021 2

原创 代理模式 - Proxy Patterns

本篇的父博文是:设计模式 - Design Patterns 代理模式 Proxy Patterns 一、意义 Design Patterns 一书中对代理模式的整体描述是这样一句话。 Provide a surrogate or placeholder for another ...

2016-12-31 00:01:03 628 0

原创 Eclipse - git全局ignore

一直在烦恼设置不好git的全局ignore,导致那么多项目需要一个一个的添加ignore文件。今天终于发现原来是我设置的有问题,下面附上正确设置: 打开Preferences -> Team -> Git -> Configuration 就是设置一个用户配置文件,位置随意; ...

2016-11-18 20:18:17 7434 2

原创 Nginx简介、安装

其实网上已经有很多教程了,这里只是作为自己一个正确操作的记录,并加入一点更加人性化的解释使的过程更好理解; 一、Nginx简介 Nginx 读作“Engine X”,是一个高性能且轻量级的HTTP和反向代理服务器,也是IMAP/POP3/SMTP服务器。Nginx 是由Igor Syso...

2016-10-08 15:54:34 557 0

原创 哈希表、Java中HashMap

哈希算法,是一类算法; 哈希表(Hash Table)是一种数据结构; 哈希函数,是支撑哈希表的一类函数; Map是映射、地图的意思,在Java中Map表示一种把K映射到V的数据类型; HashMap是Java中用哈希数据结构实现的Map; 一、Hash算法 1. 是什...

2016-08-05 01:24:46 16005 9

原创 再看JavaEE

一年前刚开始写博客时写了篇《JavaEE总论》,又工作了一年,今天无意间回过头来看到这篇文章颇有些感慨,感觉对一个事物的认识一定是一个渐进的过程,每过一段时间就会有一些新的认识。 今天就是这样,有一些新的认识想写下来分享给大家。再看JavaEE来到Oracle 官网,进入JavaEE 菜单,如下...

2016-06-25 17:43:37 1082 0

原创 RPC框架与Dubbo完整使用

这并不是原理性的解释文章。只是快速入门,还有一个完整的Java例子。 一篇我觉得不错的文章推荐:深入浅出 RPC - 浅出篇 一、RPC 什么是RPC?RPC(Remote Procedure Call)远程过程调用。见名知意 - 从远程主机调用一个过程/函数。RPC的目标是:使得程序调用其它远...

2016-06-21 19:28:05 48906 4

原创 Zookeeper简介、安装与使用

这篇文章我试图简单易懂的做入门指导,而不是也不想过多描述定义和原理。去官网点这里一、是什么Apache Zookeeper 原来是Hadoop 的一个子项目,现在是Apache 的一个顶级项目。引用一下官网的介绍: Zookeeper 是给分布式应用使用的一个高性能的协调服务(coordin...

2016-06-18 21:40:37 4144 0

原创 Linux下安装PHP

一、概述 其实PHP官网有安装向导:官方各种情况的安装向导点这里查看,但这个不能完全助你成功,还是得看看我这个。 注意:首先明确一点,安装分很多种情况,比如不同的OS、不同的Linux发行版、甚至不同的Web服务器也不一样。 那么我这里介绍的安装背景是:CentOS7 + Apache...

2016-06-09 23:35:07 1887 0

原创 Linux安装MySQL

记录下安装过程而已一、概述有很多种情况和方法,需要具体问题具体分析,那如何分析呢?很简单啊,官网文档上有各种情况下(不同OS、不同安装方式等等)的安装介绍。(5.6地址)二、步骤环境说明: OS:CentOS7 版本:我安装的是Generic Binaries版本,它的文件名一般是这样:mys...

2016-06-07 20:35:03 2389 0

原创 Servlet的历史与规范

一、Servlet历史 1. Servlet的由来 背景 上世纪90年代,随着Internet和浏览器的飞速发展,基于浏览器的B/S模式随之火爆发展起来。 最初,用户使用浏览器向WEB服务器发送的请求都是请求静态的资源,比如html、css等。 但是可以想象:根据用户请求的不同动态...

2016-05-29 21:42:39 8895 5

原创 Win10 + VMware-CentOS7文件共享、网络连接

一、目标环境: 主机 - Windows 10, 64-bit (Build 10586) 10.0.10586(物理机); 客户机 - CentOS7,CentOS-7-x86_64-DVD-1511(虚拟机); 虚拟机软件 - VMware 12 Pro 12.0.0 build-29855...

2016-05-16 14:17:38 16729 0

原创 Apache2.4+Tomcat8负载均衡

重新做个Demo记录一下1、环境准备 需要的软件:JDK/JRE Apache httpd2.4(跟2.2有不少不同点) Tomcat8若干 tips:tomcat和apache httpd正好我有博客介绍怎么装;Linux中Apache安装、配置、加为服务 Tomcat - 在Windows ...

2016-05-12 00:24:21 4366 4

原创 生产者消费者问题、Java实现

生产者消费者问题(Producer-consumer problem)也可以叫有限缓冲问题(Bounded-buffer problem),是一个经典的进程/线程同步问题。

2016-05-10 00:11:58 6290 0

原创 Java为什么要设置环境变量、JAVA_HOME

1. 为什么要说这个问题?想起来两年前刚学习Java时,被要求先要设置环境变量,自然不解,随后网上找答案。现在想来感觉当时看到的答案都是神神叨叨,含糊不清,没有几个说的明明白白的。当然也有可能是当时的我没看明白吧…总之,相信我,看了我的博客,你不用再找别的地方了!2. 环境变量环境变量 就是英文直...

2016-05-07 00:48:48 28607 7

原创 Java线程模型、线程状态 - 线程(1)

1. 概述 众所周知,线程 - Thread 是比进程 - Progress 更轻量级的调度单位。简单来说,引入线程带来的好处是: 可以把一个进程 的资源分配和执行调度分开,各个线程 既可以共享进程 资源(内存地址、文件I/O等),又可以独立调度。 线程实现方式: 主流的操作系统都...

2016-05-06 15:26:56 5657 0

原创 Linux、开源软件发展史

今天,Linux以及开源软件已经占据了大部分企业的服务器。但是,和我一批差不多刚刚进入软件行业几年的程序员来说,我们现在只能被动的接受和使用这些东西,如果不认真广泛的搜索一大堆资料,我们真的很难了解它们的过去…… 试问,你不了解它的过去,你怎么参与到它的未来呢? 概述我们真的离美国、离硅...

2016-05-03 20:23:23 8116 5

原创 Redis安装、运行

1. 什么是redis redis是一个开源的,内存数据结构存储(in-memory data structure store),可以用作: database cache message broker(消息总线/代理) 既然是数据结构存储,那么它支持以下数据结构: string ha...

2016-05-02 15:32:39 852 0

原创 C语言、编程语言发展史

以铜为鉴,可正衣冠;以古为鉴,可知兴替;以人为鉴,可明得失。 了解和学习一门语言、一个系统乃至方方面面的任何东西时,如果不知道其历史和现状而只是一上来就一味地闷头苦学,你就很容易“一叶障目不见泰山”。这样火急火燎的就上手苦干,私以为大错特错,所谓“学而不思则罔”。当然,上手苦干也是之后的很重要的部...

2016-05-01 12:07:27 24236 2

原创 MySQL实现类似Oracle的序列 - sequence

1. 介绍想要将varchar类型的数据作为主键,并要求能按自定义规则自增,这在MySQL是没有原生支持的但是想要模拟实现一个其实并不复杂,思路如下: 首先,定义一张表sequence,每一行记录就可以作为一个序列,然后在字段上定义当前值、自增规则; 接着,定义一个next函数,用来获取...

2016-04-19 16:36:02 6368 2

原创 Javadoc使用

1. 概要javadoc是Sun公司提供的一个技术,它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Javadoc就可以同时形成程序的开发文档了。本文要说的是:通过javadoc生成APIDoc的...

2016-04-19 15:21:43 4548 0

原创 Java线程和线程同步 - 线程(2)

1. 概述Java中的线程表现为Threadclass,创建线程的唯一方式就是创建此类的一个实例对象2. 同步Java提供了很多种线程之间通信的机制,最基本的一种就是 synchronization - 同步,这是通过 monitor - 监视器来实现的首先,所有对象都关联着一个监视器,线程可以锁...

2016-04-19 00:28:09 803 0

原创 JVM中Java对象的创建

1. JVM中对象的创建过程在语言层面上创建对象通常仅仅是一个new关键字,而在虚拟机中,对象(普通对象,不包括数组和Class对象)的创建时怎样的过程呢?当JVM遇到一个new指令时, 首先,检查这个new指令的参数能否在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、...

2016-04-17 17:06:23 1812 0

原创 Java线程安全 - 线程(3)

1. 线程安全《Java Concurrency In Practice》的作者Brian Goetz对“线程安全”有一个比较恰当的定义: 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调度方进行任何其他的协调操作,调用这个对象的行...

2016-04-15 18:09:36 1693 0

原创 面向对象 Object-Oriented

1. 面向过程编程思想 站在计算机角度去抽象问题和解决问题的方式 这是在软件业发展初期阶段的方式,程序编写都是以算法为核心,程序员会把“数据”和“过程”分别作为独立的部分来考虑2. 面向对象编程思想 站在现实世界角度去抽象问题和解决问题的方式 能让程序员可以用符合现实世界的思维方式来编写和...

2016-04-15 17:27:27 471 0

原创 SQL面试题总结、解答

重新整理练习一下常见的SQL面试题,按照经常出现的大题来分 我一直认为SQL不知道怎么写是因为:一些需求语句无法直译为SQL,必须转换方向翻译 这和中英互译是差不多的,如果按照字面意思,大部分语句都会翻译错误 1. 学生 - 课程数据库 有3张表,分别为 学生表:stu...

2016-04-13 10:12:07 1202 1

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