自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 JAVA CPU100%如何排查

下面给出两种系统下的排查步骤,都是一模一样的,只是命令稍有区别! 查消耗cpu最高的进程PID 根据PID查出消耗cpu最高的线程号 根据线程号查出对应的java线程,进行处理。 准备一行死循环代码:怎么跑,应该不用我说了,直接教大家怎么查!一.windows可能有人有疑问,我为什么要说windows版的!因为,我曾经给很多政府部门做过系统。我发现他们...

2019-01-31 09:02:31 7112

原创 JVM参数调优整理

当系统报OOM(Out of Memory)异常时常见有以下几个原因:老年代内存不足:java.lang.OutOfMemoryError:Javaheapspace; 永久代内存不足:java.lang.OutOfMemoryError:PermGenspace; 代码bug,占用内存无法及时回收。前两种情况就可能需要优化JVM分配的内存容量。一.参数配置1.linux:Tom...

2019-01-30 11:00:45 684

原创 Tomcat理解Executor和Connector的关系

异步servlet和非阻塞Connector,一个是Executor,一个是Connector,两者的工作阶段不同。一.Connector指客户端请求服务器,好比春运通过12306购票,许多客户端连接到12306服务器,因此会有很多connection(连接),建立、维护、管理这些连接,这就是Connector要做的事情。显然这是web服务器性能的重要指标。即可支持的每秒最大连接数。C...

2019-01-28 16:10:48 3163

转载 Tomcat的连接数和线程池

前言在使用tomcat时,经常会遇到连接数、线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector)。在前面的文章 Tomcat的server.xml配置详解中写到过:Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine(也就是Servlet容器)来处理这个请求,并把产生...

2019-01-28 15:16:55 1136

原创 Tomcat的server.xml配置详解

一.server.xml结构server.xml默认配置示例: <Server port="8005" shutdown="SHUTDOWN"> <Listener className="org.apache.catalina.startup.VersionLoggerListener" /> <Listener className="o.

2019-01-25 15:41:36 12929

转载 JAVA设计模式什么鬼(终章)——作者:凸凹里歐

设计模式已经全部讲完,习得23种招式后我们也该归纳总结一下了,实践需与理论相结合才能更好地举一反三,灵活运用。设计模式到底是什么?它是对整个软件系统的拆分,组装,并决定模块间关系以及如何互动、通信的某种模式。究其本质,设计模式就是以语言特性(面向对象三大特性)为硬件基础,再加持六大设计原则的灵魂组合而,总结出的一系列套路,本章要讲地就是灵魂。单一职责我们知道功能完备的软件系统是复杂的,系统...

2019-01-22 15:16:10 290

原创 Tomcat目录架构

打开解压之后的tomcat可以看到如下目录:1.bin目录主要存放bat文件和sh文件,用来控制tomcat启动和关闭。windows环境通过双击startup.bat或shutdown.bat来启动或关闭tomcat,linux环境下通过sh命令来调用startup.sh或shutdown.sh来控制tomcat启动或关闭,其实本质上是调用catalina.bat或catalin...

2019-01-22 15:04:10 7550

转载 Http状态码详解

状态码 含义 100 客户端应当继续发送请求。这个临时响应是用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。服务器必须在请求完成后向客户端发送一个最终响应。 101 服务器已经理解了客户端的请求,并将通过Upgrade 消息头通知客户端采用不同的协议来完成这个请求。在发送完这个响应最后的空行后...

2019-01-17 10:31:47 165

转载 JAVA设计模式什么鬼(解释器)——作者:凸凹里歐

解释,一定是针对某种语言的拆解、释意,并按照文法翻译、转换成另一种表达形式以达到目标能够理解的目的。比如我们都知道Java编程语言是人类可以理解的语言,程序写好后要先进行编译生成字节码(class文件),然后对此文件解释成机器码,最终机器才可以理解并执行,这就是解释器存在的意义。就拿我们人类的自然语言来举例,比如我们要进行英文翻译工作,首先要对一句话(表达式)进行拆解,而拆开后的单词就成了...

2019-01-16 14:11:11 176

转载 JAVA设计模式什么鬼(访问者)——作者:凸凹里歐

众所周知,对于数据的封装我们通常会用到POJO类,它除了getter和setter之外是不包含任何业务逻辑的,也就是说它只对应一组数据并不包含任何功能。举个最常见的例子,比如数据库对应的实体类,一般我们不会在类里封装上业务逻辑,而是放在专门的Service类里去处理,也就是Service作为拜访者去访问实体类封装的数据。现在假设有这么一个场景,我们有很多的实体数据封装类(各类食品)都要进行一段...

2019-01-16 14:03:40 215

转载 JAVA设计模式什么鬼(建造者)——作者:凸凹里歐

建造者,用于对复杂对象的构造、初始化,与工厂模式不同的是,建造者的目的在于把复杂构造过程从不同对象展现中抽离出来,使得同样的构造工序可以展现出不同的产品对象。打个比方,我们知道角色扮演类游戏中玩家可以选择不同的职业,各职业攻击力、防御力等等属性设定是不同的,比如战士的力量和体力强,法师的灵力强而体力弱,以及穿戴各种装备引起的属性附加。假设我们用同一个类来描述这些角色,那么应该怎样新建人...

2019-01-09 08:54:31 239

转载 JAVA设计模式什么鬼(命令模式)——作者:凸凹里歐

命令模式,通常指的是一个对象向另一个对象发送信息指令的行为模型,比如父母命令孩子写作业、将军命令士兵进攻等。我们经过分析拆解方法会得到三个模块,首先得有命令发送方,接着是被传递的命令本身,最后就是命令的接收执行方了。那么,这样拆解到底有什么好处?让我们先来看一个最简单的例子,电灯泡。既然是电灯那一定对应通电和断电的行为接口了,两个接口方法互斥,我们就叫它Switchable吧。1 p...

2019-01-09 08:54:20 270

转载 JAVA设计模式什么鬼(桥接)——作者:凸凹里歐

要致富先修路,一说到路啊桥啊我们就想到它的重要性,它可以把本是相对孤立的经济体连接起来,使得双边贸易往来更加便利,经济合作更加高效。桥接,用桥梁连接,英文叫Bridge,其实就是桥梁之意。现在假设我们要作一幅抽象画,用各种形状的色块来表达世界文化的多样性,起名《形形色色》。需要什么工具来作画呢?一堆彩笔和一堆尺子。嗯,据我所知,这两种工具分别产于两个孤岛,北岛有很多颜料,擅长制造画...

2019-01-08 14:44:25 203

转载 JAVA设计模式什么鬼(抽象工厂)——作者:凸凹里歐

抽象工厂,意味着工厂的泛化,也就是说对多个工厂共通行为的抽取及概括。这和我们之前讲过的工厂方法模式十分类似,不同之处在于抽象工厂定义了更多的抽象行为,也就是多个工厂方法于抽象工厂中,其实它就是工厂方法的变种而已,所以建议读者先理解好工厂方法模式再回来看本章。我们都知道,在工厂方法模式中的每个实际的工厂只定义了一个工厂方法,如果产品种类繁多,并且能进行归类分族的话,那么我们便可以顺理成章的定...

2019-01-08 14:37:58 233

转载 JAVA设计模式什么鬼(工厂方法)——作者:凸凹里歐

工厂是对对象构造、实例化、初始化过程的一种封装,以提供给其他需要对象的地方去使用,以降低耦合,提高系统的扩展性,重用性。众所周知,当我们需要把类实例化成对象的时候,需要用到关键字new,比如Plane = new Plane(),这也是我们最常用的方式了。然而,这样做的结果就是会把这个对象的诞生过程死死捆绑在我们的代码里,宿主类与实例化过程强耦合。对于一些庞大复杂的系统来说,过多的实例化逻辑于...

2019-01-08 14:32:57 198

转载 JAVA设计模式什么鬼(代理)——作者:凸凹里歐

代理,代表打理,以他人的名义代表委托人打理其本职工作之外或不所能及的事务,达成合作关系并更高效地促成事务完成的目的。例如明星经纪人,他们并没有像明星一样会唱歌、跳舞或演戏,而是替明星打理一些无暇顾及的事务(这并不代表可以代理分外之事),比如推广与宣传,合同谈判啊之类,达成和约后他们才会通知明星去表演。再比如机票销售代理商既不造飞机也不提供乘机服务,他们只负责卖票,代理律师并不会因胜诉获得赔偿金或者...

2019-01-08 14:26:27 218

转载 JAVA设计模式什么鬼(享元)——作者:凸凹里歐

元,始也,本初,根源之意,计算机中的二进制“元”其实就1和0,这两个东西组合起来有无穷无尽的可能,这便形成了计算机中的大千世界,正如“阴”和“阳”为万物之首一样,这也是为什么称其为二元。顾名思义,享元就是共享本元的意思,然而这个模式的英文叫做Flyweight,能飞起来一般的重量,轻量级的意思,“享元”其实并非意译,但这并不影响其对这个模式的最佳诠释。我们来看一个实例,比如我们要开发一款RPG...

2019-01-08 14:19:58 154

转载 JAVA设计模式什么鬼(观察者)——作者:凸凹里歐

眼观六路,耳听八方,观察者很忙,随时监控着关注对象的一举一动。记者、摄影师、重症监护的护士,被套的股民,无不为了完成任务疲于奔命,而观察者模式正是为了解决这个问题而诞生。观察者的痛点到底在哪里呢?让我们用购物来做例程,假设某件商品(水果手机)卖得非常火爆,长期处于脱销的状态。由于供不应求,师徒四人也加入了抢购的队伍,不时的去商店询问是否有货,先看商店类代码。 1 public cla...

2019-01-08 14:13:01 178

转载 JAVA设计模式什么鬼(责任链)——作者:凸凹里歐

曾经有这么一些零散的功能节点,他们各自承担各自的义务,分工明确,各司其职。为了更高效,更完整地解决客户的问题,他们发扬团队精神,互相串联起来形成一个有序的责任传递链表,于是责任链模式诞生了。当然,它的结构也不一定非得是链表,甚至可以是树型分叉结构,这要根据业务场景看怎样去灵活运用,但其核心意义是为了处理某种连续的流程,并确保业务一定能走到相应的责任节点上并得到相应的处理。说到这里想必大家已...

2019-01-08 14:06:59 141

转载 JAVA设计模式什么鬼(迭代器)——作者:凸凹里歐

方法迭代,代的更迭,从初代到末代的遍历,指对某类集合中的每个元素按顺序取出的行为。举个例子,通常我们读小说是从前往后翻,一页接着一页地读,这样我们才可以了解一个连续完整的故事,那这就需要我们顺序地迭代整本书的每一页内容。相信大家都用过集合类吧,最常用的比如List,Set,Map以及各种各样不同数据表示实现,总之是把某一批类似的元素按某种数据结构集合起来作为一个整体来引用,不至于元素丢的到...

2019-01-08 14:01:49 155

转载 JAVA设计模式什么鬼(单例)——作者:凸凹里歐

之前我们讲过面向对象以及封装、继承、多态三大特性,底子打好了那我们就把设计模式一个个拆开来看看到底都是神些什么鬼,我们先从简单的单例说起吧。单例,顾名思义,整个系统其实就只有一个实例存在,不能再多,否则就不叫单例。那我们把整个宇宙看做是一个庞大的系统,这宇宙里有各种对象存在,人啊,动物啊,植物啊不胜枚举,这些都是实例,丰富多彩的世界是美好的。然而,持续几千年的战争给世界带来了巨大灾难,尤其是宗教战...

2019-01-08 13:55:35 135

转载 JAVA设计模式什么鬼(初探)——作者:凸凹里歐

有物混成,先天地生。寂兮寥兮,独立而不改,周行而不殆,可以为天地母。吾不知其名,字之曰道,强为之名曰大。大曰逝,逝曰远,远曰反。道是什么?道可道,非常道。道不明,说不尽的才算是道,它是自然法则的终极抽象。但至少在某一方面,它是各种事物如何组织在一起以及进行沟通互动的原始规律。而在软件设计中,各个模块之间怎样组织通信成为一个优雅健壮的整体,以便保证良好的可重用性和扩展性,这对于设计人员至关重...

2019-01-08 13:55:15 145

空空如也

空空如也

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

TA关注的人

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