自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 问答 (1)
  • 收藏
  • 关注

原创 如何处理幂等问题?

分布式解决幂等问题

2022-06-28 14:17:41 551

原创 mysql面试题

mysql面试题1.B树和B+树的区别是什么?答:B树:一个节点中有多个元素,元素的个数的最大值等于分支数减一。左边的分支上面的数都比他小,右边的都比他大。B+树:B+树叶子节点有指针,并且非叶子节点在叶子节点上都已一份备份。但是MySQL中的B+树是双向指针。Mysql中的B+树:B树的叶子节点直接加了双向指针2.Innodb中的B+树是怎么生成的?答:Mysql中的一页是16kb,每次存取都是最少按一页进行的,可以有效地提高查询效率。在往一页里面插入数据的时候,MySQL会按照主键自增的顺序

2022-03-14 18:45:19 1293 1

原创 Redis知识点记忆

Redis知识点记忆(源于javaGuide)Redis简介Redis是一个使用C语言开发的数据库,与传统数据库不同的是Redis的数据是存在内存中的,也就是内存数据库,所以读写速度非常快,因此Redis被广泛应用于缓存方向。除了缓存,Redis也经常用来做分布式锁,甚至是消息队列。Redis提供了多种数据类型来支持不同的业务场景。Redis还支持事务、持久化、Lua脚本、多种集群方案。分布式缓存常见的技术选型方案有哪些?分布式缓存的话,使用比较多的主要是Memcached和Redis。不过,现在

2022-03-04 00:00:32 2193

原创 操作系统知识点总结

操作系统知识点总结(来源于javaGuide)1.什么是操作系统答:操作系统是管理计算机硬件与软件资源的程序,是计算机的基石。本质上是一个运行在计算机上的软件程序,用于管理计算机硬件和软件资源。操作系统屏蔽了硬件层的复杂性。操作系统的内核是操作系统的核心部分,她负责系统的内存管理、硬件设备的管理、文件系统的管理。内核是连接应用程序和硬件的桥梁,决定系统的性能和稳定性。2.什么是系统调用答:介绍系统调用之前,得先说一下用户态和系统态。根据进程访问资源的特点,我们可以把进程在系统上的运行分为

2022-03-03 00:02:37 321

原创 二叉树层序遍历易错点

二叉树层序遍历二叉树的层序遍历也就是他的广度优先遍历。在写二叉树的层序遍历的时候因为自己的习惯发现了 一个爱错的点,代码如下: public List<List<Integer>> levelOrder(TreeNode root) { List<List<Integer>> result = new ArrayList<>(); Queue<TreeNode> queue = new Arra

2022-03-02 11:11:40 966

原创 动态代理和静态代理详解

动态代理和静态代理详解所谓的代理就是在不修改被代理类的情况下,我们去生成一个代理类,然后通过访问代理类,拓展原有的被代理类的功能。静态代理静态代理模式的实现步骤:1.创建被代理类和代理类,两个都要实现一个接口。2.在代理类中注入目标对象,然后在代理类的对应方法拓展我们自己想做的事情。如下例子:1.定义一个接口public interface SmsService { String send(String message);}2.定义被代理类(真实角色)和代理类,两者都要实现同一

2022-02-19 16:06:39 497

原创 成员变量和局部变量的区别

成员变量和局部变量的区别来自于 JavaGuide语法形式 :从语法形式上看,成员变量是属于类的,而局部变量是在代码块或方法中定义的变量或是方法的参数;成员变量可以被 public,private,static 等修饰符所修饰,而局部变量不能被访问控制修饰符及 static 所修饰;但是,成员变量和局部变量都能被 final 所修饰。存储方式 :从变量在内存中的存储方式来看,如果成员变量是使用 static 修饰的,那么这个成员变量是属于类的,如果没有使用 static 修饰,这个成员变量是属于实例的

2022-02-18 22:25:14 547

原创 jvm堆中对象和线程分配的一般过程

对象和线程分配的一般过程这篇笔记来源于尚硅谷的学习笔记,感谢尚硅谷的老师!线程分配过程如下:由于堆是线程共享区域,因此为了防止出现线程不安全问题,而每创建一个对象都加锁的话则会影响分配速度。因此出现了TLAB的设计,堆Eden区域进行了划分,每个线程都有一个私有的缓存区域。即TLAB,每个TLAB仅占伊甸园区的1%。那么jvm对于内存的分配过程具体如下:首先jvm会为每个线程进行TLAB的分配,如果不成功,那么这个线程会在会在Eden中进行分配。而对象的分配的一般过程如下:内存分为:新生

2022-02-06 20:38:13 474

原创 数组ArrayList源码分析

数组ArrayList源码分析(在公众号“数据结构与算法”中做的学习笔记,不想抄袭,有自己的拓展和理解)get()和set()方法都会先判断是否越界,然后进行相应操作,如果越界则抛出相应异常警告。if (index >= size) throw new IndexOutOfBoundsException(outOfBoundsMsg(index));但是在add()和remove()方法中,我们需要进行数组大小的变动,比如在add()方法中,源码如下:public void add(i

2021-10-11 16:04:31 161

转载 浅析VO、DTO、DO、PO的概念、区别和用处

浅析VO、DTO、DO、PO的概念、区别和用处这篇文章主要借鉴博客园,转载http://www.cnblogs.com/qixuejia/p/4390086.html。概念VO**(View Object****):**视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO**(Data Transfer Object****):**数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布

2021-07-29 11:07:04 104

转载 航迹规划算法的总结

确定性方法  传统的确定性方法包括,智能搜索算法(A*,D*算法等)、最速下降法、可视图方法、人工势场法、单元分解法、最优控制方法、模拟退火算法、遗传算法等。但是智能搜索方法在高维空间内易出现组合爆炸和局部最优问题;最速下降法需要大量迭代计算且无最优性保证;可视图方法计算复杂且对环境噪声敏感、难以解决高维问题;人工势场法在相近的障碍物面前难以发现路径,在狭窄通道内存在摆动现象,且具有局部最优问题;最优控制方法的模型参数调整复杂、容易发散且要求地形二阶偏导数连续;单元分解法、模拟退火算法和遗传算法的计算复杂

2021-06-20 20:21:58 1788

转载 ROS 20.04版本(noetic 版本 ) 出现No link elements found in urdf file问题

报错如上图:大概率版本问题,将<mrobot_body>换成<xacro_mrobott_body>即可

2021-06-16 16:16:34 377

原创 阿里云代理上传文件报错com.aliyun.oss - [Client]Unable to execute HTTP request: SocketException

阿里云代理上传文件报错com.aliyun.oss - [Client]Unable to execute HTTP request: SocketException本人之前在跟着网上尚硅谷视频学习文件上传的时候发现了错误,系统能够运行,但是当上传文件的时候,就会出现异常如下;我仔细检查了代码,并在每个地方输出了语句,发现是ossClient.putObject(bucketName,fileName, inputStream);这句代码有异常,于是我检查了环境以及阿里云的读写权限,发现还是未能

2021-06-10 10:08:46 9034 5

转载 vue-admin-template解决跨域问题详解

vue-admin-template入门详解(后端springboot+sprngsecurity+jwt+redis) 自&如 2020-05...

2021-05-22 09:21:10 4358 1

转载 启动vue-admin-template时报错,App running at - Local httplocalhost8080 - Network unavailable

启动vue-admin-template时报错,App running at: - Local: http://localhost:8080/ - Network: unavailableSTART运行vue项目(npm run dev)报错报错如下:DONE Compiled successfully in 11178ms App running at: - Local: http://localh

2021-05-15 11:06:34 5640 3

原创 胡春旭和古月居的《ros机器人开发实践》的因版本问题出现的错误

ERROR: cannot launch node of type [robot_state_publisher/state_publisher] Rambo—— 2020-...

2021-05-09 15:05:23 736 1

转载 创建URDF模型——解决无法运行launch文件、功能包无法定位、global status error、无模型显示现象等问题

创建URDF模型——解决无法运行launch文件、功能包无法定位、global status error、无模型显示现象等问题 徐 TWO TWO 2019-10-16 16...

2021-05-09 10:50:36 1336 2

转载 ROS调用笔记本摄像头和外界摄像头问题汇总(本人亲身经历)非常好用

ROS调用笔记本摄像头和外界摄像头问题汇总(本人亲身经历) 运行打开摄像头命令必须在主虚拟机运行 一.video0找不到 本人想要调用笔记本摄像头完成一些基本的标定时候,遇到问题: 或者执行命令: ls /dev/video*1 提示: ros小白可谓是摸不着头脑。...

2021-05-06 18:19:01 3795 2

转载 当ros启动usb_cam节点出现[ INFO] [1609422949.625658231]: Starting ‘head_camera‘ (/dev/video0) at 640x480 via

0转发微博Qzone微信微信扫一扫在Ubuntu中执行ros命令调用PC摄像头出错的解决方法原创逗比小憨憨2020-12-31 22:20:24问题当在安装好ROS的Ubuntu系统中执行指令roslaunch usb_cam-test.launch调用PC机自带的摄像头时,出现以下错误:[ INFO] [1609422949.625658231]: Starting 'head_camera' (/dev/video0) at 640x480 via mmap (yuyv) at 30 FPS[ERROR

2021-05-06 14:26:08 1350 4

转载 解决java.sql.SQLException: Value ‘0000-00-00‘ can not be represented as java.sql.Date

java.sql.SQLException: Value ‘0000-00-00’ can not be represented as java.sql.Date 异常的解决方法 查询数据时候遇到这个异常,stackoverflow上一条回答解决办法是通过给jdbc链接增加zero...

2021-05-04 18:56:49 1018

原创 多线程详解

多线程详解1.进程和线程进程:说起进程就要说起程序。程序是指令和数据的有序集合,本身是一个静态概念。而进程则是执行程序的一次执行过程,是一个动态概念。是系统资源分配的单位。线程:独立执行的路径。通常在一个进程中可以包含多个线程,当然一个进程中至少有一个线程,不然没有存在的意义。线程是cpu调度和执行的单位。真正的多线程是多核的(多个cpu),很多多线程是模拟出来的,只不过切换速度很快,我们感觉不出来而已。线程开启不一定立即执行,由cpu调度执行。2.进程的实现三种创建方式1.继承T

2020-12-23 09:51:43 154

原创 Java的注解与反射(框架底层学习的基础):

Java的注解与反射-框架底层学习的基础:1.注解(Annotation):1.1功能不是程序本身,可以对程序做出解释(这一点和注释comment没有区别);可以被其他的程序(比如编译器)读取;检查与约束1.2分类1.2.1内置注解:(最常用的三种方法,在Java帮助文档可以查阅)@Override:重写方法@Deprecated:表示不鼓励程序员使用SuppressWarnings:镇压警告,镇压在编译过程中出现的警告,放在类上就镇压类的警告,放在方法上镇压方法的警告1.2

2020-12-02 23:52:01 146

原创 kmp算法与暴力算法解决字符串问题

kmp算法解决字符串问题暴力匹配代码如下: public static boolean violencematch(String[] arr1, String[] arr2) { //思路:1.arr1从头遍历到尾,当遇到arr1[i] = arr2[0]时停下来 for (int i = 0; i < arr1.length; i++) { int j = 0; while (arr1[i] == arr2[j] &

2020-11-28 00:27:05 127

原创 贪心算法解决集合覆盖问题

贪心算法解决集合覆盖问题问题:假设存在下面需要付费的广播台,以及广播台信号可以覆盖的地区。如何选择最少的广播台,让所有的地区都可以接收到信号广播台覆盖地区K1 “北京,“上海",“天津"K2 “广州,“北京",深圳K3 “成都",“上海”,“杭州K4 “上海,“天津K5 “杭州",“大连”贪心算法的求解思路如下:1)遍历所有的广播电台,找到一个覆盖了最多未覆盖的地区的电台 (此电台可能包含一些已覆盖的地区,但没有关系)2)将这个电台加入到一个集合中(比如Arraylist)

2020-11-27 23:27:25 205

原创 动态规划的0-1背包问题求解

动态规划的0-1背包问题求解思路分析和图解:(填表进行思路)算法的主要思想,利用动态规划来解决。每次遍历到的第i个物品,根据w[i]和v[i]问来确定是否需要将该物品放入背包中。即对于给定的n个物品,设v[i]、w[i]分别为第i个物品的价值和重量,C为背包的容量。再令v[i]【j】表示在前i个物品中能够装入容量为j的背包中的最大价值。则我们有下面的结果:代码如下:package com.chen.dynamic;public class BackProblem { public s

2020-11-26 23:16:44 170

原创 分治算法(汉诺塔问题为例)

分治算法(汉诺塔问题为例)1.分治算法是一种非常经典的算法思想,可以求解的一些经典问题,比如:二分搜索大整数乘法棋盘覆盖合并排序快速排序线性时间选择最接近点对问循环赛日程表汉诺塔2.分治算法的基本步骤分治法在每一层递归上都有三个步骤:1.分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题2.解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题3.合并:将各个子问题的解合并为原问题的解。3.汉诺塔问题如图:思路:将汉诺塔问题的圆盘分成两

2020-11-26 17:14:25 260

原创 二分查找算法的两种形式(递归和非递归)

二分查找算法的两种形式(递归和非递归)代码如下:package com.chen.algorithm;public class BinarySearch { public static void main(String[] args) { int[] arr = {1, 3, 6, 8, 9}; System.out.println("使用非递归的二分查找算法"); System.out.println(binarySearchNoCursio

2020-11-26 16:11:11 90

原创 查找算法中重复值的问题

查找算法中重复值的问题如何改进查找算法中重复值只能找到一个就结束的问题?思路如下:1.创建集合,当查找到第一个值的时候,先不要返回,将这个值加入集合中去;2.在这个值的两边分别进行查找,找到剩余的值,加入集合;3.返回集合以改进的二分查找算法为例:package com.chen.reserach;import java.util.ArrayList;import java.util.List;public class BinarySerach { public static

2020-11-20 10:31:26 190

原创 用数组方法解决约瑟夫问题

用数组方法解决约瑟夫问题经典的约瑟夫(也就是丢手帕问题),有m个人围成一个圈传手帕(编号为1,2,3…m),从第a(a<m)个人开始为第一个,传到第k个人手里,那么这个人出圈,下一个人为第一个,传到第k个人手里。直到所有人出圈,求出出圈的人的序号组成的序列。这道题的解法有两种:环形链表解法(将这圈人看作环形链表,形象直观)数组解法(中心思想是利用取模来实现循环)这里我们将更为简单的数组解法,代码如下:方法: //big为总人数多少,order为起始的孩子是哪一个,nums为隔几个为下

2020-11-06 16:10:33 1120

原创 用Java实现单链表有序和无序添加对象

用Java实现单链表有序和无序添加对象对象类(梁山好汉):class HeroNode{ public int no; //英雄的编号 public String name; //名字 public String nickname; //昵称 public HeroNode next; //指针,指向像一个结点 //构造类 public HeroNode(int no, String name, String nickname) {

2020-11-03 16:45:21 270

原创 1.用数组的方式实现队列和循环队列

1.队列的认知1.1队列的初认知:生活实际中的队列:例如银行排队,取餐排队等等队列的特点:先进先出2实现队列的方式:数组(顺序存储)链表(非线性存储);3.数组实现队列的思路如图所示:Maxsize为数组的最大长度。front 为队列的头指针,rear为队列的尾指针,最开始他们都指向-1;当队列为空时:rear= front;当队列已满时:rear = Maxsize-1;4.数组模拟队列的构建,出队,入队的操作4.1队列的构造和入队出队public class Que

2020-11-03 14:25:26 922

空空如也

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

TA关注的人

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