自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

岁月静好

只要方向正确,就不怕路途遥远!

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

原创 java设计模式(八)---代理模式

之前看到别人框架的代码时总是看到各种代理,也是一脸的懵逼,所以代理模式是平常项目中很少用到但是底层代码有经常用到的,还是有必要深入了解一下的 一、代理模式的定义 代理模式为另外一个对象提供一个替身或者占位符,以控制对这个对象的访问,现实中比较类似的例子就是助理秘书跟老总的关系,或者明星跟经纪人的关系。 二、代理模式涉及的角色 1.抽象主题角色 定义了被代理角色和代理角色的共同接口或者抽象类

2017-12-30 21:05:58 197

原创 java设计模式(七)---策略模式

策略模式是平常我们应用最广泛的但是又没有总结的一个模式,spring加载类就是典型的策略模式,还有我们的代码分层,也就策略模式的实现 一、策略模式的定义: 策略模式定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。 二、涉及的角色: 1.抽象策略角色: 将需要使用的算法或者业务抽象为接口 2.具体策略角色: 具体的算法与业务实现 3.策略使用

2017-12-29 10:05:01 179

原创 java设计模式(六)---命令模式

看到命令模式的解释及相关的例子,除了经常用到的开关来解释,那就是Struts2的模式了,truts2对请求的处理 就是典型的命令模式一、命令模式的定义: 将“请求”封装成对象,以便使用不同的请求,队列或者日志来参数化其他对象,命令模式也可以支持撤销操作。 二、命令模式设计的角色: 1.command:抽象命令类 为所有的命令声明一个接口,调用命令对象的执行方法,就可以让接收者进行相关的动作,

2017-12-28 14:48:32 206

原创 java设计模式(五)---适配器模式

适配器模式主要是用于接口不兼容但是有不至于系统重构,这个时候就可以通过适配器来使接口兼容。项目中也会经常用到,面试偶尔会问到。 一、适配器模式的定义: 适配器模式是将一个类的接口转换成成客户期望的另一个接口,适配器让原来的接口不兼容的类可以合作无间。现实中我们也经常用到各种适配器(也就是转换器,电压转换器,买港版苹果的需要一个插头转换器,等等) 二、适配器模式涉及的角色: 为了便于理解,整

2017-12-27 14:30:52 238

原创 java抽象类与接口的区别

平常接触比较多的是接口,但是看一些源码的时候又发现好多用的都是抽象类。关于抽象类与接口的区别,还是有必要总结一下,小了说是面试题,大了说以后写底层代码的时候设计更合理,易于扩展。相同点: 1.都不能被实例化 2.接口的实现类或者抽象类的子类都实现了接口或者抽象类中的方法后才能被实例化 不同点: 1.接口中只能定义方法,不能有方法的实现,而抽象类可以有非抽象方法,我觉得这是好多底层代码使用抽象

2017-12-27 09:31:28 230

原创 java设计模式(四)---观察者模式

一、观察者模式定义: 定义了对象间一对多的组合关系,以便一个对象状态发生变化时,所有依赖于它的对象都得到通知,并自动刷新。简单点理解就是广播模式,一个对象发生了变化,通知所有依赖于它的对象,也做相应的调整,现在比较流行的zookeeper就是这种模式,还有我们平常订阅报纸,在工作平台找工作都有类似的模式。 二、观察者模式使用的场景: 1.一个对象的更新,需要其他对象同步更新,而且其他对象的数量

2017-12-26 11:07:59 295

原创 java设计模式(三)---单例模式

一、单例模式的基本定义: 一个类有且仅有一个实例,并且提供了一个全局的访问点 二、单例模式适用场景:需要频繁的实例化然后销毁对象创建对象时耗时或者消耗资源过多,但又经常用到的对象有状态的工具对象频繁访问数据库或者文件的对象资源共享情况下,避免资源操作时导致性能损耗控制资源的情况下,方便资源之间的互相通信,如线程池 三、单例模式的特点: 1.只能有一个实例 2.单例必须是自己来创

2017-12-25 10:21:20 163

原创 java设计模式(二)---抽象工厂模式

1.抽象工厂模式的定义为创建一组相关或者相互依赖的对象提供一个接口,而不需要指定对应的具体类。抽象工厂模式与工厂方法模式最大的区别就是抽象工厂中每个工厂可以创建多个种类的产品。2.抽象工厂模式的适用范围一个系统不应当依赖产品类实例如何被创建、组合和表达的细节,这对于所有形态的工厂模式都是重要的,这个系统有多于一个产品族,而系统只消费其中某一种产品族,同属于同一产品族的产品是在一起使用,这一约束是必须

2017-12-23 10:55:22 427

原创 java 设计模式学习前篇--设计模式理解

还是习惯性的根据问题来了解设计模式。这样可以更深入的理解设计模式,自己写代码的时候也会注意到,研究其他框架的时候也会留意别人怎么应用设计模式的。1. 什么是设计模式? 设计模式是一套被反复使用,多数人知晓,经过分类编目的代码设计经验的总结。也就是说设计模式不是技术,而是实践中经验的总结。 2. 为什么要使用设计模式? 使用设计模式是为了提高代码的复用性,让代码更易读,保证代码的可靠性,一

2017-12-21 14:58:01 225

原创 Description Resource Path Location Type Dynamic Web Module 3.0 requires Java 1.6 or newer

项目突然一直红叉但是找不到错误代码,打开Problem提示 Description Resource Path Location Type Dynamic Web Module 3.0 requires Java 1.6 or newer. mavendemo line 1 Maven Java EE Configuration ProblembuildPath

2017-12-21 09:26:11 5631

原创 Java 异常使用总结

Java的基本概念是“结构不佳的代码不能运行”,改进的错误恢复机制(即对异常的处理)是提高代码健壮性最强有力的方式Java异常的分类:一、从代码层面是否能处理分为两类: 1.error Error及其子类代表了jvm本身的错误,error是不能被程序员通过代码处理的,error很少出现,可以不做深入理解 2.exception Exception及其子类,代表

2017-12-20 15:03:52 1213

原创 Java 线程池理解汇总

Java中用到线程的情况一般都是使用线程池,省去了创建销毁线程的资源浪费,也可以统一管理线程,关于线程池还是有必要深入了解一下的线程池了解还是从三个方面入手 一、线程池的优缺点 优点:减少系统创建销毁线程对资源的浪费,对线程统一管理,可以有效的控制最大并发数,提高系统资源的使用率,同时避免过多的资源竞争,避免阻塞。 缺点:使用不当有可能造成过多的创建线程造成死机

2017-12-19 17:02:17 420

原创 java 多线程

Java多线程项目中用到的较少,一般用到了都是业务比较复杂,或者时效以及响应速度要求较高。但是Java多线程是每一个程序员都得深入了解一下的,因为面试的时候百分百会用到。什么是线程 线程是指在程序在执行过程中,能够执行代码的一个执行单元,是cpu调度和分配的基本单位,线程基本不拥有系统资源,只拥有运行中不可少的资源(计数器等)。线程与进程的区别 进程是指一段正在执行的程序。一个进程可以包含

2017-12-18 15:34:05 194

原创 Linux redis集群环境搭建

redis集群的搭建需要准备环境,具体我之前有记录,这一次专门记录一下redis集群的搭建过程redis下载 使用命令下载redis wget http://download.redis.io/releases/redis-4.0.6.tar.gz 解压安装 tar -vxf redis-4.0.6.tar.gz 解压redis 进入解压目录 make 编译redis make

2017-12-15 16:52:11 236

原创 Linux redis集群环境准备

研究redis总想自己在Linux上面自己搭一个集群环境,在搭建集群环境时还是要提前装好很多东西的,也是踩了好多坑的。redis官网提供了redis-trib.rb工具,为了运行这个工具,需要先安装ruby,ruby安装方式有三种直接下载安装(redis集群不推荐)yum工具下载(不推荐,因为没办法灵活控制版本)rvm安装(推荐,可以跳过好多坑)RVM安装ruby步骤:1. 执行下面命令:g

2017-12-15 15:33:59 544

原创 Linux 安装redis单机

为了进一步研究在Linux上研究redis。先参考官网在linux上安装linux单机测试,以后再部署集群。步骤比较简单,如下:wget 方式下载redis压缩包 wget http://download.redis.io/releases/redis-4.0.6.tar.gz 下载到linux指定目录tar xzf redis-4.0.6.tar.gz 解压压缩包cd redis-4.0.

2017-12-14 09:59:28 252

原创 rocketmq 环境搭建

为了方便自己更深入研究rmq,自己还是在Linux上安装了一套rmq环境,觉得还是有必要记录一下安装的过程,整个过程其实是参考rmq官网。1.安装rmq需要的环境基础如下: 其中第四个是非必须的,可以不用,是下载git源码的工具,jdk,maven的安装方法我之前有记录过的,就不再说了 2.下载rmq源码到linux 执行打包命令 mvn -Prelease-all -DskipT...

2017-12-13 17:19:53 364

原创 rocketmq介绍,先了解rmq,后研究

系统升级到一定程度,肯定会遇到不同系统之间的数据传输,之所以选择rmq研究是因为rmq源码是java的,可以学习一下,还有就是现在项目中有使用rmq,可以慢慢在实际应用中了解rmq的强大既然用了rmq肯定还是要了解一下rmq的优点,以及能解决哪些问题,因为以后面试的时候还是会用到的。rmq的优点如下:高效的消费者水平扩展能力支持高并发,分布式亿万级数据堆积(重点)保证数...

2017-12-12 16:53:24 1540

原创 Linux常用命令总结,持续更新,菜鸟必备

也试着自己去记Linux的命令,但是总是记了就忘了,所以只能慢慢操作,用到一个,理解一个,记录一个,慢慢更新。mkdir 文件名, 创建文件夹,用的的也是非常多的wget 地址,直接下载文件到当前目录tar -vxf 压缩包 解压压缩包pwd 查看当前目录vim 编辑文件 配套i进入编辑模式,Esc进入命令模式,:wq保存并退出mv 移动文件或者修改文件名称rm 删除文件 ...

2017-12-12 15:49:39 220

原创 Linux环境安装maven

maven现在是流行的不要不要的,所以linux环境安装maven环境是需要记录一下正常流程是下载压缩包,解压到/usr/maven主要的步骤还是在配置环境变量: 同样vim 文件,i进入编辑模式,添加maven环境变量,Esc进入命令模式。:wq保存并退出 source /ect/profile 设置环境变量生效mvn -v查看maven版本信息,判断安装是否成功

2017-12-12 15:38:52 228

原创 Linux环境安装jdk

作为开发先要自己研究一些框架或者中间件什么的,肯定是要部署一些东西,不是说windows不行,因为没有说那个公司的应用是部署在windows上的,所以Linux还是要研究一些的,在Linux上部署,肯定离不了jdk,所以还是自己记录一下jdk安装过程,以后自己忘了也能参考快速安装。jdk的安装方式主流的有两中,一种是下载压缩包,解压然后配置环境变量,一种是下载rpm的安装,因为平常都是在window

2017-12-12 15:15:30 549

原创 Linux修改root密码

好长时间不用自己虚拟机了,突然发现自己竟然忘记了root密码,百度了一下,发现是可以修改root密码的,但是前提是虚拟机不是远程连接的。觉得还是有必要记录一下的,万一自己下次再忘记了呢,呵呵。其实也没有那么难,总共就几步,还是图文记录一下:启动Linux的时候一直按着e键,很像装系统的时候一直按F12一样,会出现如下图: 使用上下键选中第二项,点击键盘E,进入命令界面 输入single,回车

2017-12-11 16:59:41 5484

原创 java集合排序总结

Java集合排序最常用的实现方式有两种,面试中也是被经常问到的两种实现方式区别,自己也是写了个小例子来加深一下理解,先说一下这种排序:Comparable 在集合内部定义的方法实现排序,需要排序的类实现该接口,内部实现compareto方法,这个方法我们经常比较String的时候会用到,那是因为String本身就实现了Comparable接口。这种比较方法适用于某一类的固定比较,比较学生的分数

2017-12-10 11:46:43 246

原创 Java集合框架总结

在开发过程中离不了对集合的操作,存取也好,移除也好,应对不同的场景,我们需要不同存储数据的集合类,Java中提供了一套非常完整的集合框架,集合的大的结构如下图: 从上图可以看到,集合框架大的方面可以分为Map与Collection。Map是以key-value的形式来存储集合数据,而Collection则是直接数据的集合存储面试过程中也会经常被问到那些集合是线程安全的? Map中HashTabl

2017-12-10 11:27:27 183

原创 Java 中String,StringBuffer,StringBuilder的区别

面试中经常被问及的一个问题,关于三者的区别可以从两个方面区分,jdk源码中都有体现是否可变 从String源码可以看出来,String使用char数据来存储字符串的,但是是用final关键字修饰的,也就是不可变的,同样也可以知道,String并不是Java的基本类型 StringBuffer与StringBuiler都是继承AbstractStringBuilder,也是用char

2017-12-09 09:37:23 152

原创 redis基本认识以及在windows上Java操作redis例子

redis 是一个开源的key-value数据库,现在redis是主流的缓存框架支持分布式,事物,多种数据类型,主从备份,以及数据持久化,面试的时候经常会被问及redis的优点,总结如下:redis不仅支持简单的k-v数据类型,同时还支持list,set,sorted set,hash等数据结构redis支持数据备份,即master-slave(主-从)模式的备份数据redis支持数据持久化,

2017-12-08 15:17:36 213

原创 DUBBO集群容错与负载均衡

dubbo有良好的集群方案以及负载策略仔细想了一下,集群容错与负载均衡还是要总结在一起,毕竟负载均衡是基于集群容错的。dubbo集群容错在集群调用失败时,dubbo提供了多种容错方案,默认方案为failover。dubbo自带的集群方案有六种,基本已经可以满足平常的集群需求,个别不满足的,当然dubbo也支持自定义扩展。关于dubbo自带的六种方案,每一种都使用不同的业务需求,具体如下: 1.

2017-12-08 10:25:26 3305

原创 DUBBO常用xml配置总结与分类

DUBBO 标签

2017-12-07 14:43:14 1525

原创 DUBBO学习起点-运行官网的例子

DUBBO本地运行记录由于公司的项目需要重构,各个服务器之间调用的压力变大,次数上升,经过网上搜索,觉得dubbo是最适合内部各个服务之间调用的一个框架,觉得自己深入研究一下duboo的优点: 代码开源 服务注册中心 集群容错 软负载均衡,可以自定义轮训方式 支持多种协议 有版本,分组等方式,升级以及区分服务方便 上手比较简单其他深入的以后再研究,先本地运行一下官网的

2017-12-07 10:23:53 721

空空如也

空空如也

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

TA关注的人

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