
java
文章平均质量分 63
咏&志
一个热爱技术的技术小白
展开
-
阅读Nacos源码:1.2 服务管理ServiceManger
建议阅读:阅读Nacos源码:1.1 微服务注册发现下线过程过程中到缺少不了一个关键函数:ServiceManger服务注册创建一个空的服务将服务初始化这几步操作,就是线程安全的将服务放入serviceMap然后引出一个重要的组件ConsistencyService...原创 2022-06-23 14:31:42 · 236 阅读 · 0 评论 -
阅读Nacos源码:1.1 微服务注册发现下线过程
Nacos源码阅读原创 2022-06-23 10:47:21 · 486 阅读 · 0 评论 -
Java线程池的原理
前言为什么要用线程池在一个进程中,线程是一种非常稀缺的资源。频繁地创建或销毁线程也是一个消耗资源的过程,所以用线程池,可以减少以上的过程。优势:线程复用,减少创建和销毁,提高性能响应快可以统一管理和监控什么时候用任务量大和需要异步每个任务处理时间较短原理参数线程池七大参数:corePoolSize(核心池大小)maximumPoolSize(最大线程池大小)keepAliveTime(存活时间)unit(时间单位)workQueue(工作队列)threadFac原创 2022-02-01 11:03:56 · 579 阅读 · 0 评论 -
SpringBoot整合Redis环境并自己实现注解缓存
引入环境<!--redis--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version>1.4.7.RELEASE</version></dependency>配置环境这里是在Redis单机原创 2021-07-22 13:31:06 · 219 阅读 · 0 评论 -
SpringBoot搭建MQTT环境
引入MQTT环境<!--mqtt--><dependency> <groupId>org.eclipse.paho</groupId> <artifactId>org.eclipse.paho.client.mqttv3</artifactId> <version>1.2.0</version></dependency>Service层先定义一个基本方法接口pub原创 2021-07-20 16:23:15 · 1441 阅读 · 0 评论 -
设计模式——单例模式
为什么用单例模式减少重复创建多余的对象,浪费资源。有些对象是可以多次重复使用的。应用场景在常用的应用场景有线程池或是数据库连接池等。实现类型饿汉式实现代码实现/** * 饿汉式实现单例 */public class SingletonHungry { private static SingletonHungry instance = new SingletonHungry(); public static SingletonHungry getInstance(){原创 2021-07-19 09:18:05 · 163 阅读 · 2 评论 -
Nacos源码阅读搭建(idea)
克隆源码在github上搜索nancos,克隆代码,详细不再赘述。搭建maven环境百度搜索,也不再赘述。下载源码mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U程序入口在console模块下└─src ├─main │ ├─java │ │ └─com │ │ └─alibaba │ │ └─nacos │ │原创 2021-06-13 19:24:08 · 734 阅读 · 2 评论 -
快速搭建Spring源码阅读环境(idea)
快速搭建Spring源码阅读环境安装gradle环境前提有gradle环境参考安装博客克隆Spring源码GitHub的Spring项目从GitHub上面克隆或许太慢了,可以使用码云进行拉取后,再进行克隆安装构建gradle项目项目目录向下执行gradlew.bat配置镜像源找到项目目录的build.gradle为了可以快速下载相关的包,最好加上国内的镜像源repositories { mavenCentral() maven { url "https://maven.ali原创 2021-05-06 12:29:34 · 253 阅读 · 0 评论 -
ConcurrentHashMap原理浅谈
ConcurrentHashMap原理浅谈以下全部代码都来自jdk1.8源码ConcurrentHashMap.java,并在其方法和原理都会与HashMap进行对比HashMap原理浅谈源码阅读一ConcurrentHashMap其中部分源码private static final int MAXIMUM_CAPACITY = 1 << 30;private static final int DEFAULT_CAPACITY = 16;static final int MAX_A原创 2021-05-03 19:04:02 · 161 阅读 · 0 评论 -
Java的三大特性
Java的三大特性原创 2021-03-29 10:05:55 · 66 阅读 · 0 评论 -
对CAS机制的一些理解
什么是CAS多线程实践public class test { private static int x; public static void main(String[] args) throws InterruptedException { Thread task1 = new Thread(){ @Override public void run() { super.run();原创 2021-03-17 19:03:59 · 189 阅读 · 0 评论 -
枚举的理解及用法
枚举的理解及用法在jdk5之后,增添了关键字enum,enum可以将一组具名的值的有限集合创建为一种新的类型,而这些具名的值可以作为常规的程序组件使用。为什么要使用enum?个人理解是:程序中有时需要封装一些固定的值,更是为了程序安全考虑,如每个星期一定是有7天,每天都可以添加对应的信息。源码首先来看看它的源码是怎么样的public abstract class Enum<E extends Enum<E>> implements Comparable&l原创 2021-03-15 00:49:12 · 149 阅读 · 1 评论 -
HashMap原理浅谈
HashMap原理浅谈以下全部代码都来自源码HashMap.java源码阅读一HashMap其中部分源码// 默认初始化数组大小static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16// 最大容量static final int MAXIMUM_CAPACITY = 1 << 30;// 默认负载因子static final float DEFAULT_LOAD_FACTOR = 0.75f;//原创 2021-03-13 23:42:04 · 179 阅读 · 3 评论 -
ArrayList、Vector和LinkedList区别浅谈
ArrayList、Vector和LinkedList区别浅谈这是一个老生常谈的问题了,现在尝试从阅读源码的方式解释。源码阅读从初始化、数据容器、放入数据和获取数据这几个方面的源码ArrayListprivate static final int DEFAULT_CAPACITY = 10;...transient Object[] elementData;.../** * Constructs an empty list with the specified initial capa原创 2021-03-09 19:26:24 · 139 阅读 · 0 评论 -
String、StringBuilder和StringBuffer的区别浅谈
String、StringBuilder和StringBuffer的区别浅谈继承结构可以看出三者之间共同的接口,实现的方法大部分都一样,只是形式不同。源码接下来看看它们的部分源码Stringpublic final class String implements java.io.Serializable, Comparable<String>, CharSequence { /** The value is used for character storage. *原创 2021-03-04 16:39:52 · 269 阅读 · 4 评论