自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (2)
  • 收藏
  • 关注

原创 如何保证Java对象内部属性的不可变状态

很多人看到上面的提问,立刻就会想到 final 关键字。但是却不完全正确。 看如下代码private final int a; private final Date date;示例代码中分别声明了整型的属性a,Date型的属性date,final关键只能确保基本数据类型的值不会变,但是对于Date这样的,非基本数据类型,就需要注意了。注意Date这样的非基本数据类型,在内存分配时是占用两块内存的,

2016-03-20 22:31:48 2395

原创 Redis常用命令及5种数据类型操作

redis-cli 是Redis自带的基于命令行的客户端连接Redis redis-cli -h 127.0.0.1 -p 6379测试连接是否正常 redis-cli PINGincr key 给key的值+1get key 获取key对应的valuekeys * 返回所有的键启动Redis redis-server –port 关闭Redis redis-cli SHUTD

2016-03-19 22:36:48 370

原创 设计模式之建造者模式

基本概念 建造者模式将一个复杂对象的构建与它的表示分离,使得同样的过程可以创建不同的表示。 建造者模式内容 建造者模式一般包含以下内容: AbstractBuilder:抽象接口,用于声明建造某种对象所需要的方法,需要创建哪些部分。 ConcreteBuilder:具体建造者,实现抽象接口,具体实现创建各个部分的方法,并且提供创建完的对象实例。 Director:调度器,用于确定建造对象时

2016-03-19 19:26:25 208

原创 设计模式之抽象工厂模式

为什么使用抽象工厂模式 在工厂方法模式一文中,我们看到,尽管可以通过工厂方法获取所需要的类型的产品对象,但是如果类型增加了,则需要在生成对象的方法中增加逻辑判断的分支,这很明显违背的开闭原则 抽象工厂模式 为了不对原有的代码进行修改,又能够在新增产品类型的时候,可以采用工厂方法获得产品,于是我们对工厂类也作一次抽象,做一个抽象工厂类,所有的具体工厂都需要继承自这个抽象工厂类。 代码示例 承接工

2016-03-19 11:17:55 256

原创 设计模式之单例模式

基本概念 单例模式指的是:对于某一个类,整个程序中值存在一个该类的实例对象。常见的比如数据库连接对象等。 代码示例,单例模式的几种写法及优劣 /** * 饿汉式写法,多线程下不能保证对象的确定性 **/ public class SingletonHungryUnsec { private static SingletonHungryUnsec instance; private

2016-03-19 11:04:40 204

原创 设计模式之工厂方法模式及代码示例

为什么使用工厂方法 一般创建对象的方式是new关键字来生成,但是这种方式必然地使得客户端程序员的代码和我们的对象产生了过于紧密的耦合,为了解除这样的耦合状态,提高客户端代码灵活性和可扩展性,使用工厂方法模式。 工厂方法模式 客户端代码为了获得对象,通过工厂对象生成,客户端代码只需要给工厂实例发送创建对象的消息即可。 代码示例 现在我有如下的接口和类 接口: Product 所有产品类都需

2016-03-17 22:30:16 555

原创 Redis基础知识

基本概述1、Redis是开源的高性能键值对(key/value)数据库 通过提供各种键值数据类型来适应不同场景下的存储需求,并借助许多高层级的接口使其可以胜任如缓存、队列系统等不同的角色。2、Remote Dictionary Server,以字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容支持的键值数据类型:1、字符串类型 2、散列类型 3、列表类型 4、集合类型 5、有序

2016-03-17 12:55:01 236

原创 设计模式六大原则

(此处仅作简要概述,待后续完善) 1、开闭原则 即对代码的扩展开放,对代码的修改关闭2、里氏代换原则 任何基类出现的地方,子类也可以出现3、依赖倒转原则 面向接口编程,而不是面向具体实现4、接口隔离原则 使用多个分离的接口,要比使用单一的接口要好5、迪米特法则 一个实体应当尽可能少的知道与其交互的对象的信息; 不违反迪米特法则

2016-03-17 12:48:42 258

原创 Java并发概述

1、并发和多线程 并发的作用在于充分利用资源(多处理器or多核),在有限的资源下进行多任务的处理。 并发的概念表现在编程上,则为多线程编程,常见的实例:java web中的servlet就是采用的多线程机制。 线程作为轻量进程,本身不具有资源,而进程才是拥有资源的主体。2、为什么使用多线程 多线程建立在操作系统的产生之后,在此之前,机器或者说处理器处理程序时,只能按照单个的执行流程进行,即所

2016-03-08 18:47:46 287

Think in Java 第四版

本文档是文字可复制,非图片pdf,一本适合反复研读的Java面向对象的书籍

2015-07-09

windows核心编程第五版

windows核心编程 黑皮书,详细讲解操作系统的工作原理

2013-10-31

空空如也

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

TA关注的人

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