自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式-代理模式

文章目录代理模式简介分类代理模式示意图静态代理步骤uml简图代码优缺点JDK代理uml简图代码Cglib代理uml简图代码动态代理跟静态代理区别代理模式简介代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象分类主要有三种 静态代理、JDK 代理或者叫接口代理、Cglib 代理 (可以在内存动态的创建对象,而

2020-08-12 15:53:49 110

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

文章目录定义与特点分类优点缺点说明类适配器uml简图代码注意事项和细节对象适配器uml简图代码注意事项和细节接口适配器适配器模式的注意事项和细节定义与特点将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。分类类适配器:当客户在接口中定义了他期望的行为时,我们就可以应用适配器模式,提供一个实现该接口的类,并且扩展已有的类,通过创建子类来实现适配。对象适配器:对象适配器”通过组合除了满足“用户期待接口”还降低了代码间的不良耦合。在工作中推荐使用“

2020-08-10 17:06:42 142

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

文章目录定义模式的结构uml代码总结模式的扩展定义定义:指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。它是将一个复杂的对象分解为多个简单的对象,然后一步一步构建而成。它将变与不变相分离,即产品的组成部分是不变的,但每一部分是可以灵活选择的。优点:各个具体的建造者相互独立,有利于系统的扩展。客户端不必知道产品内部组成的细节,便于控制细节风险。缺点:产品的组成部分必须相同,这限制了其使用范围。如果产品的内部变化复杂,该模式会增加

2020-07-28 15:35:02 265

原创 设计模式-原型模式

文章目录定义浅拷贝深拷贝深拷贝(序列化)(推荐使用)总结定义用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。浅拷贝先上代码:定义一个Person类,实现Cloneable接口,重写clone()方法public class Person implements Cloneable { private String name; private int age; public Person(String name, int age) { this

2020-07-23 15:32:20 112

原创 设计模式-简单工厂/工厂方法/抽象工厂

文章目录简单工厂模式工厂方法模式抽象工厂模式总结简单工厂模式场景:鼠标工厂,专业生产鼠标,给参数0,生产戴尔鼠标,给参数1,生产惠普鼠标。uml类图:代码:鼠标接口,跟两个厂商鼠标类:public interface IMouse { void sayHi();}class DellMouse implements IMouse { @Override public void sayHi(){ System.out.println("DellMous

2020-07-22 09:52:55 183

原创 设计模式-单例模式

文章目录定义实现的八种方式饿汉式(静态常量)饿汉式(静态代码块)懒汉式(线程不安全)懒汉式(线程安全,同步方法)懒汉式(线程安全,同步代码块)双重检查静态内部类枚举使用单例模式的java.lang.Runtime总结定义所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例, 并且该类只提供一个取得其对象实例的方法(静态方法)。比如 Hibernate 的 SessionFactory,它充当数据存储源的代理,并负责创建 Session 对象。SessionFac

2020-07-21 10:17:21 93

原创 设计模式-UML类图

文章目录UML类接口类图之间的关系类图—依赖关系(Dependence)类图—泛化关系(generalization)类图—实现关系(Implementation)类图—关联关系(Association)类图—聚合关系(Aggregation)类图—组合关系(Composition)UML统一建模语言(Unified Modeling Language,UML)是用来设计软件蓝图的可视化建模语言,1997 年被国际对象管理组织(OMG)采纳为面向对象的建模语言的国际标准。它的特点是简单、统一、图形化、能

2020-07-20 16:08:14 228

原创 设计模式概述及七大原则

设计模式什么是设计模式为什么要使用设计模式设计模式七大原则什么是设计模式软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。设计模式是对面向对象设计中反复出现的问题的解决方案。这个术语是在1990年代由Erich Gamma等人从建筑设计领域引入到计算机科学中来的。为什么要使用设计模式代码重用性可读性(规范性,阅读容易)可扩展性(增加

2020-07-20 14:20:08 290

原创 java提供接口给app支付宝支付遇到得坑

引入maven: <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sdk-java</artifactId> <version>4.9.153.ALL</version> </dependency>贴代码:AlipayClient alipa

2020-07-16 09:52:34 943

原创 java提供接口给app微信支付遇到得坑

调取统一下单接口时,金额参数total_fee参数单位为分,不允许有小数点当调取完微信支付统一下单接口后,会返回xml结果,把xml解析为map,再次对其结果进行md5加密生成sign,但是,参数必须是按照 参数名ASCII码从小到大排序(字典序) ,并且参数名都要小写,举例:String xmlStr = HttpUtil.post(payUrl, paramsxml);Map<String, String> map = SNUtil.getXmlToMap(xmlStr,apiSe

2020-07-16 09:38:46 296

原创 ClassLoader

文章目录ClassLoader类从编译到执行的过程谈谈ClassLoaderClassLoader的种类类加载器的双亲委派机制为什么要使用双亲委派机制去加载类ClassLoader类从编译到执行的过程编译器将Robot.java源文件编译为Robot.class字节码文件ClassLoader将字节码转换为JVM中的Class<Robot>对象JVM利用Class<R...

2020-02-14 23:21:33 73

原创 反射

反射的定义Java的反射(reflection)机制是指在程序的运行状态中,可以构造任意一个类的对象,可以了解任意一个对象所属的类,可以了解任意一个类的成员变量和方法,可以调用任意一个对象的属性和方法。这种动态获取程序信息以及动态调用对象的功能称为Java语言的反射机制。反射应用定义如下一个类demo Robot:public class Robot { private Strin...

2020-02-13 19:16:33 95

原创 Linux常用指令

如何查找特定的文件?find ~ -name “application.properties” :精确查找文件find ~ -name “app*” :模糊查找文件find ~ -iname “app*”:不区分文件名大小写去查找文件man find : 更多关于find指令的使用说明检索文件内容grep语法:grep [options] pattern file全称:Glo...

2020-02-12 19:19:36 109

原创 索引常考面试题

1.如何定位并优化慢查询sql根据慢日志定位慢查询sql使用explain等工具分析sql修改sql或者尽量让sql走索引explain工具:type:从优到差,index 和 all 是全表扫描extra:2.最左原则3.索引是越多越好吗?数据量小的表不需要建立索引,建立会增加额外的索引开销数据变更需要维护索引,增删改速度也会因此变慢,因此更多的索引意味着更多的维...

2020-02-11 18:24:01 355

原创 Redis简介

Redis简介redis和memcache区别Memcache:支持简单数据类型不支持数据持久化存储不支持主从不支持分片Redis:数据类型丰富支持数据磁盘持久化存储支持主从支持分片为什么Redis能这么快10万+QPS (QPS即query per second,每秒内查询次数)数据结构简单,对数据操作也简单采用单线程(主线程是单线程,对于客户端的读写请求...

2020-02-07 14:52:10 109

转载 TCP三次握手和四次挥手

TCP三次握手和四次挥手本文为转载文章,如有侵权,请及时联系,转载地址:https://blog.csdn.net/qq_38950316/article/details/81087809序列号seq:占4个字节,用来标记数据段的顺序,TCP把连接中发送的所有数据字节都编上一个序号,第一个字节的编号由本地随机产生;给字节编上序号后,就给每一个报文段指派一个序号;序列号seq就是这个报文段中的...

2020-02-02 17:28:13 74

原创 线程的同步与锁

线程的同步,为什么要线程同步?线程并发执行时,可能会操作同一个资源(比如变量),如果线程A操作了资源,但是还没执行完,线程B又操作了资源,会引发资源数据不一致,不准确的问题。示例:public class Test4 { public static void main(String[] args) { TestSync testSync = new TestSync(...

2020-01-10 17:59:36 122

原创 线程基本概念

线程和进程的概念进程 :是一个正在执行中的程序,每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元;线程:就是进程中的一个独立控制单元,线程在控制着进程的执行。一个进程中至少有一个进程。多线程:一个进程中不只有一个线程。线程是一个程序内部的顺序控制流,可以理解为程序的不同执行路径。线程的创建1、继承Thread类:2、实现Runnable接口:3、通过C...

2020-01-10 16:33:55 144

空空如也

空空如也

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

TA关注的人

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