自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

faster

不积跬步无以至千里

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

原创 六大设计原则

面向对象六大设计原则单一职责(Single Responsibility Principle)引起类变化的原因只有一个,即一个类就负责一件事情单一职责要求定义一个类(不仅仅是类,大到模块,小到方法)时,功能要尽可能的简单,定义的越复杂,它能被可重用的可能性就越小。比如,常见的管理系统中,要在页面上展示一个列表数据,类结构如下:public interface UserApi<T...

2019-05-13 11:19:22 270

原创 spring之初始化

spring之bean一切皆为beanbean初始化一切皆为bean  Spring 核心容器就是一个超级大工厂,所有的对象(包括数据源、Hibernate SessionFactory等基础性资源)都会被当成spring核心容器管理的对象———spring把容器中的一切对象统称为bean。bean初始化初始化过程如图BeanFactoryPostProcessor:允许自定义...

2019-03-24 21:14:31 252

原创 Java多线程设计模式之master worker

Java多线程设计模式之master worker什么是master worker实现总结什么是master worker  Master-Worker 模式是常用的并行计算模式。它的核心思想是系统由两类进程协作工作:master进程和worker进程。master负责接受和分配任务,worker负责处理子任务。当各个worker子进程处理完成后,会将结果返回给master,由master做归...

2018-12-16 23:00:15 261

原创 Java I/O之BIO、NIO、AIO

Java I/O之BIO、NIO、AIO什么是I/OBIO、NIO、AIO什么是I/O  I/O就是输入(Input)和输出(Output),针对不同的操作对象,可以划分为磁盘I/O模型,网络I/O模型,内存映射I/O, Direct I/O、数据库I/O等,只要具有输入输出类型的交互系统都可以认为是I/O系统,也可以说I/O是整个操作系统数据交换与人机交互的通道。一个系统的优化空间,往往都在...

2018-12-02 23:31:28 177

原创 Java多线程之线程池

Java多线程之线程池是什么是什么在多线程开发中,如果直接这样写:new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub } }).start();  如果并发的请求数量非常多,但每个线程执行的时间很短,这样...

2018-11-11 17:43:14 156

原创 Java多线程之CountDownLatch、CyclicBarrier和Semaphore

Java并发编程之CountDownLatch、CyclicBarrier和SemaphoreCountDownLatch  使用场景CyclicBarrierSemaphore在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。CountDownL...

2018-11-11 12:32:03 169

原创 Java多线程之BlockingQueue

Java多线程之BlockQueueArrayBlockingQueueLinkedBlockingQueue延迟队列 DelayQueuePriorityBlockingQueueSynchronousQueue  在JDK1.5新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭建高质量...

2018-11-05 22:55:22 275

原创 设计模式之建造者(Builder)模式

设计模式之建造者(Builder)模式如何给对象的属性赋值  构造器赋值  JavaBean赋值  Builder模式    总结将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示,Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们.用户不知道内部的具体构建细节。如何给对象的属性赋值  构造器赋值   应用举...

2018-11-05 18:12:40 149

原创 Java线程安全之Lock

Java线程安全之LockReentrantLockReadWriteLock在上一篇文章种,简要的介绍了一下synchronized 的使用,在使用synchronized 的代码中,只有等待当前线程执行完,其他的线程才能获取到锁并执行,那么如果多个线程对同一个对象进行读操作,实际上不应该有冲突,但是 synchronized 会导致线程等待并且不可以中断等待(除非线程出现异常)。为了弥补这...

2018-11-05 01:47:36 185

原创 Java线程安全之synchronized

Java线程安全之synchronized简介作用对象  修饰一个代码块  修饰一个方法  修饰一个静态的方法  修饰一个静态的方法总结简介  synchronized是Java内建得同步机制,所以也有人称其为Intrinsic Locking,它提供了互斥的语义和可见性,当一个线程已经获取到当前锁时,其他试图获取的线程只能等待或者阻塞在那儿。  在Java5以前,synchronized是...

2018-11-05 00:15:15 311

原创 Java多线程之线程安全

Java线程安全概念反例正例总结概念  当多个线程访问某一个类(对象或方法时),这个类始终都能表现出正确的行为,那么这个类(对象或方法)就是线程安全的。反例  public class Mythread extends Thread{ private int count = 5; @Override public void run() { wh...

2018-11-04 00:55:40 324

原创 JVM之双亲委派模型

JVM之双亲委派模型类加载器唯一性双亲委派模型工作过程双亲委派模型实现类加载器&nbsp;&nbsp;在类的加载阶段,需要通过一个类的全限定名来获取定义此类的二进制字节流,这二进制字节流并没有指明需要从Class文件中获取,也可以通过ZIP包、网络、动态代理方式或者是其它文件数据库等资源类型中获取,完成这个动作的代码块就是类加载器。这一动作是放在Java虚拟机外部去实现的,以便让应用程序自己决...

2018-10-28 23:42:31 176

原创 JVM之垃圾收集器

Java 语言的一大特点就是可以进行自动垃圾回收处理,而无需开发人员过于关注系统资源,例如内存资源的释放情况。自动垃圾收集虽然大大减轻了开发人员的工作量,但是也增加了软件系统的负担。拥有垃圾收集器可以说是 Java 语言与 C++语言的一项显著区别。在 C++语言中,程序员必须小心谨慎地处理每一项内存分配,且内存使用完后必须手工释放曾经占用的内存空间。当内存释放不够完全时,即存在分配但永不释放的内存块,就会引起内存泄漏,严重时甚至导致程序瘫痪。

2018-10-27 20:51:48 259

原创 JVM之内存模型

JVM之内存模型程序计算器(PC,Program Counter Register)Java虚拟机栈(Java Virtual Machine Stack)本地方法栈(Native Method Stack)Java堆(Heap)方法区(Method Area)运行时常量池(Runtime Constant Pool)直接内存(Direct Memory)Java虚拟机把管理的内存划分为若干不...

2018-10-25 22:18:52 110

原创 设计模式之模板方法模式

设计模式之模板方法模式反例示例优点缺点模板方法模式是一种炒鸡简单的设计模式,它基于继承的代码复用,定义一个操作中的算法框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重新定义该算法的某些步骤。我们可以将一些复杂流程的实现步骤封装在一系列基本方法中,在抽象父类中提供一个称之为模板方法的方法来定义这些基本方法的执行次序,而通过其子类来覆盖某些步骤,从而使得相同的算法框架可以有...

2018-10-22 14:56:27 108

原创 设计模式之动态代理

设计模式之动态代理三要素反例示例优点何为代理,代理概念可以解释为:在出发点到目的地之间有一道中间层,意为代理。何为代理模式,为其他对象提供一种代理以控制对这个对象的访问。三要素Subject抽象主题角色。可以是抽象类,也可以是接口RealSubject。具体主题角色,也就是被代理角色Proxy代理主题角色。也叫做为委托类,代理类。它负责对真实主题的调用,把所有抽象主题类定义的方法委...

2018-10-22 12:55:56 668

原创 设计模式之工厂方法模式

设计模式之工厂方法模式示例优点工厂方法模式就是定义一个创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。示例以女娲造人为例,假设造出来的人有白人黑人黄种人,他们都是人,只是肤色不同。接下来用代码描述。/** * @author:xp * @description:人类 * @create: 2018-10-21 22:05 */public...

2018-10-21 22:35:28 97

原创 设计模式之策略模式

设计模式之策略模式结构组成示例(改编自网红代码)改进策略模式(Strategy Pattern)是一种简单常用的设计模式,也叫做政策模式(Policy Pattern),定义一组算法,将每个算法封装起来,并且使他们相互转换。结构组成Context封装角色它也叫做上下文角色,起承上启下的封装作用,屏蔽高层模块对策略,算法的直接访问,封装可能存在的变化。Strategy抽象策略...

2018-10-15 23:15:53 702

原创 设计模式之单例模式

单例模式饿汉式(简单粗暴)懒汉(线程不安全)懒汉(线程安全)单例模式是指整个应用中某个类只有一个实例出现,并且提供一个全局访问点。饿汉式(简单粗暴)这种方法非常简单,因为单例的实例被声明成 static 和 final 变量了,在第一次加载类到内存中时就会初始化,所以创建实例本身是线程安全的。public class Singleton{ //类加载时就初始化 pr...

2018-10-14 22:37:51 114

原创 设计模式

设计模式软件设计六大原则设计模式设计模式分类软件设计六大原则在谈设计模式之前,首先谈谈与之相关的软件设计六大原则。在软件设计的初期,我们常常会进行需求调研,评估现有的需求并且预测将来很有可能会发生变更的需求,但是我们并不能控制需求的变更。问题来了,一旦需求发生变更,那我们应该怎样处理呐?幸运的是前辈们首先提出了6大设计原则,但这仅仅是“口号”,仅仅是指导你应该做成什么样,并没有告诉你具体应该...

2018-10-14 18:31:34 105

原创 tomcat8使用SSL

tomcat8使用SSL准备环境:tomcat 8.0.36 + jdk jdk1.8.0_121准备环境:tomcat 8.0.36 + jdk jdk1.8.0_121tomcat8.0.36使用https。在**%JAVA_HOME%/bin**目录下有一个keytool工具,可用来生成一个存放服务器私钥和自签名证书的文件。使用如下命令来生成这个文件;命令:keytool -v...

2018-10-14 15:49:56 2283

原创 Centos 下更改MySQL源数据存放目录(datadir)

MySQL在安装完成之后,其源数据默认存放在 /var/lib/mysql/ 目录下,一般情况下,该目录在根目录下,由于Linux系统默认  根目录所在挂载的磁盘容量有限,随着生产数据的不断产生,该目录会越来越大,如果磁盘空间不足,Mysql 会报Got error 28 from storage engine错误,所以最好将MySQL的数据目录进行更改。查看MySQL源数据存放路径的命令是 ...

2017-12-19 15:21:51 7106 3

原创 Linux 7.3 Tomcat 8 JDK8 启动卡住很久才能正常启动解决方案

今天再阿里云上购买了一台新的服务器   版本为  Centos7.3   但是在上面发布项目的时候遇到一个很奇葩的问题,tomcat启动会卡住半天!!!!  启动tomcat无错 tail -f catalina.out日志 和 catalina.sh run 方式启动时 卡在11-Oct-2017 13:50:52.538 INFO [localhost-startStop-1] org.a...

2017-10-11 14:07:53 1559

原创 Centos7 RPM 安装 mysql5.7

去官网下载 mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar 然后使用 tar -xf mysql-5.7.16-1.el7.x86_64.rpm-bundle.tar 命令解压安装mysql(顺序不能乱) rpm -ivh mysql-community-common-5.7.16-1.el7.x86_64.rpm rpm -ivh mysql-comm

2017-05-16 22:34:45 380

转载 linux 下安装mysq5.6

linux 下安装mysq5.6

2017-01-22 11:18:20 211

原创 Centos6.7下 搭建 java 开发 环境

Centos下安装MySQL5.7接下来我将介绍 Centos下如何搭建 java 开发环境: 首先 到官网下载JDK的安装包,这里我给大家推荐一款用于 windows和linux文件交互的软件winscp,  将在window下载好的jdk安装包 上传到服务器(这里我上传到的是ROOT目录下) 切换到ROOT目录下      cd /root/      然后使用命令    ...

2016-06-23 08:51:26 774

空空如也

空空如也

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

TA关注的人

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