自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【JVM】双亲委派机制

双亲委派机制(Parent-Delegate Model)是Java类加载器中采用的一种类加载策略。该机制的核心思想是:如果一个类加载器收到了类加载请求,默认先将该请求委托给其父类加载器处理。只有当父级加载器无法加载该类时,才会尝试自行加载。

2024-03-24 16:15:47 449

原创 Maven基础

Maven基础知识

2024-03-03 23:32:20 312 1

转载 Java中List集合判空

1、如果想判断list是否为空,可以这么判断:if(null == list || list.size() ==0 ){  //为空的情况}else{  //不为空的情况}2、list.isEmpty() 和 list.size()==0 有啥区别呢答案:没有区别 。isEmpty()判断有没有元素,而size()返回有几个元素,如果判断一个集合有无元素 建议用isEmpty()方法.比较符合逻辑用法。3、list !=null 跟 ! list.isEmpty()有什么区别?

2022-02-09 19:07:31 13647

原创 【ClickHouse】 日志清理方法(query_log、query_thread_log)

ClickHouse清理日志方法,可直接在配置文件中设置

2022-01-18 14:32:02 4319

原创 SpringBoot AOP切面实战

通知(Advice)类型的说明@Before 前置通知(Before advice) :在某连接点(方法)前执行的通知@After 后通知(After advice) :当某连接点退出的时候执行的通知(不论是正常返回还是异常退出)。@AfterReturning 返回后通知(After return advice) :在某连接点正常完成后执行的通知,不包括抛出异常的情况。@Around 环绕通知(Around advice) :包围一个连接点的通知,可以在方法的调用前后完成自定义的行

2021-12-30 15:09:35 429

原创 clickhouse 重新启动报错解决方案

1. clickhouse 服务重启sudo service clickhouse-server start2. 报错提示Start clickhouse-server service: Poco::Exception. Code: 1000, e.code() = 0, e.displayText() = Exception: Failed to merge config with '/etc/clickhouse-server/config.d/metric_log.xml': Except

2021-12-20 21:09:35 6387

转载 【cron】表达式详解

cron表达式详解Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式:(1) Seconds Minutes Hours DayofMonth Month DayofWeek Year(2)Seconds Minutes Hours DayofMonth Month DayofWeek一、结构corn从左到右(用空格隔开):秒 分 小时 月份中的日期 月份 星期中的日期 年份二、各字段的含义字段允许值允许的特殊字符

2021-10-26 14:38:52 82

转载 extends 与 implements 的区别 !

JAVA中extends 与implements有啥区别?在类的声明中,通过关键字extends来创建一个类的子类。一个类通过关键字implements声明自己使用一个或者多个接口。extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口 来实现,这样就

2021-07-28 09:29:25 12855 5

原创 C++快速排序和希尔排序(一看就会,一写就废)

1. 算法思想快速排序的基本思想:通过一趟排序将待排记录分隔成独立的两部分,其中一部分记录的关键字均比另一部分的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。2. 快速排序C++代码实现#include<iostream>#include<vector>using namespace std;void quickSort(vector<int> &nums, int left, int right) { if( left &lt

2021-04-13 15:16:15 215

转载 二叉树遍历迭代模板(前中后遍历只用一个模板!)

一个迭代模板解决二叉树三种遍历,真~好用!!!

2021-04-11 11:04:46 183

原创 为什么会有大端/小端之分?(众说纷纭)

起源:端模式(Endian)的这个词出自Jonathan Swift书写的《格列佛游记》。这本书根据将鸡蛋敲开的方法不同将所有的人分为两类,从圆头开始将鸡蛋敲开的人被归为Big Endian,从尖头开始将鸡蛋敲开的人被归为Littile Endian。小人国的内战就源于吃鸡蛋时是究竟从大头(Big-Endian)敲开还是从小头(Little-Endian)敲开。在计算机业Big Endian和Little Endian也几乎引起一场战争。在计算机业界,Endian表示数据在存储器中的存放顺序。下文举例说

2020-09-08 22:20:43 3166

转载 (转)stm32启动文件详解

转载大佬写的,重新排了个版。总结1、Stm32系统复位后,sysclk第4个上升沿,通过设置BOOT1和BOOT0引脚状态选择启动模式。2、启动文件主要完成栈及堆的初始化、定位中断向量表、调用ResetHandler。3、Cortex-M3内核规定,起始地址必须存放栈顶指针,第二个地址存放复位中断入口向量地址,这样内核复位后会自动从起始地址的下一个32位空间取出复位中断向量,跳转到复位中断程序,Cortex-M3固定了中断向量表的位置但是起始地址可变: 1)通过Bootl引脚设置将中断向量表定

2020-09-03 17:10:03 394

原创 SecureCRT链接时提示用户名或密码错误的解决办法(亲测有效)

用户名或密码错误我也很无奈,最近想用 secureCRT 链接 Ubuntu ,但是一直提示我用户名或密码不对,如下图我真的确定以及肯定,用户名密码绝对没问题,然后百度网上的各种方法全都试了,根本没有用,还是报一样的错误。解决方法就在我要放弃的时候,突然灵机一动,又重新试了一下,重点来啦!!!1.首先确定 Hostname 里面是正确的 IP 地址(不确定的可以先用cmd ping一下,看通不通)2. 重点重点重点 Username 这里一定不要随便填写,这里要写你 Linux 的用户名,比如

2020-09-02 14:34:53 10722 14

转载 有趣的位操作

转:原创 | 东哥教你几招常用的位运算技巧基操勿 61. 利用或操作 | 和空格将英文字符转换为小写 ('a' | ' ') = 'a' ('A' | ' ') = 'a'2. 利用与操作 & 和下划线将英文字符转换为大写 ('b' & '_') = 'B' ('B' & '_') = 'B'3. 利用异或操作 ^ 和空格进行英文字符大小写互换 ('d' ^ ' ') = 'D' ('D' ^ ' ') = 'd'以上操作能够产生奇特效果的原因在于 ASC

2020-08-22 10:20:11 126

转载 僵尸进程与孤儿进程总结(产生原因及回收方法)

原文链接:孤儿进程与僵尸进程[总结]定义什么是僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait/waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵尸进程。什么是孤儿进程:一个父进程退出,而他的一个或多个子进程还在运行,那么这些子进程将成为孤儿进程,孤儿进程将被init进程(进程号为1的进程)所收养,并由init进程对它们完成状态收集工作。僵尸进程的危害unix提供了一种机制可以保证只要父进程想知道子进程结束时的状态信

2020-08-21 15:09:36 1428

转载 位图法

定义位图法就是bitmap的缩写。所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。在STL中有一个bitset容器,其实就是位图法数据结构unsigned int bit[N];在这个数组里面,可以存储 N*sizeof(int)8个数据,但是最大的数只能是Nsizeof(int)*8-1。相关操作写入数据定义一个数组: unsigned char bit[8* 1024];这样做,能存 8K*8=64K 个 un

2020-08-20 10:44:48 371

原创 Ubuntu安装mysql踩的坑,不知道密码。。

一、Ubuntu 安装 mysql直接终端输入:sudo apt-get install mysql-serversudo apt-get install mysql-client安装过程中如果提示要设置密码,则直接设置并记住。如果没有提示设置密码,那就要像我这样。二、查看是否安装成功sudo netstat -tap | grep mysql # 如果看到有mysql 的socket处于 listen 状态则表示安装成功service mysql start # 启动 mysql 服

2020-08-17 19:41:35 821

原创 leetcode经典---最长上升子序列

原文链接:穿上衣服我就不认识你了?来聊聊最长上升子序列题目地址:leetcode 300 最长上升子序列题目描述:给定一个无序的整数数组,找到其中最长上升子序列的长度。示例:输入: [10,9,2,5,3,7,101,18]输出: 4解释: 最长的上升子序列是 [2,3,7,101],它的长度是 4。请点击:官方题解动画演示有助于理解下面是代码class Solution {public: int lengthOfLIS(vector<int>& nums

2020-08-15 22:17:33 134

转载 C++虚函数的实现机制

C++虚函数的实现机制

2020-08-15 15:21:42 91

转载 Linux线程同步(通信)方法

转载: 临界区,互斥量,信号量,事件的区别(线程同步)四种进程或线程同步互斥的控制方法1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。2、互斥量:为协调共同对一个共享资源的单独访问而设计的。3、信号量:为控制一个具有有限数量用户资源而设计。4、事 件:用来通知线程有一些事件已发生,从而启动后继任务的开始。临界区(Critical Section)保证在某一时刻只有一个线程能访问数据的简便办法。在任意时刻只允许一个线程对共享资源进行访问。如果有多个线程试图同时

2020-08-14 22:15:07 294

转载 C++中const用于函数重载

函数重载 变量前有无const是否可以重载参考C++中const用于函数重载fun(int i) 和 fun(const int i),不能重载二者是一样的,是因为函数调用中存在实参和形参的结合。假如我们用的实参是 int a,那么这两个函数都不会改变 a 的值,这两个函数对于 a 来说是没有任何区别的,所以不能通过编译,提示重定义。fun(char *a) 和 fun(const char *a),可以重载因为 char *a 中 a 指向的是一个字符串变量,而 const char *a 指向

2020-08-14 20:13:04 475

原创 stm32L151 系统时钟配置

写在前面单片机型号:stm32L151v8t6硬件:8MHz有源晶振目的:开启外部高速晶振,配置系统时钟(默认使用HSI 16MHz)其实时钟的配置一点也不难,只要看懂时钟树就好。工程的里面startup_stm32l1xx_md.s为启动文件,; Reset handler routineReset_Handler PROC EXPORT Reset_Handler [WEAK] IMPORT __main

2020-08-14 13:16:30 3243

原创 C++类型转换整理

C++类型转换C++类型转换主要分为两种:隐式类型转换、显式类型转换(强制类型转换)。隐式类型转换各种情况的隐式类型转换,都满足了一个基本原则:由低精度向高精度的转换。显式类型转换(强制类型转换)四种强制类型转换操作符:static_cast、const_cast、reinterpret_cast、dynamic_cast。转换类型操作符作用static_cast无条件转换,静态类型转换const_cast去掉类型的 const 或 volatile 属性re

2020-08-12 10:06:55 161

空空如也

空空如也

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

TA关注的人

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