自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个菜鸟的学习之路

不断的编码过程中,总是觉得自己的基础不牢靠

  • 博客(81)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 logback配置错误日志发送邮件

这个问题整整弄了2天才真正实现了,网上各种搜索,各种坑,今天特地闲下来,记下笔记,希望可以帮助到需要的人。需求:1、报错发邮件,定位错误位置以尽快解决;(报错发送邮件)2、某一项重要操作完成之后发送邮件;(自定义发送邮件)没有接触过logback,怎么办?没办法,硬着头皮上吧。先搞需求1网上查了一波,按照说的一步一步走下来,竟然可以发送了 (意料之中)

2017-11-22 10:38:25 3758 3

原创 zookeeper 集群搭建

今天又来学习了新的一门技术,其实好早就听过zookeeper了,也用过它的分布式锁,但是总结一直没有弄过。。zooKeeper为高可用的一致性协调框架,自然的ZooKeeper也有着一致性算法的实现,ZooKeeper使用的是ZAB协议作为数据一致性的算法,ZAB(ZooKeeper Atomic Broadcast )全称为:原子消息广播协议;ZK的ZAB协议(原子广播协

2017-10-19 16:06:55 624

原创 redis集群

这是对今年第一次对于redis做最后一篇的总结1.安装redis3.0以上版本环境 这些就不过多去说明了,网上一大把。。。安装redis 集群步骤:第一步:创建文件夹 redis-cluster,然后分别创建6个文件夹      (1)mkdir -p /usr/local/redis-cluster       

2017-10-18 16:05:49 559

原创 gc一点理解

好像好久没有写博客 ,今天特地抽空看了一下jvm中垃圾回收算法我们都知道java中当对象不在使用时,java会帮我们进行对象清除。下面特地介绍几种垃圾回收算法;一:引用计数法 这是个比较古老而经典的垃圾回收算法,其核心就是在对象被引用时加1 ,而当引用不在使用时则减1,但是这种方法有个比较严重的问题,就是无法循环引用的情况。二:标记清除法:就是分为标记和清除两个阶段进行处理内存

2017-10-11 13:47:17 597

原创 ubuntu 下配置jdk环境

今天配置docket 下的jdk 环境弄了好久的时间 后面才排查到时jdk配置问题 创建一个目录/usr/lib/jvm以便于把下载解压后的包放到这个目录下。cd /usr/libsudo mkdir jvm三、解压并把解压后的jdk文件夹放到/usr/lib/jvm目录中cd /home/injavawetrust/softwaresudo tar zxvf

2017-09-15 18:24:44 288

原创 mysql主从复制

好像好久没写博客 ,今天闲来无事,自己动手配置了一下mysql主从复制 ,顺便记一下,方便以后的使用。1.主服务器配置第一步:首先需要配置mysql主从服务器可以连通,grant all on *.* to [email protected] identified by "456";第二步:编辑 /etc文件夹下的my.confserver-id=10

2017-06-02 09:53:46 414

原创 java线程池理解

如果开发的线程数据很多,并且每个线程都是执行一个时间很短的任务就结束了。这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有什么办法可以使的线程多次被复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在java中可以通过线程池来达到这样的效果。在这里的时候,我们就来补充点知识java多线程中sleep与wait区别wait方法:使当前线

2017-03-01 16:29:36 1499

原创 springBoot 学习(一)

此文章仅仅是通过自己的搭建springboot项目的心得而已!首先我们需要明白spingBoot是啥,有啥特性?springboot是spring中最新的一个项目,它帮助开发者更容易的创建基于spring的应用程序和服务,让更多的人更快对spring入门,为spring生态系统提供了一种固定的,约定优于配置风格的框架。springboot特性:1.为基于sprin的开发提供更快的入门

2017-02-23 18:02:32 6655 6

原创 面试点滴(二)

今天又到面试了一场,瞬间感觉自己知识不够用,自己以前的东西差不多全部忘记了,真的是坑爹!1.servlet与filter区别答:Filter不能向用户生成响应,完整的流程是:filter对用户请求进程预处理,接着将请求交给servlet进行处理并生成响应,最后filter再对服务器响应进行后处理。2.mybatis中的$与#区别答:1.#将传入的数据都当成一个字符串,会对自动传入的

2017-02-22 15:40:23 786

原创 redis 点滴(七)sentinel 哨兵

Redis中的sentinel系统用于管理多个Redis服务器,该系统执行以下三个任务:1.监控:sentinel会不断的监控你的主服务器与从服务器的状态2.提醒:当被监控的某个redis服务器出现异常时,sentinel可以通过API向管理员或者其他程序发送通知3.故障迁移:当一个主服务器不能正常工作时,sentinel会开始进行一次自动故障迁移操作,它会把失效的主服务器的其中一台从

2016-12-26 19:42:42 402

原创 redis点滴(四) redis持久化

RDB工作原理: 每隔N分钟或N次写的操作后,Redis将数据库快照保存在名字为dump.rdb的二进制文件中。压缩,然后放到备份目录中。 比如说,一下设置会让Redis在满足“60秒内有至少1000个键被改动”这一条件时,自己保存数据集:save 60 1000这种方法持久化方式被称为快照。RDB相关参数:save 900 1  #刷新快照到磁盘中,必须满足2个要求才会触

2016-12-08 12:08:26 743

原创 redis点滴(三)发布与订阅

subscribe.unsubscribe和publish 三个命令实现了发布与订阅信息泛型,在这个实现中,发送者不是将消息发送给指定的接收者,而是将信息发送给频道,然后由频道将信息转发给所有对这个频道感兴趣的订阅者。发送者无须知道任何关于订阅者的信息,而订阅者也不须知道是哪个客户端给它发送信息,它只要关注感兴趣的频道即可。信息的格式频道转发的每条信息都是一条带有三个元素的多条批复

2016-12-07 14:58:13 305

原创 redis点滴 事务(二)

redis事务 multi exec discard 和watch 是redis事务的基础事务可以一次执行多个命令,并且带有以下两个重要的保证: 1 事务是一个单独的隔离操作:事务中所有的命令都会序列化,按顺序地执行。事务在执行的过程中,不会被其它来的命令请求打断 2.事务是一个原子操作:事务中的命令要么全部地执行,要么全部都不执行 EXEC 命令负责触发并执行事务中所有命令:

2016-12-06 11:11:01 390

原创 redis点滴(一)

以上文字说明纯个人理解,如果有抄袭,请指正,其实一直想去深入理解redis的结构,但是一直抽不出时间,今天闲下心来,特地写写我们都知道 redis是一个开源的,先进的key-value存储系统,可扩展的web应用程序的解决方案redis有三大特性别与其它的缓存机制:1.redis是完全在内存中保存数据的数据库,使用磁盘只是为了持久化;2.redis相比许多键值数据存储系统有相对

2016-12-02 14:11:16 363

原创 jvm -java体系介绍

java体系结构包括四个独立但相关的技术1.java程序设计语言2.java class文件格式3.java应用编程接口(api)4.java虚拟机 当编写并运行一个java程序时,就同时体验了这四种技术。用java编程语言编写源代码,把它编译成java class文件,然后在java虚拟机中运行class文件。当编写程序时,通过调用类(这些类实现了java api)中

2016-11-18 17:04:48 354

原创 java泛型理解

在java Se1.5之前,没有泛型情况下,通过对类型Object的引用来实现参数的任意化,“任意化”带来的缺点是要显示的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在进行的时候才出现错误,这是一个安全隐患泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,以提高代码的重用率规则限

2016-09-21 10:45:07 491

原创 java中string stringbuffer和stringBuilder区别

一直想做这3个之间的区别,当我们在开发过程中一般好少去考虑这些1.在执行效率方面比较:stringbuilder > stringbuffer2.stringbuffer 与 stringBuilder,它们都是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上进行操作的,不像string一样创建一些对象来操作,所以速度快了举个例子吧:String

2016-09-20 12:07:58 2007

原创 effective心得(2) 构造器中大量可选参数对比

静态工厂和构造器有个共同的局限性:它们都不能很好的扩展到大量的可选参数。这就是builder模式比如java中一个类拥有多个标签的时候,使用构造器编写的时候,代码如下:  这个构造器调用通常需要许多你不需要的设置的参数,但还是不得不为它们传递值,一句话:重叠构造器模式可行,但是当有许多参数时,客户端代码会很难编写,并且仍然难以阅读。遗憾的是,javaBeans模式自

2016-09-13 18:05:35 309

原创 effective心得(一) 静态工厂方法

静态工厂方法讲解:     创建类的实例最常见的就是new语句来调用类的构造方法。在这种情况下,程序可以创建类的任意多个实例,每执行一个new语句,都会导致java虚拟机的堆区产生一个java对象。假如类需要进一步封装创建自身实例的细节,并且控制自身实例的数目,那么就可以考虑静态工厂方法。      静态工厂方法与new语句调用的构造方法相比,有以下区别:(1):静态工厂的方法名可以任

2016-09-13 16:43:35 328

原创 spring事务管理

好像有一天没有写博客了,赶紧把它补上今天,突然研究了一下事务管理,在我们日常生活中总有许多的例子,比如银行汇钱,你打给对方100块钱,首先银行会先扣除你100块,然后银行在往对方账户里打100,如果银行往对方账户中打100块这个过程出错了,那不是你亏了,这样也不行啊,所以有了事务管理回滚,出错的话,整个汇款都可以回滚的话,这样对谁都不会有问题。事务有4种特性:1.原子性:事务是由一个或...

2016-09-13 13:04:12 273

原创 java设计模式-外观模式

外观模式的定义:为子系统提供一致的界面,这样方便子系统调用医院的例子  现代的软件系统都是比较复杂的,设计师处理复杂系统的一个常见方法便是将其“分而治之”,把一个系统划分为几个较小的子系统。如果把医院作为一个子系统,按照部门职能,这个系统可以划分为挂号、门诊、划价、化验、收费、取药等。看病的病人要与这些部门打交道,就如同一个子系统的客户端与一个子系统的各个类打交道一样,不是

2016-09-12 10:02:35 458

原创 java设计模式-模板方法

模板方法指的是,定义一个操作中的算法骨架,将一些操作步骤延伸到子类中。模板方法就是将在不改变算法骨架的前提下而修改子类方法达到修改算法骨架比如在塑料板上写字后挖空,在使用毛笔或者色笔填空挖空部分。下面我们用例子说明模板方法:

2016-09-09 17:44:48 475

原创 java设计模式-工厂模式(简单工厂模式和工厂方法模式)

1.工厂方法模式:定义一个创建对象的接口,让子类决定实例化哪个类,工厂方法使一个类的实例化延迟到其子类2.工厂模式分为三类:1)简单工厂模式2)工厂方法模式3)抽象工厂模式这三种模式从上到下抽象,并且更具一般性;GOF《设计模式》一书中将工厂模式分为两种:工厂方法模式与抽象工厂模式将简单工厂模式看做事工厂模式一种特例3.区别工厂方法模式:一个抽象产品

2016-09-08 11:52:16 528

原创 java设计模式之代理模式

代理模式其实理解挺简单的,也就是说为其它对象提供中代理来控制这个对象的访问2.代理模式一般涉及的角色有:抽象角色:声明真实对象与代理对象共同的接口;代理角色:代理对象内部是对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便任何时候都能代替真实对象,同时代理对象可以在执行真实对象操作的时候,附加其它操作,相当于对真实对象的封装真实角色:代理对象代

2016-09-08 10:37:32 377 1

原创 java讲义(十)HashSet,LinkedHashSet,TreeSet,enumSet

HashSet按hash算法来存储集合中的元素,因此具有很好的存取和查找功能hashSet具有以下特点:1.不能保证存储元素的顺序2.hashSet不是同步,因此多个线程同时访问hashSet的时候,则务必通过代码来保证其同步3.集合元素可以为nullhashSet集合判断两个元素是否相等标准是通过equal()方法比较相等,并且两个对象中的hashCode返回值是否也相等

2016-09-07 14:00:21 359

原创 java设计模式-开放-封闭原则

1.2个特性遵循开闭原则设计的模块具有两个主要特征:对于扩展是开放的,这就需要我们设计软件是可以扩展的,不仅仅局限于当前一根场景下对于修改是关闭的,这是说当我们进行扩展的时候,是不需要更改原有的代码的,保证了之前代码的完整性代码示例package org.liufeng.course.DesignPattern;/** * java设计模式-开放封闭原则 * @Au

2016-09-07 11:57:16 868

原创 java设计模式-单一职责模式,依赖倒转原则

所谓的职责指类变化的原因,如果一个类有多于一个的动机被改变,那么这个类就具有多于一个的职责。而单一职责原则就是一个类或者模块应该只有一个改变的原因一个类,只有一个引起它变化的原因,应该只有一个职责。例如:要实现界面与逻辑分离。如果一个类担任的职责过多,就等于把这些职责耦合在一起。一个职责的变化可能会弱或者一直这个类完成其它职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭到意想不

2016-09-06 18:29:03 562

原创 java设计模式-策略模式

策略模式作为一种软件设计模式,指对象的某种行为,但是在不同的场景中,该行为有不同的实现算法,比如每个人要交税,但是在美国交税与中国交税有不同1.什么是策略模式策略模式,就是定义了不同的算法族,并且之间可以相互替换,此模式让算法的变化独立于使用算法的客户2.策略模式有什么好处策略模式的好处在于你可以动态改变对象的行为3.设计原则设计原则是把一个类中经常改变或者将来可能改变的部

2016-09-06 17:27:32 443

原创 java讲义(九)多态理解

我们今天来讲讲面向对象三要之一的多态object p=new Person(),其实子类是一种特殊的父类,因此java允许把一个子类对象直接赋给一个父类引用变量,无须类型转换,或者被称为向上转型,向上转型是系统自动完成这个p引用变量的编译时类型是object,则运行时类型是Person,当运行时调用该引用变量的方法时,其方法行为总是表现是子类方法的行为特征,而不是父类方法的行为特征,这可能

2016-09-06 11:57:43 627

原创 java讲义(八)HashMap与HashTable区别

1.继承和实现区别hashTable是基于陈旧Dictionary类,完成map接口;HashMap继承与AbstractMap,AbstractMap完成map接口2.线程安全问题HashTble的方法是同步的,而hashMap是未同步的,所以在多线程的场合要手动同步hsshMap3.对null处理不同HashTable是不允许null值(key与value都不可以),has

2016-09-02 18:04:38 634

原创 java中arrayList与linkedList区别

这个问题其实好早就想做笔记了,一次面试问到了,ArrayList与linkedList在性能上各有优缺点,都有各自的地方,1.对ArrayList和LinkedList而言,在列表中末尾添加一个元素所花的开销是固定的2.在ArrayList中间插入一个元素或删除一个元素意味着整个列表中剩余的元素都会移动,而LinkedList的中间插入或删除一个元素的开销是固定的3.LinkedL

2016-09-02 16:09:15 3948

原创 一级域名与二级域名的区别

今天别人问道一级域名与二级域名的区别时,我既然啥也不知道,所以特地到了解了一下什么是一级域名一级域名又称为顶级域名,大家需要注意的是,www.lisp.com这种形式的域名并不是一级域名,它只是一个二级域名,也就是说www只是一个主机名真正的一级域名是由一个合法的字符串+域名后缀组成,所以,lisp.com这种形式的域名才是一级域名,lisp是域名主体,.com是域名后缀,可以是.ne

2016-09-01 16:09:14 24824 2

原创 java多线程实现的三种方式

java多线程实现方式主要是有三种:继承thread类,实现Runnable接口,使用ExecutorService,Callable,Future实现有返回结果的多线程,其中前两种方式线程执行完后都没有返回值,只有最后一种才有返回值1.继承

2016-08-30 15:39:47 2520

原创 java讲义(七)final修饰符

1.1 final成员变量final关键字可用于修饰类,变量和方法,用于表示它修饰的类,方法和变量不可改变。final修饰变量时,表示该变量不可被改变。final既可以修饰成员变量(类变量和实例变量),也可以修饰局部变量,形参。有的书上介绍说final修饰的变量不可被赋值,这种说法是错误的,严格的说法是,final修饰的变量不可改变,一旦获取初始值,该final变量的值就不能被重新赋值。因

2016-08-30 15:15:41 430

原创 java讲义(六)java初始化块

java初始化是java类里可出现的第四种成员(前面依次是成员变量,方法和构造器),一个类里可以有多个初始化块,相同类型的初始化块有顺序:前面定义的初始化块执行,后面定义的初始化块后执行,初始化块的语法格式如下 [修饰符]{//初始化的可执行的代码块}要点1.与构造器类似,创建一个java对象时,不仅会执行该类的普通初始化块和构造器,而且系统会一种上溯到java.lang.object类,先执

2016-08-29 15:00:23 373

原创 java讲义(五)java中static关键字

static关键字是很多朋友在编写代码与阅读代码时碰到一个比较难理解的关键字static关键字就是没有this的方法,在static方法中不能调用非静态方法,反之是可以的,而且可以在没有创建任何对象的情况下,仅仅通过类本身来调用static方法,这实际上正是static的主要用途,很显然,被static关键字修饰的方法或者变量不需要依赖对象来进行访问的,只要类被加载了,就可以通过类名来进行访问

2016-08-26 14:56:24 382

原创 java讲义(四)方法参数与方法重载

1.今天闲来无事,又写起这玩意来了,我怎么突然发现我魔怔了,我们大家都已经知道java里的方法是不能独立存在的,调用方法也必须使用类或对作为主调者,如果声明方法时包含了形参声明,则调用方法必须给这些形参指定参数值,调用方法时实际传给形参的参数值也成为实参 那么 ,java的实参是怎么传递的呢?这是由java方法的参数传递机制来控制的,java里方法的参数传递方式只有一种:值传递,所谓的值传递就

2016-08-26 13:59:06 685

原创 java讲义经验(三)数组理解

使用数组之前一定要理解数组也是一种类型,java的数组要求所有的数组元素都是同样的数据类型,因此,在一个数组中,数组中的元素类型是唯一的,即一个数组只能存储一种数据类型,而不是存储多种数据类型数组初始化有2种格式1.静态初始化,初始化时由程序员指定每个数组元素的初始值,由系统决定长度2.动态初始化,初始化时由程序员指定长度,由系统为数组元素分配初始值静态初始化定义arrar[]

2016-08-25 11:14:50 994

原创 springmvc三种全局异常处理

其实自己一直有想把自己的项目弄的越简洁越好,不用把项目中每个方法看起来比较臃肿,所以自己没事就去论坛,博客看别人怎么整合今天特意写一些自己上个项目中用到的异常全局拦截处理springmvc有三种方式1.使用springmvc提供简单异常处理器simpleMappingException2.实现spring的异常处理接口handleerExceptionResolver自定义处理异常

2016-08-25 10:45:58 7509 1

原创 微信公众号开发总结(一)

其实一直想写这个关于微信开发的博客,但总是被其它的事情耽误,我记得刚开始接触微信的时候,还是我13出来的实习的时候,那个时候微信好火,它的高级接口,其它如何接入与自己的服务器平台,但后面尤其来了上海之后就没在接触,这次公司又要开发,正好自己学习了一把,1.查看微信开发者文档,里面写的非常清楚,怎么接入,怎么返回json数据,接入微信公众平台开发,开发者需要按照如下步骤完成:1、

2016-08-25 10:08:31 4626

spark之sparkStreaming 理解

spark之sparkStreaming 理解,总结了自己的理解,欢迎大家下载观看!

2018-11-07

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

TA关注的人

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