自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 SpringBoot使用本地缓存——Caffeine

Caffeine是一个高性能的Java本地缓存库,设计用于提供快速响应时间和高并发处理能力。它具有类似于Guava缓存的简单易用的API,同时也提供了许多额外的功能和性能优化。Caffeine支持缓存大小限制、缓存过期策略、异步加载数据等特性,可以帮助开发人员在应用程序中有效地管理和优化缓存。Caffeine还提供了可自定义的缓存策略和监听器,以帮助开发人员根据实际需求定制缓存行为。

2024-07-16 17:55:05 861

原创 SSE(Server-Send-Event)服务端推送数据技术

服务端与客户端建立Socket连接进行数据传输,Socket的传输方式是全双工的。WebSocket是基于 TCP 的长连接,和HTTP 协议相比,它能实现轻量级的、低延迟的数据传输,非常适合实时通信场景,主要用于交互性强的双向通信。客户端通过频繁请求向服务端请求数据,达到类似实时更新的效果。轮询的优点是实现简单,但是会给服务端和网络带来额外的压力,且延迟较高。实现效果如下:服务端不断推送数据到前端,前端可以也可以调用接口主动关闭连接。适用场景:SSE由于是服务端单向通讯,所以适合那种需要单向持久的连接。

2024-07-11 18:45:02 992

原创 Java后端面试常见问题

1.7:数组 + 链表,元素大于 容量 * 0.75 时进行扩容1.8:数组 + 链表 + 红黑树synchronized 和 ReentrantLock 都是⼀次只允许⼀个线程访问某个资源, Semaphore (信号量)可以指定多个线程同时访问某个资源。@Overridetry {// 获取许可证,如果没有许可证了,线程会阻塞// 模拟访问共享资源的时间// 释放许可证注册中心、Feign、熔断、网关。

2024-05-15 19:04:48 1142 1

原创 CentOS7安装docker

Docker可以运行在Windows、Mac、CentOS、Ubuntu等操作系统上目前,CentOS 仅发行版本中的内核支持 Docker。

2024-05-15 18:57:22 300

原创 Typora + PicGo + GitHub搭建图床

Typora + PicGo + GitHub搭建图床

2024-01-21 15:24:36 595 1

原创 Java对象的拷贝与克隆

在日常开发中,我们经常需要给对象进行赋值,通常会调用其 set/get 方法,有些时候,为了简化代码,我们会采用第三方工具类进行属性拷贝。但是面对如此多的拷贝工具和方法,其性能差异如何不得而知,下面我就对几种属性拷贝工具和方法进行性能分析。比如我们经常在代码中会对一个数据结构封装成 DO、SDO、DTO、VO 等,而 这些 Bean 中的大部分属性都是一样的,所以使用属性拷贝类工具可以帮助我们节省 大量的 set 和 get 操作。

2023-11-07 13:28:14 229

原创 Java实现Csv文件导入导出

CSV(Comma-Separated Values,逗号分隔的值)是一种简单、实用的文件格式,用于存储和表示包括文本、数值等各种类型的数据。CSV 文件通常以 作为文件扩展名。这种文件格式的一个显著特点是:文件内的数据以逗号 分隔,呈现一个表格形式。CSV 文件已广泛应用于存储、传输和编辑数据。例如:Java实现csv文件的读写操作1. 导入依赖2. 导出。拿来主义,可以直接创建一个工具类使用,把导入导出方法粘贴进去使用即可。测试:结果:测试:结果:总结:.csv文件导入导出比较简单

2023-10-26 18:30:12 3695 2

原创 一些优化总结

在类的每个对象实例中,每个成员变量都有一份副本,而成员静态常量只有一份实例。

2023-09-07 16:48:12 102

原创 Java17新特性

2021年9月14日Java 17发布。Java 17是Java 11以来又一个LTS(长期支持)版本,Java 11 和Java 17之间发生了那些变化可以在OpenJDK官网找到JEP(Java增强建议)的完整列表。

2023-08-29 18:03:05 206 1

原创 操作系统之进程管理

概念:进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。

2023-08-29 18:01:37 72 1

原创 Java面试总结

​ 在进行hash运算时,java中用hash & (length-1)来替换hash % length ,因为计算机中的&运算要比%运算快很多,但是两者相等的情况是length是2的n次方。所以,java中使用 hash & (length-1)来替换hash % length。

2023-08-29 17:56:42 74 1

原创 Java自定义校验注解

​ JSR303 是一套JavaBean参数校验的标准,它定义了很多常用的校验注解,我们可以直接将这些注解加在我们JavaBean的属性上面(面向注解编程的时代),就可以在需要校验的时候进行校验了,在SpringBoot中已经包含在starter-web中,再其他项目中可以引用依赖,并自行调整版本--springboot 新版本需要validation启动器-->当框架提供的注解无法满足我们的需求时,我们就可以自定义注解进行校验。

2023-08-29 17:55:50 649 1

原创 Arthas入门篇

Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。

2023-08-29 17:54:47 164 1

原创 一文搞懂mysql

数据定义语言。

2023-04-06 21:29:48 306

原创 docker搭建halo博客系统

halo+docker+mysql+nginx安装博客halo系统

2023-04-06 21:13:54 564

原创 重载和重写的区别

2. 子类重写的方法的返回值类型不能大于父类被重写的方法的返回值类型 (返回类型为类)。​ 在子类中根据需要对从父类中继承来的方法进行改造,也称 为方法的重置、覆盖。(参数个数或参数类型)。​ 在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数 类型不同即可。1. 子类重写的方法必须和父类被重写的方法具有相同的方法名称、参数列表。5. 子类方法抛出的异常不能大于父类被重写方法的异常 (父类异常的子类)。3. 子类重写的方法使用的访问权限不能小于父类被重写的方法的访问权限。...

2022-08-28 15:19:19 398

原创 HashMap的实现原理

在jdk1.7之前HashMap是基于数组和链表实现的,而且采用头插法。而jdk1.8 之后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)(将链表转换成红黑树前会判断,如果当前数组的长度小于 64,那么会选择先进行数组扩容,而不是转换为红黑树)时,将链表转化为红黑树,以减少搜索时间。采用尾插法。当从红黑树删除结点时也需要判断,如果删除后结点数小于6,则将红黑树转为单链表。为什么是6不是8:如果是8,在删除后又进行添加,就会造成红黑树与单链表之间的重复转化,设置为6起到缓冲的作用。.....

2022-08-28 15:14:40 332

原创 redis持久化机制

redis持久化机制

2022-08-28 15:10:51 165

原创 java连接数据库实现图书管理器

java连接数据库请转另一篇博客https://blog.csdn.net/pig_boss/article/details/1097315671.主界面类(Main_InterFace.java):package Student_SQLserver;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public cla

2020-11-17 16:56:00 5467 7

原创 java使用jdbc连接SQLserver等数据库

本文将讲解如何通过java连接数据库,首先要介绍一下java连接数据库使用到的工具JDBC(Java Data Base Connectivity,Java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。 JDBC并不能直接访问数据库,需要借助于数据库厂商提供的JDBC驱动程序。 我这里有三个版本,也可以从微软官方下载。如果不翻墙

2020-11-17 16:53:24 22134 17

原创 java遍历ArrayList的三种方法

1.使用普通for循环 public static void function(){ ArrayList<String> name= new ArrayList<>(); name.add("zhangsan"); name.add("lisi"); name.add("wangwu"); name.add("zhaoliu"); //使用size()方法获取到集合的长度

2020-11-14 21:15:34 932

原创 java命名规范,命名格式

一、命名规范1、 项目名全部小写2、 包名全部小写3、 类名首字母大写,如果类名由多个单词组成,每个单词的首字母都要大写。如:public class MyFirstClass{}4、 变量名、方法名首字母小写,如果名称由多个单词组成,每个单词的首字母都要大写。如:int index=0;public void toString(){}5、 常量名全部大写如:public static final String GAME_COLOR=”RED”;6、所有命名规则必须遵循以下规则:1)、

2020-11-14 10:09:05 603

空空如也

空空如也

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

TA关注的人

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