自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (20)
  • 收藏
  • 关注

原创 使用awk聚合和排序

用cat和grep筛选文件之后,awk对文件做聚合,sort进行排序

2022-12-04 20:22:41 1044 1

原创 git基本使用方式整理

分支可以理解为建筑工地上同时进行的建筑工事(所有的工事组合起来是一个整体),对于一个人来说(相对于团队合作)他可以在不同的时刻创建不同的工事(分支),指针(HEAD)是指当前你这个人在哪个工事上,当你在某个工事(HEAD指向的工事(分支))进行作业呢,相当于你在某个分支上做修改和变动,你提交时只会提交到当前分支,你切换到其他分支时,你是看不到当前的这些改变的,就是说你去了其他工事,那为了能让其他工事跟保持一致,你就可以把你做了改变的工事复制到其他工事。在工作区做了修改之后,已经提交到暂存区,可以使用。

2022-10-10 17:39:22 434

原创 散列·布谷鸟散列

​ 假设有N个项,我们维护两个分别超过半空的表,且有独立的散列函数,可以把每个项分配到每个表中的一个位置,布谷鸟散列保持不变的是一个项总是会被存储在这两个位置之一。维护2个超过半空的散列表每个表有独立的散列函数每个项都在2个表中有对应位置。

2022-09-26 11:38:44 283

原创 maven基本用法

在Java项目中,Maven是最常见的版本管理工具。这里总结一些基础用法

2022-09-13 14:04:08 816

原创 基础:插入排序

​图解:​ 对N个元素的数组进行插入排序,它将有N-1次排序完成。从第二个元素开始对每一个元素进行排序,即p=1开始,对每一位置p上的元素与前0到p上的元素对比,将p放入合适的位置。所以第p趟排序时,位置p前面的元素已经排序好了。只需要将p上的元素插入到一个已经排序的合适的位置。​做法:将p上的元素向左移动到x,直到位置x-1的元素比它小,x+1上的元素比它大。例如数组a[]={34,8,64,51,32,21}。我们从p=1开始进行排序,将a[p]元素左移,直到它在合适的位置。

2022-09-06 11:34:33 180

原创 建造者模式及应用举例

先保持一个思想:建造者模式很简单。其次:建造者模式很灵活,如果能解读框架源码,会发现在创建对象这个功能上,建造者模式应用非常广。builder也可以配合继承体系,制作更细节的建造者产品体系(被建造者体系),也可以很灵活,要注意哪些是放在流水线上的零件,哪些是归属于自己独有的零件。

2022-09-05 11:19:30 921

原创 Java类加载过程

类加载过程已经是老生常谈模式了,我曾在讲解tomcat的书中、在Java基础类书、JVM的书、在Spring框架类的书中、以及各种各样的博客和推文中见过。

2022-08-25 17:51:04 387

原创 全民客服-我的客服体验

csdn客服工作体验

2022-08-17 11:07:44 276

原创 散列·跳房子散列

跳房子散列1、定义前言:​ 线性探测法是在散列位置的相邻点开始探测,这会引起很多问题,于是各种优化版本例如平方探测、双散列等被提出来改进其中的聚集问题。但是探测相邻位置和第二次散列相比,显然探测相邻位置更有优势,所以线性探测仍然是实用的,甚至是最佳选择。1.1 描述​ 跳房子散列的思路:用事先确定的,对计算机底层体系结构而言最优的一个常数,给探测序列的最大长度加个上界。这样做可以给出...

2021-12-16 16:16:10 1403 1

原创 散列·分离链接法

文章目录一、介绍完美散列冲突散列函数装填因子(装载因子/加载因子)二、分离链表法图表说明 ![](https://img-blog.csdnimg.cn/20190320233154438.png)三、代码实现Java代码说明一、介绍​ 散列表的实现被叫做__散列__,是一种用于常数平均时间执行插入、删除和查找的技术。通常做法是保存key-value的数据结构,理想的散列表数据结构不过是具有固...

2021-12-16 16:14:22 497

原创 java对象的内存

目录对象创建时内存分配1 内存管理2 类加载时分配对象元数据区3 对象头信息数据区4 对象的实例数据区5 填充区域6 图解对象内存分配7 实例:计算对象内存大小对象创建时内存分配JMM描述我们了解到https://www.cnblogs.com/dhcao/p/10897256.html从归属区分:归属线程的:虚拟机栈、本地方法栈、pc计数器归属jvm的:堆、方法区从功能...

2019-11-21 22:39:00 86

原创 信号量(Semaphore)、闭锁(Latch)、栅栏(Barrier)

目录1、信号量(Semaphore)描述场景Semaphore2、闭锁(Latch)描述场景CountDownLatch3、栅栏(Barrier)描述场景CyclicBarrierSemaphore、Barrier、Latch都属于同步工具类1、信号量(Semaphore)描述​ 计数信号量用来控制同时访问某个特定资源的操作数量,或者同时执行某个制定操作的数量。还可以用来实现资源池。...

2019-10-20 22:46:00 581

原创 volatile语义

volatile变量​ 这是Java提供的一种弱同步机制;volatile变量有2种语义。volatile变量对所有线程均可见volatile变量禁止指令重排序volatile变量对所有线程均可见​ 可见性是指:一条线程改变了变量的值,其他线程都能知道。在解释这个规则原理之前,先对内存可见性做一定了解:https://www.cnblogs.com/dhcao/p/10982...

2019-09-22 17:15:00 91

原创 对象中同时有2个方法使用synchorized修饰

目录问:当一个对象中有2个方法同时用synchronized修饰,那么当线程一在访问方法1时,其他线程是否可以访问方法二?验证一:只有方法一使用synchronized修饰时,其他线程可以随意访问方法二。验证二:方法一和方法二同时使用synchronized修饰时,必须等线程一释放对象锁之后其他线程才能获取锁访问方法二。应用:在属性的get和set方法上面加synchronized,那么这个属性...

2019-09-22 12:38:00 275

原创 activiti(四):关于流程任务的一些操作

目录一、任务操作1.1 完成任务方法1.2 查询任务前文:activiti(三):关于流程实例的一些操作目录:activiti 目录一、任务操作​ 任务操作接口:TaskService​ 任务表:act_ru_task​ 任务历史表:act_hi_taskinst1.1 完成任务方法方法一:直接通过taskId来完成任务流程启动后,将会在任务表act_ru_task中创建...

2019-09-04 10:50:00 156

原创 activiti(三):关于流程实例的一些操作

目录一、启动流程实例启动流程的方法多种,这里详细介绍启动流程的整个过程!1.1 操作流程实例的门面接口1.2 前置知识1.3 启动已经部署好的流程实例1.4 查询已经启动的流程实例(ProcessInstance)完成任务(会在任务操作中再述)完成任务方法前文:activiti(二):关于流程部署和删除的一些操作目录:activiti 目录一、启动流程实例启动流程的方法多种,这里详细...

2019-09-04 10:22:00 209

原创 activiti(二):关于流程部署和删除的一些操作

目录部署流程删除打印流程图片前文:activiti(一):idea整合spring和avtiviti目录:activiti 目录部署流程提供四种部署方法;通过读取资源文件进行部署;png文件和bpmn文件通过 inputstream完成部署通过读取zip文件流进行部署通过读取bytes进行部署/** * 获取到部署的总接口 * * @a...

2019-09-04 10:10:00 87

原创 activiti 目录

activiti(一):idea整合spring和avtivitiactiviti(二):关于流程部署和删除的一些操作activiti(三):关于流程实例的一些操作activiti(四):关于流程任务的一些操作流程表,activiti表日志表:1) act_evt_log 表示EVENT,目前只有一张表ACT_EVT_LOG,存储事件处理日志,方便管理员跟踪处理。通...

2019-09-04 10:07:00 37

原创 activiti(一):idea整合spring和avtiviti

目录:activiti 目录目录一、 创建maven项目1.1 创建项目1.2 安装activiti插件1.3 创建activiti流程图1.4 配置文件1.5 单元测试类一、 创建maven项目1.1 创建项目新建maven项目:一路next得到:pom包:spring包(根据需要导入)activiti包test包(我这里都在测试中执行,所以导入这个包)mysql...

2019-09-04 09:39:00 54

原创 排序算法 目录

插入排序https://www.cnblogs.com/dhcao/p/10693286.html希尔排序https://www.cnblogs.com/dhcao/p/10704131.html堆排序https://www.cnblogs.com/dhcao/p/10713840.html归并排序https://www.cnblogs.com/dhcao/p/10727077.h...

2019-08-22 14:52:00 31

原创 数据结构 目录

树·基础知识https://www.cnblogs.com/dhcao/p/10427550.html树·二叉树https://www.cnblogs.com/dhcao/p/10428086.html树·二叉查找树ADT(二叉搜索树/排序树)https://www.cnblogs.com/dhcao/p/10428502.html树·AVL树/平衡二叉树https://www.c...

2019-08-22 14:49:00 26

原创 设计模式 目录

组合模式https://www.cnblogs.com/dhcao/p/11046131.html简单工厂模式https://www.cnblogs.com/dhcao/p/11151858.html策略模式https://www.cnblogs.com/dhcao/p/11162222.html装饰者模式https://www.cnblogs.com/dhcao/p/112389...

2019-08-22 11:52:00 27

原创 模板模式以及应用举例

目录模式名和分类意图动机适用性结构参与者协作效果代码实例例1:模式展示例2:模拟maven的插件实现例3 spring允许扩展自定义标签的解析已知应用模式名和分类templateMethod行为型模式意图定义一个操作中算法的骨架,而将一些步骤延迟到字类中。TemplateMethod使得字类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。动机在Maven软件中,我们定义了3个...

2019-08-21 11:03:00 98

原创 真·随笔

1、读JDK源码之前先读数据结构与算法,读框架源码之前先读设计模式;在框架源码中,大量应用了设计模式,可以通过读框架源码,快速的学习和理解设计模式的用法;同样,理解的设计模式,会帮助自己更好的了解源码2、在人力平衡时,要根据项目的实际情况进行分析,如果项目的完成时间,跟人力成反比,跟交流复杂度成正比。即:项目拆解分配到人后,有些时候项目人力越多,越节省时间。有些时候项目总体时间是固定的,例如生...

2019-08-18 11:07:00 31

原创 工厂方法模式(工厂模式)

目录模式名和分类意图别名动机结构参与者协作代码实例相关模式模式名和分类Factory意图定义一个创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。备注1:工厂方法是一个类的实例化延迟到其子类。 指的是工厂接口的实现类。备注2:工厂方法模式只是工厂模式的一个优化,很多时候不会特意将简单工厂区与工厂方法区分。或者区分为:工厂模式-工厂方法模式,简单工厂模式-...

2019-07-29 18:33:00 37

原创 代理模式

模式名和分类Proxy意图为其他对象提供一种代理以控制对这个对象的访问动机1、在实际处理方不方便或者不适合直接出现时,使用代理来响应调用方。远程代理,虚拟代理,2、主要目的是控制对象的访问,也可以做一定的增强或者和扩展。(spring的aop)结构参与者公共接口或者父类 -- Subject实际执行者 -- RealSubject代理执行者 -- Proxy协作...

2019-07-29 10:27:00 27

原创 海恩法则和墨菲定律

海恩法则:每一起严重事故的背后,必然有29次轻微事故和300起未遂先兆及1000起事故隐患。解读:(量变引起质变)事故的发生是量的积累的结果再好的技术、再完美的规章,在实际操作层面也无法取代人自身素质和责任心墨菲定律:如果有两种或两种以上的方式去做某件事情,而选择其中一种方式将导致灾难,则必有人会做出这种选择。解读:(你担心的事总有可能会发生,因为担心不是无缘无故的)任何事...

2019-07-25 15:09:00 166

原创 replace-method

replace-method定义bean// 定义原有实体和方法public class RunMan { public void say(){ System.out.println("i am rum man"); }}// 定义替代方法public class RunReplacer implements MethodReplacer { ...

2019-07-25 14:55:00 69

原创 lookup-method 和 @Lookup

lookup-methodlookup-method为抽象方法指定返回类型,会为标记了lookup-method的方法生产代理类来处理返回类,所以就算是个抽象类,依然可以使用,毕竟真正调用的是代理类。定义beanpublic class User { public void showMe(){ System.out.println("i am user"); ...

2019-07-25 14:39:00 48

原创 装饰者模式

目录模式名和分类意图别名动机结构参与者协作效果代码实例已知应用模式名和分类装饰者模式:xxxDecorator意图动态地给一个对象添加一些额外的职责,就增加功能来说,装饰者模式比生成子类更加灵活。别名xxxWrapper动机在不增加子类的情况下为类增加功能。虽然根据里氏置换原则,我们可以通过扩展子类来为一个类增加功能,但是如果新增子类过多,会让结构显得臃肿。里氏置换...

2019-07-24 16:32:00 22

原创 策略模式

模式名和分类策略模式:xxxStrategy分类:行为模式意图解决处理算法多变而程序设计改动需要小的矛盾。就是算法的增加和修改,程序的影响更小。别名xxxPolicy动机解决多变的处理算法,而不愿意改动太多程序。 面对经常变化的算法需求,可能是电商系统中多变的优惠需求,支付系统中可能是不同分类商户的处理方式,经常新增的邮件模板..等等。在算法不确定且多变,而我们只...

2019-07-10 10:25:00 28

原创 设计模式原理及应用·简单工厂模式

这个模式比较简单,平常也基本不用,见得最多的也就是读spring框架源码时候。写这个总是提不起精神,写得不好,去看这个吧:https://www.runoob.com/design-pattern/factory-pattern.html模式名和分类模式名:xxxFactory分类:创建型模式意图 将对象与它的创建,交给别人去做别名 无动机 将对象...

2019-07-08 16:08:00 37

原创 设计模式原理及应用·组合模式

目录前言一、原理1.1 介绍1.2 结构图二、应用2.1 spring框架2.2 业务场景前言在互联网系统中,Java语言大行其道。越来越多的开源框架,商业框架应用在web项目中,越来越多的组件被创建,大大提高了网站开发效率,使得开发者越发的可以专注于业务逻辑而非系统辅助组件的实现。但是,在有了框架的帮助之后,许多人容易产生误解,框架提供的功能强大,我们不需要写很多的辅助功能,专注于业务的...

2019-06-18 16:49:00 56

原创 多线程并发为什么不安全

目录一、线程安全定义二、并发安全问题2.1、 竞态条件2.2、 重排序、有序性、可见性2.3、内存模型三、总结一、线程安全定义​ 定义:​ 多个线程访问同一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他操作,调用这个对象的行为都可以获得正确的结果,那么这个对象就是线程安全的。该定义由Brian Goetz在《Java Co...

2019-06-05 22:13:00 36

原创 Java高并发测试代码

1、并发程序/** * 高并发测试: * 创建threadNum个线程; * 执行任务task * @param threadNum 线程数量 * @param task 任务 */public static void parallelTesk(int threadNum, Runnable task){ // 1. 定义闭锁来拦截线程 final Co...

2019-06-03 22:37:00 30

原创 JVM内存区域简介

前言​ 在Java运行期,程序会使用到若干内存区,其中一些会随着虚拟机启动而创建,随着虚拟机销毁而销毁。还有些则是与线程一一对应,他们随着线程的开始而创建,线程的结束而销毁。Jvm运行时内存区根据生命周期分为2种:1、归属虚拟机的。2、归属线程的。线程描述:开始和结束;内存描述:创建和销毁。《Java虚拟机规范》(Java SE8 版)第二章第五节规定以下内存区:pc寄存器、Jav...

2019-05-20 23:20:00 41

原创 Stream介绍及简单操作!

目录一、对Stream的一些了解1.1 api介绍:二、流操作2.1 创建流(生成流)2.2 过滤流/转换流2.3 得到结果三、并行流一、对Stream的一些了解​ Java API中有大量的方法产生stream;对于stream流的理解,个人认为如果了解inputStream和outputStream的人会更轻松一点。它的本质就是创建一个视图,一个用于计算的视图。Java中可以将集合看作...

2019-05-16 22:20:00 130

原创 spring security5.0源码导入idea

资源路径:链接:https://pan.baidu.com/s/1Xep6hzyIF2a0AtFYDeO_bw提取码:6af81、解压源码2、编译源码 windows下:直接双击gradlew.bat。 该批处理会自动下载gradlew对应的版本,然后进行编译,如果自己下载gradlew,请注意版本,不然不一定能编译成功。 ps:如果过程中,出现中断,莫慌,先关闭d...

2019-04-28 17:23:00 90

原创 基数排序

目录一、定义桶排序基数排序二、算法分析三、代码实现一、定义​ 基数排序是桶排序的一个方案。基数排序有时候也叫卡片排序。既然基数是桶排序的一种实现,我们需要先稍微了解下桶排序。桶排序​ 概念上,假设当出现一个数组,\(A_1,A_2,A_3,…,A_N\)必须是小于\(M\)的正整数组成。那么对这个数组进行桶排序:选择一个大小为M的count数组,初始化全为0。当读入\(A_i\)时,...

2019-04-20 17:45:00 30

原创 快速排序

目录一、定义前言排序过程描述选取枢纽元三数中值分割法分割策略二、算法分析代码地址一、定义前言​ 顾名思义,快速排序是实践中的一种快速排序算法,在C++或对Java基本类型的排序中特别有用。它的平均运行时间是\(O(NlogN)\)。该算法之所以特别快,主要是由于非常精炼和高度优化的内部循环。它的最坏性能\(O(N^2)\)。通过将堆排序和快速排序的结合,由于堆排序的最坏情形是\(O(Nlog...

2019-04-20 11:28:00 55

httpd.conf.system_default

httpd.conf.system_default

2022-03-16

Quarantine.lpdf.zip

Quarantine.lpdf.zip

2022-03-16

课程32064.xlsx

课程32064.xlsx

2022-03-15

IT强相关词.xlsx

IT强相关词.xlsx

2022-03-15

new.err.json

3weewewe

2022-03-15

all_lesson.csv

dfdfdfdffdffdff

2022-03-15

json_to_csv1.csv

json_to_csv1.csv

2022-03-15

result39.json

result39.json

2022-03-04

result40.json

result40.json

2022-03-04

result41.json

result41.json

2022-03-04

result43.json

result43.json

2022-03-04

re1.1.err.json

re1.1.err.json

2022-03-04

re1.2.err.json

re1.2.err.json

2022-03-04

result30.json

result30.json

2022-03-04

result32.json

result32.json

2022-03-04

result30.json

result30.json

2022-03-04

result35.json

result35.json

2022-03-04

Java设计模式

内含21种Java设计模式简单原理讲解和实例:设计模式之Factory,设计模式之Prototype(原型),设计模式之Builder 等等。。。。。

2017-09-26

ueditor编辑器

百度的ueditor1.1.2网上免费资源可能少

2017-07-18

tomcat容器

Web容器

2017-07-09

空空如也

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

TA关注的人

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