自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

【读书笔记】企业应用架构模式——并发、事务与锁

一、并发问题的产生 多线程/进程同时操作(读/写)同一数据 二、并发问题的种类 丢失更新(lost update) 第一类更新丢失(回滚丢失): 当2个事务更新相同的数据源,如果第一个事务被提交,而另外一个事务却被撤销,那么会连同第一个事务所做的跟新也被撤销。也就是说第一个事务做的跟新丢失了。 第二类更新丢失(覆盖丢失): 第二类更新丢失实在实际应用中经常遇到的并发问题,他和不...

2012-08-23 00:13:00 383

【读书笔记】代码大全

1.软件构建即编程,主要包括编码与调试、详细设计、规划构建、单元测试、集成、集成测试。构建是软件开发的核心活动,主要精力集中之处,产物是源代码。 2.软件的隐喻——建筑 3.三思而后行:前期准备(设计蓝图和建筑许可证在软件业的等价物,包括问题/产品定义、需求分析、架构)——目的:尽早发现并处理问题,识别并降低风险 3.1 前期准备的重要性:类比 在一个被污染了的环境中,水虱在受到核沾染的水...

2012-05-01 15:24:00 230

桥接模式:从操作系统的可移植性说起

桥接模式:将抽象部分与它的实现部分分离,使得二者可以独立地变化。(说实话,这个很难理解!!!) 抽象部分:继承关系里的抽象类,一般位于上层,平台无关 实现部分:继承关系里的实现类,一般位于底层,平台相关、实现细节 还是不理解,看实例讲解吧! 比如对一个操作系统来说,平台无关的是高层代码,属于抽象部分,而底层Bootloader、驱动程序则属于实现部分,是平台相关的。这里假设该操作系统具有良...

2012-03-26 23:12:00 459

【读书笔记】HeadFirst设计模式——代理和装饰者

代理——控制对主题的访问,有时控制主题的创建,完全代替主题,或者什么都不做,只是简单转发 装饰者——只添加新功能,不做其他控制 从使用者的角度看,代理一般不改变对象行为,装饰肯定会增加对象行为。 代理: 装饰者: ...

2012-03-25 01:36:00 185

【读书笔记】HeadFirst设计模式——装饰者和适配器的区别

装饰者和被装饰者实现了同一个接口,给被装饰者增加功能。即装饰者和被装饰者一定是在同一继承体系的。 适配器和被适配者不实现同一接口,适配器将被适配者转换成客户适用的接口暴露给客户使用。 装饰者: 适配器: ...

2012-03-25 01:25:00 157

【读书笔记】HeadFirst设计模式——状态和策略

一、状态模式实现: 1.每个动作一个方法 2.每个状态一个类 二、状态模式和策略模式的区别: 状态模式——状态频繁的发生变化 策略模式——策略在制定后,一般不变 状态: 策略: ...

2012-03-25 01:22:00 148

【读书笔记】HeadFirst设计模式——命令模式简述

今天又复习了一遍命令模式 命令模式是指,将“请求”封装成命令对象。命令对象是通过封装接收者和绑定一组动作来封装请求的。 通过命令模式,将动作的请求者和动作的执行者进行解耦。即请求的调用者只接收并处理命令对象,但并不知道命令对象所封装的特定接收者。 command模式的结构图: 即,客户使用命令接收者(Receiver)来创建命令对象(ConcreteCommand),并将命令对象交给调...

2012-03-21 00:04:00 181

【读书笔记】HeadFirst设计模式——单件不简单:详述实现Singleton模式需要考虑的方方面面...

什么是单件? 单件就是保证一个类仅有一个实例,并提供一个访问它的全局访问点。——GOF 单件模式简单吗? 简单,的确简单,因为只有一个类。 单件不简单! 其实单件并不见得简单,而且还有点小复杂。其复杂度正是为了保证单件所要达到“仅有一个实例”的宏伟目标而引起的。 当然在一般情况下,单件是简单的。但是在考虑了懒加载、并发、反射、序列化、子类化等诸多因素后,为了保证只有一个实例,复杂度就大...

2012-03-20 00:59:00 169

【读书笔记】HeadFirst设计模式——工厂模式简述

简单工厂: 提供一个方法创建单个对象(方法内部往往包含对参数的判断来创建具体的对象),供外部对象使用——组合 工厂方法: 是一个特殊的模板方法,由子类创建具体的对象,供父类使用——继承 抽象工厂: 提供一组方法创建对象家族,供外部对象使用——组合 PS:简单工厂可以看成是简单的抽象工厂,只创建一个对象的抽象工厂...

2012-03-17 02:32:00 144

【读书笔记】AgilePPP——系统设计:简单设计

系统设计的本质 •系统设计的本质是寻找隐藏于应用背后抽象 •需求和用例不会表述或提及这些抽象,它们太过专注细节以至于不能表达底层抽象的一般性 如何抽象 •抽象需要根据需求的全局来展开 •不能只按个别用例来展开 •抽象就是归纳、总结,并提炼需求的共同逻辑 关于数据库 •数据库是实现细节!应该尽可能的推迟考虑数据库。有太多的应用程序之所以和数据库绑定在一起而无法分离,就...

2012-03-14 00:43:00 137

【读书笔记】AgilePPP——设计模式

Command模式 Command模式的3种用法Active object模式 是对Command的应用 是实现多线程的基础技术 Active Object 并发模式在 Java 中的应用 http://www.ibm.com/developerworks/cn/java/j-lo-activeobject/index.html模板方法与策略模式 为什么说组合由于继承(或策略模式由于模...

2012-03-14 00:39:00 185

【读书笔记】深入理解Java虚拟机——垃圾收集

Ubuntu11.10下编译 OpenJDK7 http://blog.youkuaiyun.com/yhmhappy2006/article/details/7281710基本垃圾收集算法 标记-清除(Mark-Sweep) 效率问题 内存碎片 适用于老年代复制(Copying) 解决碎片问题 可用内存缩小(一半) 存活率高时,复制效率低 用于新生代标记-整理(Mark-Compact)...

2012-03-13 23:41:00 160

java问题诊断方法及工具

线上系统出现问题时,需要记载系统当前运行状况,总结一下,大概需要关注以下几个方面: 1.负载:——top命令 在linux上,执行top 等命令,关注load, Memory, CPU 等系统概况,以及关注CPU和memory 占用较多的进程。 使用top -H, 并按 shift+p 对CPU进行排序,找到当前占用CPU最多的线程。(top -u bpm -H),-H 按线程显示,否则按进...

2012-03-08 17:40:00 215

java thread dump相关文章

文章: 1.Thread Dump分析:http://blog.youkuaiyun.com/wanyanxgf/article/details/6944987 2.jstack和线程dump分析:http://jameswxx.iteye.com/blog/1041173 3. threaddump :http://blog.sina.com.cn/s/blog_53b6edca0100gm6...

2012-03-08 17:18:00 138

eclipse启动参数优化

eclipse启动参数优化 -Xms512m -Xmx512m -Xmn128m -XX:PermSize=96m -XX:MaxPermSize=96m -XX:+DisableExplicitGC -Xnoclassgc -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=8...

2012-02-29 00:13:00 156

Ubuntu11.10下解决 jmap等jdk工具attach pid错误

1.错误案例 nathan@ubuntu:~/Downloads$ jmap -heap 3991 Attaching to process ID 3991, please wait... Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Can't attach to the process 2.解...

2012-02-27 21:40:00 271

Ubuntu11.10下编译 OpenJDK7

1.首先去 这里http://download.java.net/openjdk/jdk7/下载OpenJDK7的源码zip包2. 安装编译工具包如没安装aptitude,则先安装aptitude(sudo apt-get install aptitude)sudo aptitude build-dep openjdk-63.注意:Ubuntu系统的语言必须切换到English(系...

2012-02-22 00:14:00 176

Ubuntu安装后需要设置root密码

Ubuntu安装后root是没有默认的密码的,因为你还没给root设置密码,你第一个 user 是在 admin 组,他可以给 root 设置密码,所以大家不要费脑筋想当初自己设的密码是多少了,因为根本就不存在。端口输入如下命令:sudo passwd root[sudo] password for you :---> 输入你的密码,不回显Enter new UNIX password: -...

2012-02-17 01:34:00 150

ubuntu11.10下eclipse提示框背景色为黑色的解决方案

ubuntu下eclipse提示框背景色为黑色看起来很不舒服,这是因为eclipse默认使用系统的主题,ubuntu11.10以前的版本可以通过 系统设置>外观>修改主题 自定义颜色来修改。但ubuntu11.10下不再提供直接修改主题的接口,只能修改文件:/usr/share/themes/Ambiance/gtk-2.0/gtkrc 首先修改只读权限,然后打开编辑,第...

2012-02-17 01:11:00 192

java 内部工作线程介绍

Java程序运行的过程中,不但包括开发者启动的主线程和子线程。还包括很多内部线程。了解这些线程,对了解Java工作原理,及复杂环境下debug会有帮助。 首先需要查看Java程序的内部线程,我使用以下两种方法查看Java下的线程: 1.Jconsole——JDK自带的JMX查看管理工具(GUI)。 2.Linux下使用kill -3 processId ,发送命令...

2012-02-15 23:55:00 238

Java编译、反编译、查看字节码

编译:javac -g Foo.java 看字节码:javap -c -s -l -verbose Foo 反编译成Java: 1)下载jad.exe(http://www.varaneckas.com/jad)+eclipse插件jadclipse(http://sourceforge.net/projects/jadclipse/) 或 ...

2012-02-13 23:27:00 121

Class.froName 的过程

Class.froName 的过程 测试代码 package test; import org.junit.Test; public class ClassForNameTest { @Test public void testMap() throws ClassNotFoundException { Class.forName("ClassForNameTest.java"...

2012-02-10 00:29:00 236

源代码就是设计(Jack Reeves著)

源代码就是设计 Jack Reeves著 邓辉 译 本文摘自《敏捷软件开发:原则、模式与实践》(清华大学出版社,2003年9月版)。这是一篇伟大的论文,该文撰写于1992年,作者在当时就能有这样的反思,实在是非常了不起。 至今,我仍能记起当我顿悟并最终产生下面文章时所在的地方。那是1986年的夏天,我在加利福尼亚中国湖海军武器中心担任临时顾问。在这期间,我有幸参加了一个关于...

2012-02-05 01:21:00 164

Bridge模式

一、桥梁(Bridge)模式 桥梁模式是一个非常有用的模式,也是比较复杂的一个模式。熟悉这个模式对于理解面向对象的设计原则,包括"开-闭"原则(OCP)以及组合/聚合复用原则(CARP)都很有帮助。理解好这两个原则,有助于形成正确的设计思想和培养良好的设计风格。 注:《Java与模式》一书认为Bridge模式不是一个使用频率很高的模式,我不太赞同,我认为Bridge模式中蕴涵了很多...

2012-02-02 00:50:00 108

【读书笔记】AgilePPP——咖啡的启示

按行为划分系统 •程序的中心是行为 •不基于行为的系统划分,基本上是严重错误的。 •正是系统的行为为我们提供了第一个关于应该如何划分系统的线索 水蒸气类 •没有任何成员变量、状态 •只是一个调用转换器 •水蒸气类没有存在的必要 虚拟抽象 •抽象是非常微妙的 •对抽象类,多问问:谁使用它们? •一个仅仅含有抽象方法并且不具有任何使用者的类,完全是一个无用的类 •虚...

2012-01-09 00:11:00 152

CSS 参考手册

CSS 参考手册 Previous Page Next Page 请点击表格中属性列的链接,可以查看相关属性的详细信息。 CSS 属性组: 背景 文本 字体 边框和轮廓 外边距 内边距 列表 内容生成 尺寸 定位 打印 表格 伪类 伪元素 提示和注释: 属性:“属性” 列指向语法、实例、浏览器支持等内容。 CSS:"CSS" 列...

2012-01-07 23:19:00 77

使用命令模式实现简单的支持撤销的计算器

1.支持的操作符有"+", "-", "*", "/" 2.撤销符号为"<" 3.例如输入"1", "+", "2", "<", "+", "1", "<", "+", "3",输出计算

2011-12-16 01:24:00 585

oracle sysdate,systimestamp,current_date,current_timestamp

select sysdate,systimestamp,current_date,current_timestamp from dual; 这条语句返回 系统当前时间的三个版本,也有人这么说 叫做返回系统当前session所在时区的默认时间。 sysdate返回的是系统的时间。 systimestamp也是当前系统的时间戳。 CURRENT_TIMESTAMP 与时区设置有关,返回...

2011-12-14 23:57:00 488

【读书笔记】AgilePPP——敏捷设计

敏捷设计 •全局视图和软件一起演化 •设计尽可能适合当前系统,关注当前系统结构 •增量地演化出系统最佳架构和设计 •设计和架构过程是持续不断进行的 •从根本上讲,源代码就是设计 •敏捷设计是一个过程,不是一个事件,是一个持续的应用原则、模式以及实践来改进软件结构和可读性的过程 •敏捷设计步骤 –遵循敏捷实践去发现问题 –应用设计原则去诊断问题 –应用适当模式去解决问题 ...

2011-12-05 23:45:00 92

【读书笔记】AgilePPP——XP实践

完整团队 •客户、管理者、开发紧密工作在一起。 •客户 –指定义产品特性并排列特性优先级的人或团体。 –同一公司的业务分析师、质量保证专家、市场专家;用户团体的代表;支付开发费用的人。 –都是能和团队一起工作的成员。 •客户或能代替客户的人最好和开发在同一个房间工作。 用户故事 •了解需求只要做到能估算的程度就够了。 •必须知道存在很多细节及细节分类,但不必知道特定细...

2011-12-05 23:39:00 143

一个简单的示例揭秘LSP原则真谛

对LSP的理解,之前只停留在表面,并未深入理解。表面理解是指认为LSP就是仅仅依靠面向对象多态的特性,在使用基类对象的地方都能使用子类对象简单的替换。这还不是严格的遵循LSP。真正的要遵循LSP原则,是必须子类和基类行为上的绝对一致。基于契约的设计可以很好的保证了对LSP的遵循。 下面简单的java代码,揭示了LSP真谛: package com.oop.lsp; public ...

2011-12-01 00:03:00 328

【读书笔记】AgilePPP——敏捷宣言及12条原则

人的力量 •过程和技术对于项目的结果只有次要的影响,首要的影响是人。 •如果项目要取得成功,必须构建起具有合作精神、自组织的团队。 •凝聚在一起的软件团队是最强大的软件开发力量。 敏捷宣言 •人和交互 > 过程和工具 •可以工作的软件> 面面俱到的文档 •客户合作 > 合同谈判 •随时应对变化> 遵循计划 人和交互 >过程和工具 ...

2011-11-21 23:39:00 172

【读书笔记】TiJava——并发

函数型语言 •Erlang:大量使用并发的时候使用 协作式和抢占式 •协作多线程、协作式系统 –每个任务自动放弃控制 –同时执行的线程数无限制 –适合处理大量的仿真元素 线程与设计 •线程使你能够创建更加松耦合的设计 •线程的使用 –实现Runable –使用Thread •Thread.yield——不能依赖 –将cpu从一个线程让给另一个线程 ...

2011-11-20 21:31:00 140

【读书笔记】TiJava——内部类使用范例:温室控制器

控制器抽象层,包括抽象事件的定义及控制器的定义: public abstract class Event { private long eventTime; protected final long delayTime; public Event(long delayTime) { this.delayTime = delayTime; } public void star...

2011-11-17 23:48:00 158

敏捷术语收集

XP(Extreme Programming) http://xprogramming.com/index.phpKISS(Keep it simple, Stupid!) http://en.wikipedia.org/wiki/KISS_principleYAGNI(You Aren't Going to Need It) http://www.artima.com/weblogs/...

2011-11-17 15:32:00 168

【读书笔记】TiJava——注解

内置注解 •内置注解 –@Override –@Deprecated –@SuppressWarnings •元注解 –@Target –@Retention –@Documented –@Inherited 编写注解处理器 •内置注解很少,打多时候,程序员自定义注解,并编写处理器处理它们 •使用的反射方法: –Class.getDeclaredMet...

2011-10-27 23:57:00 103

Oracle数据库如何为表解锁

1、执行下面的SQL,找到被锁的表: select b.owner table_owner,b.object_name,c.username,c.sid,c.serial# from v$locked_object a,dba_objects b,v$session c where a.object_id=b.object_id and c.sid=a.session_id; 2...

2011-10-26 18:45:00 127

【读书笔记】TiJava——枚举类型

枚举类型 特性 •继承自java.lang.Enum •values()返回枚举数组 •自动提供equals和hashCode方法 •自动实现Comparable和Serializable接口 •可以用==比较两个枚举值 •默认name()等同toString() •valueOf将字符串名称转换为枚举类型值 添加方法 •枚举定义必须在方法定义之前 •枚举定义结...

2011-10-26 00:31:00 86

Left side (xx) of 'y' operation has null value. Operation not possible

Left side (xx) of 'y' operation has null value. Operation not possible I have been seeing a lot of messages like this in my dotCMS logs: ? 1 2 [18/10/10 02:19:45...

2011-10-12 15:14:00 934

持续集成相关资料

论文: Martin Fowler: Continuous Integration http://www.martinfowler.com/articles/continuousIntegration.html (中译版:http://www.cnblogs.com/itech/archive/2010/07/12/1775785.html) 持续集成理论和实践的新进展: http://w...

2011-10-08 14:16:00 129

空空如也

空空如也

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

TA关注的人

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