- 博客(111)
- 资源 (9)
- 收藏
- 关注
原创 为什么使用雪花算法,有什么优缺点,如何解决?为什么不使用UUID的方法,如何解决系统回拨的问题?
为什么使用雪花算法,有什么优缺点,如何解决?为什么不使用UUID的方法,如何解决系统回拨的问题?
2024-08-30 21:29:20
453
原创 宝塔部署Spring前后端项目出现的问题-(nginx跳转404,路由不对,failed (2: no such file or directory), client)
将生成的文件上传到服务器中,然后使用 java -jar xxxx.jar 就可以运行了,其中xxx表示对应的jar文件名称。在命令行中我们去来到这个对应的文件夹下面,然后可以发现下面有挺多conf文件,当前创建网站名称的conf文件就是我们需要的conf文件,如果是需要修改的话,都是在这里进行修改。如图所示,首先clean,然后点击package进行打包,会在当前目录创建一个target文件,target中生成的jar文件就是打包的后台问题。前端部署相对要注意的点还是挺多的。
2024-08-01 14:03:41
451
原创 JUC锁-AbstractQueuedSynchronized(AQS详解)
AQS是一个用来构建锁和同步器的框架,使用AQS能简单且高效地构造出应用广泛的大量的同步器,比如我们提到的ReentrantLock,Semaphore,其他的诸如ReentrantReadWriteLock,SynchronousQueue,FutureTask等等皆是基于AQS的。当然,我们自己也能利用AQS非常轻松容易地构造出符合我们自己需求的同步器。Exclusive(独占):只有一个线程能执行,如ReentrantLock。
2024-07-26 15:45:48
325
原创 synchronized锁、锁升级的过程
总共有四种状态:分别是无锁、偏向锁、轻量级锁和重量级锁。在默认的情况下,首先使用的是偏向锁。JVM会利用CAS操作,在对象头的Mark Word部分设置线程ID,以表示这个对象偏向于当前线程,所以并不涉及真正的互斥锁。这样做的假设是基于在很多应用场景中,大部分对象生命周期会最多被一个线程锁定,使用偏向锁可以降低无竞争开销。如果有另外的线程尝试锁定某个已经被偏斜过的对象,JVM就需要撤销偏向锁,并切换到轻量级锁的实现。
2024-07-26 11:50:45
633
原创 CMS垃圾回收器的有点缺点,产生promotion failed和concurrent mode failure的原因及解决方案
CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器,它非常符合那些集中在互联网站或者B/S系统的服务端上的Java应用,这些应用都非常重视服务的响应速度。从名字上(“Mark Sweep”)就可以看出它是基于“标记-清除”算法实现的。CMS收集器工作的整个流程分为以下4个步骤:由于整个过程中耗时最长的并发标记和并发清除过程收集器线程都可以与用户线程一起工作。所以,从总体上来说,CMS收集器的内存回收过程是与用户线程一起并发执行的。优点CMS是一款优秀的收集器
2024-07-24 18:24:12
854
原创 JVM 的栈上分配、TLAB、PLAB 有啥区别?
一般情况下,每个线程如果有新建的对象,那么会跟 JVM 申请在堆上创建对应的对象,而线程的栈则存储了指向堆对象的指针。每当一个线程想创建一个对象时,首先会请求 JVM,之后 JVM 进行协调,创建完成之后再告诉线程,线程最后将引用放到栈中。由于对象一般分配在堆上,而堆事线程共用的,因此可能会有多个线程在堆上申请空间,而每一次的对象分配都必须线程同步,这样会降低内存分配的效率。考虑到对象分配是非常常见的操作,于是 JVM 使用 TLAB 这样的线程转悠区域来避免多线程冲突,提高对象分配效率。
2024-07-13 17:27:35
1044
原创 云服务器CPU和内存直接被zzh恶意挖矿程序打满,如何解决?
最近在服务器上面部署网站,刚开始使用还是没问题的,当时一段时间之后发现CPU和内存总是被打满,本地没有跑大的应用,主要有mysql、nginx、redis,一度还以为是nginx 的问题,但是后来排除了。在网上查阅资料之后,发现服务器是被恶意攻击了。在redis.conf中将bind 后面的地址换成需要访问这台数据库的IP地址在,另外给redis设置密码,最后的话修改redis的运行章,以低一点的权限来运行redis服务,禁用这个账号的登录权限。kill进程之后CPU占用率下降到正常水平。
2024-06-08 22:27:40
650
原创 使用Idea进行git pull/ push项目报错:failed to push some refs to、unable to access、HTTP/2 stream 1 was not clos
【代码】使用Idea进行git pull/ push项目报错:failed to push some refs to、unable to access、HTTP/2 stream 1 was not clos。
2024-05-18 10:52:58
298
原创 服务器Centos部署Spring boot 前后端项目
使用centos部署前后端项目,使用的是centos 8,后端用的是Spring,前端用的是Vue
2024-05-16 15:14:50
835
1
原创 Linux配置nginx脚本
正常来说,配置nginx相对来说比较麻烦,这里写一个sh脚本,可以之间完成相关的操作,其中包括,换 nginx的源,加载nginx前置的依赖,同样包含nginx的conf文件配置。
2024-05-15 16:33:42
367
原创 Java8 Stream API在集合上执行复杂的数据处理查询
Java 8 引入的 Stream API 是一个高级工具,用于在集合上执行复杂的数据处理查询。Stream API 通过提供一系列的中间操作和最终操作,支持声明式处理(类似于SQL声明式语句)并且可以轻松使用多核架构
2024-05-12 18:31:45
400
原创 Arthas实战:阿里巴巴开源的Java诊断利器
Arthas提供了方便且功能强大的命令,可以解决本地代码调试中的种种疑难问题。它是一个无可替代的Java诊断利器,推荐所有Java开发者进行学习使用。
2023-08-01 11:36:40
424
原创 JVM垃圾收集机制详解与性能调优(详细)
掌握垃圾收集器的工作原理,并根据应用场景选择合适的收集器,能有效提升Java应用程序的性能。同时代码层面应该尽量减少垃圾对象的产生。
2023-08-01 11:34:39
846
原创 深入字节码底层剖析JVM内存结构(长文-详细-有例子)
讲述了JVM内存区域的一些核心结构和概念,掌握这些有助于我们理解Java程序的内存使用情况。在日常编码和排查问题时,如果遇到内存溢出、泄露等问题,也可以从JVM内存的使用入手来定位问题。
2023-08-01 11:30:46
254
原创 AI4DB-Cardinality Estimation
基数估计是查询优化中一个基本但长期未解决的问题,几十年来,研究者尝试用各种方法和技巧提升估计的准健性,研究者提出了许多模型以解决该问题,比如说传统的方法,直方图法、基于概要的方法、采样法等,以及基于学习的方法,这里面分为三种方法,数据驱动、查询驱动、以及同时将数据和查询使用起来的方法。
2022-12-28 11:10:23
1594
6
原创 长江雨课堂-创新实践案例课程(测试考试)
请结合马成功老师、李志刚老师以及田涛老师的讲解,从人力资源和企业文化的角度浅谈企业的管理之道,具体要求如下: 1. 请结合你自己印象最深刻的课程观点,并在报告中提炼与评述;2. 请结合你自己或你身边真实的创业经历、工作经历、实习经历或其他成长经历,并在报告中体现你对个人或身边相关经历的思考;3. 文体不限,字数控制在1500-2500字之间(若采用文言文,字数达600即可);4. 严禁抄袭,拒绝空洞内容,表达真情实感更佳。
2022-12-10 10:41:58
4452
原创 FLAT:Fast, Lightweight and Accurate Method for Cardinality Estimation-FLAT,一个轻量且高效的基数估计模型
FLAT:Fast, Lightweight and Accurate Method for Cardinality Estimation-FLAT,一个轻量且高效的基数估计模型(SPN)
2022-12-05 10:48:50
426
原创 Cardinality estimate-基数估计中基于直方图(Histogram)和采样(Sampling)的方法
Cardinality estimate-基数估计中基于直方图(Histogram)和采样(Sampling)的方法
2022-11-28 21:51:22
1090
1
原创 Python中debug的用法
Step Over:在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。以上七个功能,就是最常用的功能,一般操作步骤就是,设置好断点,debug运行,然后 F8 单步调试,遇到想进入的函数 F7 进去,想出来在 shift + F8,跳过不想看的地方,直接设置下一个断点,然后 F9 过去。Step Out:假如进入了一个函数体中,你看了两行代码,不想看了,跳出当前函数体内,返回到调用此函数的地方,即使用此功能即可。
2022-11-08 10:12:08
2169
原创 WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None))
这是由于连接不上国外的镜像库,换成国内的源就行。使用pip安装第三方库的时候显示。
2022-10-22 17:21:33
494
原创 Reverse recognition
计算图像下半部分的直方图,将图像分成9个水平切片,从底部开始,在直方图的左峰和右峰周围围起一个200像素宽的窗口【将直方图垂直拆分为两半】,在水平窗口切片上查找可能是左车道和右车道一部分的像素,像素最多的位置作为车道线的起始位置,然后自定义窗口大小和个数向上做滑窗操作,滑动窗口自下往上计算在滑动窗口中的投影值, 取投影值最大的列和滑动窗口底边所在的行作为透视空间中的车道线坐标点,求出每个窗口中像素点的x和y坐标作为车道线的x,y坐标,当前窗口像素的平均x坐标作为下一个滑窗的中心位置。
2022-10-18 08:14:44
219
原创 Python迭代器
这是因为Python的Iterator对象表示的是一个数据流,Iterator对象可以被next()函数调用并不断返回下一个数据,直到没有数据时抛出StopIteration错误。可以把这个数据流看做是一个有序序列,但我们却不能提前知道序列的长度,只能不断通过next()函数实现按需计算下一个数据,所以Iterator的计算是惰性的,只有在需要返回下一个数据时它才会计算。生成器都是Iterator对象,但list、dict、str虽然是Iterable,却不是Iterator。...
2022-07-31 18:44:38
93
原创 Python基础--字典
##字典字典是Python中唯一的映射类型,每一个元素都是有键和值构成,其中键必须是不可变的类型,比如说是数字、字符串和元组。###字典基本操作在上面介绍了两种方法,其中第一种方法在遍历的时候如果删除键为key的某一项,就会跑出RuntimeError,使用第二种方式则不会。使用 in关键字 ,‘name’ in d###字典的常用方法...
2022-07-05 18:42:46
566
原创 预处理Json文件(自用)
package com.atLightIndustry.printsystemdemo.cn.sm1234.OK;import org.apache.commons.io.FileUtils;import java.io.File;import java.util.HashMap;public class Main { public static void main(String[] args) throws Exception { File file = new Fil
2022-05-12 22:20:14
350
基本情况 在一个项目开发过程中,遇到了小票自动打印的业务需求,原本计划使用NodeJS构建打印服务,调用本地电脑打印机进行数据打
2023-04-19
运筹学-单纯形法-代码实现-直接可以使用,包含写到试卷上的每一个步骤
2022-11-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人