摘要: ​ 一、什么是Nacos? 一个更易于构建云原生应用的动态服务发现、服务配置和服务管理平台。 Nacos的关键特性: 二、注册中心演变及其设计思想 1、RestTemplate调用远程服务 如果此时,服务端接口接口名或参数或请求方式更改了,那么就得同步修改此restTemplate方法,感觉很麻烦。 阅读全文
posted @ 2024-06-04 16:40 CodeWhisperer001 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 声明为static的方法有以下典型使用场景 工具方法(Utility Methods):当你有一个方法不需访问对象状态,即不需要访问类的非静态成员变量,那么这个方法可以声明为static。这样,你无需创建类的实例就可以通过类名直接调用该方法。很多工具类如Math, Arrays, Collectio 阅读全文
posted @ 2024-06-04 16:15 CodeWhisperer001 阅读(9) 评论(0) 推荐(0) 编辑
摘要: Java集合框架是一个设计精良、功能强大的工具集,用于存储和操作对象集合。它大致分为以下几类,并且各类之间存在一定的层级关系和功能差异: ### 顶级接口(根接口)1. **Collection**: 是最基础的集合接口,所有集合类都直接或间接实现了这个接口。它定义了基本的集合操作,如添加元素(`a 阅读全文
posted @ 2024-05-14 15:13 CodeWhisperer001 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 在Java中,`String`、`StringBuffer`、和`StringBuilder`都是用于处理字符串的类,但它们之间存在一些关键差异,主要涉及可变性、线程安全性和性能: 1.String:-不可变性:`String`对象一旦被创建,其内容就不能改变。任何对`String`的操作,比如拼接 阅读全文
posted @ 2024-05-13 15:15 CodeWhisperer001 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 在Java中,`hashCode()`和`equals()`方法之间存在紧密的关系,主要体现在它们共同作用于对象的比较和存储上,尤其是在集合(如HashSet、HashMap)和哈希表的实现中。理解这两者的关系对于写出高效、正确的Java代码至关重要。 hashCode() 目的:`hashCode 阅读全文
posted @ 2024-05-13 14:21 CodeWhisperer001 阅读(10) 评论(0) 推荐(0) 编辑
摘要: Tomcat 使用自定义类加载器主要是基于以下几个关键原因: 1.应用隔离:Tomcat作为一个Web容器,能够同时部署和运行多个Web应用程序。每个应用可能依赖不同的库版本或者包含同名类,为了确保每个应用的类库相互独立,避免类冲突,Tomcat 为每个Web应用提供了一个独立的类加载器实例,即`W 阅读全文
posted @ 2024-05-13 10:59 CodeWhisperer001 阅读(84) 评论(0) 推荐(0) 编辑
摘要: `synchronized`关键字的锁升级过程是Java为了提高锁的性能,减少在无竞争或多线程轻度竞争情况下的开销而设计的一套机制。这一过程主要涉及以下四个阶段: 1. 无锁状态:当一个对象刚创建时,并没有锁与其关联,处于无锁状态。 2. 偏向锁(Biased Locking):-初始化:当第一个线 阅读全文
posted @ 2024-05-11 17:24 CodeWhisperer001 阅读(11) 评论(0) 推荐(0) 编辑
摘要: ReentrantLock在Java中是通过AbstractQueuedSynchronizer(AQS)框架实现的,它提供了公平锁(FairSync)和非公平锁(NonfairSync)两种模式。这两种锁的实现主要区别在于获取锁的策略。 import java.util.concurrent.lo 阅读全文
posted @ 2024-05-11 16:09 CodeWhisperer001 阅读(10) 评论(0) 推荐(0) 编辑
摘要: `synchronized` 和 `ReentrantLock` 是 Java 中用于实现线程同步的两种机制,它们之间存在多方面的不同,主要体现在以下几点: 1. 用法上的差异: - `synchronized` 是 Java 的关键字,可以直接用于方法或代码块。对于方法,可以同步整个方法;对于代码 阅读全文
posted @ 2024-05-11 10:32 CodeWhisperer001 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 不建议使用`Executors`类的静态方法(如`newFixedThreadPool`, `newSingleThreadExecutor`, `newCachedThreadPool`等)来创建线程池,主要基于以下几个原因: 1. 隐藏关键配置参数:`Executors`提供的便捷方法通常会隐藏 阅读全文
posted @ 2024-05-07 14:38 CodeWhisperer001 阅读(71) 评论(0) 推荐(0) 编辑