自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 maven使用阿里云镜像,解决下载速度慢

首先配置文件中加入<mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>https://maven.aliyun.com/repository/central/</url></mirror>其次idea中配置好文件的位

2021-03-13 21:51:02 395

原创 命令行可以执行java命令,脚本无效的解决办法;bash: java: command not found解决

在执行的命令中加上source /etc/profile,加载环境变量例如:#! /bin/bash for i in hadoop102 hadoop103 do ssh $i "source /etc/profile && java -classpath /opt/module/log-collector-1.0-SNAPSHOT-jar-with-dependencies.jar com.wei.appclient.AppMain $1 $2 >/opt/modu

2021-03-07 16:11:37 554

原创 数据仓库简介

1 什么是数据仓库数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。2 数据仓库的特点1.数据仓库的数据是面向主题的与传统数据库面向应用进行数据组织的特点相对应,数据仓库中的数据是面向主题进行组织的。什么是主题呢?首先,主题是一个抽象的概念,是较高层次上企业信息系统中的数据综合、归类并进行分析

2021-01-20 16:07:00 235

原创 计算机网络之运输层(知识复习)

运输层协议概述从IP层来说,通信的两端是两台主机。但“两台主机之间的通信”这种说法还不够清楚。严格地讲,两台主机进行通信就是两台主机中的应用进程互相通信。从运输层的角度看,通信的真正端点并不是主机而是主机中的进程。复用和分用:复用是指在发送方不同的应用进程都可以使用同一个运输层协议传送数据。分用时指接收方的运输层在去掉报文的首部后能够把这些数据正确交付目的应用进程。屏蔽作用:运输层向高层用户屏蔽了下面网络核心的细节。两大运输层协议UDP:一种无连接协议提供无连接服务。在传送数据之前不

2021-01-01 22:15:03 1152

原创 计算机网络之网络层(知识复习)

网络层提供的服务网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。即网络层不是可靠传输。采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。网际协议 IP与 IP 协议配套使用的还有三个协议:地址解析协议 ARP(Address

2020-12-31 14:34:39 3138 2

原创 计算机网络之数据链路层(知识复习)

数据链路层使用的信道点对点信道这种信道使用一对一的点对点通信方式。广播信道这种信道使用一对多的广播通信方式,因此过程比较复杂。广播信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。数据链路层简单模型点对点的数据链路层数据链路和帧链路 (link) 是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。一条链路只是一条通路的一个组成部分。数据链路 (data link) 除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加

2020-12-27 22:31:31 1559 1

原创 计算机网络之物理层(知识复习)

物理层的基本概念物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流,而不是指具体的传输媒体。物理层的作用是要尽可能地屏蔽掉不同传输媒体和通信手段的差异。用于物理层的协议也常称为物理层规程 (procedure)。物理层的主要任务主要任务:确定与传输媒体的接口的一些特性。机械特性 :指明接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等。电气特性:指明在接口电缆的各条线上出现的电压的范围。功能特性:指明某条线上出现的某一电平的电压表示何种意义。过程特性 :指明对于不同

2020-12-25 18:36:46 438

原创 计算机网络之概述(知识复习)

三大类网络电信网络:提供电话、电报及传真等服务;有线电视网络:向用户传送各种电视节目;计算机网络:使用户能在计算机之间传送数据文件;互联网两个重要基本特点连通性 (connectivity)使上网用户之间都可以交换信息(数据,以及各种音频视频) ,好像这些用户的计算机都可以彼此直接连通一样。共享 (Sharing)指资源共享。资源共享的含义是多方面的。可以是信息共享、软件共享,也可以是硬件共享。互联网基础结构发展的三个阶段第一阶段从单个网络 ARPANET 向互联网发展的过程。第二

2020-12-25 16:52:42 1514 1

原创 volatile

volatile 的作用保证可见性:Happens-before 关系中对于 volatile 是这样描述的:对一个 volatile 变量的写操作 happen-before 后面对该变量的读操作。这就代表了如果变量被 volatile 修饰,那么每次修改之后,接下来在读取这个变量的时候一定能读取到该变量最新的值。禁止指令重排:先介绍一下 as-if-serial 语义:不管怎么重排序,(单线程)程序的执行结果不会改变。在满足 as-if-serial 语义的前提下,由于编译器或 CPU 的优化

2020-11-25 22:09:56 75

原创 设计模式七大原则

单一职责原则一个类只负责一项职责。接口隔离原则一个类对另一个类的依赖应该建立在最小接口上。依赖倒转原则高层模块不应该依赖低层模块。抽象不应该依赖细节,细节应该依赖抽象。中心思想是面向接口编程。抽象是指接口或者抽象类,细节就是指具体的实现类。使用接口或抽象类时制定好规范,不涉及具体操作,把细节交给实现类完成。里氏替换原则子类尽量不要重写父类的方法。继承让两个类的耦合性增强了。在适当情况下,可以通过聚合,组合来解决问题。开闭原则对扩展开放,对修改关闭。软件变化时,通过扩展来实现变

2020-11-11 10:56:59 128 2

原创 职责链模式

背景使用条件分支语句处理请求,会增加一个类的负担,耦合性较强,不符合单一职责原则和开闭原则。应用场景:多级请求,请假加薪,拦截器,Tomcat中对Encoding的处理。职责链模式实例SpringMVC实例职责链的好处注意事项...

2020-11-10 11:27:11 88

原创 策略模式

背景把变化的东西封装起来。实例JDK实例策略模式解析策略模式注意事项

2020-11-09 11:29:24 86

原创 状态模式

背景对象根据不同状态做不同的事情, 如果用分支语句判断,不符合开放-封闭原则。状态模式实例状态模式的好处注意事项

2020-11-08 11:21:14 64

原创 解释器模式

背景当有一个语言需要解释执行,可将该语言中的句子表示为一个抽象语法树,就可以考虑使用解释器模式,让程序具有良好的扩展性。应用场景:编译器,运算表达式计算,正则表达式,机器人等。解释器模式解释器模式的好处...

2020-11-08 10:32:15 58

原创 备忘录模式

背景需要备份和恢复的场景,例如游戏存档,windows的ctrl+z,数据库的事务管理。备忘录模式实例备忘录模式注意事项

2020-11-02 11:25:57 64

原创 中介者模式

背景多个类之间复杂的依赖关系,用一个中介者来协调,减少多个类之间的耦合。中介者模式实例中介者模式的优缺点

2020-11-01 11:21:21 53

原创 观察者模式

背景A类要通知B类作出某些变化。观察者模式实例JDK实例

2020-11-01 10:51:40 150

原创 迭代器模式

背景顺序访问一个聚合对象的各个对象,但又不暴露内部细节。迭代器模式JDK实例何时使用迭代器模式

2020-10-31 15:10:13 67

原创 访问者模式

背景数据结构少变,而行为多变。解决把行为抽象出一个类,而不是作为方法。让行为依赖数据结构。因为数据结构少变,所以拓展时并不麻烦。让变化的依赖不变的,变化的东西拓展时方便。访问者模式实例何时使用访问者模式...

2020-10-31 11:32:48 62

原创 命令模式

背景在命令发起者和命令执行者之间加一层命令调用者,紧耦合变松耦合。命令模式实例命令模式Spring实例命令模式作用

2020-10-30 12:42:09 59

原创 模板方法模式

背景父类的某些代码在子类中重复的出现。解决抽出重复出现的代码,作为父类的一个模板,子类只重写部分代码。模板方法模式模板方法模式的特点Spring框架实例注意事项

2020-10-27 11:34:44 43

原创 代理模式

代理模式静态代理动态代理Cglib代理几种常见代理代理模式应用

2020-10-26 13:09:32 49

原创 享元模式

背景如果创建大量实例,而这些实例有很多共同的部分,则会占用很大的资源。解决共享使用相同的资源。享元模式实例享元模式JDK实例何时使用享元模式

2020-10-25 13:12:20 72

原创 外观模式

背景客户端直接调用各种子系统,耦合度较高。解决提供一个中间接口,屏蔽客户端对子系统的了解。外观模式实例外观模式MyBatis实例何时使用外观模式

2020-10-25 10:46:08 46

原创 组合模式

背景解决树形结构,组合结构,访问一致性的问题。组合模式实例组合模式JDK实例何时使用组合模式

2020-10-24 23:10:57 58

原创 装饰者模式

背景为一个A类增加新的功能,直接在A类中增加方法,会增加这个A类的复杂度。解决因此把新的功能封装在一个B类中,让B类去继承A类。体现开放-封闭原则。装饰者模式实例应用总结装饰者模式JDK实例...

2020-10-24 10:59:08 62

原创 桥接模式

背景类之间关系的强耦合,拓展类时比较麻烦,不易维护设计模式原则桥接模式改动前改动后桥接模式结构

2020-10-21 13:06:40 58

原创 适配器模式

基本介绍1类适配器模式2对象适配器模式3接口适配器模式不需要实现接口全部方法时,先用一个抽象类空实现方法,使用时在子类中去实现想用的方法抽象类相当于适配器,接口是被适配者,子类是使用者。适配器模式注意事项...

2020-10-18 13:38:21 93

原创 UML类图

类之间的关系1依赖关系2泛化关系3实现关系4关联关系5聚合关系6组合关系

2020-10-18 11:11:17 91

原创 idea快捷键

显示方法参数ctrl + alt + /补全变量类型ctrl alt v

2020-10-17 23:20:00 36

原创 leetcode分割回文串

如要输出所有的解,往往深度优先搜索;如要求出解的个数或最优解,往往动态规划树形结构:深搜判断回文串需要O(n)可以用空间换时间,动态规划,先求出状态

2020-10-17 17:52:23 58

原创 建造者模式

Director把Builder的细节封装起来,客户端使用时,不知道细节

2020-10-17 13:41:15 49

原创 原型模式

clone方法对象的序列化

2020-10-17 13:37:30 119

原创 工厂模式

简单工厂:根据传入的值创建实例,违背开放-封闭原则工厂方法:抽象一个工厂接口,具体实现在子类中决定,类的实例化延迟到子类

2020-10-17 13:35:26 55

原创 单例模式

饿汉式:静态变量,静态代码块,线程不安全,单线程环境使用懒汉式:双重锁,双重检查,线程安全静态内部类枚举

2020-10-17 13:31:30 60

原创 leetcode 链表 总结

一丶链表性质1.迭代性质 2.递归性质二丶常用算法寻找链表中间节点:while(pquick!=null&&pquick.next!=null){pslow=pslow.next;pquick=pquick.next.next;}翻转链表:(1)从头到尾改变指针指向 ListNode pre=null; ListNode cur=head; ListNode nxt=null; while(cur!=null){ nxt=cu

2020-10-17 13:25:04 66

原创 leetcode 剑指 Offer 24. 反转链表

题目迭代:class Solution { public ListNode reverseList(ListNode head) { ListNode pre=null; ListNode cur=head; if(cur==null||cur.next==null) return head;//头结点为空或者只有一个节点 ListNode nxt=head.next;

2020-10-17 13:24:57 44

原创 leetcode 1290 二进制链表转整数

https://leetcode-cn.com/problems/convert-binary-number-in-a-linked-list-to-integer/迭代:class Solution { public int getDecimalValue(ListNode head) { int length=0; ListNode p=head; while(p!=null){ length++;

2020-10-17 13:24:52 50

原创 leetcode 25 K 个一组翻转链表

java 递归:ListNode reverseKGroup(ListNode head, int k) { if (head == null) return null; // 区间 [a, b) 包含 k 个待反转元素 ListNode a, b; a = b = head; for (int i = 0; i < k; i++) { ...

2020-10-17 13:24:46 63

原创 leetcode 876 链表的中间节点

快慢指针:class Solution { public ListNode middleNode(ListNode head) { ListNode pquick=head; ListNode pslow=head; while(pquick!=null&&pquick.next!=null){ pslow=pslow.next; pquick=pquick.next.next;

2020-10-17 13:24:35 56

空空如也

空空如也

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

TA关注的人

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