自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(62)
  • 资源 (1)
  • 收藏
  • 关注

原创 在RPC中使用JDK动态代理

动态代理简单来说,就是在你需要用到某个类的时候,由Proxy给你动态构建这个类,同时你可以根据自己的需求定制具体方法的实现。它可以在运行时动态实现接口,不仅可以有效解耦,还能实现很多操作,比如混淆编译,即编译的时候在代码中混淆一些东西,防止别人反编译,;另一个就是方法拦截器,这个可操作性也很大,比如AOP、日志记录等。

2023-11-15 17:08:13 159

原创 Dart语法学习

最近了解到Flutter使用的Dart语言,对其进行了系统的学习

2023-06-01 20:50:59 677

原创 vscode配置flutter开发环境,不需要安装第三方安卓模拟器

vscode配置flutter开发环境,使用Android studio自带的安卓模拟器,不需要安装第三方模拟器,即可实现vscode代码实时调试(热加载)

2023-05-28 16:22:25 9403 6

原创 计算机组成原理(四)---存储器

第四章 存储器文章目录第四章 存储器4.1 概述4.1.1 存储器分类4.1.2 存储器的层次结构*4.2 主存储器4.2.1 概述4.2.1.1主存的基本组成4.2.1.2 主存与CPU的联系4.2.1.3 主存中存储单元地址的分配(存储器的编址方案)4.2.1.4 主存的技术指标4.2.2 半导体存储器芯片简介4.2.2.1 半导体存储芯片的基本结构4.2.2.2 半导体寻出芯片的译码驱动4.2.3 随机存取存储器(RAM)4.3高速缓冲存储器4.4辅助存储器4.1 概述4.1.1 存储

2021-06-21 08:52:39 596 1

原创 计算机组成原理(二)---计算机的发展及应用

计算机的发展及应用文章目录计算机的发展及应用2.1计算机的发展史2.1.1 计算机的产生和发展2.2计算机的应用2.3计算机的展望2.1计算机的发展史2.1.1 计算机的产生和发展第一代:电子管计算机第二代:晶体管计算机第三代:中、小规模集成电路计算机第四代:大规模集成电路计算机第五代:超大规模集成电路计算机发展阶段时间硬件技术速度一1946 -1957电子管40 000二1958 -1964晶体管200 000三196

2021-06-21 08:23:24 153

原创 计算机组成原理笔记(一)-------计算机系统概论

第一章 计算机系统概论文章目录第一章 计算机系统概论1.1 计算机系统简介1.1.1计算机的软硬件概念1.硬件2.软件1.1.2计算机系统的层次结构1.四级层次的结构的计算机系统2.多级层次结构的计算机系统1.1.3 计算机组成和计算机体系结构1.2 计算机的基本组成1.2.1 冯·诺依曼计算机特点1.2.2 计算机的硬件框图1.2.3计算机的工作步骤1.3 计算机硬件的主要技术指标。1.3.1机器字长1.3.2 存储容量1.3.3 运算速度1.1 计算机系统简介1.1.1计算机的软硬件概

2021-05-18 22:08:55 324

原创 springboot和mybatis-plus出现的分页问题

springboot和mybatis-plus出现的分页问题1、问题描述service层中 public PageInfo<Employee> getAll(Employee employee,Integer pageNum, Integer pageSize) { QueryWrapper queryWrapper = new QueryWrapper<>(employee); IPage<Employee> iPage =

2021-01-13 17:13:26 358

原创 spring cloudAlibaba gateway网关报错,显示无法找到注册中心注册自己。

spring cloudAlibaba gateway网关报错,显示无法找到注册中心注册自己。1、错误提示2020-12-29 11:10:18.521 WARN 232 --- [freshExecutor-0] c.n.d.s.t.d.RetryableEurekaHttpClient : Request execution failed with message: java.net.ConnectException: Connection refused: connect2020-12-

2020-12-29 11:28:35 791

原创 gateway网关报错No qualifying bean of type ‘org.springframework.core.convert.ConversionService‘ available

gateway网关报错No qualifying bean of type ‘org.springframework.core.convert.ConversionService’ available1、问题分析报错:Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.core.convert.Conve

2020-12-26 15:17:55 4031 3

原创 C++中string的基本用法

C++中string的基本用法一、初始化初始化的方式主要有两种,一是使用等号进行拷贝初始化,二是不使用等号直接初始化。 string str1; //生成空字符串 string str2("123456789"); //生成"1234456789"的复制品 string str3("12345", 0, 3);//结果为"123" string str4("0123456", 5); //结果为"01234" string

2020-11-21 19:28:57 712

原创 反转单词顺序

反转单词顺序1、方法一(利用stringBuffer的特性进行求解)class Solution { public String reverseWords(String s) { String[] s1 = s.replaceAll("\\s{1,}"," ").trim().split(" "); StringBuffer stringBuffer = new StringBuffer(); for (int i = s1.length

2020-11-09 20:12:12 172

原创 利用荷兰国旗问题改进经典快排和随机快排

利用荷兰国旗问题改进经典快排和随机快排1、经典快排思想每次取数组中最后一个值,依照这个值把数组分为两份,小于的在左边,大于的在右边。再依次按照这样的思想进行操作。2、荷兰国旗问题对快排进行改良ps:荷兰国旗问题可以看另一篇博客荷兰国旗问题把数组是分为三个部分的,小于、等于、大于这三个部分。按照这样的思想,等于部分就不需要进行再次进行排序,这样就能减少很大一部分的开销。3、代码实现/** * 改进之后的经典快排和随机快排。 * @author tyeerth * @date 2020

2020-10-26 20:05:55 150

原创 荷兰国旗问题详解

荷兰国旗问题1、问题描述2、解决方法当前数cur<number,则++less,cur++当前数cur>number,则cur,–more当前数cur=number,则cur++3、代码/** * 荷兰国旗问题 * @author tyeerth * @date 2020/10/26 - 19:19 */public class NetherLandsFlag { public static int[] partition(int[] arr ,int L

2020-10-26 19:38:44 275

原创 归并排序算法分析

归并排序算法分析1、算法思想​ 利用分治的思想,每一次把原数组分为两份,再进行对子数组进行排序,最后对排好序的数组进行合并,形成一个新的有序序列。1.1执行过程2、实现步骤2.1 mergeSort()方法public static void mergeSort(int[]arr){ if (arr == null || arr.length < 2){ return; } mergeSort(arr,0,arr

2020-10-25 10:36:39 211

原创 SpringBoot-data-MongoDB 报错Please use ‘MongoMappingContext#setAutoIndexCreation(boolean)‘

Please use ‘MongoMappingContext#setAutoIndexCreation(boolean)’ or override ‘MongoConfigurationSupport#autoIndexCreation()’ to be explicit.​ However, we recommend setting up indices manually in an application ready block. You may use index derivation there

2020-10-23 21:03:40 1554 3

原创 DP背包问题理解

DP分析1、背包问题(选择问题)输入样例4 51 22 43 44 5输出样例:82、要点分析特点:每个物品仅能使用一次重要变量&公式解释f[i][j]:表示所有选法集合中,只从前i个物品中选,并且总体积≤j的选法的集合,它的值是这个集合中每一个选法的最大值.(注意:这里的二维数组f可以把它看成是一个求最大值的函数,但是不用去实现。可看成函数两边左右抵消。便于理解可以直接把它当成最大值看待)状态转移方程:f[i][j] = max(f[i-1][j], f

2020-09-22 10:52:46 153

原创 java并发容器介绍

1、概览ConcurrentHashMap:线程安全的HashMapCopyOnWriteArrayList:线程安全的ListBlockingQueue:接口,表示阻塞队列,非常适合用于作为数据共享的通道。ConcurrentLinkedQueue :高效的非阻塞并发队列,使用链表实现。可以看作是一个线程安全的LinkedList。ConcurrentSkipListMap:是一个Map,使用跳表的数据结果进行快速查找。​2、ConcurrentHashMap先介绍一下hashMap

2020-09-18 22:03:36 501

原创 并发流程控制

文章目录1、什么是控制并发流程1.1为什么要控制?1.2、线程并发控制工具类概览2、CountDownLatch倒计时门闩(多个线程可并行)2.1介绍2.2主要方法2.3 用法3、Semaphore信号量(保证同一时间内线程访问数量小于某个值)。3.1解释3.2使用流程3.3主要方法介绍。3.4 代码演示(释放和获取的数量必须要一致)4、Condition接口(又称条件对象)4.1作用4.2代码演示4.3注意点5、CyclicBarrier循环栅栏。1、什么是控制并发流程1.1为什么要控制?​ 线程

2020-09-18 21:59:12 278

原创 原子类的分析与使用

原子类1、原子类作用与介绍。1.1特点不可分离一个操作中式不可中断的,即使是多线程的情况下也可以保证。1.2作用当某些变量需要保证线程安全的时候使用。原子类的作用和锁类似,是为了保证并发情况下线程安全。不过原子类相比于锁,有一定的优势:粒度更细:原子变量可以把竞争范围缩小到变量级别,这时我们可以获得的最细粒度的情况了,通常锁的粒度都要大于原子变量的粒度。效率更高:通常,使用原子类的效率会比使用锁的效率更高,除了高度竞争的情况。2、6类原子类​ [外链图片转存失败,源

2020-09-16 08:36:59 475

原创 常见锁的介绍

锁文章目录锁1、Lock锁1.1简介、作用1.2、为什么需要Lock?1.3Lock锁的常用方法1.4可见性保证2、锁的分类2.1 乐观锁和悲观锁2.1.1 为什么会诞生非互斥同步锁(乐观锁)?2.1.2 什么是乐观锁和悲观锁2.1.3典型的悲观锁和乐观锁的实现2.1.4 开销对比2.2 可重入锁和非可重入锁2.2.1 什么是可重入?2.2.2 可重入锁的源码分析1、Lock锁1.1简介、作用是一种工具,用于控制对共享资源的访问。Lock和synchronized,这两个是最常见的锁,它们

2020-09-15 16:16:12 387

原创 操作系统的基本概念

操作系统的概念1、定义操作系统是指控制和管理整个计算机系统的硬件和软件资源,并合理地足迹调度计算机的工作和资源的分配:以提供给用户和其它软件方便的接口和环境;他是计算机系统钟最基本的系统软件。2、功能2.1作为系统资源的管理者(如何设计和实现这些功能)提供的功能处理机管理储存器管理文件管理设备管理目标安全高效2.2向上层提供方便易用的服务。2.3实现对硬件机器的扩展没有任何软件支持的计算机成为裸机,在裸机上安装操作系统,可以提供资源管理的功能呢和方便用户

2020-09-15 11:07:14 183

原创 Java线程池的工作原理

文章目录1、线程池组成部分2、Executor3、线程池如何实现任务复用4、ThreadLocal工具类详解4.1两个重要的使用场景4.2主要方法介绍4.3使用ThreadLocal带来的好处1、线程池组成部分建议先学习线程池的使用方法(在本专栏的另一篇博客中)线程池管理器工作线程任务队列任务接口(Task)2、Executor3、线程池如何实现任务复用相同线程执行不同的任务。在线程池中的线程中不停的从队列中取出任务。源码分析4、Thread

2020-09-14 21:39:24 203

原创 Java线程池的使用

文章目录1、重要性2、好处3、线程池的构造3.1、构造函数的参数3.2参数解释4、创建线程池4.1自动创建4.1.1 newFixedThreadPool.4.1.2 newSingleThreadExecutor4.1.3 newCachedThreadPool4.1.4 newScheduledThreadPool5、阻塞队列分析6、停止线程池的正确方法。6.1 shutdown6.2isShutdown开始结束就会返回true,否则为false6.3isTerminated6.4awaitTermi

2020-09-14 21:35:32 80

原创 从C快速过渡到C++(便于写算法)

文章目录一、前言二、C++标准输入输出2.1 输出2.2输入三、引用变量(&运算符)四、函数的默认形参和重载4.1形参4.2重载(和Java相同)五、函数模板(类似于Java的泛型)六、用户定义类型string和Vector6.1 string6.2Vector七、指针和动态内存分配7.1指针7.2 内存分配一、前言​ 因为自己平时是做JavaWeb方向的,在写一些算法的时候,Java运行的速度远低于C++,并且Java代码过于复杂,代码量也高。在一些算法网站上也是普遍采用C++,所以这里学

2020-09-14 21:00:24 333

原创 2020最新软件著作权申请流程(阿里云代理)

2020最新软件著作权申请流程(阿里云代理)文章目录2020最新软件著作权申请流程(阿里云代理)一、前言二、申请流程1、打开阿里云官网(没有账号可以进行注册)2、在搜索框中搜索软件著作权,点击立即选购。3、app和小程序选择左侧,网站或者其它软件选择右侧。4、点击立即购买并付款成功后,会跳转到控制台5、在线填写申请信息6、填写资料时的注意事项7、APP软件登记在审核通过之后就可以等待证书了。一、前言​ 近期,阿里云推出了计算机软件著作权服务,帮助从事互联网行业的人士快速申请自己的软著。对于自己去官方

2020-09-08 18:47:56 1608

原创 Java线程模型刨析

Java线程模型刨析文章目录Java线程模型刨析1、入门案例1.1、示意图1.2代码演示2、volatile关键字3、原理分析3.1从主内存中取值到工作内存的原子操作1、入门案例1.1、示意图Java线程模型中,每一个线程处理数据时都是在工作内存中重新生成一个副本,并不会真正修改主内存中的值。1.2代码演示/** * @author tyeerth * @date 2020/9/6 - 8:53 */public class VolatileVisibility { p

2020-09-06 09:56:03 94

原创 使用stream流对集合进行处理

使用stream流对集合进行处理文章目录使用stream流对集合进行处理1、操作流程2、创建流的基本方式2.1数组转换成流2.2创建一个无限流2.3创建一个不含元素的流2.4集合转换成流3、对集合进行操作1、操作流程2、创建流的基本方式2.1数组转换成流​ 使用静态方法 :Stream.of(Array)2.2创建一个无限流Stream.generate(Math::ramdom)2.3创建一个不含元素的流stream.empty()2.4集合转换成流stream()

2020-09-05 10:24:58 873

原创 Lambda表达式的简单使用

Lambda表达式的简单使用文章目录Lambda表达式的简单使用1、介绍2、最常用的使用场景(接口式编程)2.1原始方法2.2改进方式3、lambda表达式的重要特征1、介绍Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。使用方法(parameters) -> expression或(parameters) -&

2020-09-05 09:41:32 113

原创 使用Java生成二维码

如何使用Java生成二维码文章目录如何使用Java生成二维码1、使用的技术架构2、准备工作2.1导入需要的maven依赖2.2创建两个工具类1 、BufferedImageLuminanceSource类,用于解析二维码2、QRCodeUtil类 ,用于生成二维码3、主启动类生成二维码1、使用的技术架构jdk1.8maven3.6springBoot2.2.62、准备工作2.1导入需要的maven依赖这里我们使用Google的工具类生成 <!-- 添加 goog

2020-08-21 18:45:24 328 3

原创 redis基本数据结构----(四)有序集合

redis基本数据结构----(四)有序集合文章目录redis基本数据结构----(四)有序集合1、定义2、基本命令2.1集合内的操作2.1.1添加成员2.1.2计算成员个数2.1.3计算某个成员的分数2.1.4计算成员的排名2.1.5随机从集合返回指定个数元素2.1.6 删除成员2.1.7增加成员的分数2.1.8返回指定排名范围的成员2.1.9返回指定分数范围的成员2.1.10返回指定分数范围成员个数2.1.11删除指定排名内的升序元素2.1.12删除指定分数范围的成员2.2集合之间的操作2.2.1求多

2020-08-21 11:36:38 431

原创 redis基本数据结构----(三)集合

redis基本数据结构----(三)集合文章目录redis基本数据结构----(三)集合1、定义2、基本命令2.1集合内的操作2.1.1添加元素2.1.2删除元素2.1.3计算元素的个数2.1.4判断元素是否在集合中2.1.5随机从集合返回指定个数元素2.1.6 从集合随机弹出元素2.1.7获取所有元素2.2集合之间的操作2.2.1求多个集合的交集2.2.2求多个集合的并集2.2.3求多个集合的差集2.2.4将交集、并集、差集的结果保存3、常用集合命令时间复杂度1、定义集合(set)类型也是用来保存

2020-08-21 10:31:40 194

原创 redis基本数据结构----(二)哈希

redis基本数据结构----(二)哈希文章目录redis基本数据结构----(二)哈希1、哈希的概念2、常用命令2.1创建一个值(为user创建一个field-value)2.2获取值2.3删除field2.4计算field个数2.5批量设置或获取field-value2.6判断field是否存在2.7获取所有field2.8获取所有value2.9获取所有的field-value3、哈希时间复杂度1、哈希的概念几乎所有的编程语言都提供了哈希(hash)类型,它们的叫法可能是哈希、字典、关联数组

2020-08-20 13:06:39 92

原创 redis常用命令

redis常用命令文章目录redis常用命令1、redis有五种数据结构2、插入数据2.1插入单个键值对2.2 插入一个列表类型的键值对(值是多个元素组成)2.3批量设置值3、查询3.1查看所有的键(keys*命令会将所有的键输出)3.2查看键的总数3.3查询键是否存在3.4查看键的数据类型3.5获取单个值3.6批量获取值4、删除4.1删除键5、键过期6、计数7、字符串类型命令时间复杂度1、redis有五种数据结构string(字符串)hash(哈希)list(列表)set(集合)zset(

2020-08-20 11:42:16 103

原创 回溯算法思想与分析(八皇后问题)

回溯算法思想与分析(八皇后问题)文章目录回溯算法思想与分析(八皇后问题)1、思想2、八皇后问题2.1问题描述:2.2解决思路2.3求解思路2.4代码1、思想回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就**“回溯”**返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点

2020-08-19 16:20:34 735

原创 分治思想分析与举例

分治算法分析文章目录分治算法分析1、思想2、什么样的问题适合分治法3、分治思想的经典运用(归并排序)3.1归并排序代码3.2图解1、思想字面上的解释是“分而治之”,就是把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的解的合并2、什么样的问题适合分治法问题的规模缩小到一定的规模就可以较容易地解决。问题可以分解为若干个规模较小的模式相同的子问题,即该问题具有最优子结构性质。合并问题分解出的子问题的解可以得

2020-08-19 10:09:00 307

原创 字符串匹配算法-----RK算法(利用哈希)

RK算法分析与详解1、原理分析利用哈希对主串依次进行求哈希值,并与子串的哈希值进行比较,相同则说明相匹配但是要排除哈希冲突的可能性(通过匹配来验证)其实就是在主串中依次计算字串长度的哈希值并进行比较2、Java实现/** * BF算法的升级版,基于哈希算法 * @author tyeerth * @date 2020/8/12 - 10:12 */public class RK { /** * * @param string 模式串(字串)

2020-08-12 11:17:30 500

原创 字符串匹配算法------------BF(暴风)算法分析

BF(暴风)算法文章目录BF(暴风)算法1、原理2、补充3、算法思路4、Java实现1、原理​ BF算法,朴素匹配算法。这一种字符串匹配方式比较暴力,但是相对来说比较的简单、易懂,但对的性能不高。2、补充Java中常用的字符串方法,indexOf(),startWith(),endWith()。BF,RK,BM,KMP算法。3、算法思路​ 在主串钟,检查起始位置分别是 0、1、2 …… n-m 且长度为m的n-m+1个子串,检查有没有跟模式串想匹配的。4、Java实现/**

2020-08-12 10:11:15 334

原创 ArrayList源码分析(自动扩容机制)

ArrayList源码分析1、介绍​ ArrayList底层是采用数组来进行数据的存储,并且提供了相关的方法进行增删改查。支持动态扩容,数组在本省的定义过程中需要指定大小。当数据大小超过数组分配的内存空间的时候,就需要更大的内存空间。使用ArrayList时,会自动将空间扩容为1.5倍大小,并自动进行内存申请和数据迁移。2、自动扩容机制分析2.1 创建源程序​public class ArrayListLearn { public static void main(String[

2020-08-03 10:55:25 311

原创 对数器的概念与使用

对数器的使用文章目录对数器的使用1、介绍2、使用方法2.1 创建一个绝对正确的方法2.2 生成一个随机数组2.3 copy数组2.4 判断两数组是否相同2.5 大样本测试3、对插入排序进行测试3.1插入排序3.2测试结果1、介绍​ 在写出一个算法程序的时候,我们往往无法通过手动输入各种各样的测试数据来验证,在OJ平台上也无法找到对应的题目来进行验证。而且一些贪心算法是很难通过数学的方式来进行验证的,这时使用对数器来判断算法程序是否正确2、使用方法2.1 创建一个绝对正确的方法​publi

2020-07-28 11:11:21 283

原创 springCloud-Alibaba-Sentinel,代替Hystrix

springCloud-Alibaba-Sentinel。1、介绍随着微服务的流行,服务和服务之间的稳定性变得越来越重要。Sentinel 以流量为切入点,从流量控制、熔断降级、系统负载保护等多个维度保护服务的稳定性。丰富的应用场景:Sentinel 承接了阿里巴巴近 10 年的双十一大促流量的核心场景,例如秒杀(即突发流量控制在系统容量可以承受的范围)、消息削峰填谷、集群流量控制、实时熔断下游不可用应用等。完备的实时监控:Sentinel 同时提供实时的监控功能。您可以在控制台中看到接入应用

2020-06-24 16:15:26 717

软件设计师中级备考资料

含有2007年到2018年的历年真题和答案,超清教材。重点包含笔记,时间短的情况下可以直接看笔记,进行刷题。祝考试顺利!!!

2020-10-06

空空如也

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

TA关注的人

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