兴趣类
文章平均质量分 88
本专栏主要是分享我在浏览其他博客或者订阅号和自己在编程实践中过程中的一些想法和启发,希望对各位读者有些帮助
dlwlrma-IU
日落西山非我意,晚霞在美不及你
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
vi使用方法详细介绍
vi是Unix/Linux系统中的标准文本编辑器,具有强大的编辑功能。它包含三种模式:命令模式(移动光标、删除/复制文本)、插入模式(输入文本)和底行模式(保存/退出文件)。常用操作包括:i进入插入模式,ESC返回命令模式,:wq保存退出。移动光标可使用h/j/k/l键,删除命令包括x(删除字符)和dd(删除整行)。vi支持复制粘贴(yy/p)、查找替换(/keyword)等功能。初学者需注意模式切换,熟练掌握vi能显著提升在Linux环境下的工作效率。原创 2025-08-14 09:50:49 · 707 阅读 · 0 评论 -
Linux各目录及每个目录的详细介绍
目录/bin存放二进制可执行文件(ls,cat,mkdir等),常用命令一般都在这里。etc存放系统管理和配置文件home存放所有用户文件的根目录,是用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示usr用于存放系统应用程序,比较重要的目录/usr/local本地系统管理员软件安装目录(安装系统级的应用)。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。/usr/x11r6 存放x window的目录。原创 2025-08-13 18:29:49 · 1407 阅读 · 0 评论 -
HTTP状态码说明
HTTP状态码是服务器响应浏览器请求时返回的三位数字代码,用于表示请求处理状态。状态码分为五类:1xx(信息)、2xx(成功)、3xx(重定向)、4xx(客户端错误)和5xx(服务器错误)。常见状态码包括200(成功)、301(永久重定向)、404(未找到)和500(服务器内部错误)。状态码第一位数字表示类型,后两位无分类作用。完整列表包含从100到505的各种状态,各自对应不同的请求处理情况,如304(未修改)、403(禁止访问)等。这些代码帮助开发者诊断和解决网页请求中的问题。原创 2025-08-13 18:11:51 · 946 阅读 · 0 评论 -
同步代码实现
本文介绍了两种Java多线程顺序执行的方法:1)使用join()方法确保线程顺序执行;2)使用CountDownLatch实现线程同步。第二部分展示了CompletableFuture的异步任务编排:任务一完成后执行任务二,任务三与一并行,所有任务完成后触发任务四。演示了链式任务执行、任务合并等异步编程模式。代码示例均包含异常处理和具体执行结果。(139字)原创 2025-06-01 14:19:28 · 222 阅读 · 0 评论 -
测试开发你需要知道的技术点
本文收录软件测试面试过程中常见的面试题.一些问题是从网上搜罗而来,剔除了不合时宜的;一些则是自己总结的面试题.很多的问题是开放性的,并没有确切的标准答案.1.为了发现程序中的缺陷,保证软件质量。2.满足用户需要1.项目立项后,参加需求评审2.根据需求文档制定测试用例,然后进行用例评审3.项目提测后,执行用例,问题记录cp4,及时有效的跟进问题的解决情况4.测试环境测试通过后,产品进行验收测试1.黑盒测试,即常说的功能测试2.白盒测试,即单元测试,通常由开发来完成,对程序类和方法的测试。原创 2025-04-03 15:17:31 · 553 阅读 · 0 评论 -
几张图轻松搞定JVM
关于JVM是重点之重,掌握jvm便于我们可以更好的掌握java程序的运行流程,以下我将我自己总结的jvm的一些重点通过图的形式展现给大家,以便于可以更好的来理解。原创 2024-12-29 21:26:21 · 391 阅读 · 0 评论 -
推荐几款好用的IDEA插件
我想第一个必定是有关Maven的插件了,目前,Java开发很多都在使用maven进行项目管理和自动构建。日常开发中,可能经常会遇到jar包冲突等问题,就需要通过查看maven依赖树来查查看依赖情况。这种方式不是很高效,这里推荐一个插件,安装之后,直接打开pom文件,即可查看依赖数,还能自动分析是否存在jar包冲突。一旦安装了Maven Helper插件,只要打开pom文件,就可以打开该pom文件的Dependency Analyzer视图在插件市场找到该款插件安装之后重启idea即可。原创 2024-12-24 16:24:38 · 1978 阅读 · 0 评论 -
如何选择合适的消息队列中间件
在选择消息中间件的时候我们要先明确,消息队列中间件的作用。其实也就是削峰填谷和异步解耦。原创 2024-12-22 19:32:47 · 915 阅读 · 0 评论 -
Redis除了做缓存,还能做什么???
Redis(Remote Dictionary Server)是一款开源的、基于内存的数据结构存储系统,常用于构建高性能、可扩展的应用程序。而缓存是 Redis 最常见的应用场景之一。将经常被访问的数据(如数据库查询结果、热门文章内容等)存储在 Redis 中,下次请求时直接从 Redis 中获取,减少对后端数据源(如数据库)的访问压力,提升系统整体性能。例如在新闻资讯类网站,将热门新闻详情缓存到 Redis,大量用户浏览时能快速响应。原创 2024-11-24 22:53:30 · 1059 阅读 · 0 评论 -
集合类你不知道的小知识
在系统设计中,快速失效(fail-fast)系统一种可以立即报告任何可能表明故障的情况的系统。快速失效系统通常设计用于停止正常操作,而不是试图继续可能存在缺陷的过程。在以上代码中是一个对两个整数做除法的方法,在divide方法中,我们对除数做了个简单的检查,如果其值为0,那么就直接抛出一个异常,并明确提示异常原因。这其实就是fail-fast理念的实际应用。那为什么要按设计这个东西呢?原创 2024-11-22 18:28:08 · 976 阅读 · 0 评论 -
RESTful风格
REST(Representational State Transfer),表现形式状态转换,它是一种软件架构风格当我们想表示一个网络资源的时候,可以使用两种方式:传统风格资源描述形式查询id为1的用户信息保存用户信息REST风格描述形式传统方式一般是一个请求url对应一种操作,这样做不仅麻烦,也不安全,因为会程序的人读取了你的请求url地址,就大概知道该url实现的是一个什么样的操作。按照REST风格访问资源时使用行为动作区分对资源进行了何种操作查询全部用户信息 GET(查询)原创 2024-11-17 21:36:11 · 982 阅读 · 0 评论 -
HTTP基础
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。HTTP状态码的英文为HTTP Status Code。原创 2024-11-14 17:47:57 · 1372 阅读 · 0 评论 -
Linux常见命令合集
1.ls : list 列出当前目录的所有内容2.ls -a : 列出当前目录下面的所有内容,包括隐藏的。隐藏的以.开始3.ls -l:查看当前目录的详细信息4.ls -al 指定目录:查看指定目录下面的所有文件的详细信息5.ll:使用 ls -l的简写 ********原创 2024-11-01 22:51:26 · 1042 阅读 · 0 评论 -
Redis主从架构
numkeys参数用于指定键名参数的个数。键名参数 key [key ...] 从EVAL的第三个参数开始算起,表示在脚本中所用到的那些Redis键(key),这些键名参数可以在 Lua中通过全局变量KEYS数组,用1为基址的形式访问( KEYS[1] , KEYS[2] ,以此类推)。在命令的最后,那些不是键名参数的附加参数 arg [arg ...] ,可以在Lua中通过全局变量。原创 2024-10-27 22:37:13 · 885 阅读 · 0 评论 -
Java设计模式详解----单例模式
软件设计模式(Software Design Pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。它描述了在软件设计过程中的一些不断重复发生的问题,以及该问题的解决方案。也就是说,它是解决特定问题的一系列套路,是前辈们的代码设计经验的总结,具有一定的普遍性,可以反复使用原创 2024-10-26 20:01:37 · 3720 阅读 · 0 评论 -
SpringAI你知道吗???
目前AI的浪潮已经居高不下了,因此我最近也开始了有关AI的项目,再开始AI的项目之前,我们也要先熟知AI的开发文档和知识,才能更好的开发项目,因此特地从官网查看了有关SpringAI的使用。官方说明文档:https://docs.spring.io/spring-ai/reference/api/原创 2024-10-25 20:29:23 · 3742 阅读 · 1 评论 -
Synchronized是怎么实现的?
所以,在 JDK1.6 中出现对锁进行了很多的优化,进而出现轻量级锁,偏向锁,锁消除,适应性自旋锁,锁粗化(自旋锁在 1.4 就有 只不过默认的是关闭的,JDK1.6 是默认开启的),这些操作都是为了在线程之间更高效的共享数据 ,解决竞争问题。通常提供 singal 机制:允许正持有“许可”的线程暂时放弃“许可”,等待某个谓词成真(条件变量),而条件成立后,当前进程可以“通知”正在等待这个条件变量的线程,让他可以重新去获得运行许可。未被锁定的对象的该计数器为 0,当一个线程获得锁(执行。原创 2024-09-29 07:00:00 · 1257 阅读 · 0 评论 -
AQS为什么采用双向链表
AQS:AbstructQueuedSynchronizd(抽象队列同步器),出现在 JDK 1.5 中。他是很多同步器的基础框架,比如 ReentrantLock、CountDownLatch 和 Semaphore 等都是基于 AQS 实现的。AQS内部,维护了一个FIFO队列和一个volatile的int类型的state变量。在state=1的时候表示当前对象锁已经被占有了,state变量的值修改的动作通过CAS来完成。原创 2024-09-28 14:50:23 · 1223 阅读 · 0 评论 -
Spring底层架构源码解析(三)
实现了ConfigurableApplicationContext接口3.原创 2024-09-19 21:14:59 · 849 阅读 · 0 评论 -
Spring底层架构源码解析(二)
实现了ConfigurableBeanFactory接口,继承了 FactoryBeanRegistrySupport,这个BeanFactory的功能已经很全面了,但是不能自动装配和 获取beanNames13.原创 2024-09-19 20:43:44 · 1766 阅读 · 0 评论 -
Spring底层原理大致脉络
其实不管是AnnotationConfigApplicationContext还是 ClassPathXmlApplicationContext,目前,我们都可以简单的将它们理解为就是用来创建 Java对象的,比如调用getBean()就会去创建对象。当我们调用context.getBean("userService")时,就会去创建一个对象,但是getBean方法 内部怎么知道"userService"对应的是UserService类呢?原创 2024-09-18 22:42:33 · 882 阅读 · 1 评论 -
JVM必备知识
程序计数器:线程私有的,内部保存的字节码的行号。用于记录正在执行的字节码指令的地址。java虚拟机对于多线程是通过线程轮流切换并且分配线程执行时间。在任何的一个时间点上,一个处理器只会处理执行一个线程,如果当前被执行的这个线程它所分配的执行时间用完了【挂起】。处理器会切换到另外的一个线程上来进行执行。并且这个线程的执行时间用完了,接着处理器就会又来执行被挂起的这个线程。那么现在有一个问题就是,当前处理器如何能够知道,对于这个被挂起的线程,它上一次执行到了哪里?原创 2024-09-04 21:38:16 · 1096 阅读 · 0 评论 -
ReentrantLock可重入锁又是怎么回事?
有关Synchronized锁的知识可以参考我上篇写的内容。原创 2024-08-27 14:37:02 · 1290 阅读 · 0 评论 -
Java中的Synchronized,你了解多少?
可重入性是锁的一个基本要求,是为了解决自己锁死自己的情况。比如一个类中的同步方法调用另一个同步方法,假如Synchronized 不支持重入,进入method2方法时当前线程获得锁,method2方法里面执行method1 时当前线程又要去尝试获取锁,这时如果不支持重入,"它就要等释放,把自己阻塞,导致自己锁死自己。原创 2024-08-27 14:20:21 · 1019 阅读 · 0 评论 -
网络协议与Netty
说到RPC就必须要聊一聊单体项目和分布式/微服务项目发生在上的,也就是说调用发生在本机内部,因此也被叫作本地方法调用。和运行在,它们之间的调用相比于本地方法调用,可称之为远程方法调用,简称 RPC。RPC(Remote Procedure Call ——远程过程调用),它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络的技术。2011年开源,一个经典的RPC框架(基于TCP的)。还有springcloud中的Feign也是一个RPC的框架,不过它是基于http的。原创 2024-08-21 09:00:00 · 781 阅读 · 0 评论 -
网络协议与IO模型
传统的同步阻塞模型开发中,ServerSocket负责绑定IP地址,启动监听端口;Socket负责发起连接操作。连接成功后,双方通过输入和输出流进行同步阻塞式通信。//客户端启动必备//实例化与服务端通信的输入输出流//服务器的通信地址try{/*连接服务器*//*向服务器输出请求*///接收服务器的输出}finally{if (socket!if (output!if (input!/*服务器必备*//*绑定监听端口*/@Override。原创 2024-08-19 20:30:00 · 1129 阅读 · 0 评论 -
来聊一聊JVM
1.强引用JVM内存管理器从根引用集合(Root Set)出发遍寻堆中所有到达对象的路径。当到达某对象的任意路径都不含有引用对象时,对这个对象的引用就被称为强引用2.软引用软引用是用来描述一些还有用但是非必须的对象。对于软引用关联的对象,在系统将于发生内存溢出异常之前,将会把这些对象列进回收范围中进行二次回收。(当你去处理占用内存较大的对象 并且生命周期比较长的,不是频繁使用的)问题:软引用可能会降低应用的运行效率与性能。原创 2024-08-16 15:06:29 · 1155 阅读 · 0 评论 -
MyBatis系列
接口绑定,就是在MyBatis中任意定义接口,然后把接口里面的方法和SQL语句绑定,我们直接调 用接口方法就可以,这样比起原来了SqlSession提供的方法我们可以有更加灵活的选择和设置。接口绑定有两种实现方式1. 通过注解绑定,就是在接口的方法上面加上 @Select、@Update等注解,里面包含Sql语句来 绑定;2. 通过xml里面写SQL来绑定, 在这种情况下,要指定xml映射文件里面的namespace必须为 接口的全路径名。原创 2024-08-16 14:30:09 · 1628 阅读 · 0 评论 -
Spring boot的最全注解
在springboot实际开发中常用的注解总结原创 2024-08-08 21:20:26 · 875 阅读 · 0 评论 -
缓存常见问题总结
缓存穿透:请求一个不存在的数据,缓存层和数据库层都没有这个数据,这种请求会穿透缓存直接到数据库进行查询。它通常发生在一些恶意用户可能故意发起不存在的请求,试图让系统陷入这种情况,以耗尽数据库连接资源或者造成性能问题。查询一个缓存中不存在的数据将会执行方法查询数据库,数据库也不存在此数据,查询完数据库也没有缓存数据,缓存没有起到作用。原创 2024-08-04 16:48:12 · 1350 阅读 · 0 评论 -
线程池设置原则
为了减少创建和销毁线程的次数,让每个线程都可以多次的使用,可以根据系统情况调整线程的数量,防止消耗过多内存。在实际使用中,服务器在创建和销毁线程上花费的时间和消耗的系统资源都相当大,使用线程池就可以优化。在java中,如果每个请求到达就创建一个新线程,开销是相当大的。在实际使用中,服务器在创建和销毁线程上花费的时间和消耗的系统资源都相当大,甚至可能要比在处理实际的用户请求的时间和资源要多的多。除了创建和销毁线程的开销之外,活动的线程也需要消耗系统资源。原创 2024-07-21 22:03:26 · 1326 阅读 · 0 评论 -
SQL日期函数
1. 提高数据准确性确保在处理日期数据时遵循正确的格式和逻辑,减少因手动处理导致的错误。例如,使用内置的日期验证函数可以防止输入不合法的日期值,如ISDATE()函数。2. 增强查询灵活性能够根据各种日期条件进行精确的筛选和查询。比如,要获取本月的销售数据,可以使用日期函数轻松实现。3. 简化数据处理无需手动编写复杂的逻辑来处理日期的计算、转换和比较。像计算两个日期之间的工作日数量,使用相应的日期函数会简单很多。4. 优化性能。原创 2024-07-15 21:55:14 · 3333 阅读 · 0 评论 -
HashMap源码解析
1. 缓存管理:HashMap可以用于实现缓存功能,将数据存储在HashMap中,以键值对的形式保存。2. 数据索引:HashMap是一种快速查找数据的数据结构,可以根据键快速找到对应的值。可以将元素作为键,出现的次数作为值,通过对值进行排序或查询,获取频率最高的元素。5. 数据存储和检索:HashMap是一种高效的数据结构,可以用于存储和检索大量数据。总之,HashMap可以在需要存储和检索数据的场景中发挥作用,并且由于其高效的存取方式,在大多数情况下,都是一个不错的选择。原创 2024-07-07 15:33:48 · 4548 阅读 · 0 评论 -
Java正则表达式大全(参考)
正则表达式是一种用于描述和匹配字符串模式的工具。它可以用于以下用途:1. 文本搜索和替换:通过正则表达式,可以在文本中搜索和替换特定的字符串模式。例如,可以通过正则表达式轻松地找到或替换所有电子邮件地址、URL 或电话号码。2. 数据验证:正则表达式可以用于验证用户输入的数据是否符合特定的格式要求。例如,可以使用正则表达式验证用户输入的邮政编码、电话号码或电子邮件地址是否正确。3. 数据提取:通过正则表达式,可以从文本中提取特定模式的数据。原创 2024-07-04 21:40:20 · 416 阅读 · 0 评论 -
Pagehelper超级好用的分页插件
PageHelper是一款基于MyBatis的分页插件,它简化了分页查询逻辑的编写,支持多种分页方式和结果集排序、筛选等操作。PageHelper的主要特点和功能包括:1.无侵入性:使用PageHelper进行分页处理时,不需要修改原有的SQL语句、Mapper接口和XML文件,保持了MyBatis的原有使用习惯。2.易用性:通过引入相关依赖和简单的配置,即可实现分页功能,无需编写复杂的分页逻辑代码。3.强大功能:支持多种数据库,能够处理复杂的分页查询功能,如排序、聚合查询、连表查询等。原创 2024-06-28 11:50:46 · 1691 阅读 · 0 评论 -
Linux高级
本文主要介绍了有关linux的相关操作原创 2024-06-11 23:23:57 · 905 阅读 · 0 评论 -
Linux 基础入门
本文主要介绍了有关linux操作系统的安装与基本使用原创 2024-06-10 21:50:58 · 386 阅读 · 0 评论 -
JVM内存模型
主要介绍了JVM的内存模型原创 2024-04-07 22:08:02 · 1680 阅读 · 0 评论
分享