摘要: 前言 创建一个新的线程可以通过继承Thread类或者实现Runnable接口来实现,这两种方式创建的线程在运行结束后会被虚拟机销毁,进行垃圾回收,如果线程数量过多,频繁的创建和销毁线程会浪费资源,降低效率。而线程池的引入就很好解决了上述问题,线程池可以更好的创建、维护、管理线程的生命周期,做到复用, 阅读全文
posted @ 2022-05-03 23:56 星光Starsray 阅读(3866) 评论(1) 推荐(0) 编辑
摘要: 前言 ThreadLocal直译为线程局部变量,或许将它命名为ThreadLocalVariable更为合适。其主要作用就是实现线程本地存储功能,通过线程本地资源隔离,解决多线程并发场景下线程安全问题。 ThreadLocal 接下来,通过ThreadLocal的使用案例、应用场景、源码分析来进行深 阅读全文
posted @ 2022-05-03 23:52 星光Starsray 阅读(418) 评论(0) 推荐(0) 编辑
摘要: IvNWJVPMLt 阅读全文
posted @ 2022-04-13 15:51 星光Starsray 阅读(36) 评论(0) 推荐(0) 编辑
摘要: Docker 是一个开源的应用容器引擎,基于 Go 语言 开发。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口,容器性能开销极低。Docker 从 17.03 阅读全文
posted @ 2022-03-28 15:14 星光Starsray 阅读(546) 评论(0) 推荐(0) 编辑
摘要: 原计划在介绍完ZK Client之后就着手ZK Server的介绍,但是发现ZK Server所包含的内容实在太多,并不是简简单单一篇Blog就能搞定的。于是决定从基础搞起比较好。 那么ZK Server最基础的东西是什么呢?我想应该是Paxos了。所以本文会介绍Paxos以及它在ZK Server 阅读全文
posted @ 2022-03-25 16:53 星光Starsray 阅读(56) 评论(0) 推荐(0) 编辑
摘要: 初识String String位于java.lang包中,从JDK1.0时期引入,不需要导包就可以直接使用。一个Java应用程序中使用最多的可能就是String对象了。由于其使用的广泛性,几乎在每一代的JDK优化升级中都存在对String的优化。 JDK7中字符串常量池从方法区迁移到堆内存中,对字符 阅读全文
posted @ 2022-03-25 01:05 星光Starsray 阅读(549) 评论(0) 推荐(1) 编辑
摘要: Redis作为基于内存的NoSQL数据库,在保障高性能、高并发的同时也支持数据持久化,将内存中的数据写入磁盘中,防止突发场景(如断电)导致的数据丢失。Redis提供了RDB和AOF两种持久化方案。 RDB **RDB全称Redis DataBase,在指定时间间隔内将内存中的数据集快照进行持久化。* 阅读全文
posted @ 2022-03-25 01:02 星光Starsray 阅读(993) 评论(0) 推荐(0) 编辑
摘要: Java SPI(Service Provider Interface),是JDK提供的一套用来被第三方实现或者扩展的接口,通过java.util.ServiceLoader类加载META-INF/services/中的配置进行服务发现,可以用来启用框架扩展和替换组件。主要好处在于解耦,可拔插,面向 阅读全文
posted @ 2022-02-10 20:54 星光Starsray 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 前言 世界上并没有完美的程序,因为写程序本来就是一个不断追求完美的过程。同样没有一门语言在一诞生就是完美的,不变的唯有变化。Java诞生至今已经不仅仅是一门语言,背后所涵盖的是一个庞大的技术体系。 网上每隔一段时间就能见到几条“未来X语言将会取代Java”的新闻,此处“X”可以用Kotlin、Gol 阅读全文
posted @ 2022-02-08 19:25 星光Starsray 阅读(845) 评论(0) 推荐(0) 编辑
摘要: 背景描述 Java并不是为了Web而诞生,但似乎B/S架构让Java生机无限,Spring全家桶的助推也使得Java在Web更为强大,微服务体系Spring Cloud更是顺风顺水,不得不说的Spring应用的痛点就是启动过慢,内存占用偏高,对服务器资源占用较大,而且JVM的本身就难逃离内存的过度依 阅读全文
posted @ 2022-01-17 14:16 星光Starsray 阅读(1796) 评论(0) 推荐(0) 编辑
摘要: 前言简介 Java中提起synchronized很多人第一反应就是锁,这是不准确的,翻译一下中文意思为同步,锁是概念,抽象名词,同步是动作,操作结果。 由于翻译不准确导致理解上的偏差,好比Robust翻译为中文意思是健壮的,这也是我们学习Java时讲到一个特性,但是有的地方音译为“鲁棒性”,假如有人 阅读全文
posted @ 2021-11-28 19:51 星光Starsray 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 简介 基于springboot,mybatis plus集成了一套多数据源的解决方案,在使用时引入相应的插件dynamic-datasource-spring-boot-starter,可以实现数据源的动态添加、删除等功能,对于多租户或者分库等操作可以根据AOP切面代理到不同的数据源、实现单一系统数 阅读全文
posted @ 2021-11-24 17:18 星光Starsray 阅读(2225) 评论(0) 推荐(1) 编辑
摘要: 简介 对于Spring Boot的描述就不再赘述,可以参考前面的文章: 什么是Spring Boot? SpringBoot 和 SpringCloud的区别 spring-boot-starter-parent和spring-boot-dependencies 全部文章 标签Spring Boot 阅读全文
posted @ 2021-11-21 02:34 星光Starsray 阅读(1751) 评论(0) 推荐(0) 编辑
摘要: Spring Boot已经内置了127个场景启动器,基本上满足大部分的使用场景,但是有时候也会存在需要自定义starter的场景,如何自定义一个starter呢?其实也很简单,这里简单介绍如何自定义的关键步骤。 创建starter工程 首先创建一个自定义starter工程,除了spring官方的st 阅读全文
posted @ 2021-11-20 14:37 星光Starsray 阅读(81) 评论(0) 推荐(0) 编辑
摘要: 常用Lombok的都知道里面有一个@Builder注解很好用,但是这个注解的原理是什么呢,这里简单模拟一下。 这里使用了设计模式中的建造者模式。 package com.example.demoboot; import java.io.Serializable; /** * 数据源实例 * * @a 阅读全文
posted @ 2021-11-20 13:25 星光Starsray 阅读(218) 评论(0) 推荐(0) 编辑
摘要: deepin系统一直让我觉得不舒服的就是软件大额头越看越难受,还好找到了解决方案。 参考链接:https://github.com/linuxdeepin/developer-center/issues/1210 创建目录 白色主题 mkdir -p ~/.local/share/deepin/th 阅读全文
posted @ 2021-11-06 13:18 星光Starsray 阅读(415) 评论(0) 推荐(0) 编辑
摘要: 双机热备 双机热备并不是真正意义上的集群模式,但是相比于单机模式优势是可以实现高可用,在主机出现故障的状态下,可以快速的切换到备机,备机替代主机的工作,保证服务可用。这里主要介绍基于KeepAlive实现的双机热备(本质是一种负载均衡的软实现)同时做好监控报警,在自动故障转移的同时能通知到相关的应用 阅读全文
posted @ 2021-07-15 19:57 星光Starsray 阅读(143) 评论(0) 推荐(0) 编辑
摘要: Github地址 https://github.com/datacharmer/test_db 百度网盘: 链接:https://pan.baidu.com/s/18IuZrBTy24bp74mbMp6RBQ 提取码:mpqy 官网测试数据: https://dev.mysql.com/doc/in 阅读全文
posted @ 2021-05-12 17:20 星光Starsray 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 最近项目种引入了mybatis-plus框架,看名字就知道了mybatis的增强版,以下简称MP。 官方描述: MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做 阅读全文
posted @ 2021-03-05 21:01 星光Starsray 阅读(3783) 评论(0) 推荐(0) 编辑
摘要: 在开发中,涉及到性能问题,需要进行,内存、CPU、线程等分析,这个时候就要借助一些内存分析工具来实现,辅助IDEA中包含的插件,介绍常用的一些插件。 VisualVM Launcher 下载地址 https://visualvm.github.io/pluginscenters.html JProf 阅读全文
posted @ 2021-02-24 09:47 星光Starsray 阅读(701) 评论(0) 推荐(0) 编辑