自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 解决java: 无法访问org.bouncycastle.crypto.params.ECPrivateKeyParameters 找不到org.bouncycastle.crypto.param

如果使用了ProGuard或其他混淆工具,可能需要相应地配置以保留Bouncy Castle的类。:检查构建脚本或IDE设置,确保包含了Bouncy Castle jar包的路径。:检查使用的Bouncy Castle版本,确保它与项目兼容,并且包含所需的类。:可能使用的Bouncy Castle jar包版本不兼容,或者缺少某些类。:在某些情况下,Java的安全管理器可能阻止加载某些类。:即使已经添加了jar包,类路径也可能没有正确设置。:更新混淆配置,以确保所需的类不被混淆或重命名。

2024-03-24 11:46:20 392

原创 解决Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field ‘com.sun.tools.javac.tre

请注意,如果在经过上述尝试后,即使重新运行构建后仍然出现错误,可能是由于 IntelliJ 有一些缓存仍在获取以前的 lombok 版本。问题原因是Lombok ,与 JDK 21 兼容的最低 Lombok 版本是 1.18.30,最小的 Spring Boot 版本是 3.1.4。直接先升级lombok至1.18.30或以上版本,若仍不行,再尝试升级Spring Boot 至3.1.4或以上版本。在更新自建项目基础过程中,compile、install报错。这里先升级到1.18.30版本、问题解决。

2024-03-23 21:05:53 819

原创 Go语言基础

运算符是一种特殊的符号,可以表示数据的运算,赋值,比较等1)算术运算符2)赋值运算符3)比较运算符4)逻辑运算符5)位运算符6)其他运算符比较两个数的大小。a:=101b:=66if(a>b){fmt.Printf("a大一些")}else{fmt.Printf("b大一些")注意:go语言不支持三元运算符在Go语言中,切片(Slice)是数组的一个引用。它会生成一个指向数组的指针,并通过切片长度关联到底层数组部分或者全部元素。

2024-03-10 19:14:17 558 1

原创 解决java: 无法访问javax.servlet.ServletException

在对历往项目工具类总结和归纳更新过程中,common模块在compile编译过程中遇到了“Error java: 无法访问javax.servlet.ServletException 找不到javax.servlet.ServletException的类文件”这个报错问题。IDE使用的是idea2021。

2024-03-07 16:12:26 647

原创 Linux安装RocketMQ

又又又....Linux裝RocketMQ。

2023-09-17 10:07:22 153

原创 Linux安装JDK

又又又又..Linux装JDK。

2023-09-13 21:42:45 184

原创 Linux安装MySQL8.0

自定义密码比较简单,不符合密码策略。yum仓库文件:wget http://repo.mysql.com/mysql80-community-release-el7-10.noarch.rpm。查看安装的mysql信息:rpm -qa|grep -i mysql。删除mysql相关服务:rpm -e --nodeps。

2023-09-13 21:24:24 703

原创 ArrayList底层实现原理

jdk 1.2 ~ jdk 1.6 中,ArrayList 的确是会通过空参构造方法生成一个指定底层数据结构容量为 10 的空数组。ArrayList最早出现在 JDK 1.2中,底层基于数组实现,它是一个动态数组列表结构的容器。ArrayList最早出现在 JDK 1.2中,底层基于数组实现,它是一个动态数组列表结构的容器。增加ArrayList实例的容量,如果必需的,以确保它至少可以容纳元素的数量由最小容量参数指定。将ArrayList实例的容量缩减为列表的当前大小。应用程序可以使用此操作最小化。

2023-09-04 17:13:35 214

原创 JNI之Java实现远程打印

打印机是最常见的办公设备了。一般情况下如果需要实现打印,可通过前端print.js包来完成。但是,如果要实现智能办公打印,就可以使用JNI技术、封装接口、远程调用实现完成。

2023-08-06 12:21:49 220

原创 设计模式之模板方法

定义一个操作中的算法的骨架,将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定步骤。

2023-08-05 22:33:03 950

原创 Python常用命令

type() 函数:查询对象的类型input() 函数在:函数接受一个标准输入数据,返回为 string 类型range() 函数:用于构造一个从[start, stop) (不包含stop)之间的连续的不可变的整数序列对象len() 函数: 用于获取容器对象中的元素个数reversed() 函数:反转序列对象,你可以将字符串进行反转,将列表进行反转,将元组反转random() 函数:返回随机生成的一个实数,它在[0,1)范围内。

2023-08-01 17:04:17 817

原创 Lambda-Java8新特性最佳实践

Lambda表达式的优点很明显,在代码层次上来说,使代码变得非常的简洁。缺点也很明显,代码不易读代码简洁,开发迅速方便函数式编程非常容易进行并行计算Java 引入 Lambda,改善了集合操作代码可读性变差在非并行计算中,很多计算未必有传统的 for 性能要高不容易进行调试。

2023-07-28 11:08:04 177

原创 算法之基数排序

基数排序:将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位 开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后,数列就变成一个有序序 列。

2023-07-27 19:47:31 50

原创 算法之桶排序算法

桶排序的基本思想是: 把数组 arr 划分为 n 个大小相同子区间(桶),每个子区间各自排序,最 后合并。计数排序是桶排序的一种特殊情况,可以把计数排序当成每个桶里只有一个元素的情况。2.使用 动态数组 ArrayList 作为桶,桶里放的元素也用 ArrayList 存储。桶的数量为(maxmin)/arr.length+1。3.遍历数组 arr,计算每个元素 arr[i] 放的桶。1.找出待排序数组中的最大值 max、最小值 min。

2023-07-27 19:24:08 547

原创 算法之归并排序算法

归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列 分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列。

2023-07-27 18:57:04 225

原创 算法之二分查找

二分查找 又叫折半查找,要求待查找的序列有序。每次取中间位置的值与待查关键字比较,如果中间位置 的值比待查关键字大,则在前半部分循环这个查找的过程,如果中间位置的值比待查关键字小, 则在后半部分循环这个查找的过程。直到查找到了为止,否则序列中没有待查的关键字。

2023-07-27 16:57:21 139

原创 记一次JVM调优过程

JVM可以调度使用的总的内存数,这个数量受操作系统进程寻址范围、系统虚拟内存总数、系统物理内存总数、其他系统运行所占用的内存资源等因素的制约。JVM运行时数据区域,它为类实例和数组分配的内存。堆可以是固定大小的也可以是可变大小的。其中 Heap = {Old + NEW = { Eden , from, to } }。:包括所有线程之间共享的一个方法区域和JVM为优化或内部处理所分配的内存。它存储每一个类的结构,如一个运行时的常量池、字段和方法数据、方法的代码和构造函数。

2023-07-12 22:14:12 596

原创 VMware将虚拟机网络设置为NAT模式

编辑路径/etc/sysconfig下的文件network vi /etc/sysconfig/network ,加入一条语句:NETWORKING=yes(网络是否工作:是)配置公共DNS服务,在vi /etc/resolv.conf文件里增加:nameserver 8.8.8.8、nameserver 8.8.4.4。BOOTPROTO=none #ip获取方式,DHCP为自动获取,静态IP为none和static。关闭防火墙服务:systemctl stop firewalld.service。

2023-07-12 19:43:33 2872

原创 进程、线程、进程池、进程三态、同步、异步、并发、并行、串行

开发写的代码我们称为程序,那么将开发的代码运行起来。我们称为进程。明白点: 当我们运行一个程序,那么我们将运行的程序叫进程。精简重点进程是申请一块内存空间,将数据放到内存空间中去, 是申请数据的过程是最小的资源管理单元进程是线程的容器线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务。精简重点。

2023-07-07 18:19:56 243

原创 Java之枚举

枚举的本质枚举的常见用途枚举创建单例枚举抽象方法​Java中的枚举,大家在项目中经常使用吧,主要用来定义一些固定值,在一个有限的集合内,比如在表示一周的某一天,一年中的四季等。那你了解枚举的本质吗,或者说底层是什么样的?了解枚举的一些神仙用法吗?枚举主要用来定义一个有限集合内的固定值。枚举编译后实际上继承了java.lang.Enum这个类,后面详细讲解,我们看下这个类的关键方法:返回指定名字、给定类的枚举常量返回枚举常量名返回枚举常量在enum中的位置,从0开始。

2023-06-27 14:15:19 179

原创 Windows安装JDK并实现多版本切换

变量值增加:%JAVA_HOME%\bin;,放到x:\xx\Common Files\Oracle\Java\javapath前面。通过 JAVA_HOME的值%JAVA8_HOME%、切换使用不同版本的jdk。变量名:CLASSPATH。

2023-05-26 10:46:09 138

原创 Java泊松分布

Poisson泊松分布,是一种统计与概率学里常见到的离散概率分布。泊松分布的概率函数为:泊松分布的参数λ是单位时间(或单位面积)内随机事件的平均发生次数。泊松分布适合于描述单位时间内随机事件发生的次数。泊松分布的期望和方差均为λ。

2023-05-06 17:25:18 456

原创 Java线程池及其实现原理

线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中,如MySQL。线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机的整体性能。线程池维护多个线程,等待监督管理者分配可并发执行的任务。这种做法,一方面避免了处理任务时创建销毁线程开销的代价,另一方面避免了线程数量膨胀导致的过分调度问题,保证了对内核的充分利用。使用线程池可以带来的一系列好处降低资源消耗:通过池化技术重复利用已创建的线程,降低线程创建和销毁造成的损耗。

2023-05-06 15:57:48 1123

原创 ConcurrentHashMap底层实现原理

当数组长度不够时,ConcurrentHashMap需要对数组进行扩容,在扩容的实现上,ConcurrentHashMap引入了多线程并发扩容的机制,简单来说就是多个线程对原始数组进行分片后,每个线程负责一个分片的数据迁移,从而提升了扩容过程中数据迁移的效率。ConcurrentHashMap中有一个size()方法来获取总的元素个数,而在多线程并发场景中,在保证原子性的前提下来实现元素个数的累加,性能是非常低的。并发安全的主要实现是通过对指定的Node节点加锁,来保证数据更新的安全性。

2023-05-04 14:51:10 808

原创 HashMap底层实现原理

通过对cap进行位移或操作计算,获取扩容阈值2的幂次方。此时这里的阈值threshold不是初始容量*负载因子,不必在意,这只是临时的,真正设置threshold在后面put方法中。HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现,它是一个key-value结构的容器。JDK1.8 版本的HashMap,底层数据使用数组 + 链表/红黑树实现。Node的数据结构是一个链表结构,红黑树也是基于Node的数据结构构建得到。计算key.hashCode()并将哈希的高位数扩展到低位数。

2023-05-04 12:09:14 8090

原创 Java 17 新特性尝鲜

JDK 17更新了包括14个特性,具体如下表所示:恢复始终严格模式(Always-Strict)的浮点语义增强型伪随机数生成器新增macOS渲染管道支持将JDK移植到macOS或AArch64弃用待移除的Applet API强封装JDK内部APIswitch模式匹配进入预览(Preview)阶段移除RMI(远程方法调用)激活机制密封类移除实验性AOT和JIT编译器弃用待移除的安全管理器(Security Manager)外部函数和内存API(孵化器)孵化阶段Vector API(第二孵化器)第二孵化阶段。

2023-04-28 09:41:31 1478 1

原创 计算机基础之CPU架构

电子计算机由中央处理器CPU、内部存储器(简称内存)和输入输出设备(简称IO设备)组成。CPU是计算机的核心。CPU负责解释并执行计算机命令、产生各种信号、令各部件协调工作,使整个系统构成一个有机整体。MPU---集成在芯片上的CPU,称为微处理器,简称MPU。MPU总体功能上由运算器、控制器、寄存器组构成。

2023-03-29 15:40:43 1248

原创 SpringBoot 内置工具类

SpringBoot 内置工具类

2023-03-22 11:01:45 597 1

原创 算法之希尔排序-改进的插入排序

希尔排序将整个数组根据间隔h分割为若干个子数组,他们相互穿插在一起,每一次排序时,分别对每一个子数组进行排序。当h=3时,希尔排序将整个数组分为交织在一起的三个子数组。如图所示。其中,所有的方形为一个子数组,所有的圆形、三角形分别组成另外两个子数组。每次排序时总是交换间隔为h的两个元素。在每一组排序完成后,可以递减h的值,进行下一轮更加精细的排序。直到h=1,此时等价于一次插入排序。

2023-03-13 11:43:28 109

原创 算法之插入排序

插入排序的基本思想:一个未排序的数组(链表)可分为两部分,前部分时已排序的,后半部分是未排序的。在进行排序时,在未排序的部分中选择一个元素,将其插入前面有序的数组中即可。最终,未排序的部分直到0,排序就完成了。当前数据的插入依赖于上一次得到的有序序列,所以插入排序很难并行化。

2023-03-13 10:20:45 42

原创 算法之奇偶交换排序

奇偶排序解开了冒泡排序每次迭代交换数据的相关性。它将排序分为两个过程,奇交换和偶交换。对于奇交换来说,它总是比较奇数索引及其相邻的后续元素。对于偶交换来说,它总是比较偶数索引及其相邻的后续元素。奇交换和偶交换会成对出现,这样能保证比较和交换涉及数组中的每一个元素。

2023-03-12 16:10:51 536

原创 算法之冒泡排序

在每次迭代的交换过程中,由于每次交换的两个元素存在数据冲突,对于每个元素,它既可能与前面的元素交换,也可能与后面的元素交换,因此很难直接改造成并行算法。在冒泡排序的执行过程中,如果数字较小,就会逐步被交换到前面去,相反,对于大的数字,则会下沉,交换到数组的末尾。该算法的最差时间复杂度为O(n2),最优时间复杂度为O(n),平均时间复杂度为 O(n2)。

2023-03-12 15:28:58 52

原创 矩阵算法之矩阵乘法

1、当矩阵A的列数(column)等于矩阵B的行数(row)时,A与B可以相乘。2、矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。3、乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。

2023-03-12 13:51:53 21347

原创 设计模式之不变模式

当多线程对同一个对象进行读写操作时,为了保证对象数据的一致性和正确性,有必要对对象进行同步操作,但同步操作对系统性能有损耗。注意:不变模式通过回避问题而不是解决问题的态度处理多线程并发访问控制,不变对象不需要进行同步操作。由于并发同步会对性能产生不良影响,因此,在需求允许的情况下,不变模式可以去除这些同步操作,提高并行程序性能,确保其在没有同步操作的多线程环境中保持内部状态的一致性鄂汇正确性。将所有属性设置为私有,并用final标记,确保其不可修改。不变模式可以提高系统的并发性能和并发量。

2023-03-11 11:54:39 370

原创 设计模式之单例模式

如果一个对象有可能贯穿整个应用程序,而且起到了全局统一管理控制的作用,那么单例模式也许是一个值得考虑的选择。

2023-03-07 17:25:34 111

原创 Windows环境下nacos的下载与安装

把set MODE="cluster",默认是集群启动,修改为standalone单机模式启动。windows下载上面的tar.gz的安装包,linux下载下面的zip包。在bin目录下双击startup.cmd文件运行nacos,启动成功。根据自己项目配置的版本,下载对应的nacos客户端。nacos配置成Windows服务自启动。nssm配置nacos服务。

2023-03-07 16:43:27 2916

原创 前端之道|初入Vue江湖

来源于2020-06-05 12:41今日头条·天之道居同作者文章一、先要安装node.js官网:二、设置nodejs prefix(全局)和cache(缓存)路径。

2023-03-06 17:29:30 94

原创 java常用的一些工具类

CollectionUtils 集合操作工具类,支持集合非空判断、集合添加、删减,以及一个我觉得很好用的(intersection(a,b))交集、(...

2020-03-06 21:33:06 361

原创 Mysql数据库之左连接left join 右连接right join 内连接inner join

最近,公司的用户达到了700+万,意味着数据库已经达到700+万,聊聊傻傻分不清的连接查询吧!前提:数据库中一共有三个表:class,book,phone,而且每个数据库表中都有10万条数据,三个表一共有30万条数据,从大数据量的角度来检测你写的sql语句性能是如何的.一.左连接left join 是left outer join的简写,它的全称是左外连接,是外连接中的一种。注...

2020-03-06 21:23:45 17772

原创 joda-time时间与日期处理

添加maven依赖<dependency> <groupId>joda-time</groupId> <artifactId>joda-time</artifactId> <version>2.10</version></dependency>...

2020-03-06 21:21:46 1119

空空如也

空空如也

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

TA关注的人

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