- 博客(38)
- 收藏
- 关注
原创 ShardingSphere
官网:https://shardingsphere.apache.org/index_zh.html文档:https://shardingsphere.apache.org/document/5.1.1/cn/overview/Apache ShardingSphere 由 JDBC、Proxy 和 Sidecar(规划中)这 3 款既能够独立部署,又支持混合部署配合使用的产品组成。指所有的分片数据源中都存在的表,表结构及其数据在每个数据库中均完全一致。
2025-03-30 12:31:33
507
1
原创 本地搭建DeepSeek R1模型 + 前端
配置:操作系统:windows11GPU:英伟达4070 12GB内存:16G DDR5硬盘:1TB。
2025-03-09 22:18:14
649
原创 一款好用的模型大模型服务桌面客户端
Cherry Studio 是一款支持多模型服务的桌面客户端,专为专业用户设计。它内置了超过 300 个大语言模型,并集成多个服务商,用户可以根据需求快速切换不同模型以优化问题解决。此外,Cherry Studio 支持 Windows 和 macOS 平台,并计划未来扩展至移动平台,以提供跨设备的便利。该软件旨在满足不同行业对 GPT 技术的需求,无论是开发者、设计师还是作家,都可以通过 Cherry Studio 提升工作效率。
2025-02-26 11:37:23
526
原创 在IDEA中使用通义灵码插件:全面提升开发效率的智能助手
综上所述,通义灵码作为一款集成了多种先进技术和实用功能于一体的智能编码助手,确实能够显著改善开发者的日常工作体验。无论你是正在寻找提高个人生产力的方法,还是希望为整个团队引入更加高效的协作模式,都不妨试试看这款来自阿里云的代码助手。
2025-01-17 17:49:12
1311
1
原创 Java零拷贝
零拷贝并不是一次都不拷贝,而是通过系统调用,让数据的拷贝仅在内核缓冲区就完成,而不进入用户缓冲区,从而减少数据拷贝次数的一种技术。
2025-01-09 15:55:33
1087
原创 拥抱 java.time,而不是 java.util.Date
随着JDK不断地发布演进,Time模块确实得到了质的提升,这里就不一一细说Java日期时间相关API。如果你还在苦于对Date做各种Utils的花式包装,请拥抱java.time吧。
2025-01-07 16:21:23
590
原创 自定义Springboot日志输出格式
Springboot集成了logback日志框架,我们可以修改文件,自定义我们的日志输出格式以及日志归档方式。如果没有文件,可以在resources目录下创建一个进行编辑。Logger有五个日志级别,分别是、、、、优先级:在打印日志的时候,只会打印当前日志级别高于或者等于当前日志级别的日志信息。例如当前日志级别为INFO,那么只会记录日志级别为INFO、WARN、ERROR的日志信息。效果展示归档的日志文件除了在xml文件中设置日志级别,也可以在配置文件中设置。如果想单独打印sql日志,可以设置指定包下的
2024-11-29 09:55:57
1164
1
原创 BigDecimal的使用
BigDecimal 是 Java 中的一个类,用于进行高精度的浮点数运算。它提供了比 float 和 double 更精确的算术运算,并且可以控制舍入模式。因为在Java浮点数的表示并不是精确的,使用浮点数初始化BigDecimal可能导致结果与预期不一致。哈哈,一执行,发现跟预期的不一样,结果是3…类中的一个枚举类型,用于指定在进行舍入操作时采用的舍入模式。由于除法的结果可能会有小数,所以需要对除法的结果进行精度控制并选取舍入模式。因此,针对开篇的情况,保留两位小数时不希望进行四舍五入,只需要选择。
2024-11-27 15:29:46
548
原创 什么!我上传的文件不见了?
方法中,如果请求类型中包含multipart/,则会将请求内容request中的文件进行处理,把文件内容通过输出流保存到临时文件,并封装到request中的parts属性中。并不持有文件,它只是映射了文件对象,文件暂时存在于Tomcat的临时目录下,在Controller层的方法执行完后,MultipartFile关联的文件就会被清除。在异步处理文件时,先将文件存储到其他地方,比如对象存储或者本地存储,之后的操作都对重新存储后新文件进行。比如在异步线程开始前,通过。对象只是文件的映射,并没有对文件的引用。
2024-10-17 14:57:06
553
1
原创 CommandLineRunner 和 ApplicationRunner
两者都可以在程序启动后执行操作,且都支持获取启动参数并进行处理。使用 ApplicationArguments:通过 ApplicationRunner 和 ApplicationArguments 来处理参数。使用 CommandLineRunner:通过 run(String… args) 方法来处理参数。
2024-09-30 14:36:27
623
1
原创 Java 垃圾回收算法
垃圾是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收的垃圾。如果不及时对内存中的垃圾进行清理,那么,这些垃圾对象所占的内存空间会一直保留到应用程序的结束,被保留的空间无法被其它对象使用,甚至可能导致内存溢出。
2024-09-12 15:18:52
1155
原创 Java中强引用、软引用、弱引用、虚引用
引用类型被回收时间用途生存时间强引用从来不会对象的一般状态JVM停止运行时软引用内存不足时对象缓存内存不足时弱引用jvm垃圾回收时对象缓存gc运行后虚引用未知未知未知引用类型软引用和弱引用都可以简单实现缓存功能,在实现缓存功能的基础上又能保证缓存对象可以被及时回收。
2024-09-09 15:22:56
1461
原创 MarsCode代码练习能力初体验
除了左边内置的算法外,还可以手动添加题目自己练习,AI会去理解题目,并提供帮助能力。包括:理解题目、代码提示、代码检查。缺点:没有单元测试,无法检查单元测试是否通过。本质上还是一个编程助手。如果可以生成单元测试测一下更好了。最近MarsCode上线了代码练习能力,对准备算法题的同学来说是一个福音。
2024-08-30 15:44:26
710
原创 kubernets Lens客户端下载安装
=:其中server为连接地址与端口,如果用到跳板机,则改为配置的本地隧道ip和端口,Lens会用到这个配置文件连接k8s集群。在k8s master节点执行命令查看配置文件。点击进去就可以进入管理界面进行操作了。完成后,这里会出现添加后的集群。将配置文件粘贴到打开的页面中。打开Lens客户端,点击。
2024-08-06 09:40:27
1012
原创 Feign调用第三方接口并实现负载均衡
*** @Description: 调用平台接口*//*** 平台接口预览 方法名可以随便取*/这里配置了熔断降级,如果有需要,可以在这里实现不可用地址的剔除策略。比如某个地址多次调用不成功,便可以把这个地址从配置类中删除,避免再次路由到这个地址上。值得注意的是:如果加上地址剔除策略,那么在某些地方可能就需要考虑一下并发问题。/***/@Slf4j@Component@Override// 设置调用失败时的降级处理log.error("远程调用失败!");
2024-07-28 15:21:13
1174
原创 SpringBoot使用本地缓存——Caffeine
Caffeine是一个高性能的Java本地缓存库,设计用于提供快速响应时间和高并发处理能力。它具有类似于Guava缓存的简单易用的API,同时也提供了许多额外的功能和性能优化。Caffeine支持缓存大小限制、缓存过期策略、异步加载数据等特性,可以帮助开发人员在应用程序中有效地管理和优化缓存。Caffeine还提供了可自定义的缓存策略和监听器,以帮助开发人员根据实际需求定制缓存行为。
2024-07-16 17:55:05
2711
原创 SSE(Server-Send-Event)服务端推送数据技术
服务端与客户端建立Socket连接进行数据传输,Socket的传输方式是全双工的。WebSocket是基于 TCP 的长连接,和HTTP 协议相比,它能实现轻量级的、低延迟的数据传输,非常适合实时通信场景,主要用于交互性强的双向通信。客户端通过频繁请求向服务端请求数据,达到类似实时更新的效果。轮询的优点是实现简单,但是会给服务端和网络带来额外的压力,且延迟较高。实现效果如下:服务端不断推送数据到前端,前端可以也可以调用接口主动关闭连接。适用场景:SSE由于是服务端单向通讯,所以适合那种需要单向持久的连接。
2024-07-11 18:45:02
1526
原创 Java后端面试常见问题
1.7:数组 + 链表,元素大于 容量 * 0.75 时进行扩容1.8:数组 + 链表 + 红黑树synchronized 和 ReentrantLock 都是⼀次只允许⼀个线程访问某个资源, Semaphore (信号量)可以指定多个线程同时访问某个资源。@Overridetry {// 获取许可证,如果没有许可证了,线程会阻塞// 模拟访问共享资源的时间// 释放许可证注册中心、Feign、熔断、网关。
2024-05-15 19:04:48
1799
1
原创 CentOS7安装docker
Docker可以运行在Windows、Mac、CentOS、Ubuntu等操作系统上目前,CentOS 仅发行版本中的内核支持 Docker。
2024-05-15 18:57:22
455
原创 Java对象的拷贝与克隆
在日常开发中,我们经常需要给对象进行赋值,通常会调用其 set/get 方法,有些时候,为了简化代码,我们会采用第三方工具类进行属性拷贝。但是面对如此多的拷贝工具和方法,其性能差异如何不得而知,下面我就对几种属性拷贝工具和方法进行性能分析。比如我们经常在代码中会对一个数据结构封装成 DO、SDO、DTO、VO 等,而 这些 Bean 中的大部分属性都是一样的,所以使用属性拷贝类工具可以帮助我们节省 大量的 set 和 get 操作。
2023-11-07 13:28:14
469
原创 Java实现Csv文件导入导出
CSV(Comma-Separated Values,逗号分隔的值)是一种简单、实用的文件格式,用于存储和表示包括文本、数值等各种类型的数据。CSV 文件通常以 作为文件扩展名。这种文件格式的一个显著特点是:文件内的数据以逗号 分隔,呈现一个表格形式。CSV 文件已广泛应用于存储、传输和编辑数据。例如:Java实现csv文件的读写操作1. 导入依赖2. 导出。拿来主义,可以直接创建一个工具类使用,把导入导出方法粘贴进去使用即可。测试:结果:测试:结果:总结:.csv文件导入导出比较简单
2023-10-26 18:30:12
5697
5
原创 Java17新特性
2021年9月14日Java 17发布。Java 17是Java 11以来又一个LTS(长期支持)版本,Java 11 和Java 17之间发生了那些变化可以在OpenJDK官网找到JEP(Java增强建议)的完整列表。
2023-08-29 18:03:05
352
1
原创 Java面试总结
在进行hash运算时,java中用hash & (length-1)来替换hash % length ,因为计算机中的&运算要比%运算快很多,但是两者相等的情况是length是2的n次方。所以,java中使用 hash & (length-1)来替换hash % length。
2023-08-29 17:56:42
152
1
原创 Java自定义校验注解
JSR303 是一套JavaBean参数校验的标准,它定义了很多常用的校验注解,我们可以直接将这些注解加在我们JavaBean的属性上面(面向注解编程的时代),就可以在需要校验的时候进行校验了,在SpringBoot中已经包含在starter-web中,再其他项目中可以引用依赖,并自行调整版本--springboot 新版本需要validation启动器-->当框架提供的注解无法满足我们的需求时,我们就可以自定义注解进行校验。
2023-08-29 17:55:50
1374
1
原创 Arthas入门篇
Arthas 是一款线上监控诊断产品,通过全局视角实时查看应用 load、内存、gc、线程的状态信息,并能在不修改应用代码的情况下,对业务问题进行诊断,包括查看方法调用的出入参、异常,监测方法执行耗时,类加载信息等,大大提升线上问题排查效率。
2023-08-29 17:54:47
431
1
原创 重载和重写的区别
2. 子类重写的方法的返回值类型不能大于父类被重写的方法的返回值类型 (返回类型为类)。 在子类中根据需要对从父类中继承来的方法进行改造,也称 为方法的重置、覆盖。(参数个数或参数类型)。 在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数 类型不同即可。1. 子类重写的方法必须和父类被重写的方法具有相同的方法名称、参数列表。5. 子类方法抛出的异常不能大于父类被重写方法的异常 (父类异常的子类)。3. 子类重写的方法使用的访问权限不能小于父类被重写的方法的访问权限。...
2022-08-28 15:19:19
446
原创 HashMap的实现原理
在jdk1.7之前HashMap是基于数组和链表实现的,而且采用头插法。而jdk1.8 之后在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为 8)(将链表转换成红黑树前会判断,如果当前数组的长度小于 64,那么会选择先进行数组扩容,而不是转换为红黑树)时,将链表转化为红黑树,以减少搜索时间。采用尾插法。当从红黑树删除结点时也需要判断,如果删除后结点数小于6,则将红黑树转为单链表。为什么是6不是8:如果是8,在删除后又进行添加,就会造成红黑树与单链表之间的重复转化,设置为6起到缓冲的作用。.....
2022-08-28 15:14:40
377
原创 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
5634
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
22504
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
980
原创 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
677
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人