自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

云卷云舒

没在尽心,怎么可能

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

转载 Git基本用法一

1、集中式版本控制与分布式版本控制的区别Linus一直痛恨的CVS及SVN都是集中式的版本控制系统,而Git是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢?先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。集中式版本控制系统最大的...

2021-01-21 11:13:47 179 1

原创 交换机与路由器

交换机和路由器的主要区别:两者都是连接互联网的设备,它们之间主要区别就是,交换机发生在网络的第二层数据链路层,而路由器发生在第三层网络层。这个区别是两者各自工作方式的根本区别。路由器可以根据IP地址寻找下一个设备,可以处理TCPIP协议,而上一篇我们讲过交换机是根据MAC地址寻址的。交换机是分配网络数据,路由器可以给网络分配IP地址,分配给你地址而且可以随时通过地址过来找到你。路由器可以在不同时间内把一个IP分配给多台主机使用。交换机是通过MAC地址和识别各个不同的主机。逻辑...

2021-01-21 10:39:10 315

原创 数组练习

1、题目描述--螺旋矩阵代码实现:import java.util.ArrayList;public class 螺旋矩阵 { public ArrayList<Integer> spiralOrder(int[][] matrix) { ArrayList<Integer> res = new ArrayList<Integer>(); if(matrix.length==0) return res;

2021-01-20 11:40:58 164

原创 树的直径

题目描述代码分析:import java.util.*; class Interval { int start; int end; } public class 树的直径 { /** * 树的直径 * @param n int整型 树的节点个数 * @param Tree_edge Interval类一维数组 树的边 * @param Edge

2021-01-18 11:29:58 122

原创 合并两个有序数组

题目描述代码分析:import java.util.Arrays;public class 合并两个有序数组 { /** * 方法一 * @param A * @param m * @param B * @param n */// public void merge(int A[], int m, int B[], int n) {// for(int i=0;i<n;i++){//

2021-01-18 11:28:14 184

原创 二叉树的遍历

题目描述import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;public class 二叉树的遍历 { public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; } public ArrayList<Arra

2021-01-18 11:04:16 71

原创 两数之和

题目描述代码实现:import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class 两数之和 { /** * 暴力破解 * @param numbers * @param target * @return */// public static int[] twoSum(int[] numbers, int target) {

2021-01-18 10:59:38 95 2

原创 工具类的使用

import java.util.Arrays;import java.util.List;import java.util.stream.Collectors;public class TestStringTransUtil { //将字符串类型以逗号分隔开,去掉前后空格,以列表的形式打印输出 private static List<Integer> getIntegerList(String str) { List<Integer> ns.

2021-01-18 10:54:25 185

原创 二叉树相关编程练习

题目描述题目源码:import java.util.ArrayList;import java.util.Collections;import java.util.LinkedList;import java.util.Queue;public class 二叉树的之字形层序遍历 { public class TreeNode { int val = 0; TreeNode left = null; TreeNode right

2021-01-18 10:41:05 128 1

原创 斐波那契数列蛇形矩阵

```javapackage test;import java.util.ArrayList;import java.util.Scanner;public class didi2 { /** * 小明昨晚做了一个梦。在梦里,很多很多斐波那契数连成了一条蛇。突然,最大的那个数变成了蛇头,把小明一口给吞到肚子里去了。 * * 小明被吓醒了,他赶紧拿笔在纸上面画了一条斐波那契蛇。 * * * * 这是一个蛇形迂回的斐波那.

2020-08-22 17:47:44 458

翻译 Set集合的使用总结

Set集合也可以排序Java 集合类主要由两个接口派生而出: Collection 和 Map。在 Collection 集合中,我们经常用到的是 List 集合和 Map 集合,而 Set 集合出场的机会就相对比较的少了。在书本上学习的时候就只知道 Set 集合是无序并且是不可重复的。说起 Set 集合想到的就是 Set 集合是无序并且不重复的集合。当试图把两个相同的对象加入一个 Set 中时,对象会调用 equals 方法比较两个对象元素是否相同,相同则不会加入。// Dummy value

2020-08-02 19:41:00 340

原创 vuetify学习

vuetify安装vuetify3.0以上的脚手架的相关步骤:官网:https://vuetifyjs.com/zh-Hans/getting-started/quick-start 每一个 vue 都是一个组件,相当于一个js文件,vue文件默认导出为文件类名。<!--<v-app-bar app dark class="indigo ">--> 工具栏 网页顶部菜单 <!--app--> 工具条不随鼠标上下拖动而改变 &lt

2020-06-03 22:02:15 1614

原创 域名解析

1、定义域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。互联网中的地址是数字的IP地址,域名解析的作用主要

2020-06-03 16:00:30 1104

原创 软件设计模式----访问者模式

访问者模式模式动机对于系统中的某些对象,它们存储在同一个集合中,且具有不同的类型,而且对于该集合中的对象,可以接受一类称为访问者的对象来访问,而且不同的访问者其访问方式有所不同,访问者模式为解决这类问题而诞生。在实际使用时,对同一集合对象的操作并不是唯一的,对相同的元素对象可能存在多种不同的操作方式。而且这些操作方式并不稳定,可能还需要增加新的操作,以满足新的业务需求。此时,访问者模式就是一个值得考虑的解决方案。访问者模式的目的是封装一些施加于某种数据结构元素之上的操作,一旦这些操作需要修改

2020-05-11 01:13:26 1104

原创 软件设计模式----模板方法模式(Java)

模板方法模式动机模板方法模式是基于继承的代码复用基本技术,模板方法模式的结构和用法也是面向对象设计的核心之一。在模板方法模式中,可以将相同的代码放在父类中,而将不同的方法实现放在不同的子类中。在模板方法模式中,我们需要准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来让子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现,这就是模板方法模式的用意。模板方法模式体现了面向对象的诸多重要思想,是一种使用频率较高的模式。模式

2020-05-11 00:06:32 416

原创 软件设计模式----策略模式(java)

策略模式模式动机完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务。在软件开发中也常常遇到类似的情况,实现某一个功能有多个途径,此时可以使用一种设计模式来使得系统可以灵活地选择解决途径,也能够方便地增加新的解决途径。在软件系统中,有许多算法可以实现某一功能,如查找、排序等,一种常用的方法是硬编码(Hard Coding)在一个类中,如需要提供多种查找算法,可以将这些算法写到一个类中,在该类中提供多个方法,每一个方法对应一个具

2020-05-10 23:30:35 924

原创 软件设计模式----状态模式(Java)

状态模式模式动机在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫做状态,这样的对象叫做有状态的 (stateful)对象,这样的对象状态是从事先定义好的一系列值中取出的。当一个这样的对象与外部事件产生互动时,其内部状态就会改变,从而使得系统的行为也随之发生变化。在UML中可以使用状态图来描述对象状态的变化。模式定义状态模式(State Pattern) :允许一个对象在其内部状态改变时改变它的行为,对象看起来似乎修改了它的类。其别名为状态对象(Objects for

2020-05-10 21:36:12 996

原创 软件设计模式----观察者模式(Java)

观察者模式模式动机建立一种对象与对象之间的依赖关系,一个对象发生改变时将自动通知其他对象,其他对象将相应做出反应。在此,发生改变的对象称为观察目标,而被通知的对象称为观察者,一个观察目标可以对应多个观察者,而且这些观察者之间没有相互联系,可以根据需要增加和删除观察者,使得系统更易于扩展,这就是观察者模式的模式动机。模式定义观察者模式(Observer Pattern):定义对象间的一种一对多依赖关系,使得每当一个对象状态发生改变时,其相关依赖对象皆得到通知并被自动更新。观察者模式又叫做发布-订

2020-05-09 23:21:00 536

原创 软件设计模式----备忘录模式(Java)

备忘录模式模式动机为了使软件的使用更加人性化,对于误操作,我们需要提供一种类似“后悔药”的机制,让软件系统可以回到误操作前的状态,因此需要保存用户每一次操作时系统的状态,一旦出现误操作,可以把存储的历史状态取出即可回到之前的状态。现在大多数软件都有撤销(Undo)的功能,快捷键一般都是Ctrl+Z,目的就是为了解决这个后悔的问题。在应用软件的开发过程中,很多时候我们都需要记录一个对象的内部状态。在具体实现过程中,为了允许用户取消不确定的操作或从错误中恢复过来,需要实现备份点和撤销机制,而要实现这

2020-05-09 16:14:13 384

原创 软件设计模式----中介者模式(Java)

中介者模式1、模式动机在用户与用户直接聊天的设计方案中,用户对象之间存在很强的关联性,将导致系统出现如下问题:系统结构复杂:对象之间存在大量的相互关联和调用,若有一个对象发生变化,则需要跟踪和该对象关联的其他所有对象,并进行适当处理。对象可重用性差:由于一个对象和其他对象具有很强的关联,若没有其他对象的支持,一个对象很难被另一个系统或模块重用,这些对象表现出来更像一个不可分割的整体,职责较为混乱。系统扩展性低:增加一个新的对象需要在原有相关对象上增加引用,增加新的引用关系也需要调整原有对象,系统

2020-05-09 16:00:36 455

原创 软件设计模式-----迭代器模式(Java)

迭代器模式1、 模式动机一个聚合对象,如一个列表(List)或者一个集合(Set),应该提供一种方法来让别人可以访问它的元素,而又不需要暴露它的内部结构。针对不同的需要,可能还要以不同的方式遍历整个聚合对象,但是我们并不希望在聚合对象的抽象层接口中充斥着各种不同遍历的操作。怎样遍历一个聚合对象,又不需要了解聚合对象的内部结构,还能够提供多种不同的遍历方式,这就是迭代器模式所要解决的问题。在迭代器模式中,提供一个外部的迭代器来对聚合对象进行访问和遍历,迭代器定义了一个访问该聚合元素的接口,并且可

2020-05-09 15:31:31 3800

原创 软件设计模式----解释器模式(使用频率较低)

解释器模式1、模式动机如果在系统中某一特定类型的问题发生的频率很高,此时可以考虑将这些问题的实例表述为一个语言中的句子,因此可以构建一个解释器,该解释器通过解释这些句子来解决这些问题。解释器模式描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发的编译器中。2、模式定义解释器模式(Interpreter Pattern) :定义语言的文法,并且建立一个解释器来解释该语言中...

2020-04-25 21:35:13 273

原创 软件设计模式----命令模式(Java)

命令模式1、模式动机在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计,使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活。命令模式可以对发送者和接收者完全解耦,发送者与接收者之间没有直接引用关系,发送请求的对象只需要知道如何发送请求,...

2020-04-25 21:15:51 632

原创 软件设计模式----职责链模式

职责链模式行为型模式是的简单介绍行为型模式(Behavioral Pattern)是对在不同的对象之间划分责任和算法的抽象化。行为型模式不仅仅关注类和对象的结构,而且重点关注它们之间的相互作用。通过行为型模式,可以更加清晰地划分类与对象的职责,并研究系统在运行时实例对象之间的交互。在系统运行时,对象并不是孤立的,它们可以通过相互通信与协作完成某些复杂功能,一个对象在运行时也将影响到其他对象...

2020-04-25 20:40:33 289

原创 软件设计模式----代理模式(Java)

代理模式1、模式动机在某些情况下,一个客户不想或者不能直接引用一个对象,此时可以通过一个称之为“代理”的第三者来实现间接引用。代理对象可以在客户端和目标对象之间起到中介的作用,并且可以通过代理对象去掉客户不能看到的内容和服务或者添加客户需要的额外服务。通过引入一个新的对象(如小图片和远程代理对象)来实现对真实对象的操作或者将新的对象作为真实对象的一个替身,这种实现机制即为代理模式,通过引入...

2020-04-25 20:21:57 723

原创 软件设计模式----外观模式(Java)

外观模式1、模式动机引入外观角色之后,用户只需要直接与外观角色交互,用户与子系统之间的复杂关系由外观角色来实现,从而降低了系统的耦合度。2、模式定义外观模式(Facade Pattern):外部与一个子系统的通信必须通过一个统一的外观对象进行,为子系统中的一组接口提供一个一致的界面,外观模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。外观模式又称为门面模式,它是一种对象结...

2020-04-25 17:52:21 570

原创 软件设计模式----享元模式(Java)

享元模式1、模式动机面向对象技术可以很好地解决一些灵活性或可扩展性问题,但在很多情况下需要在系统中增加类和对象的个数。当对象数量太多时,将导致运行代价过高,带来性能下降等问题。享元模式正是为解决这一类问题而诞生的。享元模式通过共享技术实现相同或相似对象的重用。在享元模式中可以共享的相同内容称为内部状态(Intrinsic State),而那些需要外部环境来设置的不能共享的内容称为外部状...

2020-04-25 17:11:55 320

原创 软件模式-----装饰模式

装饰模式1、模式动机一般有两种方式可以实现给一个类或对象增加行为:(1)继承机制,使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同时还拥有父类的方法。但是这种方法是静态的,用户不能控制增加行为的方式和时机。(2)关联机制,即将一个类的对象嵌入另一个对象中,由另一个对象来决定是否调用嵌入对象的行为以便扩展自己的行为,我们称这个嵌入的对象为装饰器(...

2020-04-25 00:39:51 350

原创 软件设计模式----组合模式(Java)

组合模式1、模式动机对于树形结构,当容器对象(如文件夹)的某一个方法被调用时,将遍历整个树形结构,寻找也包含这个方法的成员对象(可以是容器对象,也可以是叶子对象,如子文件夹和文件)并调用执行。(递归调用)由于容器对象和叶子对象在功能上的区别,在使用这些对象的客户端代码中必须有区别地对待容器对象和叶子对象,而实际上大多数情况下客户端希望一致地处理它们,因为对于这些对象的区别对待将会使得程序非...

2020-04-25 00:12:24 698

原创 软件模式----适配器模式

适配器模式结构型模式(Structural Pattern)描述如何将类或者对象结合在一起形成更大的结构,就像搭积木,可以通过简单积木的组合形成复杂的、功能更为强大的结构。结构型模式可以分为类结构型模式和对象结构型模式:类结构型模式关心类的组合,由多个类可以组合成一个更大的系统,在类结构型模式中一般只存在继承关系和实现关系。对象结构型模式关心类与对象的组合,通过关联关系使得在一个类中定义...

2020-04-24 23:50:55 309

原创 软件设计模式----单例模式(Java)

单例模式1、模式动机对于系统中的某些类来说,只有一个实例很重要,例如,一个系统中可以存在多个打印任务,但是只能有一个正在工作的任务;一个系统只能有一个窗口管理器或文件系统;一个系统只能有一个计时工具或ID(序号)生成器。如何保证一个类只有一个实例并且这个实例易于被访问呢?定义一个全局变量可以确保对象随时都可以被访问,但不能防止我们实例化多个对象。一个更好的解决办法是让类自身负责保存它的...

2020-04-24 23:20:28 608

原创 软件设计模式----原型模式(Java)

原型模式1、模式动机在面向对象系统中,使用原型模式来复制一个对象自身,从而克隆出多个与原型对象一模一样的对象。在软件系统中,有些对象的创建过程较为复杂,而且有时候需要频繁创建,原型模式通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象,这就是原型模式的意图所在。2、模式定义原型模式(Prototype Pattern):原型模式是一种...

2020-04-24 22:52:50 503 1

原创 软件设计模式----抽象工厂模式(Java)

抽象工厂模式1、模式动机在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方法。但是有时候我们需要一个工厂可以提供多个产品对象,而不是单一的产品对象。为了更清晰地理解工厂方法模式,需要先引入两个概念:产品等级结构:产品等级结构即产品的继承结构,如一个抽象类是电视机,其子类有海尔...

2020-04-15 21:48:27 597

原创 软件设计模式-----桥接模式(Java)

桥接模式1、模式动机设想如果要绘制矩形、圆形、椭圆、正方形,我们至少需要4个形状类,但是如果绘制的图形需要具有不同的颜色,如红色、绿色、蓝色等,此时至少有如下两种设计方案:第一种设计方案是为每一种形状都提供一套各种颜色的版本。第二种设计方案是根据实际需要对形状和颜色进行组合。对于有两个变化维度(即两个变化的原因)的系统,采用方案二来进行设计系统中类的个数更少,且系统扩展更为方便。设计...

2020-04-14 23:56:52 693

原创 软件设计模式----建造者模式(Java)

建造者模式1、模式动机无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮、方向盘、发送机等各种部件。而对于大多数用户而言,无须知道这些部件的装配细节,也几乎不会使用单独某个部件,而是使用一辆完整的汽车,可以通过建造者模式对其进行设计与描述,建造者模式可以将部件和其组装过程分开,一步一步创建一个复杂的对象。用户只需要指定复杂对象的类型就可以得到该对...

2020-04-14 23:19:34 388

原创 软件设计模式----工厂方法模式(Java)

简单工厂模式的不足在简单工厂模式中,只提供了一个工厂类,该工厂类处于对产品类进行实例化的中心位置,它知道每一个产品对象的创建细节,并决定何时实例化哪一个产品类。简单工厂模式最大的缺点是当有新产品要加入到系统中时,必须修改工厂类,加入必要的处理逻辑,这违背了“开闭原则”。在简单工厂模式中,所有的产品都是由同一个工厂创建,工厂类职责较重,业务逻辑较为复杂,具体产品与工厂类之间的耦合度高,严重影响了...

2020-04-13 23:30:28 440

原创 软件设计---简单工厂模式(Java)

创建型模式 对类的实例化进程进行了抽象,能够将软件模块中对象的创建和对象的使用分离。创建型模式在创建什么(What),由谁创建(Who),何时创建(When)等方面都为软件设计者提供了尽可能大的灵活性。创建型模式隐藏了类的实例的创建细节,通过隐藏对象如何被创建和组合在一起达到使整个系统独立的目的。简单工厂模式模式动机考虑一个简单的软件应用场景,一个软件系统可以提供多个外观不同的按钮...

2020-04-13 19:22:20 316

原创 1、Json串与对象之间的转换

JSON JavaScript Object NotationJavaScript对象简谱互联网上数据的一种传输标准`{"firstName": "Json"}` {a:'hello',b:'world'}["zhangsan","lisi","wangmazi"][ {"name":"zhangsan","age":20,"adr":{"busiadr":"xian","ho...

2020-02-24 00:05:06 303

原创 简识JavaINO(二)

1、字符缓存 * 字符缓存 */ @Test public void test8(){ // 分配缓存 CharBuffer charBuffer = CharBuffer.allocate(1024); charBuffer.put("哈尔滨北京上海"); // 使恢复到起始位置可读取 ...

2020-02-23 00:32:22 186

原创 简识JavaINO(一)

JavaINO即 Java New IO 也叫非阻塞式IO None Blocking IO是1个全新的、 JDK 1.4后提供的 IO API2. 作用提供了与标准IO不同的IO工作方式可替代 标准Java IO 的IO API3. 新特性对比于 Java IO,NIO具备的新特性如下Java NIO和IO的主要区别IO流NIO流面向字节流面向缓...

2020-02-23 00:11:39 667

空空如也

空空如也

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

TA关注的人

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