![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 83
慧梦之旅
凭本事写的BUG,为什么要改!
展开
-
JAVA之伪共享原理
JAVA之为共享一、CPU缓存结构我们都知道在CPU架构中存三级缓存的概念,分别为L1, L2, L3缓存具体结构如下图每个CPU都有自己独立的L1,L2缓存同一个CPU插槽中的CPU共享L3缓存二、缓存行(cache line)既然CPU中存在这么多的缓存,那么必然存在数据从内存copy到缓存的过程,既然存在copy那么必然存在每次从copy多少的数据到缓存,现在主流的cpu中如inte CPU一般每次从内存copy数据到缓存的数据大小为64字节,当然这个并非固定值,大小因各个CPU的制造商而原创 2020-06-21 20:13:20 · 141 阅读 · 0 评论 -
线程池 ThreadPoolExecutor
线程池 ThreadPoolExecutorThreadPoolExecutor是线程池类的基本实现,其他线程池的扩展基本都是基础于改类,这个类是学好线程池的基础,下面来看下改类实现的接口。1. Executor线程池根接口,该接口只提供了一个方法void execute(Runnable command);提交要运行的任务2. ExecutorService执行服务类,该接口继承了Executor接口并提供了对线程池操作的扩展方法,如果shutdown()关闭线程池,shutdownNo原创 2021-03-31 04:03:41 · 553 阅读 · 0 评论 -
JVM调优常用命令
java 常用命令参数默认值功能-XX:+UseSerialGC-client时启用,其他情况下,默认不启用使用串行垃圾收集器-XX:+UseConcMarkSweepGC默认不启用启用CMS低停顿垃圾收集器,减少FGC的暂停时间-XX:+UseParallelGCjdk7,jdk8默认启用策略为新生代使用并行清除,年老代使用单线程Mark-Sweep-Compact的垃圾收集器-XX:+UseParallelOldGC默认不启用策略为老年代和新生代原创 2020-08-29 15:40:16 · 141 阅读 · 0 评论 -
Java类加载过程
类加载过程一、类加载过程流程图二、类加载过程java 加载class时具体分为三大阶段1、loading 加载阶段这个过程主要是将class文件加载到虚拟机的过程2、linking 链接阶段在链接阶段中又分为三大步1、verification 验证阶段,主要是验证加载的class是否符合class规范,如是否有语法错误,是否继承了final 类,符号引用的校验等。2、preparation 在准备阶段,虚拟机会在方法区/元数据中为Class分配内存,并设置static成员变量的初始值为默认原创 2020-07-25 22:38:14 · 136 阅读 · 0 评论 -
SpringBoot集成Mybatis
Spring Boot集成Mybatis一、添加依赖 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>RELEASE</version> </dependency>二、编写配置文件<?xm原创 2020-07-12 23:20:54 · 116 阅读 · 0 评论 -
Java生成二维码
java生成二维码1. 添加maven依赖<dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</artifactId><version>3.4.0</version></dependency>2. 代码package com.pdf.demo.pdfutils.utils;import com.go原创 2020-06-15 22:52:52 · 416 阅读 · 0 评论 -
Java之DCL单列为什么要加volatile
java DCL 单例之volatile1. 实现代码具体的实现代码如下public class DCLSingle { // volatile 修饰单例对象 private static volatile DCLSingle obj; /** * 获取单例对象 * * @return DCLSingle */ private static DCLSingle getInstants() { // 双重判断原创 2020-06-01 22:05:27 · 490 阅读 · 0 评论 -
Linux Maven安装
linux maven 安装1、 下载与解压进入maven官网找到对于的maven版本下载,如下图,点击鼠标左键复制下载地址到linux中下载。下载命令 wget http://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz具体操作如下:1、在/...原创 2019-12-03 09:16:39 · 103 阅读 · 0 评论 -
Java代码生成图片验证码
Java生成图片验证码1、编写代码copy 下面的代码 并运行main函数import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.ByteArrayOutputStream;import java.io.IOException;import j...原创 2019-11-29 17:57:25 · 819 阅读 · 0 评论 -
Linux下安装fastdfs
FastDFS安装1、从GitHub下载FastDFS安装包访问GitHub的这个仓库https://github.com/happyfish100里面有FastDfs对应的安装包,其中这里要下载的3个安装包分别是fastdfs.zip -------------------- FastDfsbaolibfastcommon.zip ----------- FastDfs的公共依赖包fa...原创 2019-11-27 19:02:28 · 436 阅读 · 0 评论 -
Linux安装JDK
linux 下安装 jdk1、下载jdk首先在官网上下载jdk我这里是jdk-8u231-linux-x64.tar.gz2、解压jdk跳转到jdk压缩包的路径,运行解压命令 tar -zvf jdk-8u231-linux-x64.tar.gz3、配置环境变量输入vim /etc/profile命令编辑环境变量并在后面添加如下命令export JAVA_HOME=/usr/jav...原创 2019-11-25 13:28:57 · 694 阅读 · 0 评论