- 博客(202)
- 资源 (1)
- 收藏
- 关注

原创 Java 后端面试指南
该篇文章是博主对Java的学习进行的系统性的归纳总结,汇总了Java基础、多线程、JVM、MySQL、Redis、docker、实战经验、常用开发框架等常见的一些问题和解决方案,
2024-02-21 18:18:20
1433

原创 SOA与微服务
SOA与微服务文章目录SOA与微服务中心化实现去中心化实现微服务架构微服务的特征SOA架构和微服务架构的差别SOA 全称(Service Oriented Architecture),中文意思为“面向服务的架构”。他是一种设计方法,其中包含多个服务,服务之间通过相互依赖最终提供一系列的功能。一个服务通常以独立的形式存在与操作系统进程中。各个服务之间通过网络调用。SOA就是一个包含多个服务,服务之间通过配合对外提供一系列功能的架构。每个服务独立部署,服务之前通过网络调用。那么SOA的落地实现有哪些
2022-01-21 10:52:09
4054
原创 信创一定要了解的知识
定义信创,全称为信息技术应用创新产业,旨在发展国产信息产业,减少对国外技术的依赖,实现软硬件的国产替代化。信创产业是数字经济的关键支撑,涵盖从基础硬件到应用软件的全产业链。产业范畴信创产业主要包括以下板块:基础硬件:包括芯片、服务器、整机、外设设备、存储器等。基础软件:包括云服务、操作系统、中间件、数据库等。应用软件:包括办公软件、财务软件、电子签名软件、客户管理软件、工业软件等。信息安全软件:包括查毒软件、防火墙、入侵检测系统、入侵防御系统、安全备份系统等。信创目标。
2024-10-09 15:18:28
3145
原创 AIGC 与软件开发:是助力还是取代?
在当今的软件开发领域,生成式人工智能(AIGC)的崛起无疑是一场变革性的浪潮。从代码生成到错误检测,再到自动化测试,AI 工具正以前所未有的方式融入开发者的日常工作,成为他们的得力助手。但与此同时,这一趋势也引发了广泛而深刻的讨论:AI 到底是在帮助开发者,还是会最终取代他们?
2024-07-10 11:40:35
469
原创 SpringCloud Ribbon介绍
Ribbon 是 Spring Cloud 技术栈中非常重要的基础框架,它为 Spring Cloud 提供了负载均衡的能力,比如 Fegin 和 OpenFegin 都是基于 Ribbon 实现的,就连 Nacos 中的负载均衡也使用了 Ribbon 框架。
2024-04-26 16:46:35
723
2
原创 为什么阿里规定不能使用Executors去创建线程池?
阿里规定不使用Executors去创建线程池是为了避免默认配置带来的潜在风险,尽可能让开发者根据实际需求来自定义线程池,以确保系统的稳定性和可靠性。
2024-03-27 20:47:54
571
原创 布谷鸟过滤器(Cuckoo Filter)
布谷鸟过滤器的核心思想是使用两个或更多的哈希函数,每个元素在过滤器中有两个位置,这样可以有效地减少误报率。当插入一个新元素时,如果这两个位置都被占用,那么会随机选择其中一个位置替换掉原有的元素。这个过程类似于布谷鸟的巢寄生行为,因此得名“布谷鸟过滤器”。此外,布谷鸟过滤器适用于那些可以接受偶尔误报,但需要频繁更新数据的场景。例如,在网络缓存、数据库查询优化、大数据处理等领域,布谷鸟过滤器都可以发挥其优势。
2024-03-12 12:18:34
797
原创 布隆过滤器
布隆过滤器是一种数据结构,它可以告诉你一个元素是否可能在集合中。请注意,它可能会告诉你一个元素在集合中,即使实际上不在(这就是所谓的误报)。然而,如果它告诉你一个元素不在集合中,那么这个元素肯定不在集合中。这种“宁可错杀一千,不可放过一个”的特性使得布隆过滤器非常适合处理可以接受误报,但无法接受漏报的场景。
2024-03-12 12:14:49
965
原创 Java中的信号量(Semaphore)机制详解
信号量(Semaphore)是一种用于控制多个线程对共享资源的访问的同步工具类。它维护了一个许可集,许可集的大小决定了同时访问共享资源的线程数量。当一个线程需要访问共享资源时,首先需要获取一个许可;当线程访问完共享资源后,需要释放许可。通过这种方式,信号量可以有效地控制对共享资源的访问,避免因资源竞争而导致的问题。
2023-12-05 14:04:04
3477
原创 Java中的并发编程:深入理解CountDownLatch
CountDownLatch是Java中的一个同步工具类,它主要的设计目的是用来解决多线程之间的协调问题。它允许一个或多个线程等待其他线程执行完毕后再执行。具体来说,CountDownLatch内部定义了一个计数器和一个阻塞队列。每当调用countDown()方法时,计数器的值就会减1。当计数器的值递减到0之前,阻塞队列里面的线程会处于挂起状态。只有当所有其他线程都完成各自的任务并调用了countDown()方法后,计数器的值变为0,此时等待的线程才会被唤醒并继续执行。
2023-12-05 10:34:10
709
原创 Java中的内存模型与垃圾回收机制
本文将深入探讨Java中的内存模型和垃圾回收机制,包括内存区域划分、对象创建与销毁、垃圾回收算法以及如何优化垃圾回收性能。通过理解这些概念和技术,我们可以编写出更高效、稳定的Java程序。
2023-12-01 16:02:05
515
原创 Java中的锁与同步机制
本文介绍了Java中的锁与同步机制,包括内置锁、显式锁、synchronized关键字以及并发容器的原理。通过理解这些概念和技术,我们可以更好地编写高性能、线程安全的Java程序。在实际开发中,我们需要根据具体场景选择合适的同步机制,以确保程序的正确性和性能。
2023-12-01 10:47:19
544
原创 Java 双亲委派模型
Java 双亲委派模型是一种 Java 类加载器的工作原理。它的主要目的是确保类加载器之间的层次结构,以便在需要时可以委托给上层类的加载器加载类。这种模型有助于实现类加载器的可扩展性和安全性。总之,Java 双亲委派模型是一种有效的类加载机制,它可以确保类的唯一性、核心库的安全性以及类的隔离和模块化,从而提高了程序的性能和安全性。
2023-11-03 10:55:48
180
原创 Spring Boot集成etcd
etcd是一个分布式键值存储数据库,用于共享配置和服务发现。它是由CoreOS团队开发并开源的,具备以下特点:简单、安全、高性能、一致可靠等。etcd采用Go语言编写,具有出色的跨平台支持,很小的二进制文件和强大的社区。etcd机器之间的通信通过Raft算法处理。
2023-08-24 15:03:38
1627
原创 java文本相似度
在 Java 中,可以使用一些现成的库来比较文本的相似度。这里,我将为您提供一个使用 Jaccard 相似度算法(集合相似度)比较文本相似度的方法。请注意,这个示例仅提供了一个基本的文本相似度比较方法。实际上,有许多其他相似度指标和算法,如余弦相似度、编辑距离等,您可以根据实际需求进行选择。添加到项目的类路径中。您可以从 Maven Central 仓库下载这个 JAR 文件。方法负责将输入字符串分解为单词。您可以根据需要替换为您喜欢的分词器。方法使用 Jaccard 系数计算两个字符串之间的相似度。
2023-08-23 17:04:31
799
原创 java文本相似度【余弦相似度】
为了实现文本相似度对比,我们可以使用余弦相似度算法。首先,我们需要将文本转换为向量,然后计算两个向量之间的余弦相似度。方法是计算余弦相似度的核心方法,它接受两个字符串参数,分别表示要比较的文本。方法计算它们的相似度。最后,我们将结果输出到控制台。方法中,我们定义了两个要比较的文本,并调用。方法用于将文本转换为字符计数的映射。方法用于测试文本相似度计算。这个代码示例首先定义了一个。
2023-08-23 17:01:27
1545
原创 java调用python脚本的示例
请将上述代码保存为一个Java文件(例如JavaCallPythonScript.java),并将"path/to/your/python/script.py"替换为实际的Python脚本路径。然后编译并运行该Java程序,它将调用指定的Python脚本并打印其输出结果。
2023-08-23 16:15:48
219
原创 DDD与微服务的不解之缘
DDD与微服务的不解之缘文章目录DDD与微服务的不解之缘都已经有微服务了,为什么还需要DDD呢?2003年,Eric出版了那本著名的《Domain-driven Design》,这本书花费了它4年的时间。也就是说,Eric从1999年就开始构思编写DDD了,距今已近二十二年。20多年的时间,在其他领域也许不足为道,但在软件和互联网领域已经足够完成一次次的技术跨越。很难想象,一种软件架构思想历经二十多年不仅没有被淘汰,竟然再次青春焕发!说到这,DDD得感谢微服务的出现。近些年来,由于互联网行业的快速发展
2022-01-21 10:50:26
482
原创 充血模型编码实践
失血模型简单来说,就是domain object只有属性的getter/setter方法,没有任何业务逻辑。@Data@ToStringpublic class User { private Long id; private String username; private String password; private Integer status; private Date createdAt; private Date updatedAt;
2022-01-21 10:49:10
1216
1
原创 DDD为什么火了?
DDD为什么火了?第一次听到DDD这个词是在几年前。乍一听感觉像TDD(测试驱动开发(Test-Driven Development),但其实它们完全是两回事。虽然DDD早在2003年就提出了,但一直没有火起来。直到最近两年才慢慢被大家熟知。深究其原因,我觉得有三方面:第一方面,DDD是解决复杂软件问题的,而之前的软件大多没有很复杂的逻辑,不用DDD也能玩得转;第二方面,DDD一直没有很好的落地指导,一直到《实现领域驱动设计》这本书的问世,为DDD的落地打开了大门;第三方面,国内没有团队去研究和
2022-01-21 10:47:42
773
原创 SpringBoot 实现反向代理
背景:在前后端分离的项目中,有一天后端项目因为某些原因不能暴露在公网地址,此时为了修改最少,利用反向代理技术进行实现。1. 引入依赖 <dependency> <groupId>org.mitre.dsmiley.httpproxy</groupId> <artifactId>smiley-http-proxy-servlet</artifactId> <version>1.12</version&.
2022-01-06 09:58:14
4242
3
原创 Docker 查看仓库的登录信息
cat /root/.docker/config.json{ "auths": { "reg.qi123n123123iu.com": { "auth": "d2FuZ3l123pbmh1QHN5c3dpbi5jb201D26c3lzd2luMXEydsaddzNlNHI=" } }, "HttpHeaders": {
2021-09-15 09:55:04
2021
原创 Java获取UserAgent Java获取当前请求的操作系统及版本、浏览器及版本
识别客户使用的操作系统及版本、浏览器及版本、浏览器渲染引擎等本文采用Hutool,Hutool在4.2.1之后支持User-Agent的解析。使用以桌面浏览器为例,假设你已经获取了用户的UA:String uaStr = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1";获取UA信息我们可以借助UserAgentUtil.p.
2021-04-15 09:47:22
2700
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人