自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

幡然醒悟的博客

一个转行后一年多才从业务代码里幡然醒悟的程序猿的成长之路。

  • 博客(18)
  • 收藏
  • 关注

原创 关于IDEA不能即时编译的解决办法

撸个代码,同一个坑踩了三次,导致提交代码后同事和测试环境启动报错。作为一个以严谨著称的职业,丢脸了。这个坑就是使用IDEA进行编码的时候,如果不手动rebuild或者启动单元测试用例,不打开错误文件的话,是不会有代码错误提示的。这就导致有时候粗心提交代码,单元测试中的内容可能没有同步进行更新,代码提交后,就会导致编译报错。那么该如何解决这个问题呢,我了许多关于IDEA自己的设置,都没办法解决,后来...

2018-06-01 17:25:07 21386 2

原创 23种设计模式之-----观察者模式(Observer Pattern)

进入正题之前,我给对于设计模式来说还是新手的同学推荐一本学习设计模式的书,这本书叫做《Head First设计模式》,如果可能的话,看英文原版能让你更加贴近于作者的思想。进入正题,这次我学习的是观察者模式(Observer Pattern),在java语言中用得最多的设计模式之一。观察者模式,又叫发布-订阅模式,具体的定义是:定义了对象之间一对多的依赖,当一个对象的状态改变时,它的所有依赖

2018-01-02 19:51:27 997

原创 23种设计模式之-----建造者模式(Builder Pattern)

定义:建造者模式,又叫生成器模式,它的核心思想是 将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。类图:建造者模式的几个角色:产品(product):需要组装的具体产品,内部存在自己的属性和特诊。抽象建造(Builder):对产品部件进行加工,对产品进行组建。可以是抽象类,也可以是接口。具体建造(ConcreteBuilder):抽象建造

2017-12-20 18:23:14 331

原创 23种设计模式之-----模板方法模式(Template Method Pattern)

曾经在银行做过增值税管理系统,对于财务会计上的增值税的计算,需要严格按照(卖出价-买入价)* 税率来计算,也就是说,我们需要这样一个流程,我们需要先统计整个卖出价格,再统计出整个买入价格,然后作差后,再乘以税率。必须符合整个流程顺序,这样的一个流程就比较符合模板方法模式了。模板方法模式(Template Method Pattern):准备一个抽象类,将部分逻辑以具体方法以及具体构造函

2017-12-18 18:43:36 256

原创 23种设计模式之-----适配器模式(Adapter Pattern)

先举个栗子,在生活中我们会常遇到这样的问题,你想要一罐草莓果酱,但是果农呢只能提供给你新鲜好吃的草莓果子,这就不是你想要的呀,于是呀,果农就先把草莓卖到工厂里,果酱工厂对草莓进行加工,加工成果酱之后呢,你再去工厂那里把草莓果酱买回来(忽略中间商店)。那么这个果酱加工厂呢,就算是一个适配器(Adapter),它能帮你把你不是你想要的草莓加工成你想要的草莓果酱。这个过程就是适配器模式。适配器模式(

2017-12-11 23:33:49 207

原创 23种设计模式之-----门面模式(Facade Pattern)

门面模式的理解:设计模式中的门面模式是指当用户需要对多个子系统进行调用时,无需由用户亲自去调用各个子系统的方法,我们只需要创建一个类似于门面的类,由这个类去对子系统的各个方法进行调用,而用户只需要跟这个门面类进行交互就可以。举个栗子:比如淘宝美团的跑腿代购,我需要买点东西,买点菜,然后买个烧水壶,还有一袋吐司面包。。。如果没有这个跑腿代购呢,我就需要到菜市场去买才,然后转移阵地到苏宁啊

2017-12-06 23:21:52 322

转载 23种设计模式之-----策略模式(Strategy Pattern)

在阎宏博士的《JAVA与模式》一书中开头是这样描述策略(Strategy)模式的:  策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通常把一个系列的算法包装到一系

2017-11-30 19:44:54 177

原创 23种设计模式之-----代理模式(Proxy Pattern)

代理模式的定义:代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。举例说明,就是一个人或者一个机构代表另一个人或者另一个机构采取行动。在一些情况下,一个客户不想或者不能够直接引用一个对象,而代理对象可以在客户端和目标对象之前起到中介的作用。比较典型的例子,就像生活中的大明星,他们拥有自己的经纪人,那么一般很多事就由经纪人代替他们自己来进行。比如接一部电视剧1、静态代理

2017-11-28 21:24:51 219

原创 23种设计模式之-----工厂方法模式(Method Factory pattern)

沿用女娃造人的故事:我们把造人的炉子抽象一下,分成个来造,白色的炉子造白人,黑色的炉子造黑人,黄色的炉子造黄种人。那么:人的接口:public interface Human { //会说话 public void talk(); //会笑 public void laugh(); //会哭 public void cry();}黄种人:pu...

2017-11-18 20:32:14 179

原创 23种设计模式之-----抽象工厂模式(AbstractFactory pattern)

抽象工厂模式(Abstract Factory Pattern)是工厂方法模式的进一步抽象,其英文原话"Provide an interface for creating families of related or dependent objects without specifying their concrete classes",翻译,“为创建一组相关或相互依赖的对象提供一个借口,无需指定...

2017-11-15 17:53:35 283

转载 23种设计模式之-----简单工厂(静态工厂)模式(SimpleFactory Pattern)

这里引用https://www.kailing.pub/PdfReader/web/viewer.html?file=24DesignPattern讲解设计模式一文中的例子。这个例子很形象而且通俗易懂,这个例子是一个女娲造人的故事。女娲造人的时候呢,把人分成了三个人种,然后用泥在太上老君的八卦炉来炼。事先呢先确定好人的一些属性和能力。public interface Human { //会...

2017-10-20 13:16:19 196

原创 23种设计模式之----单例模式(Singleton Pattern)

在生活中我们可能遇到这样的情况,家里煮饭用的电饭锅(家里只有一个的情况),早上煮,用它,晚上煮,还是用它,你爸煮用它,你妈煮还是用它,这就类似于我们单例模式的场景了。单例模式是我们常提到的最多的设计模式之一,单例模式的特点如下:1、有且只有一个实例。2、该实例是他自己实例化的。3、需向整个系统提供的都是这一个实例。那么,我们要怎么实现一个单例模式呢?这里我给大家提供几种方法:

2017-10-19 16:21:44 201

转载 servlet的生命周期和工作原理

servlet的生命周期:加载 - 实例化 - 提供服务 - 销毁;1、加载和初始化阶段:调用init()方法。2、提供服务阶段:调用service()方法。3、销毁阶段:调用destroy()方法。Servlet初始化阶段:  在下列时刻Servlet容器装载Servlet:    1,Servlet容器启动时自动装载某些Servlet,实现它只需要在we

2017-10-18 12:41:18 138

原创 关于java中sleep()和wait()方法的区别

最近由于换工作,在多线程这一块被很多大佬虐得遍体是伤怀疑自我。进入正题,关于java中sleep()和wait()区别主要如下:1、若对象资源被同步或锁住,sleep()方法会主动让出cpu,然后cpu可以去执行其他任务,直到sleep()方法给定的时间截止,然后cpu会重新回到该线程继续向下执行。但sleep()并不会释放锁或让出同步资源。wait()方法会让当前线程暂时让出同步资源,以

2017-10-17 17:27:41 538

转载 利用SpringMVC定义拦截器实现防止重复提交

之前谈到过前端页面防止重复提交的方法,现在谈谈后端拦截器实现方式。自定义拦截器实现以下防重原理:1.初始化页面时生成一个唯一ID,将其放在页面隐藏域和session中2.拦截器拦截请求,校验来自页面请求中的唯一ID与session中的ID是否一致3.判断,如果一致则提交成功并移除session中的ID,不一致则说明重复提交并记录日志一、自定义注解package com.

2017-10-16 15:27:43 477

原创 IntelliJ IDEA如何创建一个简单的java工程

java语言是一种非常流行的开发语言,针对java语言开发而言,选择一个合适的开发工具可以有效的提高我们的开发效率,现在各大企业用得较多的开发工具有两个:Eclipse 和 IntelliJ IDEA 。Eclipse是一款比较成熟的java开发工具,有很大的市场占有量,这里就不过多介绍。而IntelliJ IDEA是近几年流行起来的一款开发工具,它有非常完善的错误提示机制及开发提示等优点(不

2017-10-11 14:18:19 2826

转载 如何实现一个线程安全的map?

我们都知道,map是线程不安全的,那么我们如何才能实现一个线程安全的map呢?这里介绍4种实现方式:1、使用synchronized来进行约束:synchronized(obj){    value = map.get(key);}2、使用JDK1.5版本所提供的lock机制,java.util.concurrent.locks.Lock:      loc

2017-10-10 13:22:37 3325 2

原创 ajax异步请求防止重复提交的方法

JS通过ajax发起异步请求时,经常会出现一个按钮快速多次点击时,请求进行了多次提交,可能导致很多不必要的问题出现,比如写入某些脏数据等。  此处针对ajax发起请求多次提交的问题进行JS代码处理的简单方法有如下两种:1、定义lock机制://提交var lock = true;//防止重复提交定义锁$('.saveRemark').click(function(){v

2017-10-10 12:15:14 12841

空空如也

空空如也

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

TA关注的人

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