-
大白话讲解ThreadLocal
什么是ThreadLocal? ThreadLocal顾名思义,本地线程,可以理解为线程局部变量,说白了就是操作本地线程的局部变量,通过使用ThreadLocal可以为每一个线程持有一个副本,每个线程中的变量的值互不影响。 数据存在哪里? 存在Thread类中的threadLocals字段中,也就是每个线程的局部变量是存在于自己的线程中的,该字段... Read More
-
Java线程该如何捕获异常
首先,我们要知道,在Java中,线程中的异常是不能抛出到调用该线程的外部方法中捕获的。 为什么不能抛出到外部线程捕获? 因为线程是独立执行的代码片断,线程的问题应该由线程自己来解决,而不要委托到外部。”基于这样的设计理念,在Java中,线程方法的异常都应该在线程代码边界之内(run方法内)进行try catch并处... Read More
-
Java通过反射获取泛型类型总结
Type接口说明 Type接口只有一个实现类Class,但是有四个子接口,这四个Type子接口描述了Java泛型的四种形式,分别是: GenericArrayType 该接口表示一种数组类型,其组件类型为参数化类型或类型变量,如参数化类型数组Map<String, String>[] map,还有类型变量数组T[] t... Read More
-
Javaweb中乱码问题详解
以下主要针对tomcat7及以下版本,从tomcat8开始,默认编码已变为UTF-8。 为什么需要编码? 由于人类的语言太多了,在计算机中表示这些语言的符号太多了,导致在计算机中无法通过一个基本的存储单元–字节来表示, 所以我们就需要进行一些拆分和翻译工作,以使计算机... Read More
-
证书、私钥、公钥、pfx、keystore、pem、der 都是什么?
刚开始接触证书,很容易就会被各种名词整的迷迷糊糊,通过搜索引擎一搜索,我们会发现很多介绍文章,如果没接触过这一块的话,一上来很多的名字就会把人绕晕了。什么csr,crt,cer,keystore等等。 我们知道,现在的网站为了数据的安全,往往都会使用证书进行签名或者加密数据。可以证书... Read More
-
一文解决内存屏障
内存屏障是硬件之上、操作系统或JVM之下,对并发作出的最后一层支持。再向下是是硬件提供的支持;向上是操作系统或JVM对内存屏障作出的各种封装。内存屏障是一种标准,各厂商可能采用不同的实现。 本文仅为了帮助理解JVM提供的并发机制。首先,从volatile的语义引出可见性与重排序问题;接下来... Read More
-
volatile底层是怎么回事?
volatile的作用/特性? 保证内存可见性; 禁止指令重排序; 使用volatile的例子 共享变量的标记 单例模式中的double check volatile可以将long或者double类型的变量的读写变为原子操作 JMM模型 ... Read More
-
k8s部署Skywalking(简易版)
一、简单介绍 如果要部署skywalking需要部署以下几个服务(选用es7+nas存储): 1. nas存储 2. es7 3. skywalking 4. skywalking-ui 5. 要监控的服务 注意:部署都是基于同一个命名空间,并且没有进行权限控制,下面某些镜像的打包如果觉得没必要可以直接用原始... Read More
-
Skywalking使用方式介绍
Skywalking是什么? Skywalking是分布式系统的应用程序性能监控工具,特别为微服务、原生云和基于容器的(Kubernetes)架构设计。 Skywalking分为客户端和服务端两部分。 下载Skywalking 下载SkyWalking软件包 http://skywalking.apac... Read More
-
Springboot整合工作流activiti6.0以及与业务集成时的一些坑
1、首先,要在springboot工程的pom文件中引入相关jar包 <dependency> <groupId>org.activiti</groupId> <artifactId>activiti-spring</artifactId... Read More
-
Spring集成seata并通过CICD发布
seata-server安装启动 下载seata-server安装包 https://github.com/seata/seata/releases 配置file.conf和registry.conf等配置文件 ## file.conf ## transaction log store, only used in seata-... Read More
-
一份简单够用的 Nginx Location 配置讲解
前言 Location 是 Nginx 中一个非常核心的配置,这篇重点讲解一下 Location 的配置问题以及一些注意事项。 语法 关于 Location,举个简单的配置例子: http { server { listen 80; server_name www.yayujs.com; location / ... Read More
-
SpringBoot集成mockito以及powerMockito
什么是Mock? 在单元测试中,我们往往想去独立地去测一个类中的某个方法,但是这个类可不是独立的,它会去调用一些其它类的方法和service,这也就导致了以下两个问题: 外部服务可能无法在单元测试的环境中正常工作,因为它们可能需要访问数据库或者使用一些其它的外部系统。 我们的测试关注点在于这个类的实现上,外部类的一... Read More
-
SpringBoot集成Swagger2?
一、添加MAVEN依赖 <!-- 版本号 --> <swagger2.version>3.0.0</swagger2.version> <knife4j-spring-boot-starter.version>3.0</knife4j-spring-boot-s... Read More
-
Mac如何安装jekyll?
一、安装Ruby 其实mac自带ruby,但是安装的时候不能使用自带的ruby软件,因为自带的权限为system,导致安装的时候权限不够安装失败, 所以我们需要自己安装一个ruby软件。 使用rvm安装ruby RVM 是一个命令行工具,可以提供一个便捷的多版本 Ruby 环境... Read More