自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(246)
  • 资源 (2)
  • 收藏
  • 关注

原创 再探Java线程池的7大核心参数

兄弟们大家好,今天在复习JUC时候又学习了一遍Java的线程池原理,收获颇深,特此记录。java中经常需要用到多线程来处理一些业务,我不建议单纯使用继承Thread或者实现Runnable接口的方式来创建线程,那样势必有创建及销毁线程耗费资源、线程上下文切换问题。同时创建过多的线程也可能引发资源耗尽的风险,这个时候引入线程池比较合理,方便线程任务的管理。java中涉及到线程池的相关类均在jdk1.5开始的java.util.concurrent包中,涉及到的几个核心类及接口包括:Exe.

2021-05-11 20:44:11 592 1

原创 linux上搭建Nacos集群(步骤详细)

今天也是一直调试的一天。 bug bug bug ,报错报错报错。 特此记录。1)nacos官网:https://github.com/alibaba/nacos/releases/tag/1.2.1下载nacos安装包到window本地(后缀为tar.zip)2)在linux上下载nginx包,linux安装指令:(先去nginx官网查看版本,Stable version是稳定版本)[root@localhost ~]#yum install lrzsz ...

2021-03-18 21:17:48 672

原创 Spring IOC容器初始化过程及其原理(源码层面)

Spring大家族在Java技术生态体系中占有重要地位,其中Spring更是其中的佼佼者。它极大的简化了我们的代码开发量,提高我们的工作效率。其中Spring两大特性中的IOC特性是至关重要的。今天来从底层看一看Spring的容器的初始化过程。算是我的学习笔记,也希望能对你有所帮助!(如果有不懂IOC的小伙伴们可以去看一看我前面写的文章传送门在此)。在开始之前,先思考几个问题。@Component,@Service,@Controller,@Repository@Bean等注解怎么实现的.

2021-03-07 15:28:19 895 3

原创 MySQL中聚簇索引与非聚簇索引的区别

聚簇索引数据库表的索引从数据存储方式上可以分为聚簇索引和非聚簇索引(又叫二级索引)两种。Innodb的聚簇索引在同一个B-Tree中保存了索引列和具体的数据,在聚簇索引中,实际的数据保存在叶子页中,中间的节点页保存指向下一层页面的指针。“聚簇”的意思是数据行被按照一定顺序一个个紧密地排列在一起存储。一个表只能有一个聚簇索引, 因为在一个表中数据的存放方式只有一种。非聚簇索引将数据与索引分开存储,索引结构的叶子节点指向了数据对应的位置在innodb中,在聚簇索引之上创建的索引称之为辅助索引,

2021-01-15 15:47:30 340

原创 MySQL中出现using filesort现象的一般情况与分析

在使用explain命令优化SQL语句的时候常常会在Extra列的描述中发现Using filesort选项,其实这个名字很容易造成误解,一开始我以为是“文件排序”的意思,进一步说可能就是使用了磁盘空间来进行排序,但是这个理解是错误的,Using filesort真正含义其实只有sort这一个单词,和file没有什么关系,Mysql一般是通过内存进行排序的,不过,要是超过了配置中的限制,应该会生成临时表。Using filesort表示在索引之外,需要额外进行外部的排序动作。导致该问...

2021-01-14 10:49:28 23054 7

原创 选择排序算法实现与解析

选择排序选择排序基本介绍选择式排序也属于内部排序法, 是从欲排序的数据中, 按指定的规则选出某一元素, 再依规定交换位置后达到排序的目的。选择排序思想选择排序(select sorting) 也是一种简单的排序方法。 它的基本思想是(n 是数组大小):第一次从 arr[0]~arr[n-1]中选取最小值,与 arr[0] 交换第二次从 arr[1]~arr[n-1]中选取最小值, 与 arr[1] 交换第三次从 arr[2]~arr[n-1]中选取最小值, 与 arr[2] 交换,

2020-12-01 17:50:51 781

原创 蓝桥杯-第十一届JavaB组省赛真题---》”解密“问题

1. 解密问题描述:小明设计了一种文章加密的方法:对于每个字母 C,将它变成某个另外的字符 Tc 。下表给出了字符变换的规则:例如,将字符串 YeRi 加密可得字符串 EaFn。小明有一个随机的字符串,加密后为EaFnjISplhFviDhwFbEjRjfIBBkRyY(由 30个大小写英文字母组成,不包含换行符),请问原字符串是多少?(填空题5分)答案:YeRikGSunlRzgDlvRwYkXkrGWWhXaA/** * @Date 2020/11/18 18:42 * @Ver

2020-11-18 18:51:13 622

原创 多线程下的HashMap死循环问题详解

小伙伴们大家好呀,今天看技术博文的时候看到一个很有意思的问题,就如标题所示------》在多线程的情况下关于HashMap的死循环问题,还记我在刚学JavaSE时候,看到过这个问题,当时的知识储备不够,没有深究,今天来详细说一说,希望能帮到你们,一起进步。正文开始:Java的HashMap是非线程安全的。多线程下应该用ConcurrentHashMap。多线程下[HashMap]的问题(这里主要说死循环问题):1、多线程put操作后,get操作导致死循环。2、多线程put非NULL元素后,get操

2020-10-21 18:03:29 3322 8

原创 再探HashMap------>基于jdk1.8的详细总结

前面我已经写过关于HashMap的一些总结,但总感觉不够全面,今天再谈谈HashMap,希望在我复习巩固的同时,对你也有所帮助。上一篇地址在这Java集合详解HashMap的内部数据结构JDK1.7是数组+链表JDK1.8是数组+链表+红黑树HashMap在jdk8中相较于jdk7在底层实现方面的不同:数据结构图hashMap中几个重要的字段(JDK1.8)//默认初始容量为16,0000 0001 右移4位 0001 0000为16,主干数组的初始容量为16,而且这个数组//必须是2

2020-08-22 18:41:00 481

原创 Git与GitLab的复习与使用方法总结

兄弟们好,最近一直在忙实习的事,以前在学习编码的时候,经常是单打独斗,一个人完成某个feature,现在进了大公司,第一次见识到了大规模企业级项目的完成,是一个团队的共同协作的。我司使用的代码托管平台是GitLab。其中Git发挥了巨大作用。很久之前的学的Git知识一直没有用武之地,如今终于可以真正用起来了。经过几个小时的复习,我将它写成一篇文章,供自己复习的同时也希望对你也有帮助。(如果还有小伙伴不懂什么是git,请自己百度哈。。。)1,新建一个目录,存放下载下来的项目2. 点击“Gi

2021-07-19 18:05:11 723 1

原创 关于Docker容器启动安装的各种的问题总结与解决。

兄弟们大家好,今天照例仍是更新一篇关于Linux系统下关于Docker下载及其安装的各种问题总结。最近在公司配备的电脑上安装Docker容器,时候碰到我之前在自己的机器上安装时候没有遇到的所有问题。总结而言就是各种报错。比如经典的有:[root@docker ~]# systemctl start dockerJob for docker.service failed because the control process exited with error code. See "sys.

2021-07-13 17:33:08 3105 1

原创 for tomcat Cannot start service tomcat: driver failed programming external connectivity on endpoin

**兄弟们大家好,最近在忙实习的事。此篇事记录关于启动docker-compose时候爆出的一个错误。**更新一篇错误记录,记住坑点。错误如下图所示:我在启动docker-compose文件时候,报出这个错。原因:docker服务启动时定义的自定义链DOCKER由于 centos7 firewall 被清掉firewall的底层是使用iptables进行数据过滤,建立在iptables之上,这可能会与 Docker 产生冲突。当 firewalld 启动或者重启的时候,将会从 ipt

2021-07-10 11:23:03 2578

原创 记与《Redis设计与实现》作者本人的交流.

** 今天有幸与《Redis设计与实现》作者本人大大进行交流,甚为激动,同时也期待新版《Redis设计与实现 》的出版,对技术有追求,加油加油!(๑• . •๑) **特此记念.

2021-06-24 20:09:40 189

原创 JVM参数-XX:+PrintGCDetails

连我 **“-XX:+PrintGCDetails”**参数都要过时了吗?(手动狗头)

2021-06-15 15:11:49 350 2

原创 TCP超时重传时间选择详解

2021-06-09 14:47:18 365 1

转载 Spring Bean的生命周期超强解析

传送门https://www.jianshu.com/p/1dec08d290c1

2021-06-04 16:35:51 122

原创 通过 Java 编程手动实现布隆过滤器

.什么是布隆过滤器?首先,我们需要了解布隆过滤器的概念。布隆过滤器(Bloom Filter)是一个叫做 Bloom 的老哥于1970年提出的。我们可以把它看作由二进制向量(或者说位数组)和一系列随机映射函数(哈希函数)两部分组成的数据结构。相比于我们平时常用的的 List、Map 、Set 等数据结构,它占用空间更少并且效率更高,但是缺点是其返回的结果是概率性的,而不是非常准确的。理论情况下添加到集合中的元素越多,误报的可能性就越大。并且,存放在布隆过滤器的数据不容易删除。位数组中的每个元

2021-05-25 13:12:37 146

原创 Redis底层数据结构 ------> quicklist

之前的文章我曾总结到了Redis数据结构一链表和Redis数据结构一压缩列表这两种数据结构,他们是Redis List(列表)对象的底层实现方式。但是考虑到艇表的附加空间相对太高,prev和next 指针就要占去 16个字节(64bit 系统的指针是8个字节),另外每个节点的内存都是单独分配,会加剧内存的碎片化,影响内存管理效率。因此Redis3.2版本开始对列表数据结构进行了改造,使用quicklist代替了 ziplist和 linkedlist.如图:一、基本结构qui.

2021-05-24 13:56:58 226

原创 记一次系统CPU占用过高时排查纠错的过程。

(我的此次项目环境为Linux)1.使用 top 命令 查看当前系统下占用cup或内存过高的程序是哪一个。2.使用 jps -l 指令进一步定位当前系统下占用cup火内存过高的java进程程序。得到其进程的pid。3.使用 ps -mp 进程PID -o Thread,tid,time得到当前java进程中 出现问题的 线程号。4. 将需要的线程ID转换为进制格式(英文小写格式)5.使用JDK自带命令 jstack 进程id | grep...

2021-05-17 19:42:46 206

原创 SpringMVC工作原理

今日又复习了一下SpringMVC的工作流程,加强框架的理解,特此记录。SpringMVC流程1 用户发送请求至前端控制器DispatcherServlet。2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。4、 DispatcherServlet调用Hand...

2021-05-07 21:09:19 113

原创 Java中方法参数机制。

兄弟们懂的都懂吧,小小分析一波。

2021-05-07 18:49:57 91

原创 再探Java类的初始化过程

示例代码如下:public class Father{private int i = test();private static int j = method();static{system.out.print("(1)");}Father(){system.out.print("(2)");}{system.out.print("(3)");}public int test(){system.out.print("(4)");return 1;}pu

2021-05-07 18:31:51 82

原创 彻底玩转单例模式

饿汉式// 饿汉式单例 public class Hungry { // 可能会浪费空间 private byte[] data1 = new byte[1024*1024]; private byte[] data2 = new byte[1024*1024]; private byte[] data3 = new byte[1024*1024]; private byte[] data4 = new byte[1024*1024]; private Hungry(){ }.

2021-05-07 14:52:11 102

原创 JVM学习路线方式推荐

个人JVM学习路线就是:1.网课尚硅谷宋红康--->康师傅操刀的JVM解析。强烈推荐!强烈推荐!强烈推荐!没什么好多说的,个人认为全网质量最高,讲解最为清楚,最为风趣幽默的课程!个人今日学完,收获极大!B站就有。链接在此:www.bilibili.com/video/BV1PJ411n7xZ2.实体书。周志明的《深入理解JVM》,国内公认的JVM抗鼎之作。无需多言。本人还在继续学习中。学无止境,延迟满足。...

2021-04-29 19:51:35 173

原创 找BugBugBug找啊找

今天也是找Bug的一天。

2021-04-22 12:15:17 97

原创 SpringBoot 启动报错 “Unable to start ServletWebServerApplicationContext due to missing ServletWebServerF

项目报错信息:org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWebServer

2021-04-16 15:44:19 40556 11

原创 Error creating bean with name ‘configurationPropertiesBeans‘ defined in class path resource异常分析

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'configurationPropertiesBeans' defined in class path resource [org/springframework/cloud/autoconfigure/ConfigurationPropertiesRebinderAutoConfiguration.class]: Post.

2021-04-14 15:07:23 3334

原创 mongodb配置文件mongo.conf binIP详解

mongodb配置文件的binIP详解binIP关乎到访问连接的限制————————————————net:port: 27017#bindIp: 192.168.0.136#如果修改成本机Ip,那除了本机外的机器都可以连接(就是自己连不了)#bindIp: 0.0.0.0#改成0,那么大家都可以访问(共赢)#bindIp: 127.0.0.1#改成127,那就只能自己连了(独吞)...

2021-04-12 21:18:02 525

原创 Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: 解决办法

今天在SpringBoot整合Redis中出现一点小问题,题目如图所示:Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionExceptionorg.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis; nested exception is io.lettuce.core

2021-04-09 20:48:52 25463 5

原创 MySQL高级优化之到底可不可以使用join?

在实际生产中,关于 join 语句使用的问题,一般会集中在以下两类:我们 DBA 不让使用 join,使用 join 有什么问题呢? 如果有两个大小不同的表做 join,应该用哪个表做驱动表呢?今天这篇文章,我就先跟你说说 join 语句到底是怎么执行的,然后再来回答这两个问题。为了便于量化分析,我还是创建两个表 t1 和 t2 来和你说明。CREATE TABLE `t2` ( `id` int(11) NOT NULL, `a` int(11) DEFAULT NULL,

2021-03-30 17:05:31 154

原创 Java中位运算详解

最近在做题时候,经常遇到位运算,这里对java中的位运算i做一个总结,以便复习。一、什么是位运算?使用位运算有什么好处?1、什么是位运算?计算机在底层使用的是二进制补码进行运算。对应的二进制位进行操作,计算机只识别0和1。2、位运算的好处:巧妙的使用位运算可以大量减少运行开销,优化算法。二、Java支持的7个位运算符&:与运算符|:或运算符~:非运算符^:异或运算符>>:右移运算符<<:左移运算符...

2021-03-29 20:08:53 437

原创 详解MySQL锁机制的好文推荐

传送门

2021-03-27 14:50:53 95

原创 记一次MySQL语句执行问题

表结构如下:mysql> CREATE TABLE `table_a` ( `id` int(11) NOT NULL, `b` varchar(10) DEFAULT NULL, PRIMARY KEY (`id`), KEY `b` (`b`)) ENGINE=InnoDB;假设现在表里面,有 100 万行数据,其中有 10 万行数据的 b 的值是’1234567890’, 假设现在执行语句是这么写的:mysql> select * from table

2021-03-27 14:32:47 79 1

原创 Mysql性能优化学习笔记

笔记:1.MySQL会为每个线程分配一个内存(sort_buffer)用于排序该内存大小为sort_buffer_size1>如果排序的数据量小于sort_buffer_size,排序将会在内存中完成2>如果排序数据量很大,内存中无法存下这么多数据,则会使用磁盘临时文件来辅助排序,也称外部排序3>在使用外部排序时,MySQL会分成好几份单独的临时文件用来存放排序后的数据,然后在将这些文件合并成一个大文件2.mysql会通过遍历索引将满足条件的数据读取到...

2021-03-27 10:45:04 177

原创 Mysql学习笔记

1:为啥删除了表的一半数8据,表文文件大小没变化?因为delete 命令其实只是把记录的位置,或者数据页标记为了“可复用”,但磁盘文件的大小是不会变的。也可以认为是一种逻辑删除,所以物理空间没有实际释放,只是标记为可复用,表文件的大小当然是不变的啦!2:表的数据信息存在哪里?表数据信息可能较小也可能巨大无比,她可以存储在共享表空间里,也可以单独存储在一个以.ibd为后缀的文件里,由参数innodb_file_per_table来控制,老师建议总是作为一个单独的文件来存储,这样非常容易管理,

2021-03-26 15:16:57 78

原创 一条SQL查询语句的执行流程

平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个 ID 字段,在执行下面这个查询语句时:mysql> select * from T where ID=10;我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在 MySQL 内部的执行过程。所以今天我想和你一起把 MySQL 拆解一下,看看里面都有哪些“零件”,希望借由这个拆解过程,让你对 MySQL 有更深入的理解。这样当我们碰到 MySQL 的一些异常或者问题时,就能够直戳本质,更为快速地

2021-03-24 19:26:35 192

原创 ActiveMQ高级特性之死信队列

DLQ-死信队列(Dead Letter Queue)用来保存处理失败或者过期的消息。出现以下情况时,消息会被redeliveredA transacted session is used and rollback() is called(使用一个事务session,并且调用了rollback()方法). A transacted session is closed before commit is called(一个事务session,关闭之前调用了commit). A session...

2021-03-24 18:30:35 551

原创 activeMQ高级特性之消费重试机制

activeMQ中的消息重发,指的是消息可以被broker重新分派给消费者,不一定的之前的消费者。重发消息之后,消费者可以重新消费。消息重发的情况有以下几种。    1.事务会话中,当还未进行session.commit()时,进行session.rollback(),那么所有还没commit的消息都会进行重发。    2.使用客户端手动确认的方式时,还未进行确认并且执行Session.recover(),那么所有还没acknowledge的消息都会进行重发。    3.所有未ack的消息,当

2021-03-24 16:49:37 525

原创 activeMQ高级特性之延时投递与定时投递

5.4版的ActiveMQ在ActiveMQ消息代理中内置了一个可选的持久性调度程序。通过在“ Xml配置”中将broker schedulerSupport属性设置为true 可以启用此功能。ActiveMQ客户端可以通过使用以下消息属性来利用延迟传递。先在 activemq.xml 中配置 schedulerSupport 属性为 true<broker xmlns="http://activemq.apache.org/schema/core" brokerName="localho

2021-03-24 16:25:49 460

原创 activeMQ高级特性之异步投递与确认签收回调

异步投递与确认签收回调ActiveMQ 支持同步、异步两种发送的模式将消息发送到 broker,模式的选择对发送延时有巨大的影响。producer 能达到怎样的产出率(产出率 = 发送数据总量/时间)主要受发送延时的影响,使用异步发送可以显著的提高发送的性能。 ActiveMQ 默认使用异步发送的模式:除非明确指定使用同步发送的方式或者在未使用事务的前提下发送持久化的消息,这两种情况都是同步发送的。 如果你没有使用事务且发送的是持久化的消息,每一次发送都是同步发送的且会阻塞 prod...

2021-03-24 16:21:43 714

3.2_3_页面置换算法.pdf

3.2_3_页面置换算法.pdf

2021-02-22

java学习笔记.txt

java学习笔记.txt

2021-02-21

空空如也

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

TA关注的人

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