自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 快速使用docker搭建redis-cluster集群

本地5分钟搭建一套redis-cluster环境

2024-05-17 15:19:21 780

原创 使用Docker安装Zookpeer集群

注:sudo权限看自己机器的权限注意在安装过程中很有可能报错,这里列举下解决办法。

2023-04-23 11:32:55 507

原创 java设计模式————建造者模式,让我们来构造一个游戏角色吧

建造者模式(Builder)建造者模式,也喜欢被叫做构建器,其实我们去看很多框架的源码,你会发现,都会有个build方法,比如mybatis读取配置文件返回defaultSqlSessionFactory,就是用的build()方法。SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inp...

2020-04-12 01:16:10 983

原创 Redis系列之Redis高频面试题

1、Redis为什么这么快?redis为什么是单线程?采用多线程会有哪些问题?(高频)*redis是完全基于内存的,绝大部分秦淮区是存粹的内存操作,非常快速。*redis的数据结构相对简单,对数据操作也简单,redis的数据结构是专门进行设计的。*redis是基于内存来操作的,所以cpu不是redis的瓶颈,redis的瓶颈最有可能是机器内存太小或者带宽不够,那么既然cpu不会成为瓶颈...

2020-04-10 16:12:22 373

原创 MyBatis系列之Mybatis源码解读

MyBatis的发展历程以及基本使用,详见Mybaits系列之MyBatis的发展之路,怎么用好MyBatisMyBatis工作流程分析全局配置文件 mybatis-Config.xml --> Mappr.xml -->Configuration填充配置类 -->SqlSessionFactory(生成session工厂) -->SqlSession(生...

2020-04-07 14:57:39 1197 3

原创 MyBatis系列之Mybatis缓存深入了解

Mybatis缓存走进Mybats的缓存包中,我们发现它只有一个cache的接口和一个缓存子类的实现。再看看它上面有个装饰器的包,装饰者模式当然就是给功能做一些加强的,那么我们来看看它有啥加强功能,blockingCache,带锁的缓存,从里面可以看到它是重入锁实现的,loggingCache,日志缓存等。好我们可以看出它的构成主要是一个perpretualCache和10的...

2020-04-02 17:30:23 261

原创 Mybaits系列之MyBatis的发展之路,怎么用好MyBatis

为什么要用Mybatis?先看看原生操作JDBC的步骤*注册驱动,获取连接*创建StateMent对象*execute()方法执行SQL*把结果集转换成POJO*关闭资源一看,存在大量的重复代码,繁琐过程,结果集的处理很复杂,数据库连接的管理也很麻烦。所以,慢慢就出现了一些包装数据库操作的框架,springJDBC、dbUtils、heibernate、mybati...

2020-04-02 12:38:46 380

原创 Spring系列之Spring高频面试题

Spring面试中应该是必问的,所以,废话不多说,我们来看看Spring有哪些高频面试题。1、Spring框架能给我们带来哪些好处?Spring的初衷:简化开放、解放双手。DI:直接从配置文件中看类的依赖,依赖关系一目了然。IOC:在有限的内存和计算机资源的情况下,它能很好的管理好我们的Bean。万能胶:可以兼容成熟的框架,Hibernate、Mybatis、struts...

2020-03-31 16:29:53 233

原创 Spring系列之Spring架构总览

Spring这个框架相信国内百分之99的公司都在使用,今天我们就来聊一聊这个Spring框架。为什么出现Spring?如果我们没有Spring,我们的开发模式将会是怎么样的。1、自己写一个类似的框架。2、servlet + jsp。那我们细想下,如果我们用上面的技术开发,我们需要操心什么事情。1、数据库层面,我们需要手动写事务。2、网络通信层面,我们需要自己写So...

2020-03-31 09:15:01 223

原创 面试必备系列之HashMap源码解析,来自HashMap的灵魂拷问,你想要的全都有

什么是Map?map就是用于存储键值对(<key,value>)的集合类,也可以说是一组键值对的映射(数学概念),它也是java中的一个顶级接口,下面有许多我们常用的map子类,如hashmap,concurrenthashmap等。HashMap解析数据结构(以1.8之后的HashMap结构为例子)组成HashMap的结构为数组+线性链表+红黑树(1.8新增...

2020-03-28 14:50:28 315

原创 java并发编程 ||深入解析volatie,可见性与内存屏障

上一章我们说了多线程带来的不安全性,详见 java并发编程 ||深入理解synchronized,锁的升级机制,那么除了不安全性,它还有一些什么问题呢。话不多说,我们先来看一个例子/** * @Author Dark traveler * @Note 我心净处,何处不是西天。 * @Descrption * @E-Mail : 1029149772@qq.com * @Date...

2020-03-20 10:33:25 498

原创 java并发编程 ||深入理解synchronized,锁的升级机制

上一章我们说了多线程编程所带来的好处(java并发编程 ||Thread生命周期详解),但是既然有那么多好处,肯定也会带来一些问题,这一章我们就来看看它带来的问题以及解决的办法。多线程所带来的问题?线程不安全1.首先我们举一个例子来证明线程的不安全我们对一个数自增1000次,并且用多线程来实现。/** * @Author Dark traveler * @Note 我心...

2020-03-18 15:41:12 264

原创 java并发编程 ||Thread生命周期详解

并发的发展历史真空管/穿孔打卡场景:首先把程序按规则写到纸上,穿孔打成卡片,然后把卡片放到输入室并且放到输入设备,专人把卡片的程序写到计算机上,等计算机完成计算以后,会把结果打印输出到打印机上特点(问题):计算机大部分时间处于空闲状态,卡片输入之前浪费一大波时间。晶体管/批处理操作系统场景:和上面比计算机不需要等待了,可以不断的从磁带机里面拿取磁带,这样就把上面浪费的时...

2020-03-18 08:52:38 896

原创 java设计模式————原型模式,浅克隆与深克隆的区别

原型模式(Prototype Pattern)用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。现实场景:现在有一份传单,我需要copy100份发送出去。/** * @Author Darker * @Note 我心净处,何处不是西天。 * @Descrption 传单类 * @E-Mail : 1029149772@qq.com * @Date : Cre...

2020-03-16 11:53:50 381

原创 java设计模式————观察者模式,手写一个监听器

观察者模式(Observer Pattern)定义了对象之间的一对多依赖,让多个观察者对象同时监听一个主体对象,当主体对象发生变化时,它的所有依赖者(观察者)都会收到通知并更新。属于行为型模式。观察者模式有时也叫发布订阅模式(微信,qq通知等都用了这种模式)。现实场景:我们以两个qq之间互相发消息为现实场景来模拟一下:/** * @Author Darker * @N...

2020-03-15 19:53:34 731

原创 java设计模式————装饰者模式,第三方登陆的第二种写法

装饰者模式(Decorator Pattern)指在不改变原有对象的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能)属于结构型模式适用场景:1.用于扩展一个类的功能或者给一个类添加附加职责。2.动态的给一个对象添加功能,这些功能可以动态的撤销。现实场景:大家经常吃炒粉不是,有原味,有加肉,有加蛋,也有我全都要的,我们马上想到了代码形式。...

2020-03-14 17:51:06 845 2

原创 java设计模式————适配器模式,怎么加上第三方登陆接口

适配器模式(Adapter Pattern)指将一个类的接口转换成客户期望的另一个接口,使原本的接口不兼容的类可以一起工作。属于结构型设计模式。适用场景:1.已经存在的类,...

2020-03-14 15:31:42 515

原创 java设计模式————模板模式,手撸一个JDBCTemplate

模板模式(Template Method Pattern)定义一个算法的骨架,并允许子类为一个或者多个步骤提供实现。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤。属于行为型设计模式。适用场景:1.一次性实现一个算法的不变的部分,并将可变的行为留给子类来实现。2.各个子类中公共的行为被提取出来并且集中到一个公共的父类中,从而避免代码重复。现实...

2020-03-13 12:07:05 484

原创 java设计模式————策略模式,手写手机支付方式

策略模式是定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化不会影响到使用算法的用户。可以避免多重分之的if...else..和switch语句应用场景1.假如系统中有很多类,而他们的区别仅仅在于他们的行为不同。2.一个系统需要动态的在几种算法中选择一种。例子,京东现在要搞促销,需要几种优惠活动,那我们可以用策略模式来写。/** * @A...

2020-03-12 17:15:04 1004

原创 java设计模式————委派模式,天天使用却不知道的模式,手撸spring

委派模式(Delegate Pattern):基本作用就是负责任务的调度和分配任务,跟代理模式很像,可以看做是一种特殊情况下的静态代理的全权代理,但是代理模式注重过程,而委派模式注重结果。不属于gof23种设计模式之一。属于行为型模式。现实场景:老板要做一些事情,只需要交代给经理,由经理分发给对应的员工即可代码:/** * @Author Darker * @...

2020-03-12 13:43:49 1828

原创 java设计模式————代理模式,了解jdk动态代理和cglib动态代理的区别

代理模式:指为其它对象提供一种代理,以控制对这个对象的访问。代理对象在客服端和目标对象之间起到中介作用。属于结构性的设计模式。代理模式的分类:静态代理。动态代理。静态代理好,那么我们首先从静态代理开始:角色分析:1.抽象角色:一般使用接口或者抽象类来解决2.真实角色:被代理的角色3.代理角色:代理真实角色,代理真实角色后,我们一般会做一些附...

2020-03-11 19:47:04 463

原创 java设计模式————单例模式详解之解决指令重排序,解决反射攻击,美团面试题

上一章的工厂模式已经详细的说明了设计模式在java各种的体现和好处,是不是意犹未尽呢,好,那么现在我们再来分析一下另一种设计模式,单例模式。单例模式的定义:使用场景:确保任何情况下都绝对只有一个实例,那么在代码中有什么呢?ServletContext、ServletConfig(单个配置文件)、ApplicationContext、DBPool等。1.单例模式饿汉式(早期形式)...

2020-03-10 17:41:34 866 1

原创 java设计模式————工厂模式详解之源码分析

为什么要用设计模式?spring中用到得设计模式?spring四大块用到经典得设计模式好,现在我们就来看看工厂模式。

2020-03-10 11:02:44 242

原创 MyCat 数据库中间件的使用

MyCat是什么?1、一个彻底开源的,面向企业应用开发的大数据库集群 2、支持事务、ACID、可以替代MySQL的加强版数据库 3、一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 4、一个融合内存缓存技术、NoSQL技术、HDFS大数据的新型SQL Server 5、结合传统数据库和新型分布式数据仓库的新一代企业...

2020-03-05 15:22:04 411

原创 java8新特性之Stream流篇----为什么代码更强

首先我们来看看什么是Stream!那么我们可以看出,它其实是为了操作我们的数据,接下来就来看看具体操作吧。

2020-02-27 11:02:25 652

原创 java8新特性之Lambda表达式篇----为什么代码更少

为什么使用Lambda表达式? Lambda是一个匿名函数,我们可以把Lambda表达式理解为是一段可以传递的代码(像数据一样传递代码),写出更简洁灵活的代码,同时提升java语言表达能力。 当然又整了这么多花里胡哨的东西,还是上点代码吧,毕竟程序员怎么能不用代码提提神呢。 @Test public void test1() { ...

2020-02-26 10:59:09 258

原创 Java8新特性之引导篇----为什么速度更快

为什么要学习java8新特性? 简单而言就是使一个程序员的代码更加简洁高效,这也是语言发展的必然性,当然我这样说太笼统了,所以我特意去网上找了一张图,相信这张图就很能说明问题了。何来速度更快? 为什么说java8速度更快呢?因为它对底层的数据结构做了改动,对垃圾回收机制(内存结构)做了改变,对并行做了一个扩展和支持,当然还有一些小的改动就不一一例举了。数...

2020-02-10 13:03:37 338

原创 Shiro详解

shiro,作为一款安全框架,它的设计相当精妙,它不依赖于任何应用容器,不仅可以用在JavaSE环境,也可以用在JavaEE环境。shiro可以帮助我们完成:认证、授权、加密、会话管理、与Web集成、缓存等功能,所以学好,用好shiro对于一名java攻城狮来说是十分有必要的,那么来吧,随着我一起来揭开shiro的面纱吧。首先,遇事不绝先百度,百度百科走起,随手一搜,shiro的百度百科...

2019-08-06 17:53:14 224 1

原创 关于前端页面回车键+搜索框产生得刷新失败问题详解

首先说下情景,最近本人接手的一个后台管理系统,在bug回归测试中发现,对页面的查询搜索框按下回车,会导致页面出现404错误。如图,项目大部分版面都有类似于这样的搜索框,点击查询可以搜索成功,但是按下回车键却重定向到一个未知的路径。页面代码类似这样:<form id="formSearch1" class="form-horizontal"> ...

2019-03-31 15:17:38 645

原创 关于ajax同步状态及sucess,complete的顺序的理解

今天写代码,写一个很简单的删除功能,却一直莫名其妙的遇到一个关于ajax的执行顺序问题,在此写下和大家分享一下。首先上代码。 //第一步先同步删除layer.confirm("确认删除所选数据?",function(){ $.ajax({ type:"post", url:url, data:{"ids":ids}...

2018-12-12 11:19:06 1547

原创 关于字符串类型equals的标准化写法

今天写equals的时候,突然遇到了空指针错误,现在情景还原一下。当时在取值比较判断一个对象的属性是否等于“1”.(Object.get(value)).equals("1")写完运行以后,突然发现代码报空指针异常,马上反应过来这个对象中无值为null,调用String的方法当然空指针了;所以马上想给前面加上三目判断。((Object.get(value))==null?“”:(O...

2018-10-19 18:54:46 816

原创 javamail邮件发送

        前段时间给一个老项目集成了一个邮件发送的功能,因为用的是1.6的jdk,所以只能找一个低版本的javamail,在这里贴出来给你大家看看,也是对此的一个总结。---------------------------------------------------------------------------------------------------------------...

2018-09-13 13:53:52 238

原创 阿里巴巴通信的实现(短信接口调用)

      前段时间因客户要求,平台需要集成一发短信的功能,仔细看了一番,最后还是决定使用阿里云通信的服务,虽然只是简单的调用第三方接口,但是还是有一番曲折在其中,现在与大家分享一下。----------------------------------------------------------------------------------------------------------...

2018-09-13 11:53:06 705

原创 springboot 2.0 急速入门

springboot从13到18,从1.0到2.0已经浩浩荡荡历时5年了,在这5年时间里面,它已经从一个幼儿逐渐生长成人,并且变得比其他人更加的强大,当然他它并不是要代替spring,springmvc,它只是把它们简化并且包容,使它变得越来越好,越来越强,so,就让我们来学习一下吧。--------------------------------------------------...

2018-09-13 11:21:01 216

原创 一款极度偷懒的假分页js代码(只适用于要求很低的页面)

首先声明,此分页及其偷懒,而且只适用于页数较少,且数据固定的表格,当然,你硬是要用在变化的数据表格中也没问题,前提是你需要自己修改代码哦!!!实际场景,大家都知道分页的总页数一般是后台传出来的,但是本人碰到了不能大量更改后台代码的情况,但数据又过多,大概50多条,需要分页,所以,本人思索之下,得出一个结论,那就是做个死的假分页,不多说,先展示一下效果。···················

2017-10-31 10:35:37 329 1

原创 及其通俗易懂的异步刷新echarts图表(柱状图)

最近前端写的多一些,遇到一个动态刷新echarts表格问题,本人也是尝试了几次才以自己觉得最通俗易懂的方法写了出来,现在拿出来和大家分享一下。·······························································································································

2017-10-31 09:43:03 2491

原创 点击图片放大功能

最近在项目上运到一个点击图片放大的功能。并不是用a标签伪类实现的那一种放大,本来是希望做成弹框的,但是由于导入的前端框架限制,所以本人采取了另外一种方法,有时候换一种思路,你会发现其实功能的实现很简单。不多说,上代码。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

2017-09-30 14:21:56 1241 1

原创 利用poi完成excel导入功能

之前分享了一个导出excel的功能,导出都有了,那自然需要导入了,不多说,先上代码。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/** * 获取文件后缀名 * @param p

2017-09-30 14:11:57 336 2

原创 利用poi完成导出excel功能

相信导出excel功能,是制作报表必不可少的功能之一,最近这几天,本人也是花了一番心思来编写这个功能,现在拿出来与大家分享一下,同时也是对自己的一个总结。———————————————————————————————————————————————————————————————————————————————————————————————————————————————————————

2017-09-20 10:58:14 354 1

原创 关于开发工具Myeclipse2014中反编译软件Jadclipse的安装和运用

大家都知道,想要看一个jar中的源码,通常都是要下载源码包来看,但是首先下载源码包,一个是麻烦,一个是如果是公司自己封装的源码包,根本无法下载,这个时候就需要用到这个反编译工具,jad.exe,一款很强大,很暴力的反编译软件。——————————————————————————————————————————————————————————————————————这里以我的eclips

2017-09-08 10:13:39 584

空空如也

空空如也

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

TA关注的人

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