
JAVA
文章平均质量分 82
岛森年
这个作者很懒,什么都没留下…
展开
-
生产环境中如何防止rm -ef 删库操作?
它并不真正执行删除操作,而是将文件移动到一个特定目录,可以设置定时清除回收站,或者在回收站里面的文件大小达到一定容量时(或者用时间做判断)执行删除操作以腾出空间。是一个开源软件用来替代不太安全的rm,可以在/etc/safe-rm.conf中配置路径黑名单,定义哪些不能被safe-rm删除。在一个风和日丽的下雨天,某猿带着还未从睡梦中醒来的脑子,打开了服务器,完成了一套华丽的rm -ef操作.可以异地远程备份重要的数据,采用dump的增量备份机制,LVM快照,虚拟化环境中的快照、raid5等等。原创 2024-08-05 14:04:41 · 711 阅读 · 0 评论 -
ElasticSearch安装与集群部署
很多小伙伴第一次接触ElasticSearch的时候是一脸愁容,这个东西他怎么用啊,不知道从哪里安装,那我们今天就着重从哪里下载?怎么下载?怎么安装?来研究一下吧!原创 2024-08-05 09:58:46 · 1004 阅读 · 0 评论 -
HashMap内存地址,一个不小心就会踩坑的小细节
hashmap是一种基于哈希表的数据结构,它通过计算键的哈希值来确定键值对在内存中的存储位置。在内存中,hashmap通常使用数组来存储数据,每个数组元素都是一个桶(bucket),每个桶中可以存储一个或多个键值对。当我们需要在hashmap中查找、插入或删除键值对时,hashmap会根据键的哈希值来定位到相应的桶,并在该桶中进行操作。HashMap是基于数组来实现Hash表的,数组就像是内存空间,它的每一个index就是一个内存的地址,即数组的下标就好比代表了一个内存地址。没错,正如你所想他没错。原创 2024-08-02 08:44:14 · 214 阅读 · 0 评论 -
Java面试题(java高级面试题)
我们的系统中是使用的基于MQ的异步双写来实现数据同步的,具体来说,当mysql数据发生变化的时候,会向MQ中发一个消息,然后我们的搜索服务会接收这个消息,根据消息中的数据Id构造出完整的数据,然后同步到ES中。客户端点击导出按钮以后,服务端记录一个日志,状态是待处理,给客户端返回日志的id,然后服务端异步做excel的导出,完成以后,把excel上传到oss,把下载的url地址记录到日志,并把日志的状态改成已完成。// 从MQ收消息,下单,SQL中要加上stock>0的判断,防止把库存扣成负数。原创 2024-01-12 23:11:07 · 1271 阅读 · 1 评论 -
Java中的原子类-枚举-类加载器
Java中的原子类提供的这些方法都是线程安全的,不会被其他线程中断或干扰。读取方法get():获取当前值修改方法set():设置当前值lazySet():延迟设置当前值。与set()不同的是,它不保证其他线程立即看到修改后的值,而是在可能的情况下延迟更新值,从而提高性能。:比较并设置。如果当前值等于预期值(expected),则设置新值(update)并返回true;否则返回false。:弱比较并设置。原创 2024-01-10 11:29:15 · 932 阅读 · 0 评论 -
Java中的迭代器
Java中的迭代器是一种用于遍历数据结构的对象。它提供了一种简单的方式来访问集合中的元素,而不需要显式地指定位置或索引。以下是Java中的迭代器的几个重要特征:迭代器接口:在Java中,迭代器实现了Iterator接口,这个接口定义了遍历集合中元素的方法,例如next()和hasNext()。遍历方式:Java中的迭代器可以从前到后依次遍历集合中的元素。可通过remove()删除元素:Java的迭代器还提供了一个remove()方法,用于删除它最后返回的元素。原创 2023-12-30 21:26:24 · 584 阅读 · 1 评论 -
java有关时间的整理
返回当前时间的毫秒数。new Date():获取当前日期和时间的对象。:用于格式化日期和时间,可将日期和时间转换为不同的字符串格式,或将字符串解析为日期和时间对象。:获取日历对象实例,可进行日期和时间的计算、比较和格式化等操作。:获取当前日期和时间的毫秒数。:判断当前日期是否在给定日期之前。:判断当前日期是否在给定日期之后。:比较两个日期的先后顺序。:获取指定字段的值,如年、月、日、时、分、秒等。:设置指定字段的值,如年、月、日、时、分、秒等。原创 2023-12-29 16:47:05 · 973 阅读 · 1 评论 -
Java中利用Redis,ZooKeeper,数据库等实现分布式锁(遥遥领先)
在我们进行单机应用开发涉及并发同步的时候,我们往往采用synchronized或者ReentrantLock的方式来解决多线程间的代码同步问题。但是当我们的应用是在分布式集群工作的情况下,那么就需要一种更加高级的锁机制,来处理种跨机器的进程之间的数据同步问题,这就是分布式锁。分布式锁,是控制分布式系统之间同步访问共享资源的一种方式。在分布式系统中,常常需要协调他们的动作。原创 2023-12-27 16:23:11 · 1390 阅读 · 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 · 580 阅读 · 1 评论 -
Java中的单元测试
单元测试是指在软件开发中对软件的最小可测试单元进行测试和验证的过程。最小可测试单元通常是指函数、方法或者类,单元测试可以保证开发人员的代码正确性,同时也方便后期维护和修改。单元测试的主要目的是检测代码的正确性,确保单个函数或方法的输入和输出正确无误,同时减少开发中的错误和错误的影响。单元测试还可以帮助程序员理解代码的调用和流程,提高程序员的开发效率。单元测试可以自动化执行,提高测试效率和准确性,同时减少手动测试的工作量。原创 2023-12-26 09:19:28 · 2576 阅读 · 1 评论 -
Java回调方法和动态代理
动态代理是一种在运行时动态生成代理类的机制。代理类继承了被代理类的接口,并且拥有相同的方法名和参数。在 Java 中,动态代理可以通过类和接口来实现。具体流程如下:创建一个实现 InvocationHandler 接口的类,该类中实现了 invoke 方法,该方法会在代理类的每个方法被调用时被执行。使用 Proxy 类的方法创建一个代理类实例,该方法需要传入三个参数:类加载器、代理类要实现的接口以及代理类对应的 InvocationHandler 实例。原创 2023-12-25 09:56:56 · 1044 阅读 · 1 评论 -
精选JAVA:50道面试题
Java虚拟机(Java Virtual Machine,缩写为JVM)是Java程序的运行环境。它负责执行Java程序编译后的字节码,并提供了内存管理、垃圾回收、安全检查等功能。Java程序可以在任何安装了Java虚拟机的计算机上运行,而不必担心不同操作系统、不同硬件平台的兼容性问题。多态性指的是一个对象可以以不同的形态表现出来,即同一类型的对象,在不同的情况下可以有不同的表现形式和功能。原创 2023-12-22 13:23:05 · 949 阅读 · 0 评论 -
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 · 913 阅读 · 0 评论 -
解放双手生产力强劲工具,阿里通义灵码安装教程
下载完安装包后,打开 Visual Studio Code 后,单击扩展,单击更多按钮,在下拉菜单中单击 从 VSIX 安装,选择下载的 VSIX 文件后安装;下载完安装包后,打开 IntelliJ IDEA 后,打开设置,在插件管理的设置下拉菜单中单击从本地安装插件,选择下载的 zip 文件后安装。重启 Visual Studio Code 后,单击侧边导航的通义灵码,在通义灵码助手的窗口单击登录按钮。重启 IntelliJ IDEA 后,单击侧边导航的通义灵码,在通义灵码助手的窗口单击登录按钮。原创 2023-12-20 12:47:11 · 2609 阅读 · 0 评论 -
Gitee保姆级教程
Git 是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理。本地仓库:开发人员自己电脑上的 Git 仓库远程仓库:远程服务器上的 Git 仓库解释说明:commit:提交,将本地文件和版本信息保存到本地仓库push:推送,将本地仓库文件和版本信息上传到远程仓库pull:拉取,将远程仓库文件和版本信息下载到本地仓库。原创 2023-12-19 16:18:46 · 3132 阅读 · 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 · 1528 阅读 · 1 评论 -
Java中UDP和TCP的使用(简单介绍和示例)
UDP通信程序是基于UDP协议实现的网络通信程序。原创 2023-12-19 09:23:37 · 1242 阅读 · 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 · 1338 阅读 · 0 评论 -
单例模式概述与示例
单例模式是一种创建型设计模式,它保证一个类在任何情况下都只有一个实例,并提供了全局访问点。在Java中,单例模式通常会使用一个私有的构造方法来限制该类的实例化,然后通过一个静态方法来获取该类的唯一实例。在多线程环境下,需要考虑线程安全的问题,可以使用“双重检查锁定”或者是静态内部类的方式来实现。单例模式常用于需要频繁使用的对象,如日志工具、数据库连接池等。确保一个类只有一个实例,避免了重复创建对象的开销。提供了全局访问点,方便其他对象调用该类的方法和属性。原创 2023-12-18 16:35:38 · 619 阅读 · 0 评论