
Java
文章平均质量分 96
qiujingxu
这个作者很懒,什么都没留下…
展开
-
Java 反射机制详解(一)
Java 反射机制详解(一)主要介绍以下几方面内容理解 Class 类 理解 Java 的类加载机制 学会使用 ClassLoader 进行类加载 理解反射的机制 掌握 Constructor、Method、Field 类的用法 理解并掌握动态代理 1.Class类通过Class类可以得到的信息某个类的数据成员名、方法和构造器、某个类到底实现了哪些接口等,对于每个类而言,...转载 2018-11-29 13:57:53 · 214 阅读 · 0 评论 -
JAVA设计模式什么鬼(责任链)——作者:凸凹里歐
曾经有这么一些零散的功能节点,他们各自承担各自的义务,分工明确,各司其职。为了更高效,更完整地解决客户的问题,他们发扬团队精神,互相串联起来形成一个有序的责任传递链表,于是责任链模式诞生了。当然,它的结构也不一定非得是链表,甚至可以是树型分叉结构,这要根据业务场景看怎样去灵活运用,但其核心意义是为了处理某种连续的流程,并确保业务一定能走到相应的责任节点上并得到相应的处理。说到这里想必大家已...转载 2019-01-08 14:06:59 · 162 阅读 · 0 评论 -
JAVA设计模式什么鬼(观察者)——作者:凸凹里歐
眼观六路,耳听八方,观察者很忙,随时监控着关注对象的一举一动。记者、摄影师、重症监护的护士,被套的股民,无不为了完成任务疲于奔命,而观察者模式正是为了解决这个问题而诞生。观察者的痛点到底在哪里呢?让我们用购物来做例程,假设某件商品(水果手机)卖得非常火爆,长期处于脱销的状态。由于供不应求,师徒四人也加入了抢购的队伍,不时的去商店询问是否有货,先看商店类代码。 1 public cla...转载 2019-01-08 14:13:01 · 197 阅读 · 0 评论 -
JAVA设计模式什么鬼(享元)——作者:凸凹里歐
元,始也,本初,根源之意,计算机中的二进制“元”其实就1和0,这两个东西组合起来有无穷无尽的可能,这便形成了计算机中的大千世界,正如“阴”和“阳”为万物之首一样,这也是为什么称其为二元。顾名思义,享元就是共享本元的意思,然而这个模式的英文叫做Flyweight,能飞起来一般的重量,轻量级的意思,“享元”其实并非意译,但这并不影响其对这个模式的最佳诠释。我们来看一个实例,比如我们要开发一款RPG...转载 2019-01-08 14:19:58 · 169 阅读 · 0 评论 -
JAVA设计模式什么鬼(代理)——作者:凸凹里歐
代理,代表打理,以他人的名义代表委托人打理其本职工作之外或不所能及的事务,达成合作关系并更高效地促成事务完成的目的。例如明星经纪人,他们并没有像明星一样会唱歌、跳舞或演戏,而是替明星打理一些无暇顾及的事务(这并不代表可以代理分外之事),比如推广与宣传,合同谈判啊之类,达成和约后他们才会通知明星去表演。再比如机票销售代理商既不造飞机也不提供乘机服务,他们只负责卖票,代理律师并不会因胜诉获得赔偿金或者...转载 2019-01-08 14:26:27 · 238 阅读 · 0 评论 -
JAVA设计模式什么鬼(工厂方法)——作者:凸凹里歐
工厂是对对象构造、实例化、初始化过程的一种封装,以提供给其他需要对象的地方去使用,以降低耦合,提高系统的扩展性,重用性。众所周知,当我们需要把类实例化成对象的时候,需要用到关键字new,比如Plane = new Plane(),这也是我们最常用的方式了。然而,这样做的结果就是会把这个对象的诞生过程死死捆绑在我们的代码里,宿主类与实例化过程强耦合。对于一些庞大复杂的系统来说,过多的实例化逻辑于...转载 2019-01-08 14:32:57 · 210 阅读 · 0 评论 -
JAVA设计模式什么鬼(抽象工厂)——作者:凸凹里歐
抽象工厂,意味着工厂的泛化,也就是说对多个工厂共通行为的抽取及概括。这和我们之前讲过的工厂方法模式十分类似,不同之处在于抽象工厂定义了更多的抽象行为,也就是多个工厂方法于抽象工厂中,其实它就是工厂方法的变种而已,所以建议读者先理解好工厂方法模式再回来看本章。我们都知道,在工厂方法模式中的每个实际的工厂只定义了一个工厂方法,如果产品种类繁多,并且能进行归类分族的话,那么我们便可以顺理成章的定...转载 2019-01-08 14:37:58 · 254 阅读 · 0 评论 -
JAVA设计模式什么鬼(桥接)——作者:凸凹里歐
要致富先修路,一说到路啊桥啊我们就想到它的重要性,它可以把本是相对孤立的经济体连接起来,使得双边贸易往来更加便利,经济合作更加高效。桥接,用桥梁连接,英文叫Bridge,其实就是桥梁之意。现在假设我们要作一幅抽象画,用各种形状的色块来表达世界文化的多样性,起名《形形色色》。需要什么工具来作画呢?一堆彩笔和一堆尺子。嗯,据我所知,这两种工具分别产于两个孤岛,北岛有很多颜料,擅长制造画...转载 2019-01-08 14:44:25 · 228 阅读 · 0 评论 -
JAVA设计模式什么鬼(建造者)——作者:凸凹里歐
建造者,用于对复杂对象的构造、初始化,与工厂模式不同的是,建造者的目的在于把复杂构造过程从不同对象展现中抽离出来,使得同样的构造工序可以展现出不同的产品对象。打个比方,我们知道角色扮演类游戏中玩家可以选择不同的职业,各职业攻击力、防御力等等属性设定是不同的,比如战士的力量和体力强,法师的灵力强而体力弱,以及穿戴各种装备引起的属性附加。假设我们用同一个类来描述这些角色,那么应该怎样新建人...转载 2019-01-09 08:54:31 · 256 阅读 · 0 评论 -
JAVA设计模式什么鬼(命令模式)——作者:凸凹里歐
命令模式,通常指的是一个对象向另一个对象发送信息指令的行为模型,比如父母命令孩子写作业、将军命令士兵进攻等。我们经过分析拆解方法会得到三个模块,首先得有命令发送方,接着是被传递的命令本身,最后就是命令的接收执行方了。那么,这样拆解到底有什么好处?让我们先来看一个最简单的例子,电灯泡。既然是电灯那一定对应通电和断电的行为接口了,两个接口方法互斥,我们就叫它Switchable吧。1 p...转载 2019-01-09 08:54:20 · 296 阅读 · 0 评论 -
JAVA设计模式什么鬼(访问者)——作者:凸凹里歐
众所周知,对于数据的封装我们通常会用到POJO类,它除了getter和setter之外是不包含任何业务逻辑的,也就是说它只对应一组数据并不包含任何功能。举个最常见的例子,比如数据库对应的实体类,一般我们不会在类里封装上业务逻辑,而是放在专门的Service类里去处理,也就是Service作为拜访者去访问实体类封装的数据。现在假设有这么一个场景,我们有很多的实体数据封装类(各类食品)都要进行一段...转载 2019-01-16 14:03:40 · 236 阅读 · 0 评论 -
JAVA设计模式什么鬼(解释器)——作者:凸凹里歐
解释,一定是针对某种语言的拆解、释意,并按照文法翻译、转换成另一种表达形式以达到目标能够理解的目的。比如我们都知道Java编程语言是人类可以理解的语言,程序写好后要先进行编译生成字节码(class文件),然后对此文件解释成机器码,最终机器才可以理解并执行,这就是解释器存在的意义。就拿我们人类的自然语言来举例,比如我们要进行英文翻译工作,首先要对一句话(表达式)进行拆解,而拆开后的单词就成了...转载 2019-01-16 14:11:11 · 197 阅读 · 0 评论 -
JAVA设计模式什么鬼(终章)——作者:凸凹里歐
设计模式已经全部讲完,习得23种招式后我们也该归纳总结一下了,实践需与理论相结合才能更好地举一反三,灵活运用。设计模式到底是什么?它是对整个软件系统的拆分,组装,并决定模块间关系以及如何互动、通信的某种模式。究其本质,设计模式就是以语言特性(面向对象三大特性)为硬件基础,再加持六大设计原则的灵魂组合而,总结出的一系列套路,本章要讲地就是灵魂。单一职责我们知道功能完备的软件系统是复杂的,系统...转载 2019-01-22 15:16:10 · 316 阅读 · 0 评论 -
JVM参数调优整理
当系统报OOM(Out of Memory)异常时常见有以下几个原因:老年代内存不足:java.lang.OutOfMemoryError:Javaheapspace; 永久代内存不足:java.lang.OutOfMemoryError:PermGenspace; 代码bug,占用内存无法及时回收。前两种情况就可能需要优化JVM分配的内存容量。一.参数配置1.linux:Tom...原创 2019-01-30 11:00:45 · 726 阅读 · 0 评论 -
JAVA CPU100%如何排查
下面给出两种系统下的排查步骤,都是一模一样的,只是命令稍有区别! 查消耗cpu最高的进程PID 根据PID查出消耗cpu最高的线程号 根据线程号查出对应的java线程,进行处理。 准备一行死循环代码:怎么跑,应该不用我说了,直接教大家怎么查!一.windows可能有人有疑问,我为什么要说windows版的!因为,我曾经给很多政府部门做过系统。我发现他们...转载 2019-01-31 09:02:31 · 7164 阅读 · 0 评论 -
HttpClent请求示例 Post Get
一.Post请求1.post请求http接口public static String httpPost(String url,Map<String,String> param_map,String encoding) throws ClientProtocolException, IOException { String result=""; //配置...原创 2019-02-12 11:21:22 · 783 阅读 · 0 评论 -
JAVA设计模式什么鬼(迭代器)——作者:凸凹里歐
方法迭代,代的更迭,从初代到末代的遍历,指对某类集合中的每个元素按顺序取出的行为。举个例子,通常我们读小说是从前往后翻,一页接着一页地读,这样我们才可以了解一个连续完整的故事,那这就需要我们顺序地迭代整本书的每一页内容。相信大家都用过集合类吧,最常用的比如List,Set,Map以及各种各样不同数据表示实现,总之是把某一批类似的元素按某种数据结构集合起来作为一个整体来引用,不至于元素丢的到...转载 2019-01-08 14:01:49 · 174 阅读 · 0 评论 -
JAVA设计模式什么鬼(单例)——作者:凸凹里歐
之前我们讲过面向对象以及封装、继承、多态三大特性,底子打好了那我们就把设计模式一个个拆开来看看到底都是神些什么鬼,我们先从简单的单例说起吧。单例,顾名思义,整个系统其实就只有一个实例存在,不能再多,否则就不叫单例。那我们把整个宇宙看做是一个庞大的系统,这宇宙里有各种对象存在,人啊,动物啊,植物啊不胜枚举,这些都是实例,丰富多彩的世界是美好的。然而,持续几千年的战争给世界带来了巨大灾难,尤其是宗教战...转载 2019-01-08 13:55:35 · 156 阅读 · 0 评论 -
JAVA设计模式什么鬼(初探)——作者:凸凹里歐
有物混成,先天地生。寂兮寥兮,独立而不改,周行而不殆,可以为天地母。吾不知其名,字之曰道,强为之名曰大。大曰逝,逝曰远,远曰反。道是什么?道可道,非常道。道不明,说不尽的才算是道,它是自然法则的终极抽象。但至少在某一方面,它是各种事物如何组织在一起以及进行沟通互动的原始规律。而在软件设计中,各个模块之间怎样组织通信成为一个优雅健壮的整体,以便保证良好的可重用性和扩展性,这对于设计人员至关重...转载 2019-01-08 13:55:15 · 160 阅读 · 0 评论 -
Java 反射机制详解(二)
Java 反射机制详解(二) 2.ClassLoader 类装载器是用来把类(class)装载进 JVM 的,JVM 规范定义了两种类型的类装载器:启动类装载器(bootstrap)和用户自定义装载器(user-defined class loader)。 JVM在运行时会产生3个类加载器组成的初始化加载器层次结构 ,如下图所示: public class ReflectionT...转载 2018-11-29 13:58:08 · 117 阅读 · 0 评论 -
Java 反射机制详解(三)
Java 反射机制详解(三)3.反射Reflection(反射)是Java被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的內部信息,并能直接操作任意对象的内部属性及方法,Java反射机制主要提供了以下功能: 在运行时构造任意一个类的对象Class 在运行时获取任意一个类所具有的成员变量Filed和方法Method 在运行时调用任意一个对象...转载 2018-11-29 13:58:25 · 161 阅读 · 0 评论 -
Java 反射机制详解(四)
Java 反射机制详解(四)4. 反射与泛型 定义一个泛型类:public class DAO<T> { //根据id获取一个对象 T get(Integer id){ return null; } //保存一个对象 void save(T entity){ }...转载 2018-11-29 13:57:34 · 229 阅读 · 0 评论 -
WebSocket简单样例
WebSocket简单样例1.目的:通过WebSocekt实现Java服务端将agent状态实时推送到html页面2. 测试环境:win7 64位 旗舰版,jdk8,Tomcat8,Mycelispe20143.服务端代码: import java.io.IOException;import java.util.Map;import java.util.concurrent....原创 2018-11-29 14:26:24 · 786 阅读 · 0 评论 -
JAVA POJO类重写toString方法
很多时候为了追踪数据,查找原因,需要重写toString方法,下面推荐一个比较好用的方法:使用Apache Commons Lang的ToStringBuilder类,有静态方法可用public String toString(){ return ToStringBuilder.reflectionToString(this);}输出:com.esale.pojo.t...转载 2018-12-11 14:57:32 · 2477 阅读 · 0 评论 -
JAVA设计模式什么鬼(备忘录)——作者:凸凹里歐
备忘录,备份曾经发生过的历史记录,以防忘记,之后便可以轻松回溯过往。想必我们曾经都干过很多蠢事导致糟糕的结果,当后悔莫及的时候已经是覆水难收了,只可惜这世界上没有后悔药,事后我们能做的只能去弥补过失,总结经验。除非穿越时空,时光倒流,利用爱因斯坦狭义相对论,超越光速回到过去,破镜重圆。然而世界是残酷的,人类至今最快的载人交通工具连达到光速的万分之一都显得遥不可及,更别说超越了。光速,宇宙间...转载 2018-12-29 12:03:09 · 131 阅读 · 0 评论 -
JAVA设计模式什么鬼(中介)——作者:凸凹里歐
中介,作用于多个事物之间充当交互沟通的媒介。我们的生活中有各种各样的媒介,比如一些传统媒体,书刊杂志,报纸,把信息传递给读者。再比如利用电子信息技术的互联网,作为一种新媒体,不单可以更高效地把信息传递给用户,而且可以反向地获得用户反馈评论,用户与用户之间亦可以进行沟通,这种全终端双向互通是传统媒体所不能及的。 除此之外,再如婚介所、房产中介、交换机组网、现代电子商务、C2C购物平台、手机、...转载 2018-12-29 13:48:59 · 189 阅读 · 0 评论 -
JAVA设计模式什么鬼(组合)——作者:凸凹里歐
组合,由于事物与事物之间存在某种关系,进而组织起来并形成某种结构并且可以共同发挥作用。组合模式所应用的就是树形结构以表达“部分/整体”的层次结构。相信我们都知道“二叉树”结构吧,根部分出来两个枝杈(左节点,右节点),每个枝杈上又可以继续分叉,直到末端的叶子为止。当然,二叉树算是最简单的树了,其实大自然中更多的是多叉树结构,我们来观察一些蕨类植物,宏观上看貌似这只是一片简单的叶子。 ...转载 2018-12-29 14:41:43 · 189 阅读 · 0 评论 -
JAVA设计模式什么鬼(装饰)——作者:凸凹里歐
装饰,在某物件基础上加以修饰,装点,使得原本的朴素变得华丽,达到化腐朽为神奇的效果。比如我们从开发商买来的毛坯房,必然要进行室内装潢这么一项工程,什么简约风啊,北欧风啊,地中海,美式中式等等,当然萝卜青菜各有所爱,每个人装出的房子都各有差异,但不管何种风格,这都是对原本毛坯房的装饰,留给业主按照自己的喜好进行二次加工,这也是为什么有时候毛坯二手房比装修过的要好卖,有成品就一定得有半成品,这样才能把...转载 2018-12-29 15:02:03 · 172 阅读 · 0 评论 -
JAVA设计模式什么鬼(门面)——作者:凸凹里歐
开门见山,门,建筑物的入口,面,脸也。门面(Facade),通常指店铺的门头外表部分,当然一定要临街才是好的商铺,在人流量大的地方营造更好的视觉冲击,这样会有更多等等机会暴露给潜在顾客,否则只能是靠“酒香不怕巷子深”,靠味道来吸引人了。 当然除了光鲜亮丽的外表,更重要的是门店提供的服务了。就拿餐饮来举例吧,如果没有这些门店我们都怎样吃饭呢?我们自己做又不会,算了还是找女友下厨吧。很简单...转载 2018-12-29 15:07:33 · 198 阅读 · 0 评论 -
JAVA设计模式什么鬼(模板方法)——作者:凸凹里歐
面向对象,是对事物属性与行为的封装,方法,指的就是行为。模板方法,显而易见是说某个方法充当了模板的作用,其充分利用了抽象类虚实结合的特性,虚部抽象预留,实部固定延续,以达到将某种固有行为延续至子类的目的。反观接口,则达不到这种目的。要搞明白模板方法,首先我们从接口与抽象类的区别切入,这也是面试官经常会问到的问题。汽车上的接口最常见的就是这几个了,点烟器,USB,AUX等等,很明显这些都是接...转载 2018-12-29 15:12:46 · 176 阅读 · 0 评论 -
JAVA设计模式什么鬼(状态)——作者:凸凹里歐
状态State,指某事物所处的状况或形态,比如水的三态,零下会变成固态冰,常温会是液态水,100℃会蒸发成气态的水蒸气。在这个地球生态系统中,水的总量并不会增加,也不会减少,只是随着温度的变化其分子间发生了稀松紧密的变化罢了,于是便有了不同的行为,比如流动、凝固、或是蒸腾,但对于其本质H2O分子对象并没有任何变化,变化的,只是其形态。当然,事物的状态都是不同的,有的多有的少。物质基本三...转载 2018-12-29 15:23:13 · 135 阅读 · 0 评论 -
JAVA设计模式什么鬼(策略)——作者:凸凹里歐
策略,Strategy,古时也称“计”,为了达成某个目标的方案,目标不同,方案也随之更改。例如特工执行任务时总要准备好几套方案以应对突如其来的变化,A计划实施过程中情况突变导致预案无法继续实施,则马上更换为B计划,正所谓计划不如变化快,提前策划固然非常重要,而随机应变更是不可或缺,只有保证这种可变的灵活性才能立于不败之地。世界永远都在变,唯一不变的就是变本身。作为有思想的码农,我们当然也不...转载 2018-12-29 15:28:47 · 164 阅读 · 0 评论 -
JAVA设计模式什么鬼(适配器)——作者:凸凹里歐
我们这个世界,充满着千奇百怪的对象,更有趣的是对象与对象间是存在着互动,沟通,这样世界才变得美妙。那到底是怎样互动呢?靠什么才能互动呢?是的,接口。比如你和朋友一起喝茶聊天,我们暂且不管声带,耳膜这些功能性对象, 那你们之间聊天的接口就是嘴巴耳朵了,嘴巴发送声波,耳朵接收声波,接口,一定是输入或输出的终端。好了,这是语言沟通,那如果是行为沟通呢,比如在一个夜黑风高的晚上,你跟你的另一半偷偷...转载 2018-12-29 15:39:26 · 193 阅读 · 0 评论 -
JAVA设计模式什么鬼(原型)——作者:凸凹里歐
原型(Prototype)是什么意思?工业生产中通常是指在量产之前研发出的概念实现,如果可行性满足即可参照原型进行量产。有人说了,那不就是印章?其实这并不怎么贴切,印章并不是最终实例,我更愿意称其为“类”!大家一定见过这种印章吧,就是皮带轮可以转动,可随意调整成自己需要的文字,其实跟我们的四大发明活字印刷同出一辙,我们填完表格签好字,行政人员拿这个往上一盖,一个日期便出现在落款出。...转载 2018-12-29 15:46:28 · 155 阅读 · 0 评论 -
Eclipse创建maven项目
一.环境eclipse 2018 64位 ,jdk 1.8,maven 3.6,tomcat 8.5 创建前先把上面环境配置好,这里就不详细描述了。二.创建步骤1.打开eclipse,file—》new —》project,选择Maven—》Maven Project,如图:点击Next:点击Next:我需要的是web项目故选择webapp,点击Next:...原创 2019-02-13 16:11:48 · 60269 阅读 · 11 评论