- 博客(92)
- 资源 (2)
- 收藏
- 关注
原创 赋能:打造应对不确定性的敏捷组织
一、应对不确定性:团队和组织的关系: 美军有严密的层级组织,有指挥官、有执行人员、有后勤补给,行动时层层协调、层层传令,行动后再总结反思,做出进一步决策。 而恐怖分子的组织则完全不同。他们的组织松散、精练,没有严密的架构和纲领,保持高度的灵活性。他们甚至不需要指挥官,三五成群就能发动严重的恐怖袭击,让人措手不及。 追根溯源:还原论的恶果 ...
2018-08-01 19:59:56
1943
1
原创 情境领导力
成熟度: 成熟度包括工作成熟度和心理成熟度。前者是一个人的知识和技能,后者是一个人的意愿和动机。工作成熟度高的人不需要别人的指导,心里成熟度高的不需要外部鼓励,他们更多靠内部鼓励。 四阶段: 成熟度由低到高分为4阶段,M1至M4: M1: 这些人对于执行某任务既无能力又不情愿,他们既不胜任工作又不能被信任; M2: 这些人缺乏能力,但却愿意从事必要的...
2018-08-01 19:58:13
4861
转载 用户态和内核态的概念区别
用户态和内核态的概念区别究竟什么是用户态,什么是内核态,这两个基本概念以前一直理解得不是很清楚,根本原因个人觉得是在于因为大部分时候我们在写程序时关注的重点和着眼的角度放在了实现的功能和代码的逻辑性上,先看一个例子:1)例子C代码1. void testfork(){ 2. if(0 = = fork()){ 3. printf(“cre
2014-02-11 17:22:44
809
原创 JsonUtil实例
package com.jd.push.service.push.impl;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.List;import java.util.Map;import java.util.concurrent.
2014-02-11 14:16:39
938
原创 外观模式
外观模式定义外观模式,又称门面模式,它提供了一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层接口,让子系统更容易使用。架构示意图:意图:提供一个简单接口,让子系统更易于使用。最少知识原则:Least Knowledge:只和你的密友交谈。这个原则希望我们在设计中,不要让太多的类耦合在一起,免得修改系统中一部分,会影响到其他部分。如果许多类之
2014-02-10 17:52:55
761
原创 适配器模式
适配器模式定义:适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。这个模式可以通过创建适配器进行接口转换,让不兼容的接口变成兼容。这可以让客户从实现的接口解耦。适配器模式充满着良好的OO设计原则:使用对象组合,以修改的接口包装被适配者,这种做法还有额外的优点: 被适配者的任何子类,都可以搭配着适配器使用。类图:`角色:
2014-02-10 15:45:54
663
原创 装饰者模式
装饰者模式简介 Decorator/Wrapper模式:动态将职责附加到对象上,若要扩展功能,装饰者提供了比继承更具弹性的代替方案。 表现形式1. 装饰者和被装饰对象有相同的超类型。2. 你可以用一个或多个装饰者包装一个对象。3. 既然装饰者和被装饰对象有相同的超类型,所以在任何需要原始对象的场合,可以用装饰过的对象替代它。
2014-01-26 15:07:06
655
原创 建造者(build)模式
建造者(build)模式背景 方案一: 当一个类的参数过多时,我们的常用方法一般是重叠构造器,即重载,比如有5个属性,一般我们会重载5个方法,输入参数从1到5不等。如 Dogdog = new Dog(“花花”); Dogdog = new Dog(“花花”,1,); Dogdog = new Dog(“花花”,1,
2014-01-26 11:13:46
3509
原创 单例模式
单例模式定义: 单例模式确保一个类只有一个实例,并提供一个全局访问点。包括两点:1. 避免其他类再自行产生实例,要想取得单例实例,通过单例类是唯一途径。2. 单例也提供对这个实例的全局访问点:当需要实例时,向类查询,它会返回单个实例。基本规则:1. 私有的构造方法,不允许使用者直接new对象,只能自己去构造。2. 公有
2014-01-24 15:54:10
540
原创 责任链模式
责任链模式定义 定义多个责任对象,每个对象负责不同的业务职责,将这些对象连成一条链,并沿着这条链传递请求,知道有一个对象处理它(或者每个对象都处理一遍)为止。 类图: 纯责任链:严格来讲,一个纯的责任链是“每次只有一个对象有机会来处理某个请求”。可以用if-else来描述,纯的责任链一定是if-else if-else if-…else..这种结构。也就是说
2014-01-24 14:29:05
729
原创 状态模式
状态模式定义:状态模式允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。状态模式是一种行为模式。 状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂的情况。把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化。 类图: 适用场景:1. 一个对象的行为取决于它的状态,并且它必须在运行时刻根据状
2014-01-22 17:51:51
629
原创 策略模式
策略模式定义: 策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。类图:组成:1. 抽象策略角色:策略类,通常是一个接口或抽象类2. 具体策略角色:具体策略类,实现或继承抽象策略角色,包装了具体的算法和行为。3. 环境角色:持有一个策略类的引用,最终给客户端调用。
2014-01-22 11:46:11
613
原创 模板方法模式
模板方法模式定义: 模板方法模式是在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。类图:这里涉及到两种角色:1. 抽象模板:定义了一个或多个抽象操作,以便让子类实现。定义了一个模板方法,给出了一个顶级逻辑骨架,组装了操作的逻辑步骤,子类不可改变。2.
2014-01-22 10:23:23
549
原创 NIO实践
NIO实践Read /** * NIO读取流 * 1. 创建channel * 2. 创建buffer * 3. 从channel读取到buffer * * @param inputStream */ public void NIORead(FileInputStream i
2014-01-21 17:34:43
1075
转载 epoll为什么这么快
epoll为什么这么快epoll是多路复用IO(I/O Multiplexing)中的一种方式,但是仅用于linux2.6以上内核,在开始讨论这个问题之前,先来解释一下为什么需要多路复用IO.以一个生活中的例子来解释.假设你在大学中读书,要等待一个朋友来访,而这个朋友只知道你在A号楼,但是不知道你具体住在哪里,于是你们约好了在A号楼门口见面.如果你使用的阻塞IO模型来处
2014-01-20 11:43:04
770
转载 Apache与Nginx的优缺点比较
Apache与Nginx的优缺点比较1、nginx相对于apache的优点: 轻量级,同样起web 服务,比apache占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简单 社区活跃,各种高性能模块出品迅速啊 apache 相对于
2014-01-19 20:33:22
666
转载 select与epoll、apache与nginx实现原理对比
转:http://leicesc.sinaapp.com/?p=308关于select与epoll两种IO模型,都属于多路IO就绪通知,提供了对大量文件描述符就绪检查的高性能方案,只不过实现方式有所不同:select:一个select()系统调用来监视包含多个文件描述符的数组,当select返回,该数组中就绪的文件描述符便会被内核修改标志位。
2014-01-19 20:32:13
1200
原创 blockingQueue毒丸对象使用
package com.mylearn.threadpool.blockingqueue;import java.io.File;import java.util.concurrent.ArrayBlockingQueue;import java.util.concurrent.BlockingQueue;import java.util.concurrent.CountD
2014-01-14 21:23:04
1504
转载 Redis分布式
Redis分布式Redis-2.4.15目前没有提供集群的功能,Redis作者在博客中说将在3.0中实现集群机制。目前Redis实现集群的方法主要是采用一致性哈稀分片(Shard),将不同的key分配到不同的redis server上,达到横向扩展的目的。下面来介绍一种比较常用的分布式场景:在读写操作比较均匀且实时性要求较高,可以用下图的分布式模式:在读操作远远多于写操作时,可以用
2014-01-14 16:09:41
804
原创 Redis-API实例
Redis-API实例实例:package com.mylearn.util;import com.google.common.base.Joiner;import com.google.common.collect.ImmutableMap;import com.google.common.collect.Maps;import com.jd.data
2014-01-14 16:06:36
1651
原创 Session &Cookie
Session &Cookie概念:由于Http是无状态的,即一次http请求,服务端给出响应后,即断开服务,下次请求需要重建链接,在这两次的交互中,服务器是不知道这两次的客户端信息是否相同,为了跟踪用户的会话,提出了session和cookie机制。Cookie通过客户端来记录用户信息。Session通过服务端来记录用户信息。Cookie:实际上是一小段文本信息,每次客户端访
2014-01-09 10:21:26
1007
转载 BeanFactory和FactoryBean
BeanFactory和FactoryBean1、 BeanFactory BeanFactory定义了 IOC 容器的最基本形式,并提供了 IOC 容器应遵守的的最基本的接口,也就是Spring IOC 所遵守的最底层和最基本的编程规范。在 Spring 代码中, BeanFactory 只是个接口,并不是 IOC容器的具体实现,但是 Spring 容器给出了很多
2014-01-08 08:05:57
704
原创 Guava扩展工具包
Guava扩展工具包Guava包主要包括四部分:不可便集合(ImmutableCollections)、多值Map、Table表和集合工具类。不可变集合 不可变集合包括ImmutableList、ImmutableMap、ImmutableSet、ImmutableSortedMap、ImmutableSortedSet等,它比不可修改集合(UnmodifiableCo
2014-01-01 10:27:04
1620
原创 Joda-Time学习
Joda-Time学习Joda-Time:详细的介绍http://www.ibm.com/developerworks/cn/java/j-jodatime.html实例:直接上实例package com.mylearn.j2ee.jodatime;import org.joda.time.DateTime;import org.joda
2013-12-31 11:58:06
2036
原创 类的生命周期
类的生命周期一、简介Java类型的声明周期大概如下:1. JVM编译java文件成二级制文件 (.class文件)2. 类型装载、链接、初始化(方法区生成数据结构,堆区生成Class文件)3. 对象实例化(堆区分配内存)4. 垃圾收集5. 对象终结二、类的装载、链接、初始化Java虚拟机通过装载、链接、初始化一个Java类型,使该类型可以被正在运行的Java
2013-12-30 20:27:44
1094
原创 正则
正则一 VI中如何使用正则表达式使用正则表达式的命令最常见的就是/ (搜索)命令。其格式如下:/正则表达式另一个很有用的命令就是 :s(替换)命令,将第一个//之间的正则表达式替换成第二个//之间的字符串。:s/正则表达式/替换字符串/选项二、元字符元字符是具有特殊意义的字符。使用元字符可以表达任意字符、行首、行 尾、某几个字符等意义。元字符一览
2013-12-20 11:01:44
928
原创 常用js
常用js1. Checkbox选中: 功能: 根据checkbox选择的值,动态改变radio的值,如选中iphone或android,出现样式1-5;选中wp,出现样式1,2,6 iphone android ipad
2013-12-18 18:04:06
678
原创 Struts2+veloctiy+ajax实践
Struts2+veloctiy+ajax实践一、velocity JS代码: var floorId = document.getElementById("indexFloor.floorId").value; var floorSortNo = document.getElementById("indexFloor.floorSortNo").valu
2013-12-18 18:01:39
651
原创 No result defined for action com.jd.m.cms.web.action.IndexfloorAction and result Input问题
No result defined for action com.jd.m.cms.web.action.IndexfloorAction and result Input问题主要是参数的问题,如action中定义的是int类型,有可能vm页面写的是String,这样就会报如上的错误:错误: #end "size="20" />正确:
2013-12-17 09:32:46
966
转载 软件设计原则
软件设计原则一、 "开放-封闭"原则(OCP)Open-Closed Principle原则讲的是:一个软件实体应当对扩展开放,对修改关闭。优点: 通过扩展已有软件系统,可以提供新的行为,以满足对软件的新的需求,使变化中的软件有一定的适应性和灵活性。 已有软件模块,特别是最重要的抽象层模块不能再修改,这使变化中的软件系统有一定的稳定性和延续性。例子:玉帝招安
2013-12-13 17:57:36
617
转载 Mysql优化
Mysql优化1 加索引,用explain查询sql的执行计划所有MySQL列类型可以被索引。对相关列使用索引是提高SELECT操作性能的最佳途径。使用索引应该注意以下几点:1) MySQL只会使用前缀,例如key(a, b) …where b=5 将使用不到索引。2) 要选择性的使用索引。在变化很少的列上使用索引并不是很好,例如性别列。3) 在Unique列上定义Unique
2013-12-13 17:47:32
490
原创 Maven基础
Maven基础1 构建maven项目1.1命令:mvn archetype:create -Dkey = value1.2语法:Ø Mvn是maven2的命令。Ø Archetype:create称为一个maven目标,它的目的是通过archetype快速创建一个项目。这里具体见“2maven插件和目标”章节Ø -Dkey = value 负责传入一些具体配置参数。
2013-12-13 17:44:39
706
原创 Hessian服务搭建
Hessian服务搭建1. web.xml中增加servlet和servlet-mapping: hession org.springframework.web.servlet.DispatcherServlet contextConfigLocation clas
2013-12-13 17:28:04
798
转载 B-Tree
B-Tree 假如每个盘块可以正好存放一个B树的结点(正好存放2个文件名)。那么一个BTNODE结点就代表一个盘块,而子树指针就是存放另外一个盘块的地址。下面,咱们来模拟下查找文件29的过程:1 根据根结点指针找到文件目录的根磁盘块1,将其中的信息导入内存。【磁盘IO操作 1次】 2 此时内存中有两个文件名17、35和三个存储其他磁盘页面地址的数据。根据算法我
2013-12-13 17:13:07
891
转载 tomcat线程池
tomcat 线程池 web server允许的最大线程连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。1.编辑tomcat安装目录下的conf目录下的server.xml文件在tomcat配置文件server.xml中的配置中,和连接数相关的参数有:maxThreads="150" 表示最多同时处理150个连接,Tomc
2013-12-13 17:05:41
632
转载 网络协议
很全的一篇文章:w.ruanyifeng.com/blog/2012/06/internet_protocol_suite_part_ii.html
2013-12-13 16:52:34
516
转载 数据库连接池
数据库连接池连接池用于创建和管理数据库连接的缓冲池技术,缓冲池中的连接可以被任何需要他们的线程使用。当一个线程需要用JDBC对一个数据库操作时,将从池中请求一个连接。当这个连接使用完毕后,将返回到连接池中,等待为其他的线程服务。 连接池的主要优点有以下三个方面。 第一、减少连接创建时间。连接池中的连接是已准备好的、可重复使用的,获取后可以直接访问数据库,因此减少
2013-12-13 16:51:26
779
转载 tomcat加载过程
Tomcat加载过程2.1 Tomcat架构图2-1 Tomcat架构· Server(服务器)是Tomcat构成的顶级构成元素,所有一切均包含在Server中,Server的实现类StandardServer可以包含一个到多个Services;· 次顶级元素Service的实现类为StandardService调用了容器(Container)接口,其实是调用了Serv
2013-12-13 16:41:27
1177
原创 MapReduce
MapReduce简介MapReduce是聚合工具中的明星。Count、distinct、group能做的上述事情Mapreduce都能做。他是一个可以轻松并行化到多个服务器的聚合方法。它会拆分问题,再将各个部分发送到不同的机器上,让每台机器都完成一部分。当所有机器都完成的时候,再把结果汇集起来形成最终完整的结果。MapReduce需要几个步骤。最开始是映射(map),将操作映射到集合
2013-12-12 10:03:46
642
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人