自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 Java设计模式之-简单工厂模式

工厂模式把对象的创建和使用分离,这样做的好处是分离具体对象的创建和使用,达到了尽量少的代码修改。 简单工厂模式又被称之为静态工厂方法模式,它是通过一个静态方法进行对象的实例化。  下面是一个数据库的操作工厂类,里面有三种数据库的操作类,如果直接使用对象:MySqlOperate mySqlOperate = new MySQLOperate(); 当数据库改成Ora...

2011-04-28 23:54:14 68

原创 数据库连接池的设计

设计一个数据库连接池,不是非常难的事情,但是要做一个好的连接池,不容易。 1.连接池出现的背景 传统的JDBC连接,当应用程序需要connection的时候,就去创建,使用完了销毁。这种模式,对于稍微大一点的应用,频繁的创建和销毁连接,会给系统带来性能的问题,最终会成为性能的瓶颈。 连接池的基本原理如下:创建一个pool,初始化时,预先把创建好的连接存在Pool里面...

2011-04-28 10:55:21 172

原创 常用的软件设计原则-DRY

架构设计必须遵循一些原则,这个原则是经过很多年先辈们的总结,好的架构,必须先了解好的软件设计原则,遵循这些原则可以做出更好的架构。 今天首先讨论DRY-Don't repeat yourselfDRY 也被称之为DIE,复制即是魔鬼,在我们软件开发过程中,会经常遇到这个问题,copy&paste。 DRY 是一个最简单的法则,也是最容易被理解的。但它也可能是最难...

2011-04-28 10:12:19 149

原创 Semaphore的介绍和使用实例

Semaphore可以用来控制能够同时发给你问某个特定资源的活动的数量或者同时给定操作的数量。计数信号量可以用来实现资源池或者一个容器限定边界。 一个Semaphore管理一个有效许可集合。许可的初始量通过构造函数传递给Semaphore,活动可以获取许可(只要还有剩余的许可),并在使用之后释放许可。获取许可的语法是semaphore.acquire(),如果没有剩余许可,则acquire...

2011-04-27 22:32:26 136

原创 FutureTask的使用方法和使用实例

FutureTask是一种可以取消的异步的计算任务。它的计算是通过Callable实现的,它等价于可以携带结果的Runnable,并且有三个状态:等待、运行和完成。完成包括所有计算以任意的方式结束,包括正常结束、取消和异常。 Future有个get方法而获取结果只有在计算完成时获取,否则会一直阻塞直到任务转入完成状态,然后会返回结果或者抛出异常。 Executor框架利用Futur...

2011-04-27 15:34:42 218

原创 CountDownLatch的使用实例

CountDownLatch CountDownlatch,是一种Sychronizer,它可以延迟线程的进度直到线程的进度到线程到达终止状态。 它本身而言是Java并发包中非常有用的一个类,它可以让某些任务完成以后再继续运行下面的内容,每个任务本身执行完毕后让计数器减一,直到计数器清零后,以下的内容才可以继续运行,否则将阻塞等待。 想了一下,这个场景非常适合用于项...

2011-04-26 22:20:58 124

原创 Java 设计模式-模板方法模式(Template Method)

  1.定义定义了算法的基本骨架,把一些步骤的实现延迟到子类中进行,它可以让子类不改变基本算法的数据结构而优化或者精加工(refine)某个特定的算法步骤。 2.优点模板方法设计模式有如下优点:1)  减少了冗余的代码,重用代码部分通过父类完成2)  将某个特定的...

2011-04-25 13:58:01 91

原创 面向对象(OOP)的好处

这个是跟一个朋友聊起的话题,面向对象有什么好处,当然我们回答的其实都不是很好,回家仔细想了一下,也查阅了一些好的资料。 说到面向对象的好处,首先要说到面向对象的特征,然后根据这些特诊来叙述面向对象的好处,也比较自然一点。 1.面向对象的特征1)封装性封装性很重要,它可以避免外部对象修改对象内部的状态,从而引起对象本身的稳定性,因此在代码编写过程中,要尽量考虑到对象的...

2011-04-25 09:47:34 195

原创 做好一个内部系统要考虑的问题

今天跟同事讨论起怎么做好一个内部系统,别的系统会跟这个系统进行对接。 整理如下:1.从API上的设计原则来说,以下的问题需要考虑:1)API的扩展性要足够好,比如说,满足A用户的同时,假设用户B有新的需求,代码改动以后,不能影响A的客户端代码。常见的扩展性比较好的格式有XML API和Json,而WSDL比较差,一旦结构改动,客户端的调用代码也必须重构。 2)API的设计要...

2011-04-22 09:10:04 210

原创 jvm的并发控制,分布式环境下的并发控制有哪些策略

DB,FileLock,zookeeper,memcached  谈到分布式环境下的并发控制策略,其实就是在分布式系统下,如何在一个集中点获取锁,分布系统中的server可以通过集中点获取锁: 1.使用MemcachedServer A获取锁lock1,过程如下:1)调用MemcachedClient.get("lock1"),如果为空或者等于0,则表示没有其它serv...

2011-04-20 22:33:29 236

原创 Get和Post区别

1. get是从服务器上获取数据,post是向服务器传送数据。2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML Body内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。3. get传送的数据量较小,不能大于2KB。p...

2011-04-20 21:19:24 51

原创 MYSQL 高效序列的生成

同样创建数据库表: create table mysequence(      Idbigint not null auto_increment;); 创建一个函数: DELIMITER$$Drop function if exists `mysequence.nextval`$$create function ` m...

2011-04-20 21:18:09 141

原创 Session和Cookie的关系

1.Session和Cookie的区别:session与cookie最主要的区别就是,session是以对象的形式保存在服务器端,而cookie则是以字符串的形式保存在客户端。 2.Session和Cookie的联系Http协议本身是无状态的,Session机制在一定程度上解决了Web应用状态问题。服务器判断Session唯一性是通过每个Session独有的Session ID,通...

2011-04-20 20:56:52 68

原创 深入探讨Web Page性能优化-web性能基础

 深入探讨Web Page 的性能提升 【摘要】Web性能在Web开发中占有非常重要的地位,一个快速的网页对于提升用户体验,提高用户黏性,具有非常重要的意义。要开发出高性能的Webpage,需要深入了解Web端的原理,在本文中作者深入探讨了WebPage的性能优化技巧,本...

2011-04-19 18:58:51 467

原创 Java 并发编程基础-共享对象

 Java 并发编程基础-共享对象 目录Java 并发编程基础-共享对象... 11.           可见性... 11.1过期数据... 21.2 非原子的...

2011-04-19 14:48:07 267

原创 从JVM并发看CPU内存指令重排序(Memory Reordering)

 我们都知道,现在的计算机,cpu在计算的时候,并不总是从内存读取数据,它的数据读取顺序优先级是:寄存器-高速缓存-内 存。线程耗费的是CPU,线程计算的时候,原始的数据来自内存,在计算过程中,有些数据可能被频繁读取,这些数据被存储在寄存器和高速缓存中,当线程计算完后,这些缓存的数据在适当的时候应该写回内存。当个多个线程同时读写某个内存数据时,就会产生多...

2011-04-18 16:17:01 120

原创 Java并发编程基础

   Java 并发编程基础1.线程的风险1.1安全风险线程不安全:Public class UnsafeSequence{      Private int value;      Public int getNext(){  Retur...

2011-04-15 14:55:17 64

原创 Java多线程基础

 Java 多线程基础... 21.线程和进程... 22.Java内存模型... 32.1 Java内存模型的基本原理... 32.2 Volatile的内存工作原理... 42.3 Synchro...

2011-04-13 15:52:35 85

空空如也

空空如也

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

TA关注的人

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