- 博客(352)
- 资源 (9)
- 收藏
- 关注
转载 面向对象设计原则之里氏代换原则
里氏代换原则由2008年图灵奖得主、美国第一位计算机科学女博士Barbara Liskov教授和卡内基·梅隆大学Jeannette Wing教授于1994年提出。其严格表述如下:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的所有程序P在所有的对象o1代换o2时,程序P的行为没有变化,那么类型S是类型T的子类型。这个定义比较拗口且难以理解,因此我们一般使用它的另一个通俗版定义:
2016-06-29 15:23:09 334
转载 在等待中让自己变更好
今天,我想做的是一个关于时间的探讨。但是请放心,我不是在标榜什么成功学,只是跟大家分享我的一种生活态度。我想很多同行应该都深有体会,做演员这个职业,其实大部分的时间都是在等待,往小了说,化完妆等开工、开了工然后在现场候着、等着,往大了说,演员的一生都是在等待一个属于自己的角色。戏杀青了等后期制作、后期制作等戏播出、播出之后还要等观众的反应……这一切全都是等待的过程。其实,光是入行这条路,我就等了很久
2016-06-26 21:57:01 608
原创 工厂模式代码实例
1、创建名称Car接口package factory.car.test;public interface Car { public void run(); public void stop();}2、分别创建名称Benz、Ford、Toyota类,并分别实现Car接口package factory.car.test;public class Benz implements Car
2016-06-26 00:31:59 348
转载 面向对象设计原则之单一职责原则
单一职责原则是最简单的面向对象设计原则,它用于控制类的粒度大小。单一职责原则定义如下: 单一职责原则(Single Responsibility Principle, SRP):一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。 单一职责原则告诉我们:一个类不能太“累”!在软件系统中,一个类(大到模块,小到方法)承担的职责越多,它被复用
2016-06-25 11:28:28 453
转载 创建对象与使用对象——谈谈工厂的作用
在设计模式的教学和推广过程中,很多企业学员和在校学生经常问我,工厂模式(包括简单工厂模式、工厂方法模式和抽象工厂模式)到底有什么用,很多时候通过反射机制就可以很灵活地创建对象,为毛还要工厂?微笑,在本文中我将围绕创建对象和使用对象来简单谈谈工厂的作用。 与一个对象相关的职责通常有三类:对象本身所具有的职责、创建对象的职责和使用对象的职责。对象本身的职责比较容易理解,就是对象自身所具有的一些数据和
2016-06-23 00:18:40 617
转载 只缺一个程序员 如何让产品实现
译者:王登科 这是一篇我的翻译,来自 Derek Sivers 的 How to hire a programmer to make your ideas happen,很久前在趣译翻译的,今天无意看到了,拿出来分享一下。当然,翻译的蹩脚就请大家海涵了~ 你是否曾经遇到过这样的情况:你已经有了一个好主意,比如开发一个在线商店,制作一个应用等等,但是却只缺一个程序员,能够让想法变为现实? 很多我
2016-06-17 19:10:28 362
转载 Chrome开发者工具不完全指南
http://web.jobbole.com/82558/ http://www.cnblogs.com/Wayou/p/chrome-console-tips-and-tricks.html
2016-06-16 23:21:58 470
原创 netty 超时机制和心跳机制
http://blog.163.com/linfenliang@126/blog/static/127857195201467112958326/
2016-06-12 17:44:51 2165
原创 Netty Exceptioncaught方法
因于Netty的I/O异常或一个处理器实现的内部异常。多数情况下,捕捉到的异常应当被记录下来,并在这个方法中关闭这个channel通道。当然处理这种异常情况的方法实现可能因你的实际需求而有所不同,例如,在关闭这个连接之前你可能会发送一个包含了错误码的响应消息。http://www.cnblogs.com/leehongee/p/3323840.html
2016-06-12 17:22:29 19561 2
转载 软件开发的葵花宝典
中国人大都喜欢用武侠小说来比较软件开发,但是在实战武功中,只有葵花宝典才是最厉害的,也只有掌握了葵花宝典,才能称为”不败”。 但什么才是软件开发的葵花宝典?让我们先从一些现象出发。我们的前提是,软件开发是一项智力密集型劳动。对于智力密集型劳动,我们观察到的现象是,个体的表现差异很大,团队的表现差异很大,组织的表现差异很大,国家的表现差异很大。这不象体力占主要的劳动,象百米王跑百米的速度也仅比我快50
2016-06-09 19:48:34 324
原创 redis keyexpiredlistener
http://blog.jobbole.com/71095/ http://my.oschina.net/u/1466553/blog/332830 http://jiorry.iteye.com/blog/961172
2016-06-08 10:55:22 1778
转载 Executors.newCachedThreadPool();和Executors.newFixedThreadPool(int n)的区别
public static ExecutorService newCachedThreadPool()创建一个可根据需要创建新线程的线程池,但是在以前构造的线程可用时将重用它们。对于执行很多短期异步任务的程序而言,这些线程池通常可提高程序性能。调用 execute 将重用以前构造的线程(如果线程可用)。如果现有线程没有可用的,则创建一个新线程并添加到池中。终止并从缓存中移除那些已有 60 秒钟未被使
2016-05-27 16:12:31 1869
转载 线程池实例:使用Executors和ThreadPoolExecutor
线程池负责管理工作线程,包含一个等待执行的任务队列。线程池的任务队列是一个Runnable集合,工作线程负责从任务队列中取出并执行Runnable对象。java.util.concurrent.executors 提供了 java.util.concurrent.executor 接口的一个Java实现,可以创建线程池。下面是一个简单示例:首先创建一个Runable 类:WorkerThread.j
2016-05-27 16:02:22 391
原创 Map遍历实例
1、通过单例得到全部的key值。Set<String> entries = PowerDataMonthlyMap.getInstance().getPowerDataMonthlyMap().keySet(); 2、for循环通过key得到value值。for(String meterID :entries) { sbuf.append("<userMod
2016-05-26 17:48:44 394
原创 Map项目中的实例
package com.power7000.service.impl.sun.sts;import java.util.concurrent.ConcurrentHashMap;import org.apache.log4j.Logger;public class PowerDataMonthlyMap { private static Logger logger = Logger.get
2016-05-26 14:57:08 535
原创 java中 BigDecimal类型的可以转换到double类型
有方法 java.math.BigDecimal.doubleValue()BigDecimal a = new BigDecimal(1000); return a.doubleValue();
2016-05-25 15:00:40 23318 2
转载 Netty4 自定义Decoder,Encoder进行对象传递
首先我们必须知道Tcp粘包和拆包的,TCP是个“流”协议,所谓流,就是没有界限的一串数据,TCP底层并不了解上层业务数据的具体含义,它会 根据TCP缓冲区的实际数据进行包的划分,一个完整的包可能会被拆分成多个包进行发送,也有可能把多个小的包封装成一个大的数据包进行发送。这里引用 Netty官网的User guide里面的图进行说明:Dealing with a Stream-based Transp
2016-05-24 21:21:04 3527
转载 netty 学习 (3)发送对象
Netty中,通讯的双方建立连接后,会把数据按照ByteBuf的方式进行传输,例如http协议中,就是通过HttpRequestDecoder对ByteBuf数据流进行处理,转换成http的对象。基于这个思路,我自定义一种通讯协议:Server和客户端直接传输Java对象。 实现的原理是通过Encoder把java对象转换成ByteBuf流进行传输,通过Decoder把ByteBuf转换成java
2016-05-24 21:04:25 2134
转载 netty ChannelPipeline流处理源码详细分析
http://www.tuicool.com/articles/eIz6ryhttp://www.cnblogs.com/montya/archive/2012/12/26/2834279.html?utm_source=tuicool&utm_medium=referral
2016-05-24 20:29:01 696
转载 java 时间日期的判定和时间的加减
http://blog.csdn.net/zhengqiqiqinqin/article/details/20630415 比如现在有个String str =”2013-07-18”; 现在要在这个时间上加8个月就变成了“2014-03-18” 怎么完成这种时间的转换加减 String str = "2013-07-18";SimpleDateFormat formatter = n
2016-05-24 17:51:57 432
转载 Netty系列之Netty 服务端创建
背景1.1. 原生NIO类库的复杂性在开始本文之前,我先讲一件自己亲身经历的事:大约在2011年的时候,周边的两个业务团队同时进行新版本开发,他们都需要基于NIO非阻塞特性构建高性能、异步和高可靠性的底层通信框架。当时两个项目组的设计师都咨询了我的意见,在了解了两个项目团队的NIO编程经验和现状之后,我建议他们都使用Netty构建业务通信框架。令人遗憾的是其中1个项目组并没有按照我的建议做,而是选
2016-05-21 20:02:11 2461 1
转载 刚挣钱的程序员同学该如何花钱?
我刚毕业那年第一个月到手的全额工资大概是 4k 出头,自己单独租了一个套一的房子再加上吃饭一个月 2.5k 就这么花掉了。每个月所剩余的可自由支配的钱确实不多,我这也算是在一线城市的广深地区,在内地二线城市的朋友当时只有 1k 出头,合租房加上吃饭还略显紧张。所以我们当时不太需要考虑花钱这个事,确实是没什么钱可花的。今天行业发展得不错,如今程序员的起薪大幅提升,刚走出校门的同学除租房吃饭之外想必都还
2016-04-18 00:26:18 1012
转载 ScheduledExecutorService定时周期执行指定的任务
http://blog.csdn.net/tsyj810883979/article/details/8481621 http://www.cnblogs.com/sunxucool/archive/2013/06/21/3148141.html
2016-04-17 19:04:10 416
原创 Json实际项目中应用
对象列表(2个对象) 对象中间用逗号分隔开,起始、结束用中括号,每个对象用大括号包起来 [{"settingDate":"","operatorId":"","protocolType":30,"seqNo":0,"switchPw":"","data":"","projectType"
2016-04-17 17:21:39 929
原创 Visual Paradigm及Sequence实例
http://training.evget.com/video/5268 官网操作文档 https://www.visual-paradigm.com/support/documents/vpuserguide/94/2576/7190_drawingclass.html 一、以团购系统的取消订单为例。 1、选择File > New Diagram > UML Diagrams >
2016-04-10 16:06:03 9336
转载 Quartz使用-入门使用(java定时任务实现)
http://blog.csdn.net/lotusyangjun/article/details/6450421/
2016-04-10 15:29:38 320
原创 Json基础及常用示例
**JSON对象是一个无序的”名称/值”对的集合它开始于“{”,结束于“}”。每一个属性名和值间用“:”提示,属性间用“,”分隔。一个数组开始于”[“,结束于”]”,值之间用”,”分隔。 数组和List转换为JSON用JSONArray.fromObject Map、bean、beans(保存在一个List中转换)转换为JSON用 JSONObject.fromObjectJSONObject
2016-04-10 15:07:54 718
转载 将Windows文件路径转换为java中可识别的文件路径
在Windows中的文件路径格式为 D:\source\l.c而在java中的文件路径格式为 D:/source/l.c在java中使用前者则会报错,所以需要先将Windows中的文件路径转换为java中可识别的路径。作如下处理:String str = “D:\source\l.c”;String location = str.replaceAll(“\\”,”/”);这样location的值为D
2016-03-30 23:18:35 5608 1
转载 Myeclipse创建单元测试
1.新建new-other 2.选择Junit Test Case3.注意红线圈出部分 4.选择需要测试的方法
2016-03-23 00:55:20 2697 1
转载 多图详解Spring框架的设计理念与设计模式
Spring作为现在最优秀的框架之一,已被广泛的使用,51CTO也曾经针对Spring框架中的JDBC应用做过报道。本文将从另外一个视角试图剖析出Spring框架的作者设计Spring框架的骨骼架构的设计理念,有那几个核心组件?为什么需要这些组件?它们又是如何结合在一起构成Spring的骨骼架构?Spring的AOP特性又是如何利用这些基础的骨骼架构来工作的?Spring中又使用了那些设计模式来完成
2016-02-20 23:37:17 1200
转载 Spring核心组件bean、context、core
spring是目前最流行的框架之一,今天主要和大家共同研究一下spring的核心组件。spring总共有十几个组件,其真正核心组件为:core、context和bean。 这三个组件中bean尤为重要,因为spring是面向bean的编程。就像Java是面向对象的编程一样,bean对于spring来说就好比Java中的对象一样重要。在spring中如果没有bean也就没有spring存在的意义
2016-02-19 23:07:55 3667
原创 使用Log4j进行日志操作
1、在工程中导入log4j-1.2.15.jar的jar包 2、新建测试类: package zieckey.study.log4j;import org.apache.log4j.Logger; import org.apache.log4j.PropertyConfigurator;public class Log4jTest {// 获取日志记录器static Logger logge
2016-01-30 11:35:00 528
《C# 线程参考手册》源码
2017-09-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人