自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

世银的博客

记录的我学习过程~

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

原创 条件注解@Conditional

简介在学习SpringBoot的时候我们会在各种自动配置类中看到大量使用了@Conditional注解,这篇文章主要说下@Conditional注解的使用方法。按照《Spring Boot实战》书中所说的:“@Conditional根据满足某一特定条件创建一个特定的Bean。比方说,当某一个jar包在一个类路径下的时候,自动配置一个或多个Bean;或者只有某个Bean被创建才会才会创建另外一个...

2020-04-01 14:15:30 909

原创 redis命令学习笔记(五):Zset

简介1、redis中的Zset有序集合和集合Set一样也是String类型的元素集合,且不允许有重复的成员。2、不同的是每一个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。3、有序集合的成员是唯一的,单分数却可以重复。4、集合中最大的成员数为2的32次方-1。赋值语法ZADD key [NX|XX] [CH] [INCR] score...

2020-03-31 15:30:47 307

原创 redis命令学习笔记(四):Set

简介Redis的Set是String类型的无序集合。集合成员是唯一的,这就意味着集合中不能出现重复的数据。Redis中集合是通过哈希表实现的,所以添加、删除、查找的复杂度都是O(1)。集合中最大的成员数为2的32次方 - 1。Redis中的Set类似于Java中的HashTable集合。赋值语法SADD key member [member …]向集合set中添加一个或多个成员。E...

2020-03-30 22:50:26 252

原创 redis命令学习笔记(三):List

简介Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 232 - 1 个元素 (4294967295, 每个列表超过40亿个元素) 。类似JAVA中的LinkedList。赋值语法(一)LPUSH key element [element …]Redis Lpush 命令将一个或多个值插入到列表头部。 如果 ke...

2020-03-30 16:36:24 222

原创 redis命令学习笔记(二):Hash

简介Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。 Redis 中每个 hash 可以存储 232 - 1 键值对(40多亿)可以看成具有KEY和VALUE的MAP容器,该类型非常适合于存储值对象的信息, 如:uname,uage等。该类型的数据仅占用很少的磁盘空间(相比于JSON) 。Hash命令赋值语法HSET key f...

2020-03-29 22:52:27 157

原创 redis命令学习笔记(一):String

String类型简介string类型是Redis最基本的数据类型,一个键最大能存储512MB。string数据结构是最简单的key-value类型,value不仅可以是string,也可以是数字,是包含很多种类型的特殊结构类型。string类型是二进制安全的。意思是redis可以包含任何数据。比如序列化的对象进行存储,比如一张图片进行二进制存储,再比如一个简单的字符串,数值等等。Stri...

2020-03-29 22:19:03 575

原创 Java合并两个int数组

public static void main(String[] args) { int[] a = {1,2}; int[] b = {3,4}; System.out.println(Arrays.toString(contact(a, b))); }public static int[] contact(int[] a, int[] ...

2020-03-23 15:04:40 3818 2

原创 外观模式(Facade Pattern)-(最通俗易懂的案例)

定义外观模式(Facade Pattern)属于结构型模式,其为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。光看定义有点枯燥,我来举个例子:假设我们去一个餐厅吃饭,服务员写下了我们点的菜单,然后通知厨师按照订单来做菜,厨师做好后就通知服务员,然后服务员将饭菜给我们端上来,我们吃好后,清洁员来收拾餐桌并洗碗筷。 如果我们要实现这个场景,...

2020-03-21 15:18:57 1792

原创 组合模式(Composite Pattern)-(最通俗易懂的案例)

定义组合模式(Composite Pattern)属于结构型模式,将对象组合成树形结构以表示“部分”—“整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。什么叫“部分”—“整体”的层次结构呢,举个例子:假如我们在网上购物买了很多的东西,仓库收到订单后按照订单明细给我们的东西打包,由于东西很多他们用了很多的包装盒,并最终用一个巨大的盒子来包裹每一个订单的商品,如下图所示:...

2020-03-20 22:38:52 2056

原创 装饰模式(Decorator Pattern)-(最通俗易懂的案例)

前言我们通常在编码的时候为了扩展一个类的功能往往用的是继承来实现,但是继承的缺点主要是单继承的局限性和可能产生类爆炸的后果。装饰模式(Decorator),动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更为灵活。装饰模式属于结构型模式,它是作为现有的类的一个包装。结构模式图解析:Component:定义一个对象接口,可以给这些对象动态地添加职责。Concre...

2020-03-19 18:11:58 7377 2

原创 桥接模式(Bridge Pattern)-(最通俗易懂的案例)

1.定义桥接模式(Bridge Pattern):将抽象部分与它的实现部分分离,使它们都可以独立地变化。问题:这里的抽象与实现是什么意思呢?先来看一个例子:假如你有一个几何形状Shape类,从它能扩展出两个子类: ​ 圆形Circle和 方形Square 。 你希望对这样的类层次结构进行扩展以使其包含颜色,所以你打算创建名为红色Red和蓝色Blue的形状子类。 但是, 由于你已有两个子类,...

2020-03-18 22:53:29 26469 15

原创 适配器模式(Adapter Pattern)-(最通俗易懂的案例)

1.定义适配器模式(Adapter Pattern),将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能在一起工作的那些类可以在一起工作。解决的问题: 简单地说,就是我们需要的东西就在我们面前,但是我们却不能使用,而短时间又无法改造它,于是我们就想办法适配它。举个例子:“适配”这个词其实最早出现在电工学里,有些国家用110V电压,而我们国家用的是220...

2020-03-18 14:58:47 1261 1

原创 建造者模式(Builder Pattern)-(最通俗易懂的案例)

1.概要介绍1.1定义建造者模式(Builder Pattern):将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。1.2适用环境需要生成的产品对象有复杂的内部结构,这些产品对象通常包含多个成员属性。对象的创建过程独立于创建该对象的类。在建造者模式中引入了指挥者类,将创建过程封装在指挥者类中,而不在建造者类中。需要生成的产品对象的属性相互依赖,需要指定其生成...

2020-03-17 21:33:13 836

原创 原型模式(Prototype Pattern)-(最通俗易懂的案例)

1.案例引入——克隆羊相信大家都听过克隆羊Dolly的故事,现在我们有这样一个需求:给你一头羊,像克隆那样我们需要创建出来10只一模一样的羊,有人说这个简单,直接new不就完事儿了吗,于是上代码:Sheeppublic class Sheep { private String name; private Integer age; public String getN...

2020-03-14 22:21:38 660

原创 工厂模式(Factory Pattern) -(最通俗易懂的案例)

工厂模式属于创建型模式,一共有三种,分别是:简单工厂模式,方法工厂模式以及抽象工厂模式。1.简单工厂模式定义:简单工厂模式(Simple Factory Pattern)又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。适用场景:工厂类负责创建的对象比较少:由于创建的对象较少,...

2020-03-13 22:21:17 877

原创 单例模式(Singleton Pattern) -(最通俗易懂的案例)

文章目录单例设计模式介绍单例模式的几种实现方式1.饿汉式(静态常量)2.懒汉式(线程不安全)3.懒汉式(线程安全)4.双重检查单例模式注意事项和细节说明单例设计模式介绍所谓类的单例设计模式,就是采用一定的方法保证在整个的软件系统中,对某个类只能存在唯一的实例,并且该类只提供一个取得其对象实例的方法(静态方法)。比如Hibernate的SessionFactory,它充当数据存储源的代理,并负...

2020-03-12 21:43:58 1176 1

原创 Java反射知识详解(或许对你有帮助)

1.什么是反射?反射(reflection)是Java特征之一,它允许执行中的Java程序自行检查或“理解”并操纵程序的内部属性。将类的各个属性封装成对象就是反射机制。这话可能有点抽象,下面画一幅图来说明:学过Java的朋友们都知道我们在初学Java的时候肯定用过记事本写简单Java类然后用javac命令去编译它,编译完之后在本地磁盘上就会有对应的类名.class 文件,这个文件就是字节码文...

2020-03-01 15:52:31 8324

原创 代理模式(Proxy Pattern) -(最通俗易懂的案例)

1.什么是代理Proxy(代理)模式是常见设计模式之一,“代理”顾名思义就是“替代”的意思,很容易理解。根据GoF(《Design Patterns: Elements of Reusable Object-Oriented Software》的四位作者)的代理设计模式意图是:Provide a surrogate or placeholder for another object to con...

2020-02-29 17:32:01 4270

原创 Java多线程基础知识学习笔记

前言:再过几天就要去找工作去了,最近在复习java基础知识,网上也看了不少,当看到多线程这边的时候发现荒废了一年基本都忘光了,这篇文章就把多线程的一些基础知识重新过一边,就当是复习了。在讲解多线程之前先简要说说线程与进程的概念:进程:进程是程序的一次执行过程,是资源分配的最小单元,进程切换开销较大,一个进程包含多个线程线程:线程是进程内部的一个执行序列,是操作系统调度的最小单位,线程间切...

2020-02-27 20:52:39 375

原创 Java集合之HashMap分析和使用

一、概览HashMap是最常用的集合之一,基于哈希表实现,用于存储键值对,从key映射到value,实现了Map接口HashMap的几个特点:允许 null key与null value ,也就是键值对均可为空key 不能重复HashMap是无序集合,无法保证元素的特定顺序HashMap不是线程安全的HashMap的get与put方法使用了hashCode() 和 equals(...

2020-02-25 15:52:52 398

原创 Java集合List、ArrayList、LinkedList、Vector

ListList是一个接口继承自Collectionpublic interface List<E> extends Collection<E> List下面有三个实现类分别是ArrayList、LinkedList和Vector,如下图所示:List是一个有序集合(有时成为序列),List可以包含重复的元素可以使用从零开始的索引按元素在列表中的位置插入或...

2020-02-24 22:04:46 240

原创 Java常见关键字final、static、super、abstract、this

用此blog记录我学习的过程,文中若有不恰当的地方,还望友情指出互相学习。Java有超过50多个关键字,这篇文章主要讲解一些常见的几个关键字,有兴趣的同学还可以点此查看更多关键字,下面进入正题:finalfinal关键字主要有三种用法:修饰类、修饰方法、修饰成员变量修饰类如果一个类被final修饰,则这个类不能被继承,例如:final class A {}下面的代码则无...

2020-02-23 20:13:30 358

翻译 Java中 equals() 和 hashCode()的关系

用此blog记录我学习的过程,文中若有不恰当的地方,还望友情指出互相学习。上篇文章谈到了==与equals()的区别,关于equals()方法与hashCode()方法网上有很多教程,这里我翻译一篇国外作者写的文章(文末会注明出处),我觉得写得很棒,分享给大家Java equals()在Object类中定义了equals()方法,源码如下:public boolean equals(Ob...

2020-02-23 15:28:28 536

原创 Java中==与equals的区别

1.==与equals的区别==基本数据类型(也称原始数据类型):byte,short,double,char,int,long,float,boolean.他们之间的比较应该用==,比较的是他们的值是否相等。 引用数据类型:当他们在用==比较的时候,比较的是他们在内存中的存放地址。(除非是同一个new出来的对象,他们比较的结果是true,否则都是false,因为每一次new都会重新开辟...

2020-02-23 12:11:45 484

空空如也

空空如也

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

TA关注的人

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