自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 手撕十大排序算法

主要介绍了十大排序算法:冒泡,选择,插入,希尔,计数,基数,桶,归并,堆,快速排序等算法

2024-07-22 21:12:13 948

原创 线程池设置原则

为了减少创建和销毁线程的次数,让每个线程都可以多次的使用,可以根据系统情况调整线程的数量,防止消耗过多内存。在实际使用中,服务器在创建和销毁线程上花费的时间和消耗的系统资源都相当大,使用线程池就可以优化。在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

原创 Java----计算器基本实现

本程序是基于GUI编程实现的计算器程序。

2024-06-27 17:35:39 127

原创 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

原创 Redis

有关Redis的基础知识

2024-06-13 22:05:06 636

原创 Linux部署项目

有关在linux部署项目的介绍

2024-06-12 22:31:25 540

原创 Linux高级

本文主要介绍了有关linux的相关操作

2024-06-11 23:23:57 809

原创 Linux 基础入门

本文主要介绍了有关linux操作系统的安装与基本使用

2024-06-10 21:50:58 314

原创 IDEA自定义配置注释模板,让你看起来更加专业!!!

有关idea中的自动配置注释

2024-06-02 23:26:15 429 1

原创 LeetCode 题解——Java

有关算法的3道例题

2024-05-18 21:36:28 309

原创 SpringMVC(2)

主要介绍了ssm的整合和注意事项

2024-05-16 22:27:10 1285

原创 SpringMVC基础

介绍了有关SpringMVC的基础内容

2024-05-15 16:43:01 1396

原创 Spring-AOP

讲解有关Spring-AOP的有关知识

2024-05-09 20:13:25 1050 1

原创 Spring整合Mybatis

spring整合mybatis步骤详解

2024-05-06 19:03:26 548

原创 Spring管理第三方依赖

主要介绍了有关Spring的纯注解方式去实现第三方依赖管理

2024-04-29 23:23:02 441

原创 Spring

主要介绍了有关spring的相关知识

2024-04-25 18:23:18 1066 1

原创 GIt详解

本文主要介绍了有关git相关知识

2024-04-15 22:46:18 914 1

原创 fastjson

有关fastjson的使用

2024-04-14 15:06:13 371 1

原创 Filter

本文主要介绍了关于JavaWeb三大组件之一的过滤器Filter

2024-04-13 16:28:02 1023 1

原创 Servlet

主要介绍了关于Servlet的一些知识

2024-04-09 22:12:59 692

原创 JVM内存模型

主要介绍了JVM的内存模型

2024-04-07 22:08:02 1369

原创 字符串相关知识与练习

本文是主要对字符串常用API类进行练习

2024-04-02 22:57:23 572 1

原创 创建线程的几种方式

本文主要介绍了创建线程的几种方法。

2024-03-29 17:07:16 780 1

原创 LeetCode(一)Java

本文是讲解leetcode刷题的第一道题目:求两个数的和

2024-03-27 22:46:52 416

原创 异常类知识详解

本文主要对Java异常的基础知识解释和分析,并通过实例来对异常有深刻的理解

2024-03-25 17:41:30 1187

原创 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)安装包

有关虚拟机镜像的资料,因为文件过大,可以私聊我 首先FinalShell是一款免费的国产的集SSH工具、服务器管理、远程桌面加速的良心软件,同时支持Windows,macOS,Linux,它不单单是一个SSH工具,完整的说法应该叫一体化的的服务器,网络管理软件,在很大程度上可以免费替代XShell,是国产中不多见的良心产品,具有免费海外服务器远程桌面加速,ssh加速,双边tcp加速,内网穿透等特色功能。 其次为用户提供了多种连接协议,包括SSH、Telnet、SFTP和RDP等,使用户能够远程连接和管理不同类型的服务器和计算机。这就使FinalShell具有以下特点和功能: 多种连接协议支持 FinalShell支持SSH、Telnet、SFTP和RDP等多种连接协议,方便用户根据需求选择适合的连接方式。 跨平台支持 FinalShell可在Windows和Linux等多个操作系统上运行,使用户能够在不同平台上进行远程连接和管理。

2024-06-10

junit单元测试工具

将该文件压缩后,导入要使用到的项目中,可以使用相应的junit单元测试. JUnit是Java语言的一个单元测试框架。它由Kent Beck和Erich Gamma创建,于2000年首次发布。JUnit提供了一些注解(如@Test),用于标识在测试中的方法,并且提供了运行和管理这些测试的方式 单元”可以是一个函数、方法、类、功能模块或者子系统。 单元测试的核心在于行、分支覆盖率,不关注业务正确性 常用的注解测试: @Before 被注解的方法将在当前测试类中的每个@Test 方法前执行; @After 被注解的方法将在当前测试类中的每个@Test 方法后执行; @Test(expected=XX.class) 这个参数表示我们期望会出现什么异常,比如说在除法中,我们 1/0 会出现 ArithmeticException 异常,那这里@Test(expected=ArithmeticException.class)。在测试这个除法时候依然能够通过。

2024-06-04

axios:前后端交互的实现方式

将该压缩包压缩后导入前端的js文件中,可以实现前后端异步交互的操作

2024-06-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除