自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++内存模型

c++内存模型分为:

2024-03-30 16:12:05 139 1

原创 C++编译过程

C++编译过程分为四个步骤:分别是和,如下图所示:假如一个文件名为hello.cpp预编译后的文件。

2024-03-30 15:57:52 1149

原创 C++基础之关键字——virtual原理以及使用

virtual可以修饰普通成员函数和析构函数;不可以修饰构造函数,友元函数,static静态函数;virtual具有继承性:父类中定义为virtual的函数在子类中重写的函数也自动成为虚函数。

2024-01-12 17:12:27 2188

原创 RAII和智能指针

Resource Acquisition Is Initialization,它是一种C++编程技术,它通过在对象的构造函数中获取资源,在对象的析构函数中释放资源,从而确保资源的正确获取和释放。一般情况下,C++申请资源后都需要手动释放资源,一旦忘记资源的释放就会造成,为了解决内存泄漏问题,C++引入了RAII机制。RAII 的用法是在构造函数中获取资源,在析构函数中释放资源,并使用栈上的对象或者智能指针来管理堆上的资源。

2024-01-11 19:40:40 980

原创 指针和引用

如果你使用一些变量并且让它指向一个对象,但是该变量在某些时候也可以不指向任何对象,那么此时应该把变量声明为指针,因为这样可以赋空值给该变量。而在除此之外的其他情况下,则应使用指针。指针和引用的另一个区别是:指针可以被重新赋值给另一个不同的对象,但是引用总是指向在初始化时被指定的对象,以后不能改变。不存在指向空值的引用这个事实意味着:使用引用的代码效率比指针的高,因为在使用引用之前不需要判断它的合法性。指针使用操作符 "*" 和 "->",引用使用操作符".",他们具有相同的功能,都是间接的引用其他对象。

2024-01-05 17:56:58 418

原创 C++中std::string的=,+,+=使用过程中的问题

C++中string是一个类,内部封装了char *来管理这个字符串。所以在初始化的时候没有char类型,所以error。这是一个赋值操作,把字符a赋值给当前的字符串,正确。+= 字符串拼接 支持char类型。

2023-11-25 15:59:53 925

原创 pgsql 常用命令

pgsql常用命令

2023-07-12 10:36:32 1876

原创 shell实现多并发控制

Shell实现并发执行任务

2023-06-13 16:09:37 6223 2

原创 JWT的基础介绍

JWT

2022-07-04 10:51:32 336 1

原创 Map的实现类的顺序性

Map的实现类

2022-06-24 10:26:23 804

原创 swagger文档配置

springboot整合swagger配置

2022-06-23 15:47:01 1036

原创 stream使用

文章目录前言 一、pandas是什么? 二、使用步骤 1.引入库 2.读入数据 总结前言stream流的使用一、pandas是什么?示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。二、流的中间操作1.引入库代码如下(示例):import numpy as npimport pandas as pdimport matplotli.

2022-04-25 16:54:17 259

原创 map中put和putIfAbsent的区别

put:不管key存不存在,都要进行保存操作(假如key存在,相当于这次put会覆盖之前的key和value值);putIfAbsent:如果key已存在,则不进行保存;

2022-04-25 10:54:04 282

原创 拦截器和过滤器

拦截器对action请求起作用,动态拦截action调用的对象。主要是拦截客户请求并作出相应的处理。实现原理基于Java反射机制(动态代理)来实现的。不依赖servlet容器触发时机:请求进入servlet后,在进入Controller之前拦截器的方法 方法名 说明 preHandle() 此方法将在请求处理之前调用,返回值是Boolean类型。如果返回false,标识请求结束,之后的拦截器和contr

2022-04-24 19:49:36 718

原创 JSON.parseObject的用法

fastJson对于json格式字符串的解析主要用到了一下三个类:JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。JSONObject:fastJson提供的json对象。JSONArray:fastJson提供json数组对象。我们可以把JSONObject当成一个Map<String,Object>来看,只是JSONObject提供了更为丰富便捷的方法,方便我们对于对象属性的操作。我们看一下源码。同样我们可以把JS

2022-04-07 10:53:43 24376

原创 java状态机(订单状态控制)

一.状态机状态机是状态模式的一种应用,相当于上下文角色的一个升级版。在工作流或游戏等各种系统中有大量使用,如各种工作流引擎,它几乎是状态机的子集和实现,封装状态的变化规则。状态机可以帮助开发者简化状态控制的开发过程,让状态机结构更加层次化。二.状态机要素把状态机的要素分为4个要素,即:现态、条件、动作、次态。“现态”和“条件”是因,“动作”和“次态”是果。(1)现态:是指当前所处状态;(2)条件:又称为“事件”。当条件被满足时,将会触发一个动作,或者执行一次状态的迁移。(3)动作:条件

2022-04-06 16:23:51 15909 1

原创 npm install全局安装找不到命令

所有账户均有效修改/etc/profile文件sudo vi /etc/profile在末尾添加以下内容export PATH=$PATH:/opt/node-v16.14.2-linux-x64/bin退出当前shell再重新登录即可生效或执行source /etc/profile该命令npm install全局安装找不到命令_Andy____Li的博客-CSDN博客_npm: 未找到命令http://t.csdn.cn/OtdWH...

2022-03-30 16:31:44 3415

原创 java 获取当前时间的三种方法

1.通过Util包中的Date获取Date date = new Date();SimpleDateFormat dateFormat= new SimpleDateFormat("yyyy-MM-dd :hh:mm:ss");System.out.println(dateFormat.format(date));2.通过Util包的Calendar 获取Calendar calendar= Calendar.getInstance();SimpleDateFormat dateFor

2022-02-23 15:10:06 854

原创 正则表达式

正则表达式基本语法_w3cschool正则表达式匹配:Pattern.compile("xxx").matcher("xx").matches()正则表达式查找Pattern.compile("xxx").matcher("xx").find()1. ^表示字符串的开始,$表示字符串的结束"^The":表示所有以"The"开始的字符串("There","The cat"等);"of despair$":表示所以以"of despair"结尾的字符串; "^abc$":表示开

2022-02-11 15:17:31 103

原创 list.stream().的操作

1.StringUtils类中isEmpty与isBlank的区别StringUtils.isEmpty(String str)判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0StringUtils.isNotEmpty(String str)等价于 !isEmpty(String str)System.out.println(StringUtils.isEmpty(null)); //trueSystem.out.println(..

2022-01-19 17:59:22 2742

原创 git提交学习

1.提交:gerrit提交:git add .//提交到暂存区git commit -m "xxx"//提交到本地仓库git push origin HEAD:refs/for/dev//提交到远程仓库(origin/dev)gitLab提交:git add .//提交到暂存区git commit -m "xxx"//提交到本地仓库git push origin HEAD:dev//提交到远程仓库(dev)2. 追加提交:git commit --amend

2022-01-12 11:32:39 631

转载 MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用

MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用实体类@Datapublic class BannerItem { private Long id; private String name; private String img; private String keyword; private Integer type; private Long bannerId;}QueryWra

2021-12-22 11:31:17 2416 1

原创 lambdaQueryWrapper中常用方法

2021-12-22 11:24:30 1065

原创 把新建的项目提到gitLab的一个组内

1.首先要配置SSHKey2.在组内新建一个project,(里面可以设置项目的存储路径以及项目名称)3.选中上传文件夹右键选择Git Bash Here4.git设置5.项目上传git initgit remote add origin git@gitlab.com:mizyy/test1.git(自己的git地址)git add .git commit -m "Initial commit"git push -u origin master...

2021-11-05 14:45:45 499

原创 java获取当前时间,本周一,周日..的时间,以及时间格式转换

import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;public class TestDate { public static void main(String[] args) { //时间格式转换 SimpleDateFormat dateFormat =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); .

2021-10-19 16:48:47 1850

原创 java标准日期和毫秒时间戳

import java.text.ParseException;import java.text.SimpleDateFormat; public class dateFormatUtil { public static void main(String[] args) throws ParseException { //当前时间的时间戳(毫秒) long time = System.currentTimeMillis(); System.ou.

2021-10-19 16:13:03 545 1

原创 Mysql通过limit和offset分页

//从student表中筛选出前10个学生select * from student limit 10//索引是从0开始的,从第2条数据开始取,取10条数据select * from student limit 1,10//从student表中筛选出10个学生,从第四个数据开始取select * from student limit 10 offset 3...

2021-09-27 16:28:32 207

原创 java将结果导出以及获取excel的数据

/** * 导出changeQuery结果 */ public String resultExport(long taskId) { //创建工作表和sheet XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet(); sheet.setDefaultColumnWidth(20); ...

2021-09-27 15:03:38 242

转载 Java8 流处理过程进行toMap规约处理时的java.util.stream.Collectors.lambda$throwingMerger$0(Collectors.java:133)异常

一、异常现象和问题描述在进行将流规约处理为Map时出现冲突导致规约合并失败异常导致流规约异常,异常现象为抛出合并异常,如下:运行抛出异常:Exception in thread "main" java.lang.IllegalStateException: Duplicate key 28 at java.util.stream.Collectors.lambda$throwingMerger$0(Collectors.java:133) at java.util.HashMa

2021-09-18 09:53:57 2183

原创 git撤销已经推送(push)到远程仓库的提交(commit)信息操作

(说在前面,其实也可以不用撤销,重新提交便可。老板可以直接看你最后一次提交的和最开始哪里有变化,中间的不会在意,当然前提是允许)本文是git需要撤销已经push到远程仓库的提交操作。在git push之后,发现还有一些代码需要修改,这些改动的代码在原则上不应该作为一次新的提交,这个时候,就需要撤销推送(git push)与提交(git commit),然后进行代码修改,再次重新提交和推送。1.撤销提交信息首先通过git log 查看提交的信息,可以获取需要回退的版本号. 查看提交...

2021-08-18 11:08:58 11904 1

原创 守护线程和非守护线程

1.java提供两种类型的线程:用户线程和守护线程。2.用户线程是高优先级线程,jvm在终止任务之前等待所有用户线程完成其任务。 守护线程是低优先级线程,其作用是为用户线程提供服务。3.一个守护线程是在后台执行并且不会阻止JVM终止的线程。4.只要当前JVM存在一个非守护线程没有结束,守护线程就全部工作,只有当最后一个非守护线程结束时,守护线程就会随着JVM一同结束工作。(如果用户线程已经全部退出运行,只剩下守护线程,那么JVM就会退出。)5.java线程的退出:至少有一个线程是非守护.

2021-08-17 15:14:50 924 1

原创 字母的排列问题(java实现)import java.util.ArrayList; import java.util.List; import java.util.Scanner; public c

假设s="ABC",若f(String str)方法可以实现str的全排列第一种方式:采用list实现:递归的方式import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class test { public static void main(String[] args) { Scanner sc=new Scanner(System.in);

2020-10-25 16:28:14 4115

原创 mysql(case when then)用法

case 有两种格式,简单case函数和case搜索函数一.简单case函数和搜索函数简单case函数case sex when '1' then '男' when '2' then '女’ else '其他' end搜索函数case when sex = '1' then '男' when sex = '2' then '女' else '其他' end二.不同:这两种方式可以实现相同的功能,但是有的时候,函数在功能方面没有搜索函数好;case函数.

2020-10-04 09:15:04 8128 1

原创 Servlet的生命周期

1.Servlet的生命周期:是从Servlet出现到销毁的全过程。分为以下阶段:加载类-->实例化(为对象分配空间)-->初始化(为对象的属性赋值)-->请求处理(服务阶段)-->销毁2.3.服务器启动时(web.xml中配置load-on-startup=1,默认为0)或者第一次请求该servlet时,就会初始化一个Servlet对象,也就是会执行初始化方法init(ServletConfig conf),该servlet对象去处理所有客户端请求,service(

2020-08-21 20:00:32 142

原创 TCP连接管理机制(三次握手和四次挥手)

建立连接都是单方向建立的。1.三次握手(可以超过三次,但不能低于三次)(1)过程:客户端发送一个建立连接的SYN请求到服务端,服务端接收以后,返回对这条SYN建立连接请求的一个ACK响应,并且发送一个服务端到客户端建立连接的一个SYN请求 ,合并发送到客户端,客户端接收以后,这个时候客户端到服务端的连接就建立起来了。客户端还要回复一个ACK响应给服务端,服务端接收到这个响应以后,服务端到客户端就连接起来了。 第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入S...

2020-08-18 17:40:06 283

原创 OSI七层网络模型

第一层至第七层:物理层:(硬件)(集线器,双绞线,wifi电磁波)数据链路层:互联设备之间传送和识别数据帧。(交换机)网络层:地址管理与路由选择(路由器)(ARP,IP,ICMP)传输层:数据传输,负责可靠传输(UDP和TCP,SCTP,DCCP)(复用分用)会话层:通信管理,负责建立和断开通信连接。(没有落地)表示层:设备固有数据格式和网络标准数据格式的转换。(没有落地)应用层:(主机)针对特定应用的协议。(DNS,URL,HTML,HTTP,NAT,NADP,TSL/SSL,

2020-08-17 20:01:34 96

原创 java中,CompareTo方法

CompareTo方法1.用于两种方式的比较:(1)字符串与对象进行比较; (2)按字典顺序比较两个字符串;2.语法: int compareTo(Object o) ...

2020-08-09 09:37:40 3427

原创 不重复打印排序数组中相加和为给定值的所有二元组(杠上了)

给定排序数组arr和整数k,不重复打印arr中所有相加和为k的不降序二元组例如, arr = [-8, -4, -3, 0, 1, 2, 4, 5, 8, 9], k = 10,打印结果为:1, 92, 8[要求]时间复杂度为O(n),空间复杂度为O(1)import java.util.Scanner;public class Main{ public static void main(String[] args){ Scanner sc=new Sc

2020-08-04 16:43:34 204

原创 堆排序,包含建大堆小堆

堆排序:堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。堆:堆是具有以下性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆;或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆对堆中的结点按层进行编号,将这种逻辑结构映射到数组中堆排序的基本思想:将待排序序列构造成一个大顶堆,此时,整个序列的最大值就是堆顶的根节点。将其与末尾元素进行交换,此时末尾就为最大值。然后将剩余n-1个元

2020-07-30 21:28:33 839

原创 ReentranceLock和synchronized的区别

1.synchronized是可重入锁,同一线程每进入一次,锁的计数器都会加一,释放锁时计数器都会减一,只有当计数器为0时,才能释 放锁。2.ReentranceLock是JDK实现的,synchronized是JVM实现的,前者可以看到源码,后者很难看到。3.synchronized的性能在以前是很差的,但引入了偏向锁,轻量级锁之后两者的性能就差不多了4.synchronized的使用比较方便简洁,由编译器去保证锁的加锁和释放,jvm会帮助我们做释放锁的操作,而ReentranceLoc..

2020-07-28 16:45:42 759

空空如也

空空如也

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

TA关注的人

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