自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

文章目录中介者模式的介绍中介模式样例中介者模式的介绍中介者模式也叫调停者模式,它的的定义是:使用一个中间对象(中介者)来封装一系列对象的交互,中介者使得各对象不需要显示地互相作用,降低了耦合度。拿生活中的场景举例,有一个兴趣社团,这个社团中分为几个部门,分别是财务部–管钱的,宣传部–负责宣传,物资部–准备物资。如果要举办一场活动,那么这个社团需要宣传部向物资部申请宣传材料,如画笔、涂料、海报等,物资部还需向财务部申请报销,宣传部在网上宣传打广告可能又要向财务部报销。。。这样社团部门之间就有了一

2021-05-30 18:05:59 152

原创 Java设计模式之原型模式

文章目录原型模式介绍原型模式的写法原型模式介绍原型模式的定义是:通过给出一个原型对象来指明所有创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的对象也就是说,当我们要创建若干个属性相差不多的对象时,不必每次都去new对象,而可以先创建一个原型,然后用这个原型去克隆出新对象,新对象的属性可以按需修改。原型模式的写法原型模式的写法很简单,但是要区分注意是浅拷贝还是深拷贝。下面展示深拷贝的写法:要克隆的类型Student,其中有一个属性是Teacher@Data@AllArg

2021-05-30 17:15:29 155

原创 Java设计模式之代理模式

文章目录代理模式介绍代理模式样例静态代理JDK动态代理CGlib动态代理代理模式介绍用简单的话描述代理模式,就是代理对象为被代理对象提供一种代理以控制对这个对象的访问。举个现实中的例子来说,公司A提供电脑维修服务,但是维修服务实现者不是公司A本身,而是公司B,所以用户向A公司购买电脑维修服务,干活的其实是公司B。这个场景,就是公司A实现了对公司B的代理。代理模式样例静态代理代理对象和被代理对象所要实现的接口:public interface IUser{ public abstrac

2021-05-30 16:35:14 143

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

文章目录建造者模式介绍建造者模式样例建造者模式介绍当我们要构建一个对象,但是,这个对象的属性多如牛毛,如果我们在不了解所有属性的情况下,无法通过构造方法创建出这个对象—如果要“按需创建”,那么就要有多种构造方法的重载。于是,建造者模式应运而生,它实现了复杂对象的构建与表示的分离。建造者模式样例House是我们要建造的对象,它包含florr,wall,roof与其他一些列属性。public class House { private String floor; private Str

2021-05-30 14:55:09 85

原创 Java设计模式之模版方法模式

文章目录模版方法模式介绍模版方法样例模版方法模式介绍模版方法的写法很简单,使用的场景是,抽象类中的某个方法(称为模版方法)调用了抽象类中的其他基本方法,那么在继承这个抽象类时,就不必重写这个模版方法,而只需要重写其他基本方法。模版方法样例有这样的一个场景,在生产宝马车之前我们要有一个车的基础模型,这个模型规定了宝马车的基本功能,如鸣笛、启动、停车,模型还规定了要对宝马车进行测试:即调用鸣笛、启动、停车的功能,这样测试方法就可以当做一个模版方法,在父类中写了之后,子类不需要重写。宝马模型定义:一

2021-05-30 11:15:38 66

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

文章目录抽象工厂模式介绍抽象工厂模式样例抽象工厂模式介绍工厂方法模式在同一个产品族下扩展新产品显得得心应手,那么设想有以下情景:我们有多个产品族,如果手机产品族、饮料产品族、服装产品族,其中各个产品族里有多种产品。我们有不同的客户,每个客户都要这个产品族里的一种产品,于是就产生了多种产品的组合,此时我们可以使用抽象工厂模式来应对这个场景。抽象工厂模式样例从上文介绍出发,我们有Phone、Drink两个产品族:public abstract class Phone {}public abstr

2021-05-30 10:58:38 60

原创 Java设计模式之工厂方法模式

文章目录工厂方法模式介绍工厂方法模式代码样例工厂方法模式介绍工厂方法模式的优点在于,如果我们有一个产品族,使用工厂方法模式就可以方便地在这个产品族下开发新产品。例如,我们有有一个产品族是Pet,这个产品族里包含Dog,Cat,Pig,Bird等多个产品。那么我们就可以定义一个PetFactory,PetFactory中有一个泛型方法createPet,根据传入的Pet类型来创建返回相应类型的Pet,如传入Dog.class,则可以创建Dog对象;传入Cat.class,则可以创建Cat对象。于是,

2021-05-30 10:24:07 89

原创 Java设计模式之单例模式

文章目录懒汉式内部静态方法创建单例利用内部静态类懒加载饿汉式加载类时直接创建单例对象使用枚举单例模式的写法保证了内存中只有该类的一个实例对象,从写法上划分,大致可以分为饿汉式与懒汉式。本文介绍饿汉式的两种写法与懒汉式的两种写法。懒汉式内部静态方法创建单例使用内部静态方法创建单例的写法要考虑到线程安全,因此可以用synchronized关键字为创建单例对象的代码加锁。在synchronized之前还要判断INSTANCE是否为空,是为了避免每个线程要获取单例时都先去抢占锁,提高了性能。注意,

2021-05-30 09:36:34 68

原创 遍历PriorityQueue踩的坑

今天做剑指Offer第45道的时候用到了优先队列,最后要遍历这个队列。遍历这个队列第一次采用的是Iterator,但是结果与预期不符class Solution { public String minNumber(int[] nums) { if(nums == null) return ""; PriorityQueue<String> queue = new PriorityQueue<String>(

2021-05-08 15:38:30 881

原创 SpringBoot整合Servlet、Filter、Listener

整合Servlet方式11.在cn.nshima.springboot.servlet包下创建ServletDemo类,继承HttpServlet。@WebServlet(name = "servletDemo", urlPatterns = "/sd")public class ServletDemo extends HttpServlet { @Override public void doGet(HttpServletRequest request, HttpServletRe

2021-03-24 17:19:35 155

原创 SpringBoot使用配置文件注入信息与使用@Value注入信息

基于@Value使用@Value需要为属性一个个进行配置,如:@Componentpublic class Mentor { @Value("陈老师") private String name; @Value("男") private String gender; @Value("#{20+20}") //支持spEL语法 private int age;}注意:使用@Value进行配置不需要写setter方法,但是需要无参构造方法。基于配

2021-03-24 13:07:04 415

原创 Java 字节流的基本使用

文章目录字节流FileInputStream & FileOutputStream字节流FileInputStream & FileOutputStream介绍api接口表格demo演示

2021-03-17 15:41:32 341

原创 【图解+源码】Java Iterator接口详解

文章目录如何理解IteratorIterator的remove方法Iterable与iterator的关系Iterator的另一种遍历方式:forEachRemaining方法如何理解Iterator从最简单的用Iterator遍历ArrayList的一段程序开始List<String> list = new ArrayList<String>();list.add("a"); list.add("b");

2021-03-12 21:23:21 148

原创 解决Postman发请求返回的中文乱码问题

在postman软件里找到Headers一栏,增加Content-Type和Accept两个键,并将键值设置为application/json;charset=UTF-8

2021-01-27 14:11:01 1978

原创 解决docker pull 超时

将网卡的DNS改为8.8.8.8

2020-07-17 18:02:22 893

原创 【解决Centos中Docker启动失败】Job for docker.service failed because the control process exited with error cod

方法如下:修改selinux文件中SELINUX的值为diabled,保存后,重启虚拟机即可vi /etc/sysconfig/selinux

2020-07-17 17:47:52 473

原创 C++11智能指针【shared_ptr | weak_ptr | unique_ptr】

文章目录shared_ptr一、创建shared_ptr对象二、观察shared_ptr对象三、shared_ptr相关函数四、删除器五、移动语义六、用法谨记weak_ptrshared_ptr一、创建shared_ptr对象1.单个对象shared_ptr<int>pa = make_shared<int>(100);//pa指向的内存初始化为100//或share_ptr<int>pa(new int(100)); //该内存的str

2020-05-31 20:48:06 306

原创 【线程同步三部曲】之哲学家进餐问题,c语言实现

文章目录问题描述解决方案是问题描述背景描述有五个哲学家,他们的生活方式是交替地进行思考和进餐,哲学家们共用一张圆桌,分别坐在周围的五张椅子上,在圆桌上有五个碗和五支筷子,平时哲学家进行思考,饥饿时便试图取其左、右最靠近他的筷子,只有在他拿到两支筷子时才能进餐,该哲学家进餐完毕后,放下左右两只筷子又继续思考。约束条件:(1)只有拿到两只筷子时,哲学家才能吃饭。(2)如果筷子已被别人拿走...

2020-04-26 23:12:39 4083 1

原创 C+部分标准库容器:vector,string,array

文章目录vectorstringarraydequelistforward_listvector一、特点可变长数组,支持下标访问,在尾部之外的位置插入/删除元素较慢二、容器操作1.初始化 vector<int>vec0{ 1,2,3,3,2,1 }; //列表初始化 vector<int>vec1(10, 1); //vec...

2020-04-08 20:02:30 273

原创 一个简单的判断主机字节序的C程序

#include<stdio.h>union{ short s; char c[sizeof(short)];}un;int main(int argc,char **argv){ un.s = 0X0102; if(sizeof(short) == 2) { if(un.c[0] == 1 && un.c[1] == 2) pri...

2020-04-02 18:53:07 261

原创 c++原子操作和加锁操作对多线程编程中临界资源的保护

文章目录首先看一段没有保护的多线程对共享变量进行操作的代码原子操作的效果加锁操作首先看一段没有保护的多线程对共享变量进行操作的代码#include<stdio.h>#include<stdlib.h>#include<errno.h>#include<unistd.h>#include<pthread.h>//准备创建16...

2020-04-02 10:42:11 669

原创 当vector的元素是函数指针对象时...来自《C++ Primer》第六章的一道习题

文章目录解析完整代码解析1.声明了函数指针pfunc,它接受两个int参数,返回int值int (*pfunc)(int i,int j);2.下面定义的两个函数与pfunc有相同类型的返回值和对应的形参//返回两数之和的函数int myplus(int i, int j){ return i + j;}//返回两数之差的函数int myminus(int i, int ...

2020-03-31 22:00:00 292 2

原创 《UNIX网络编程 卷1》第一章:实现一个简单的获取时间的客户端程序和服务端程序

客户端程序#include<stdio.h>#include<stdlib.h>#include<string.h>#include<errno.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h>#include&l...

2020-03-29 20:54:52 203

原创 vector迭代器实现简单的二分查找

①先初始化一个存着有序数的vector,目标是要找到14这个数初始化beg,end,和mid。注意mid的初始化不可写成auto mid = (beg + end) / 2;vector<int>ivec{ 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16 };//有序的一组数 int goal = 14;//要找14这个数 auto beg = i...

2020-03-26 17:39:51 264

原创 Linux设置时区

以下操作基于Ubuntu1.date命令可以查看当前的时区date2.选择时区tzselect根据提示选择需要的时区3.举个例子,如果选择了北京时间,那么在/usr/share/zoneinfo/下回生成 /Asia/Shanghai文件将这个文件拷贝到/etc/localtime下就okcp /usr/share/zoneinfo/Asia/Shanghai /etc/lo...

2020-03-20 22:22:47 128

原创 宿舍谁最高? (20分)

学校选拔篮球队员,每间宿舍最多有4个人。现给出宿舍列表,请找出每个宿舍最高的同学。定义一个学生类Student,有身高height,体重weight等。输入格式:首先输入一个整型数n (1<=n<=1000000),表示n位同学。紧跟着n行输入,每一行格式为:宿舍号,name,height,weight。宿舍号的区间为[0,999999], name 由字母组成,长度小于16,...

2020-03-15 16:46:46 3166

原创 力扣第20场双周赛5326. 有效的快递序列数目

题目描述:int countOrders(int n) { int num = pow(10, 9) + 7;//这是题目给出的防止数字溢出的取余对象 unsigned long ans = 1; if (n == 1) return 1; for (int i = n; i &gt...

2020-02-23 00:20:48 244

原创 Navicat出现Client does not support authentication protocol requested by server解决方法

解决步骤:①终端中打开MySQL②在mysql下输入ALTER USER 'root'@'localhost' IDENTIFIED BY 密码' PASSWORD EXPIRE NEVER;注意:密码填的是自己mysql的密码③继续输入ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码...

2020-02-16 03:40:48 409

原创 将Linux终端语言设置为中文

为了在终端更快地查阅man手册等,可以将终端语言设置为中文命令:①vim ~/.bashrc ,按i进入编辑模式②在文本最后添加export LANG="zh_CN.UTF-8"③按Esc键退出编辑模式,shift+: 输入wq! 保存并退出④重启系统...

2020-02-14 05:59:42 5144

原创 三步解决Linux安装tree失败

**问题:**在Ubuntu中,用sudo apt install tree命令安装tree失败解决:1.前往网站 http://mama.indstate.edu/users/ice/tree/ 下载安装包,注意下载到电脑上本机系统和虚拟机共享的文件夹下2.解压到当前文件夹命令为tar -xvf tree-1.8.0.tgz3.进入到解压得到的文件cd tree-1.8.0/使...

2020-02-11 18:24:56 3086 1

原创 壹 C++基本语言

一、同名实体:同名函数、变量、类定义二、命名空间:为了防止同名冲突而引入的一种机制,系统中可以定义多个不同名的命名空间1.定义方式//在practice_1中namespace one{ void print() { cout << "one" << endl; }}2.引用方式:(1)引用与main()同一个cpp文件中的函数,方法是 ...

2020-01-23 21:10:19 282

原创 C++ Primer Plus 第三章(处理数据)

1.C++的三种初始化方式int a = { 9 }; int b{ 8 }; int c{}; //c++的三种初始化方式2.C++的上溢和下溢(附运行结果)//上溢 short a = SHRT_MAX; unsigned short b = a; cout << "初始: a = " << a << "\tb = " <<...

2019-11-17 18:07:23 253

空空如也

空空如也

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

TA关注的人

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