- 博客(40)
- 收藏
- 关注
原创 并发编程篇
自旋锁是基于CAS实现的。CAS没有自旋或者重试的效果,但是自旋锁是基于类似do-while的形式,不断尝试,直到成功为止。CAS本质就是Unsafe类中的一个方法,他只会尝试一次,成功返回true,失败返回false。CAS并不是在Java端实现的一个功能,而是在C++里面做的。最终CAS会被翻译成一个指令。Atomic::cmpxchg,而这个指令是CPU原语,CPU认识这个指令。
2024-07-26 23:52:54
516
原创 SpringCache缓存
缓存有诸多的好处,于是大家就摩拳擦掌准备给自己的应用加上缓存的功能。但是网上一搜却发现缓存的框架太多了,各有各的优势,比如==Redis[中央缓存-远程缓存]==、Memcached、Guava、Caffeine[本地缓存]等等。如果我们的程序想要使用缓存,就要与这些框架耦合。聪明的架构师已经在利用接口来降低耦合了,利用面向对象的抽象和多态的特性,做到业务代码与具体的框架分离。但我们仍然需要显式地在代码中去调用与缓存有关的接口和方法,在合适的时候插入数据到缓存里,在合适的时候从缓存中读取数据。想一想。
2024-07-25 15:36:01
508
原创 线程池设置原则
为了减少创建和销毁线程的次数,让每个线程都可以多次的使用,可以根据系统情况调整线程的数量,防止消耗过多内存。在实际使用中,服务器在创建和销毁线程上花费的时间和消耗的系统资源都相当大,使用线程池就可以优化。在java中,如果每个请求到达就创建一个新线程,开销是相当大的。在实际使用中,服务器在创建和销毁线程上花费的时间和消耗的系统资源都相当大,甚至可能要比在处理实际的用户请求的时间和资源要多的多。除了创建和销毁线程的开销之外,活动的线程也需要消耗系统资源。
2024-07-21 22:03:26
806
原创 SpringSecurity专题
Spring Security具有以下几个优点:1. 综合性:Spring Security提供了一套完整的安全解决方案,包括身份验证、授权、会话管理等功能,能够满足大多数应用的安全需求。2. 灵活性:Spring Security提供了丰富的配置选项和扩展点,可以根据具体需求进行定制和扩展。开发人员可以根据自己的业务逻辑和安全需求,自定义认证和授权规则,以及会话管理策略。
2024-07-21 20:03:17
844
原创 SQL日期函数
1. 提高数据准确性确保在处理日期数据时遵循正确的格式和逻辑,减少因手动处理导致的错误。例如,使用内置的日期验证函数可以防止输入不合法的日期值,如ISDATE()函数。2. 增强查询灵活性能够根据各种日期条件进行精确的筛选和查询。比如,要获取本月的销售数据,可以使用日期函数轻松实现。3. 简化数据处理无需手动编写复杂的逻辑来处理日期的计算、转换和比较。像计算两个日期之间的工作日数量,使用相应的日期函数会简单很多。4. 优化性能。
2024-07-15 21:55:14
989
原创 分库分表专题
垂直分表就是在同一数据库内将一张表按照指定字段分成若干表,每张表仅存储其中一部分字段;垂直分表拆解了原有的表结构,拆分的表之间一般是一对一的关系;垂直分库是指按照业务将表进行归类,然后把不同类的表分布到不同的数据库上面,而每个库又可以放在不同的服务器上,它的核心理念是-专库专用;水平分表就是在同一个数据库内,把同一个表的数据按一定规则拆到多个表中,表的结构没有变化;水平分表解决单表数据量大的问题。
2024-07-13 18:39:41
534
原创 HashMap源码解析
1. 缓存管理:HashMap可以用于实现缓存功能,将数据存储在HashMap中,以键值对的形式保存。2. 数据索引:HashMap是一种快速查找数据的数据结构,可以根据键快速找到对应的值。可以将元素作为键,出现的次数作为值,通过对值进行排序或查询,获取频率最高的元素。5. 数据存储和检索:HashMap是一种高效的数据结构,可以用于存储和检索大量数据。总之,HashMap可以在需要存储和检索数据的场景中发挥作用,并且由于其高效的存取方式,在大多数情况下,都是一个不错的选择。
2024-07-07 15:33:48
4100
原创 Java正则表达式大全(参考)
正则表达式是一种用于描述和匹配字符串模式的工具。它可以用于以下用途:1. 文本搜索和替换:通过正则表达式,可以在文本中搜索和替换特定的字符串模式。例如,可以通过正则表达式轻松地找到或替换所有电子邮件地址、URL 或电话号码。2. 数据验证:正则表达式可以用于验证用户输入的数据是否符合特定的格式要求。例如,可以使用正则表达式验证用户输入的邮政编码、电话号码或电子邮件地址是否正确。3. 数据提取:通过正则表达式,可以从文本中提取特定模式的数据。
2024-07-04 21:40:20
322
原创 朋友问我Java中“::”是什么意思?我汗流浃背了......
在Java中,双冒号(::)可以用作方法引用和构造函数引用的符号。它的好处包括:1. 简化代码:使用双冒号可以将一些重复的代码进行简化。通过引用已存在的方法或构造函数,可以避免重复编写相同的代码逻辑。2. 代码可读性更高:通过使用双冒号,可以更清晰地表示代码的意图。它能够更直观地表达方法引用或构造函数引用的含义,使代码更易于理解和维护。3. 提高代码的可复用性:通过方法引用或构造函数引用,可以将方法或构造函数作为参数传递给其他方法,使代码更加灵活和可复用。
2024-06-30 20:48:26
424
原创 让你在你的朋友面前炫酷的小程序
该程序是基于GUI界面和网络编程通过IO流实现图片发送的程序,在程序中定义了3个类,分别为客户端发送图片类,服务端接收图片类和一个发送图片工具类。
2024-06-29 23:33:21
173
原创 Pagehelper超级好用的分页插件
PageHelper是一款基于MyBatis的分页插件,它简化了分页查询逻辑的编写,支持多种分页方式和结果集排序、筛选等操作。PageHelper的主要特点和功能包括:1.无侵入性:使用PageHelper进行分页处理时,不需要修改原有的SQL语句、Mapper接口和XML文件,保持了MyBatis的原有使用习惯。2.易用性:通过引入相关依赖和简单的配置,即可实现分页功能,无需编写复杂的分页逻辑代码。3.强大功能:支持多种数据库,能够处理复杂的分页查询功能,如排序、聚合查询、连表查询等。
2024-06-28 11:50:46
986
原创 C3P0数据库连接池
C3P0 是一个开源的JDBC连接池,目前spring 和 hibernate框架对C3P0是支持的。使用c3p0数据库连接池之前,首先需要在资料中找到如下的jar包,加载到项目1.无参构造,使用默认配置2.有参构造,使用命名配置无参构造使用默认配置(使用xml中default-config标签中对应的参数)有参构造使用命名配置(configName:xml中配置的名称,使用xml中named-config标签中对应的参数)从连接池中取出一个连接C3P0配置文件名称必须为。
2024-06-26 21:59:00
919
原创 Java小实验————斗地主
早期使用的JavaSE用到的技术栈有:Map集合,数组,set集合,只是简单实现了斗地主的模拟阶段,感兴趣的小伙伴可以调试增加功能。
2024-06-22 21:58:39
198
原创 实体对象说明
在项目开发中,我们经常可以听见什么pojo,domain,utils什么之类的名词,那么这些名词代表什么意思呢,今天我们就来谈一谈。
2024-06-21 18:22:27
297
原创 RabbitMQ 入门
MQ,中文是消息队列(MessageQueue),字面来看就是存放消息的队列。也就是事件驱动架构中的Broker。比较常见的MQ实现:ActiveMQRabbitMQRocketMQKafka追求可用性(当需要处理数据时,资源处于可用状态的程度):Kafka、 RocketMQ 、RabbitMQ追求可靠性:RabbitMQ、RocketMQ追求吞吐能力(十万级别的):RocketMQ、Kafka追求消息低延迟:RabbitMQ、Kafka。
2024-06-18 23:52:06
695
原创 Java操作redis
Redis 的 Java 客户端很多,官方推荐的有三种:1.Jedis2.Lettuce3.Redisson同时,Spring 对 Redis 客户端进行了整合,提供了 Spring Data Redis,在Spring Boot项目中还提供了对应的Starter,即 spring-boot-starter-data-redis。
2024-06-15 17:29:58
1315
原创 Maven的基本安装与使用
Maven 翻译为"专家"、"内行",是 Apache 下的一个纯 Java 开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。Maven 是一个项目管理工具,可以对 Java 项目进行构建、依赖管理。简单来说,Maven是一个框架,可以简化程序员的开发本文须知:安装maven环境之前要先安装java jdk环境(没有安装java环境的可以先去看安装JAVA环境的教程)Maven 3.3+ require JDK 1.7 及以上。
2024-03-12 16:22:47
1447
操作linux的客户端(finalshell)安装包
2024-06-10
junit单元测试工具
2024-06-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人