自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

北有孤酒的博客

没有比别人优秀,就要比别人努力

  • 博客(217)
  • 资源 (10)
  • 收藏
  • 关注

原创 JUC之Stream流式计算与ForkJoin详解

1.Stream流式计算简介大数据:存储+计算集合,MySQl本质就是存储的计算应该交给流来操作2.Stream流式计算应用package stream;public class User { private int id; private String name; private int age; public User() { super(); } public User(int id, String name, int age) { sup..

2020-11-24 22:50:45 4

原创 JUC之四大函数式接口

1.四大函数式接口lambda表达式,链式编程,函数式接口,Stream流式计算函数式接口:只有一个方法的接口--简化编程模型,在新版本的框架底层应用@FunctionalInterfacepublic interface Runnable { public abstract void run();}...

2020-11-24 20:24:25 5

原创 JUC之线程池详解

1.线程池简介池化技术线程池的好处降低资源的消耗 提高响应的速度 方便管理线程复用,控制最大并发数,管理线程2.线程池三大方法package pool;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * * Executors:三大方法 * * @author Admin * */public class Demo..

2020-11-24 19:07:41 8

原创 JUC之阻塞队列BlockingQueue与SynchronousQueue

1.BlockingQueue介绍使用阻塞队列的场景多线程并发处理,线程池2.BlockingQueue四组API方式 抛出异常 有返回值,不抛出异常 阻塞,等待 超时等待 添加 add() offer() put() offer(,,) 移除 remove() poll() take() poll() 检测队首元素 element() peek() T...

2020-11-24 16:52:43 7

原创 JUC之ReadWriteLock的简介与使用

1.ReadWriteLock简介2.ReadWriteLock应用package rw;import java.util.HashMap;import java.util.Map;import java.util.concurrent.locks.ReadWriteLock;import java.util.concurrent.locks.ReentrantReadWriteLock;/** * * 独占锁(写锁):一次只能被一个线程占用 * 共享锁(读锁):多个线.

2020-11-24 15:52:49 8

原创 JUC之Callable应用与常用的辅助类

1.Callable应用CallableTest.javapackage callable;import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.FutureTask;public class CallableTest { public static void main(String[] args) throws

2020-11-23 21:57:31 21 1

原创 mysql-8.0.11-winx64安装 MySQL 服务时,出现 MySQL 服务无法启动

按照操作网上常规步骤在mysql的根目录下编写my.ini并创建data文件夹[client]port=3306default-character-set=utf8[mysqld]port=3306character_set_server=utf8basedir=%MYSQL_HOME%datadir=%MYSQL_HOME%\data[WinMySQLAdmin]%MYSQL_HOME%\bin\mysqld.exe故障现象1....

2020-11-23 21:15:02 25 1

原创 JUC之CopyOnWriteArrayList,CopyOnWriteArraySet和ConcurrentHashMap应用

1.CopyOnWriteArrayList应用ListTest.javapackage unsafe;import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.UUID;import java.util.Vector;import java.util.concurrent.CopyOnWriteArrayList;// java.util.Concu

2020-11-23 20:21:17 20 1

原创 JUC之八锁现象理解锁

1.JUC概述2.八锁应用Test1.javapackage lock8;import java.util.concurrent.TimeUnit;/** * 8锁,是锁的8个问题 * 1.标准情况下,两个线程打印,先打印?----- 发短信 打电话 * * @author Admin * */public class Test1 { public static void main(String[] args) { Phone phone = new Ph.

2020-11-23 17:27:05 26

原创 POI和EasyExcel对EXCEL表格的操作

1.POI简介Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。基本功能结构:HSSF - 提供读写Microsoft Excel格式档案的功能。 XSSF - 提供读写Microsoft ExcelOOXML格式档案的功能。 HWPF - 提供读写Microsoft Word格式档案的功能。 HSLF - 提供读写Microsoft PowerPoint格式档案的功能。 HD..

2020-11-22 20:20:12 117 2

转载 Java十大排序算法详解

1.排序算法说明排序的定义对一序列对象根据某个关键字进行排序。术语说明稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 内排序:所有排序操作都在内存中完成; 外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行; 时间复杂度:一个算法执行所耗费的时间。 空间复杂度:运行完一个程序所需内存的大小。算法总结图片名词解释:n: 数据规模 k..

2020-11-19 16:38:44 20

原创 设计模式之职责链模式

1.职责链模式定义职责链模式(Chain of Responsiblity Pattern)又叫责任链模式,为请求创建了一个接收者对象的链,这种模式对请求的发送者和接收者进行解耦 职责链模式通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,以此类推 这种类型的设计模式属于行为型模式 职责链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系,将这个对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它为止

2020-11-17 21:49:31 18

原创 设计模式之策略模式

1.策略模式定义策略模式(Strategy Pattern)中,定义算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户 这算法体现了几个设计原则把变化的代码从不同的代码中分离出来 针对接口编程而不是具体类(定义了策略接口) 多用组合.聚合。少用继承(客户通过组合方式使用策略)客户context有成员变量strategy或者其他的策略接口,具体使用哪个策略,可以在构造器中指定2.策略模式应用(解决鸭子问题)FlyBehavior.jav..

2020-11-17 18:48:41 204 3

原创 设计模式之状态模式

1.状态模式定义状态模式(State Pattern):它主要用来解决对象在多种状态转换时,需要对外输出不同行为的问题。状态和行为是一一对应的,状态之间可以相互转换 当一个对象的内在状态发生改变时,允许改变其行为,这个对象看起来像是改变了其类Context类为环境角色,用于维护State实例,这个实例定义当前状态 State是抽象状态角色,定义一个接口封装与Context的一个特点接口相关行为 ConcreteState具体的状态角色,每个子类实现一个与Context的一个状态相关.

2020-11-17 17:22:03 20

原创 设计模式之解释器模式

1.解释器模式定义在编译原理中,一个算术表达式通过词法分析器形成词法单元。而后这些词法单元再通过语法分析器构建语法分析数,最终形成一颗抽象的语法分析树。这里的词法分析器和语法分析器都可以看做解释器 解释器模式(Interpreter Pattern):指给定一个语言(表达式),定义它的文法的一种表示,并定义一个解释器,使用该解释器来解释语言中的句子(表达式) 应用场景:应用可以将一个需要解释执行的语言中的句子表示为一个抽象语法树 一些重复出现的问题可以用一种简单的语言来表达 一个简单语法需要

2020-11-17 16:20:23 13

原创 设计模式之备忘录模式

1.备忘录模式定义备忘录模式(Memento Pattern)在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象外保存这个状态,这样以后就可以将该对象恢复到原先保存的状态 现实中的备忘录是用来记录某些要去做的事,或者记录已经达成共同意见的事,防止忘记。在软件层面,备忘录模式有着相同的含义,备忘录对象主要用来记录一个对象的某种状态,或者某些数据。当要做回退时,可以从备忘录对象里获取原来的数据进行恢复操作 备忘录模式属于行为型模式...

2020-11-16 23:00:50 13

原创 设计模式之中介者模式

1.中介者模式定义中介者模式(Mediator Pattern),用一个中介对象来封装一系列的对象交互,中介者使各个对象不需要显示的相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互 中介者模式属于行为性模式,使代码易于维护 如MVC模式,C(controller控制器)是M(Model模型)和V(View视图)的中介者,在前后端交互时起到了中间人的作用Mediator是抽象中介者,定义了同事对象到中介者对象的接口 ConcreteMediator:具体的中介者对象,实现.

2020-11-16 19:30:41 14

原创 设计模式之观察者模式

1.观察者模式对象之间多对一依赖的一种设计方案。被依赖的对象为Subject,依赖的对象时Observer,Subject通知Observer变化。

2020-11-16 18:00:59 6

原创 设计模式之迭代器模式

1.迭代器模式定义迭代器模式(Iterator Pattern)是常用的设计模式,属于行为型模式 如果集合元素是不同的方式实现的,有数组,还有Java的集合类,或者还有其他方式。当客户端要遍历这些集合元素时,就要使用多种遍历方式,而且还会暴露元素的内部结构,可以考虑使用迭代器模式解决 迭代器模式提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素,不需要知道集合对象的底层表示,即:不暴露其内部结构...

2020-11-15 20:41:48 16

原创 设计模式之访问者模式

1.访问者模式定义访问者模式(Visitor Pattern),封装一些作用于某种数据结构的各元素的操作,它可以在不改变数据结构的前提下,定义作用于这些元素的新操作 主要将数据结构与数据操作分离,解决数据结构和操作耦合性问题 访问者模式的基本工作原理是:在被访问的类里面加一个对外提供接待访问者的接口 访问者模式主要应用场景:需要对一个对象结构中的对象进行很多不同的操作(这些操作彼此之间没有关联),同时需要避免让这些操作污染这些对象的类,可以使用访问者模式解决Visitor是抽象.

2020-11-15 12:32:38 35

原创 设计模式之命令模式

1.命令模式的定义命令模式(Command Pattern),在软件设计中,经常需要向某些对象发送请求,但是不知道请求的接收者是谁,也不知道被请求的操作是谁。只需要在程序运行时指定具体的请求接受者即可。此时,可以使用命令模式来进行设计 命令模式使得请求发送者与请求接受者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦 在命令模式中,会将一个请求封装为一个对象,以便使用不用参数来表示不同的请求(即命名),同时命令模式也支持可撤销的操作 可以理解为,将军发布命令,士兵去执行。其中有几个角色

2020-11-15 10:40:45 25

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

1.模板方法模式定义模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),在一个抽象类公开定义执行它的方法的模板,它的子类可以按照需要重写方法实现,但调用将以抽象类中定义的方式进行 简单说,模板方法模式定义一个操作中的算法的骨架,将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤 这种类型的设计模式属于行为型模式。AbStractClass类中实现了模板方法(template),定.

2020-11-14 12:06:21 20

原创 设计模式之享元模式

1.享元模式定义享元模式(Flyweight Pattern)也叫蝇量模式,运用共享技术有效地支持大量细粒度的对象 常用于系统底层开发,解决系统的性能问题,如数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的,直接拿过来用,避免重复创建。没有我们需要的,就创建一个 享元模式能够解决重复对象的内存浪费的问题,当系统中有大量相似对象,需要缓冲池时,不需要总是创建新对象,可以从缓冲池中拿。这样可以降低系统内存,同时提高效率 享元模式经典的应用场景就是池技术,String常量池,数据库

2020-11-13 22:59:41 25

原创 设计模式之外观模式

1.外观模式定义外观模式(facade),也叫过程模式;外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用 外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节2.外观模式应用解决影院问题DVDPlayer.javapackage facade;/** * 播放器 * @author Admin * */public class DVDP

2020-11-13 20:40:34 38

原创 设计模式之组合模式

1.组合模式定义组合模式(Composite Pattern),又叫做部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示整体-部分的层次关系 组合模式依据树形结构来组合对象,用来表示部分以及整体层次 这种类型的设计模式属于结构型模式 组合模式使得用户对单个对象和组合对象的访问具有一致性,即组合能让客户以一致的方式处理个别对象以及组合对象2.组合模式应用以学校院系展示为例OranizationComponent .javapackage composi.

2020-11-13 17:21:35 21

原创 设计模式之装饰者模式

1.装饰者模式的概述定义装饰者模式:动态的将新功能附加到对象上,在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了开闭原则 这里提到的动态的将功能附加到对象和ocp原则,在后面的应用实例上会以代码形式体现。原理装饰者模式就像打包一个快递主体:比如陶瓷,衣服-----------被装饰者 包装:比如报纸填充,塑料泡沫,纸板等2.装饰者模式应用解决咖啡订单问题Drink.javapackage decorator;public abstra..

2020-11-12 22:08:23 21

原创 设计模式之代理模式

1.代理模式分类静态代理 动态代理2.静态代理角色分析抽象角色:一般会使用接口或者抽象类来解决 真实角色:被代理的角色 代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作 客户:访问代理对象的人代码步骤接口 真实角色 代理角色 客户端访问代理角色Rent.javapackage daili;/** * 租房接口 * @author Admin * */public interface Rent { pub...

2020-11-11 19:44:21 68 2

原创 设计模式之桥接模式

1.桥接模式定义桥接模式是将抽象部分与它的实现部分分离,使它们都可以独立的变化。它是一种对象结构型模式,又称为柄体模式或者接口模式2.桥接模式应用Brand.javapackage birdge;/** * 品牌 * @author Admin * */public interface Brand { void info();}Lenove.javapackage birdge;/** * 联想品牌 * @author Admin * *..

2020-11-10 21:47:52 63 1

原创 设计模式之适配器模式

1.结构型模式作用从程序的结构上实现松藕合,从而可以扩大整体的类结构,用来解决更大的问题分类适配器模式 代理模式 桥接模式 装饰模式 组合模式 外观模式 享元模式2.适配器模式将一个类的接口转换成客户希望的另外一个接口,Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作目标接口:客户所期待的接口,目标可以是具体的或者抽象的类,也可以是接口 需要适配的类:需要适配的类或者是适配者类 适配器:通过包装一个需要适配的对象,把原..

2020-11-10 20:54:58 73 2

原创 设计模式之建造者模式

1.建造者模式概述建造者模式也属于创建型模式,它提供了一种创建对象的最佳方式 定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示 主要作用:在用户不知道对象的建造过程和细节的情况下就可以直接创建复杂的对象 用户只需要给出指定复杂对象的类型和内容,建造者模式负责按顺序创建复杂的对象(把内部的建造过程和细节隐藏起来)工厂(建造者模式):负责制造汽车(组装过程和细节在工厂内) 汽车购买者(用户):只需要说成你需要的型号(对象的类型和内容),然后直接购买就可以直接使

2020-11-10 19:26:27 22

原创 设计模式之抽象工厂模式

1.抽象工厂模式概述定义抽象工厂模式提供了一个创建一系列相关的或者相互依赖对象的接口,无需指定它们具体的类适用场景客户端(应用层)不依赖于产品实例如何被创建,实现等细节 强调一系列相关的产品对象(属于同一产品族)一起使用创建对象需要大量的重复代码 提供一个产品类的库,所有的产品以同样的接口出现,从而使得客户端不依赖于具体的实现优点与缺点优点:具体产品在应用层的代码隔离,无需关心创建的细节 将一个系列的产品统一到一起创建缺点:规定了所有可能被创建的产品集合,.

2020-11-10 17:33:43 24

原创 设计模式之工厂模式

1.OOP七大原则开闭原则:一个软件的实体应当对外扩展开放,对修改关闭 依赖倒转原则:要针对接口编程,不要针对实现编程 迪米特法则:只与你直接的朋友通信,避免和陌生人通信2.工厂模式简述作用:实现了创建者和调用者分离分类:简单工厂模式 工厂方法模式 抽象工厂模式核心本质实例化对象不使用new,用工厂方法代替 将选择实现类,创建对象统一管理和控制,从而将调用者跟我们的实现类解耦三种模式简单工厂模式:用来生产同一等级结构的任意产品(对于增加新的产品..

2020-11-09 21:27:15 23

原创 设计模式之原型模式

1.原型模式的定义用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象2.原型模式的优点与缺点优点:Java自带的原型模式基于内存二进制流的复制,在性能上比直接 new 一个对象更加优良。 可以使用深克隆方式保存对象的状态,使用原型模式将对象复制一份,并将其状态保存起来,简化了创建对象的过程,以便在需要的时候使用(例如恢复到历史某一状态),可辅助实现撤销操作。缺点:需要为每一个类都配置一个 clone 方法 clone 方法位于类的内部,当...

2020-11-09 18:28:11 67 2

原创 设计模式之单例模式

1.单例(Singleton)模式的定义一个类只有一个实例,且该类能自行创建这个实例的一种模式2.单例模式特点单例类只有一个实例对象; 该单例对象必须由单例类自行创建; 单例类对外提供一个访问该单例的全局访问点。3.单例模式的优缺点优点:单例模式可以保证内存里只有一个实例,减少了内存的开销。 可以避免对资源的多重占用。 单例模式设置全局访问点,可以优化和共享资源的访问。缺点:单例模式一般没有接口,扩展困难。如果要扩展,则除了修改原来的代码,没有第二种途径...

2020-11-09 17:24:41 59 2

原创 Servlet综合案例(增删改查操作)

1.数据库环境搭建该案例是EMS员工管理系统,使用两张表EMP员工信息表 EmpManager管理员表创建数据库create database emp;创建数据表use emp;create table emp( id int primary key auto_increment, name varchar(20) not null, salary double not null, age int not null).

2020-11-08 11:35:57 33

原创 过滤器

1.过滤器概念现有问题在以往的Servlet中,有没有冗余的代码,多个Servlet都要进行编写概念过滤器(Filter)是处于客户端与服务端目标资源之间的一道过滤技术执行流程Client 过滤器 目标资源 ...

2020-11-08 11:00:01 67 2

原创 ServletContext对象

ServletContext概述全局对象,也拥有作用域,对应一个Tomcat中的web应用 当web服务器启动时,会为每一个web应用程序创建一块共享的存储区域(ServletContext) ServletContext在web服务器启动时创建,服务器关闭时销毁获取ServletContext对象GenericServlet提供了getServletContext()方法,(推荐使用) this.getServletContext(); HttpServletRequest提供了g

2020-11-08 10:04:08 46 1

原创 Session实战保存验证码

创建验证码导入ValidateCode.jar() 创建生成验证码的ServletCreateCodeController.javapackage com.newer.servletProject.servlet.controller;import cn.dsna.util.images.ValidateCode;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;i

2020-11-08 09:33:43 65 1

原创 Session实战权限认证

1

2020-11-08 09:21:51 90 1

原创 Cookie与Session详解

1.状态管理现有问题HTTP协议是无状态的,不能保存每次提交的信息 如果用户发来一个新的请求,服务器无法知道它是否与上次的请求有联系 对于那些需要多次提交数据才能完成的web操作,如登录,就有问题概念将浏览器与web服务器多次交互当做一个整体来处理,并且将多次交互所涉及的数据(状态)保存下来。状态管理分类客户端状态管理技术:将状态保存在客户端,代表性的是Cookie技术 服务端状态管理技术:将状态保存在服务器端,代表性的是session技术(服务器传递session.

2020-11-07 20:00:45 15

Java面试.docx

以下Java面试题都是本人在面试的过程中收集的,本人抱着学习的态度找了下参考答案,有不足的地方还请指正

2020-06-14

Java知识点复习.docx

本文主要是我最近复习Java基础原理过程中写的Java基础学习总结。Java的知识点其实非常多,并且有些知识点比较难以理解,有时候我们自以为理解了某些内容,其实可能根本不懂

2020-06-14

Unix&Linux资料.zip

inux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心

2020-05-08

Linux&vim常见命令.zip

基础的linux编程学习,适合初学者。包括vi的使用等,Linux 命令行的作用与意义: 好处:Linux 系统的优势基因还是快速、 批量、 自动化、 智能化管理系统及处理业务

2020-05-08

execution表达式&切入点表达式.txt

在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点

2020-05-06

logback输出配置说明.docx

Logback 是一个 Java 领域的日志框架。它被认为是 Log4J 的继承人。 Logback 主要由三个模块组成

2020-05-06

微服务基础概念知识.rar

微服务架构(Microservice Architecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦

2020-05-05

基于MyBatis中的动态SQL实现客户关系管理平台.zip

使用 SpringMVC+MyBatis+Vue 实现,点击“保存”提交添加新客户表单并将数据存储到数据库,在右侧下方表格显示所有客户信息以及多条件查询:在右侧上方表单输入客户名称,选择地区、客户经理、客户等级,点击“查询”按钮。在右侧下方表格显示查询结果。

2020-04-06

MySQL数据库笔记.doc

数据库系统的一个主要目的是给用户提供数据的抽象视图,也就是说隐藏关于数据存储和维护的某些细节,笔记里面包括了数据库的CRUD的具体操作以及案例,旨在帮助小伙伴更好更快的掌握数据库的原理以及使用。

2020-04-04

java全栈开发笔记.doc

这是一个包含java从初级到高级的笔记。在笔记里,总结了Java语言及其环境的诸多精良部分,包括:类型系统、异常处理、包机制、垃圾回收、Java虚拟机、Javadoc、集合、远程方法调用和并发机制。另外,从开发者的角度分析了在Java技术周围发展起来的“开发者生态环境”。把Java技术精炼到只含有它的最佳部分。使人读后有一种“知其所以然”的通透感。希望可以帮助小伙伴们快速迈入java这一殿堂。

2020-04-04

空空如也

空空如也

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

TA关注的人 TA的粉丝

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