- 博客(28)
- 收藏
- 关注
原创 生产环境中如何防止rm -ef 删库操作?
它并不真正执行删除操作,而是将文件移动到一个特定目录,可以设置定时清除回收站,或者在回收站里面的文件大小达到一定容量时(或者用时间做判断)执行删除操作以腾出空间。是一个开源软件用来替代不太安全的rm,可以在/etc/safe-rm.conf中配置路径黑名单,定义哪些不能被safe-rm删除。在一个风和日丽的下雨天,某猿带着还未从睡梦中醒来的脑子,打开了服务器,完成了一套华丽的rm -ef操作.可以异地远程备份重要的数据,采用dump的增量备份机制,LVM快照,虚拟化环境中的快照、raid5等等。
2024-08-05 14:04:41 619
原创 ElasticSearch安装与集群部署
很多小伙伴第一次接触ElasticSearch的时候是一脸愁容,这个东西他怎么用啊,不知道从哪里安装,那我们今天就着重从哪里下载?怎么下载?怎么安装?来研究一下吧!
2024-08-05 09:58:46 781
原创 HashMap内存地址,一个不小心就会踩坑的小细节
hashmap是一种基于哈希表的数据结构,它通过计算键的哈希值来确定键值对在内存中的存储位置。在内存中,hashmap通常使用数组来存储数据,每个数组元素都是一个桶(bucket),每个桶中可以存储一个或多个键值对。当我们需要在hashmap中查找、插入或删除键值对时,hashmap会根据键的哈希值来定位到相应的桶,并在该桶中进行操作。HashMap是基于数组来实现Hash表的,数组就像是内存空间,它的每一个index就是一个内存的地址,即数组的下标就好比代表了一个内存地址。没错,正如你所想他没错。
2024-08-02 08:44:14 196
原创 Java面试题(java高级面试题)
我们的系统中是使用的基于MQ的异步双写来实现数据同步的,具体来说,当mysql数据发生变化的时候,会向MQ中发一个消息,然后我们的搜索服务会接收这个消息,根据消息中的数据Id构造出完整的数据,然后同步到ES中。客户端点击导出按钮以后,服务端记录一个日志,状态是待处理,给客户端返回日志的id,然后服务端异步做excel的导出,完成以后,把excel上传到oss,把下载的url地址记录到日志,并把日志的状态改成已完成。// 从MQ收消息,下单,SQL中要加上stock>0的判断,防止把库存扣成负数。
2024-01-12 23:11:07 1219 1
原创 Java中的原子类-枚举-类加载器
Java中的原子类提供的这些方法都是线程安全的,不会被其他线程中断或干扰。读取方法get():获取当前值修改方法set():设置当前值lazySet():延迟设置当前值。与set()不同的是,它不保证其他线程立即看到修改后的值,而是在可能的情况下延迟更新值,从而提高性能。:比较并设置。如果当前值等于预期值(expected),则设置新值(update)并返回true;否则返回false。:弱比较并设置。
2024-01-10 11:29:15 906
原创 分享一个idea插件MyBatisX的Bug
这个错误表明 MyBatis 插件 (com.baomidou.plugin.idea.mybatisx) 在保存设置时遇到了问题,并且已被禁用。要解决这个问题,您可以尝试以下几个步骤:重启 IntelliJ IDEA: 按照错误消息中的建议,尝试重新启动 IntelliJIDEA。有时候重新启动可以解决临时性的配置问题。检查插件版本: 确保您使用的 MyBatis 插件是最新版本。在 IntelliJ IDEA 中,您可以转到 “File” ->“Settings” -> “Plugins”,然后找到
2024-01-05 09:53:28 2256 1
原创 Java中的迭代器
Java中的迭代器是一种用于遍历数据结构的对象。它提供了一种简单的方式来访问集合中的元素,而不需要显式地指定位置或索引。以下是Java中的迭代器的几个重要特征:迭代器接口:在Java中,迭代器实现了Iterator接口,这个接口定义了遍历集合中元素的方法,例如next()和hasNext()。遍历方式:Java中的迭代器可以从前到后依次遍历集合中的元素。可通过remove()删除元素:Java的迭代器还提供了一个remove()方法,用于删除它最后返回的元素。
2023-12-30 21:26:24 570 1
原创 java有关时间的整理
返回当前时间的毫秒数。new Date():获取当前日期和时间的对象。:用于格式化日期和时间,可将日期和时间转换为不同的字符串格式,或将字符串解析为日期和时间对象。:获取日历对象实例,可进行日期和时间的计算、比较和格式化等操作。:获取当前日期和时间的毫秒数。:判断当前日期是否在给定日期之前。:判断当前日期是否在给定日期之后。:比较两个日期的先后顺序。:获取指定字段的值,如年、月、日、时、分、秒等。:设置指定字段的值,如年、月、日、时、分、秒等。
2023-12-29 16:47:05 958 1
原创 ECharts基本使用(入门)
Apache ECharts 是一款基于 Javascript 的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。1). 柱形图2). 饼形图3). 折线图**总结:**不管是哪种形式的图形,最本质的东西实际上是数据,它其实是对数据的一种可视化展示。
2023-12-28 08:39:23 555 1
原创 Java中利用Redis,ZooKeeper,数据库等实现分布式锁(遥遥领先)
在我们进行单机应用开发涉及并发同步的时候,我们往往采用synchronized或者ReentrantLock的方式来解决多线程间的代码同步问题。但是当我们的应用是在分布式集群工作的情况下,那么就需要一种更加高级的锁机制,来处理种跨机器的进程之间的数据同步问题,这就是分布式锁。分布式锁,是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。
2023-12-27 16:23:11 1342 1
原创 Java中Collections工具类和Map集合
Map集合是Java中的一种数据结构,用于存储键-值对(Key-Value Pair)。Map集合的特点如下:存储方式:Map集合以Key-Value的方式存储数据,Key和Value可以是任何类型的Java对象,但是一个Key只能对应一个Value,而一个Value可以对应多个Key。可以包含null:Map可以存储null值的键和值,但是要注意空指针异常。实现方式:Java中常用的Map实现类有HashMap、TreeMap、LinkedHashMap和Hashtable。
2023-12-27 08:52:13 552 1
原创 Java中的单元测试
单元测试是指在软件开发中对软件的最小可测试单元进行测试和验证的过程。最小可测试单元通常是指函数、方法或者类,单元测试可以保证开发人员的代码正确性,同时也方便后期维护和修改。单元测试的主要目的是检测代码的正确性,确保单个函数或方法的输入和输出正确无误,同时减少开发中的错误和错误的影响。单元测试还可以帮助程序员理解代码的调用和流程,提高程序员的开发效率。单元测试可以自动化执行,提高测试效率和准确性,同时减少手动测试的工作量。
2023-12-26 09:19:28 2506 1
原创 Java回调方法和动态代理
动态代理是一种在运行时动态生成代理类的机制。代理类继承了被代理类的接口,并且拥有相同的方法名和参数。在 Java 中,动态代理可以通过类和接口来实现。具体流程如下:创建一个实现 InvocationHandler 接口的类,该类中实现了 invoke 方法,该方法会在代理类的每个方法被调用时被执行。使用 Proxy 类的方法创建一个代理类实例,该方法需要传入三个参数:类加载器、代理类要实现的接口以及代理类对应的 InvocationHandler 实例。
2023-12-25 09:56:56 986 1
原创 精选JAVA:50道面试题
Java虚拟机(Java Virtual Machine,缩写为JVM)是Java程序的运行环境。它负责执行Java程序编译后的字节码,并提供了内存管理、垃圾回收、安全检查等功能。Java程序可以在任何安装了Java虚拟机的计算机上运行,而不必担心不同操作系统、不同硬件平台的兼容性问题。多态性指的是一个对象可以以不同的形态表现出来,即同一类型的对象,在不同的情况下可以有不同的表现形式和功能。
2023-12-22 13:23:05 921
转载 路由器服务器修改密码,TP-Link TL-WR842N路由器设置密码
(3)、新版本的TL-WR842N路由器,是没有默认的用户名和密码的,这种新款的TL-WR842N路由器,是第一次设置这台路由器时,由用户自己创建的管理员密码(也就是登录密码)。如果已经忘记了TL-WR842N路由器的登录密码,老版本的TL-WR842N路由器可以尝试用默认密码:admin登录;(1)、TL-WR842N路由器目前有V1、V2、V3、V4、V5、V6、V7几个版本,不同版本的TL-WR842N路由器,登录界面、设置页面也会有些不同。2、修改TL-WR842N路由器的WiFi密码。
2023-12-21 16:55:24 606 1
原创 AOP的理论及实践
Component@Aspect //声明该bean是一个切面bean 找到切入点+添加通知(增强动作)@Slf4j// "execution(* com.heima.tlias.service.impl.DeptServiceImpl.*(..))" 找到切入点// @Before做通知增强 buildLu() 增强的功能log.info("开始修路....");log.info("帮助卖 销售....");
2023-12-20 14:05:03 888
原创 解放双手生产力强劲工具,阿里通义灵码安装教程
下载完安装包后,打开 Visual Studio Code 后,单击扩展,单击更多按钮,在下拉菜单中单击 从 VSIX 安装,选择下载的 VSIX 文件后安装;下载完安装包后,打开 IntelliJ IDEA 后,打开设置,在插件管理的设置下拉菜单中单击从本地安装插件,选择下载的 zip 文件后安装。重启 Visual Studio Code 后,单击侧边导航的通义灵码,在通义灵码助手的窗口单击登录按钮。重启 IntelliJ IDEA 后,单击侧边导航的通义灵码,在通义灵码助手的窗口单击登录按钮。
2023-12-20 12:47:11 2462
原创 Gitee保姆级教程
Git 是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理。本地仓库:开发人员自己电脑上的 Git 仓库远程仓库:远程服务器上的 Git 仓库解释说明:commit:提交,将本地文件和版本信息保存到本地仓库push:推送,将本地仓库文件和版本信息上传到远程仓库pull:拉取,将远程仓库文件和版本信息下载到本地仓库。
2023-12-19 16:18:46 2427 1
原创 分享一个自己用的Linux中自动化部署脚本:一键启动、停止、重启Java应用
在脚本中,我们定义了两个变量,JAR_NAME 表示要运行的Java应用的路径,LOG_PATH 表示应用的日志路径。脚本中定义了四个方法,分别是启动(start)、停止(stop)、查看状态(status)和重启(restart)。这些方法通过操作 ps 命令和 kill 命令来实现相应的功能。# 启动方法start() {# 重新获取一下pid,因为其它操作如stop会导致pid的状态更新$JAR_NAME# -z 表示如果$pid为空时执行then$JAR_NAMEecho ""else。
2023-12-19 10:33:51 1369 1
原创 Java常用API总结
包括基本数据类型的包装类、String类、Object类等。:包括List、Set、Map等。常用的有ArrayList、LinkedList、HashSet、TreeSet、HashMap、TreeMap等。:包括字节流和字符流的API,常用的有InputStream、OutputStream、Reader、Writer等。:包括Socket和ServerSocket等。:包括多线程编程的API,如Thread、Runnable、Executor、Semaphore等。
2023-12-18 16:44:36 1214
原创 单例模式概述与示例
单例模式是一种创建型设计模式,它保证一个类在任何情况下都只有一个实例,并提供了全局访问点。在Java中,单例模式通常会使用一个私有的构造方法来限制该类的实例化,然后通过一个静态方法来获取该类的唯一实例。在多线程环境下,需要考虑线程安全的问题,可以使用“双重检查锁定”或者是静态内部类的方式来实现。单例模式常用于需要频繁使用的对象,如日志工具、数据库连接池等。确保一个类只有一个实例,避免了重复创建对象的开销。提供了全局访问点,方便其他对象调用该类的方法和属性。
2023-12-18 16:35:38 605
原创 关于Stream流io流实用小整理
read(byte[] b): 从输入流中读取一些字节数,并将它们存储到字节数组 b中 ,返回读取的长度,如果没有数据,返回-1。对象 . listFiles();格式为new FileWriter(“qqqqqq.txt”, Charset.forName(“utf-8”));wirte(String[])写入一个字符串或者字符串数组,可以指定字符串数组开始写入的位置和结束。wirte(char[])写入一个字符或者字符数组,可以指定字符数组开始写入的位置和结束位置。
2023-12-14 11:06:26 938
原创 教你学会Docker的使用
*数据卷(volume)**是一个虚拟目录,指向宿主机文件系统中的某个目录。一旦完成数据卷挂载,对容器的一切操作都会作用在数据卷对应的宿主机目录了。这样,我们操作宿主机的/var/lib/docker/volumes/html目录,就等于操作容器内的/usr/share/nginx/html目录了常见的镜像在DockerHub就能找到,但是我们自己写的项目就必须自己构建镜像了。而要自定义镜像,就必须先了解镜像的结构才行。
2023-11-28 11:41:43 1325
原创 ruoyi-Vue前后端分离版本,生成代码404问题
2、在ruoyi-test业务模块下新建pom.xml文件以及src\main\java,src\main\resources目录。在ruoyi-test业务模块添加com.ruoyi.test包,新建TestService.java。在ruoyi-admin新建测试类,调用helloTest成功返回hello代表成功。4、根目录pom.xml模块节点modules添加业务模块。5、ruoyi-admin目录pom.xml添加模块依赖。1、新建业务模块目录,例如:ruoyi-test。
2023-11-20 11:17:51 940 1
原创 SpringBoot原理详解
SpringBoot的自动配置就是当Spring容器启动后,一些配置类、bean对象就自动存入到了IOC容器中,不需要我们手动去声明,从而简化了开发,省去了繁琐的配置操作。比如,我们要进行事务管理、要进行AOP程序的开发,此时就不需要我们再去手动的声明这些bean对象了,我们直接使用就可以从而大大的简化程序的开发,省去了繁琐的配置操作。运行SpringBoot启动类可以看到有两个CommonConfig,在第一个CommonConfig类中定义了一个bean对象,bean对象的名字叫reader。
2023-11-01 15:39:45 180
原创 什么是加密?浅谈MD5加密
加密解密是一种通过使用密码算法对信息进行转换,以使其在传输或存储过程中变得不可读或难以理解,从而保护信息的安全性和隐私性的过程。加密是将明文(原始文本)转换为密文(加密后的文本)的过程。在加密过程中,使用密钥和特定的算法来改变原始文本的形式,使其在未经授权的情况下无法理解。只有持有正确密钥的人才解密是将密文转换回明文的过程。数字摘要算法(Digital Digest Algorithm)是一种加密算法,用于将任意长度的数据转换为固定长度的摘要(也称为哈希值)。
2023-11-01 09:33:53 412
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人