自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

老王的orange

每天灌水一点点,长此以往,大海将会出现!

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

原创 由浅到深分析Synchronized,彻底理解Synchronized底层实现原理

这篇文章会记录Synchronized的常用使用场景与Synchronized的底层实现原理。虽然我们平时经常会在多线程中使用Synchronized关键字,但可能对于这个我们很熟悉的关键字的底层到底是怎样实现的没有过多关注。作为开发者,既然使用到了,可以试着去一步一步揭开下它的底层面纱。为什么要使用Synchronized?首先我们来看下这段代码public class Demo { ...

2019-06-12 18:24:06 330

原创 通过git上传本地代码到github

一、前言:之前自己在工作中,代码版本管理一直用的是svn。今晚突然想传个自己的demo到github上,记录下。二、下载git.下载安装git就不说了,网上教程很多。有一点:下载后我看到有网友说需要邮箱注册,由于我是之前就已经下载好,时间有点长不记得有没有做这步 。在gitbash界面输入如下内容即可完成邮箱的注册:$gitconfig--globaluser.name...

2019-03-11 22:53:33 2887

原创 记录maven 整合alipay-sdk-java20170307171631.jar包到本地仓库

1、在使用支付宝支付时,需要用到相关jar包,alipay-sdk-java20170307171631.jar需要去支付宝官方下载。支付宝并没有放入maven中央仓库。需要我们手动导入2、下载alipay-sdk-java20170307171631.jar. 我放入了E:\workspace文件中。3.然后打开idea的 ,进入workspace路径下 执行:mvn inst...

2019-02-27 22:12:29 4661

原创 记录阿里云(centos版)安装配置mysql数据库

一、前言自己在阿里云安装mysql过程中,会出现一些小问题。经过在网上查找了答案,折腾下来才最终安装成功。本篇文章记录下安装过程吧。二、卸载系统中的mysql首先运行:rpm -qa|grep -i  mysql 会显示安装的mysql各软件包mysql57-community-release-el7-8.noarchmysql-community-server-5.7.2...

2019-02-27 14:38:48 399

原创 记录maven打包项目成jar 并在windows环境下运行jar包

一、前言:最近需要把项目打成jar,并部署在windows环境,记录下部署过程。二:首先项目结构:其中libs文件夹是需要手动导入的jar,无法从maven远程仓库中下载的。由于在执行 maven package命令时打包会默认从远程仓库下载,会出现找不到jar的报错。比如博主我需要连接sqlserver数据库的驱动jar包:sqljdbc4,就需要手动导入。所以在用maven打包...

2018-11-28 17:42:03 2489

原创 idea导出可执行的jar包

一、前言:最近需要把一个单独的模块打成jar放到服务器上去测试,故自己参照了网上的流程,整理下自己打包的过程。环境信息:windows10intellij IDEA2017.3.5 jdk 1.8二、打jar包1、idea菜单File ->Project Structure,2、选择Artifacts,点击+,选择jar,选择From modules wi...

2018-11-07 11:49:37 1227

原创 Java设计模式12:命令模式

一、什么是命令模式?在阎宏博士的《JAVA与模式》一书中开头是这样描述命令(Command)模式的:命令模式属于对象的行为模式。命令模式又称为行动(Action)模式或交易(Transaction)模式。命令模式把一个请求或者操作封装到一个对象中。命令模式允许系统使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。二 、命令模式涉及到五个角色,它...

2018-10-19 10:20:16 199

原创 Java设计模式11:观察者模式

一、什么是观察者模式在阎宏博士的《JAVA与模式》一书中开头是这样描述观察者(Observer)模式的:  观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。  观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某...

2018-10-18 11:28:01 278

原创 Java设计模式10: 策略模式

一、什么是策略模式?策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客户端的情况下发生变化。策略模式把一个系列的算法封装到一个系列的具体策略类里面,作为一个抽象策略类的子类或策略接口的实现类。简单地说:准备一组算法,并将每一个算法封装起来,使它们可以互换。这个模式涉及到3个角色: ...

2018-10-17 19:54:17 169

原创 Java实现FTP服务器文件的上传和下载

一、前言:最近刚好需要实现这个功能:实现ftp的上传和下载。在网上找了下资料,总结了下。直接上代码:二、代码示例:首先使用到的maven依赖:<dependency>    <groupId>commons-net</groupId>    <artifactId>commons-net</artifactId>  ...

2018-10-15 17:01:29 2833 3

原创 Java设计模式9:桥接模式

一、桥接模式:桥接模式是用于把抽象化与实现化解耦,使得二者可以独立变化。这种类型的设计模式属于结构型模式,它通过提供抽象化和实现化之间的桥接结构,来实现二者的解耦。二、示例代码:先来考虑下如下场景:发送消息功能。基本上所有带业务流程处理的系统都会有这样的功能,比如OA上有尚未处理完毕的文件,需要发送一条消息提示他。从业务上看,消息又分为普通消息、加急消息多种,不同的消息类型,业务功...

2018-10-12 16:24:11 265

原创 Java设计模式8:外观模式

一、外观模式的定义:外观模式隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。 二、外观模式的结构:1、外观角色:外观模式的核心。它被客户角色调用,它熟悉子系统的功能。内部根据客户角色的需求预定了几种功能的组合。2、子系统角色:实现了子系统的功能。它...

2018-10-08 14:47:59 174

原创 Java设计模式7:装饰器模式

一、装饰器模式的定义:装饰器模式:就是对已经存在的某些类进行装饰,以此来扩展一些功能。 二、模式解释:Component(抽象构件角色):真实对象和装饰对象有相同的接口。这样,客户端对象就能够以与真实对象相同的方式同装饰对象交互。ConcreteComponent(具体构件角色):真实对象,实现Component接口。Decorator(装饰角色):持有一个抽象构件的引用。...

2018-09-30 17:44:13 278

原创 Java设计模式6:适配器模式

一、适配器模式定义:适配器模式说的是,可以把一个类的接口变换成客户端所期待的另一种接口,使得原本因接口不匹配而无法在一起工作的两个类可以一起工作。举个例子:比方说我有一个台灯,其插头是标准的两相的交流电插头,即阳极、阴极。我旅游到了一个地方想用自己的台灯,但发现旅馆里面只有三相的插头,即在阳极、阴极的基础上还多了一个地级。这时候怎么办呢,一个两相到三相的转换器(适配器)就能解决这个问题了,...

2018-09-30 15:25:13 228

原创 Java设计模式5:原型模式

一、原型模式的定义:所谓原型模式就是用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。为什么要用原型模式:在应用程序中,有些对象比较复杂,其创建过程过于复杂,而且我们又需要频繁的利用该对象,如果这个时候我们按照常规思维new该对象,那么务必会带来非常多的麻烦,这个时候我们就希望可以利用一个已有的对象来不断对他进行复制就好了,这就是编程中的“克隆”。这里原型模式就可以满足我...

2018-09-30 11:51:31 124

原创 Java设计模式4:建造者模式

一、什么是建造者模式?1、定义:是将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性,其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。2.模式讲解:1、Builder:给出一个抽象接口,以规范产品对象...

2018-09-29 16:50:17 156

原创 Java设计模式3:单例模式

前言:单例模式是一种常用的软件设计模式,在我们项目与所用到的各种框架中会经常见到。本文就详细介绍下,几种单例模式的常见写法。一、单例模式:单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。在计算机系统中,线程池、缓存、日志对象、对话框、打印机、显卡的驱动程序对象常被设计成单例。这些应用都或多或少具有资源管理器的功能。每台计算机可以有若干个打印机,但只能有一个Pri...

2018-09-29 14:06:48 146

原创 Java设计模式2:工厂方法模式

一、工厂方法模式概念:提供一个用于创建对象的接口(工厂接口),让其实现类(工厂实现类)决定实例化哪一个类(产品类),并且由该实现类创建对应类的实例。二、为什么要使用工厂方法模式:可以一定程度上解耦,消费者和产品实现类隔离开,只依赖产品接口(抽象产品),产品实现类如何改动与消费者完全无关。可以一定程度增加扩展性,若增加一个产品实现,只需要实现产品接口,修改工厂创建产品的方法,消费者可...

2018-09-29 09:32:41 182

原创 Java设计模式1:简单工厂模式

前言:设计模式是什么?设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易地被他人理解、保证代码可靠性。毫无疑问,设计模式于己于人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石脉络,如同大厦的结构一样。模式分为3大类总共23种:1、创建型模式,共5种工厂方...

2018-09-28 16:06:15 277

原创 解决Spring @Autowired注解在非Controller中注入为null的问题

一、序言今天在写一个非Controller类,里面用了@Autowired注入了@Autowiredprivate ObjectMapper objectMapper;时,在调用objectMapper的readValue()方法一直报 java.lang.nullpointerexception 异常,打断点才发现注入的objectMapper一直为空。二、解决办法通过@...

2018-09-27 10:42:09 2765

原创 springboot自带定时器实现定时任务的开启关闭以及定时时间可以配置

一、序言:最近项目需要用到定时任务,需要完成一个定时功能。经过了解,项目中目前实现定时任务,一般有三种选择,一是用Java自带的timer类。稍微看了一下,可以实现大部分的指定频率的任务的调度(timer.schedule()),也可以实现关闭和开启(timer.cancle)。但是用其来实现某天的某个时间或者某月的某一天调度任务有点不方便。二是采用Quartz 调度器实现。这是一个功能很...

2018-08-28 17:27:11 97868 20

原创 生产环境下springboot中配置禁用swagger

一、序言在生产环境下,我们需要关闭swagger配置,避免暴露接口的这种危险行为。二、方法:禁用方法1:使用注解@Profile({"dev","test"}) 表示在开发或测试环境开启,而在生产关闭。(推荐使用)禁用方法2:使用注解@ConditionalOnProperty(name = "swagger.enable", havingValue = "true") 然后在测试...

2018-08-27 16:46:49 6264 6

原创 SpringBoot整合Swagger2

一、序言:之前开发项目前后端对接,需要手写接口文档。文档更新太多时,会经常出现遗漏,这样就会出现前后端不一致的现象。而swagger的出现很好的解决了这一现象,也大大方便了开发人员,后端开发人员在测试接口方面也得到极大的效率提升。现在就介绍下springBoot整合Swagger2。二、springboot整合swagger21、依赖: <dependency&...

2018-08-27 16:07:52 3065

原创 为什么要重写equals,怎么重写equals,重写equals时还必须重写hashcode方法,详解

一、为什么要重写equals?默认equals在比较两个对象时,是比较他们是否指向同一个地址的(作用跟 == 相同)。但有时,我们希望两个对象只要是某些属性相同就认为他们的equals返回为true。比如:Student s1 = new Student(1,"name1");Student s2 = new Student(1,"name1");如果不重写equals的话,他们是不相同的,所...

2018-06-09 19:56:20 754

原创 Springboot统一异常处理并保存到数据库

一.统一异常处理之前我们平时在项目中遇到异常,用try-catch这种标准的捕获方式处理就可以解决问题,但是在每个接口中都这么写,这种重复造轮子的事情对于我们程序员当然是不太愿意的。然而我们可以在springboot项目中利用@ControllerAdvice 这个注解可以更好的实现异常的捕获处理。@ControllerAdvice,是spring3.2提供的新注解,从名字上就可以看出大体的意思是...

2018-05-30 14:31:10 6802 2

原创 JAVA生成带LOGO的二维码

最近刚好在做一个基于二维码的电子优惠券,便弄了一个生成Logo的二维码工具类。package com.left.QrCode;import com.google.zxing.BarcodeFormat;import com.google.zxing.EncodeHintType;import com.google.zxing.MultiFormatWriter;import com.go...

2018-05-29 19:09:58 240

原创 Springboot整合dubbo构建多模块项目

之前项目由于要用到dubbo,用了一段时间之后,觉得有必要简单总结下springboot+dubbo的整合。我们的项目其实主要分为三个模块:card、common、core、server。其中card模块就是controller层、common模块主要放一些实体类+server接口、core层就是map的xml文件 + mapper映射接口,最后server模块就是server接口的实现类了。下面...

2018-05-29 15:26:27 2643

转载 Java中Synchronized的用法

原文:http://blog.csdn.net/luoweifu/article/details/46613015 作者:luoweifu synchronized是Java中的关键字,是一种同步锁。它修饰的对象有以下几种: 1. 修饰一个代码块,被修饰的代码块称为同步语句块,其作用的范围是大括号{}括起来的代码,作用的对象是调用这个代码块的对象; 2. 修饰一个方法,被修饰的方法称为同步方法,其...

2018-04-11 19:55:30 115

转载 java 四种内部类 使用细节(含代码)

一: 内部类    定义在类体部,方法体部,甚至比方法体更小的代码块内部的类(if 语句里面等)    1.静态内部类(内部类中最简单的形式)        1.声明在类体部,方法体外,并且使用static修饰的内部类        2.访问特点可以类比静态变量和静态方法        3.脱离外部类的实例独立创建            在外部类的外部构建内部类的实例               ...

2018-03-31 19:10:59 616

转载 Redis实现主从复制(master-slave)

一、Master&Slave是什么?         也就是我们所说的主从复制,主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slave以读为主。二、它能干嘛?       1、读写分离;       2、容灾恢复。三、怎么玩?       1、配从(库)不配主(库);       2、从库配置:slaveof [主库IP] [主库端口...

2018-03-31 16:29:07 634

原创 浅谈java内存泄露

JAVA 中的内存泄露:内存泄漏是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成内存空间的浪费称为内存泄漏。长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄漏,尽管短生命周期对象已经不再需要,但是因为长生命周期持有它的引用而导致不能被回收,这就是Java中内存泄漏的发生场景。java的一个最显著的优势是内存管理。你只需要简单的创建对象而不需要负责释放空间...

2018-03-22 21:00:05 217

转载 spring boot 整合redis

1.新建Spring Boot项目添加spring-boot-starter-data-redis依赖<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId&gt...

2018-03-20 14:39:26 118

转载 增加和删除数据时,为什么LinkedList通常比ArrayList快?

  实验  首先我们做一个实验:将10万条String类型的数据分别添加到一个LinkedList和一个ArrayList中,且每次都是在第0位(即首位)插入数据,代码如下结果是LinkedList比ArrayList要快: ArrayList平均用了500毫秒,而LinkedList平均只用了15毫秒;进行多次实验你就会发现,添加的数据量越大,LinkedList的速度优势越明显,这是为什么呢?...

2018-03-11 14:36:03 863 1

原创 java中父类有static修饰的方法其子类能继承吗?若子类也有该方法,是覆盖还是重写?

之前我们在说子类关于父类之间联系与关系时,都是在说普通方法。最近刚好在网上看到的一个问题,于是自己找了下答案,也亲自做了个小dome。先说结论:如果父类和子类都有相同的静态成员方法时,父类变量就执行父类静态成员;子类变量就执行子类静态成员。如果子类没有相应的静态成员方法,子类变量就执行父类的静态成员。分析:1、子类继承父类的时候,会在子类的构造函数中调用父类的构造函数,这是一个很关键的地方,这意味...

2018-03-11 11:34:11 2061

转载 Oracle远程登录命令

Oracle远程登录命令sqlplus登陆方式sqlplus有几种登陆方式 比如:1.C: > sqlplus "/as sysdba" C: > sqlplus / as sysdba --以操作系统权限认证的oracle sys管理员登陆2.C: > sqlplus /nolog --不在cmd或者terminal当中暴露密码

2017-04-16 15:25:22 1134

转载 Spring注解@Component、@Repository、@Service、@Controller区别

Spring注解@Component、@Repository、@Service、@Controller区别spring 2.5中除了提供 @Component注释外,还定义了几个拥有特殊语义的注释,它们分别是:@Repository、@Service和 @Controller。在目前的 Spring版本中,这 3 个注释和 @Component 是等效的,但是从注释类的命名

2017-03-22 11:14:41 959

空空如也

空空如也

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

TA关注的人

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