自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 JMM(JAVA内存模型)

在这篇文章中,重点是Java内存模型(JMM)的工作方式,三大特征,还有volatile关键字。

2023-04-12 11:21:12 144

原创 docker安装zookeeper

1.查询zookeeper docker search zookeeper2.安装zookeeperdocker pull zookeeper3.查看镜像 docker images4.启动容器并添加映射docker run --privileged=true -d --name zookeeper --publish 2181:2181 -d zookeeper5.查看进程 docker ps6.进入容器sudo docker exec -it id /b...

2021-07-20 17:12:38 178

原创 docker安装Redis

1.查询Redis docker search redis2.安装Redisdocker images3.查看镜像 docker images4.运行容器docker run -itd --name redis -p 6379:6379 redis5.进入容器 docker exec -it redis /bin/bash redis-cli6.关闭Redis docker stop redis7.开启Redis docker start red...

2021-07-11 22:07:52 156

原创 docker环境下安装mysql详细说明

查询mysqldocker search mysql 安装mysql docker pull mysql 查看镜像 docker images 在opt下创建文件夹 cd /opt/ mkdir mysql_docker cd mysql_docker/ echo $PWD 启动mysql容器,在var/lib/docker/containers/下查看容器 docker run --name mysqlserver -v $PWD/conf:/etc/mysql/conf.d -

2021-07-11 21:49:09 151

原创 JVM垃圾回收机制

垃圾回收机制:垃圾回收(Garbage Collection,GC),顾名思义就是释放垃圾占用的地方,防止内存泄漏。有效的回收利用内存,对内存堆中已经死亡或者长时间没用的对象进行清除和回收。垃圾回收时间:1.会在cpu空闲的时候自动进行回收  2.在堆内存存储满了之后  3.主动调用System.gc()后尝试进行回收补充:System.gc()用于调用垃圾收集器,在调用时,垃圾收集器将运行以回收未使用的内存空间。它将尝试释放被丢弃对象占用的内存。 然而System.gc()调用附带一个免责声明

2021-06-21 10:19:47 311

原创 双亲委派机制和沙箱安全机制

双亲委派机制:Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用改类时才会将他的class文件加载到内存生成class对象。而且加载某个类的class文件时,Java虚拟机采用的是双亲委派机制,即先把请求交由父类处理,他是一种任务委派的模式。...

2021-06-09 12:16:35 178

原创 Java线程池参数详解和其他创建方式

随着cpu核数越来越多,不可避免的利用多线程技术以充分利用其计算能力。所以,多线程技术是服务端开发人员必须掌握的技术。线程的创建和销毁,都涉及到系统调用,比较消耗系统资源,所以就引入了线程池技术,避免频繁的线程创建和销毁。在Java中有一个Executors工具类,可以为我们创建一个线程池,其本质就是new了一个ThreadPoolExecutor对象。创建线程池: public static void main(String[] args) { ExecutorServi

2021-06-05 14:39:40 165

原创 阻塞队列详细介绍

阻塞队列:当阻塞队列是空时,从队列中获取元素的操作将会被阻塞等待变为非空再去获取元素。当阻塞队列是满时,往队列中添加元素的操作将会被阻塞等待变为非满再去添加元素。阻塞队列的种类:ArrayBlockingQueue:由数组结构组成的有界阻塞队列;LinkedBlockingQueue:由链表结构组成的有界阻塞队列,但是默认值是Integer.max_value;PriorityBlockingQueue:支持优先级排序的无界阻塞队列;DelayQueue: 使用优先级队列实现的延迟无界阻

2021-06-03 16:11:57 729

原创 Semaphore理解与使用

Semaphore 信号量,许可,用于控制在一段时间内,可并发访问执行的线程数量。它的作用是控制访问特定资源的线程数目,底层依赖AQS的状态State,是在生产当中比较常用的一个工具类。使用acquire()方法获得通行,使用release()方法释放。Semaphore 在计数器不为 0 的时候对线程就放行,一旦达到 0,那么所有请求资源的新线程都会被阻塞,包括增加请求到许可的线程,Semaphore 是不可重入的。...

2021-05-28 15:32:44 197

原创 公平锁和非公平锁介绍

公平锁与非公平锁的实现原理公平锁:多个线程按照申请锁的顺序执行,先来后到。优点:所有的线程都能得到资源,不会饿死在队列中。缺点:吞吐量会下降很多,队列里面除了第一个线程,其他的线程都会阻塞,cpu唤醒阻塞线程的开销会很大。非公平锁:多个线程不按照申请锁的顺序来,有可能先到后得。当非公平锁失败后才会采用公平锁。优点:非公平锁性能高于公平锁性能,非公平锁能更充分的利用cpu的时间片,尽量的减少cpu空闲的状态时间。缺点:可能导致队列中间的线程一直获取不到锁或者长时间获取不到锁,导致饿死或

2021-05-27 15:07:09 914

原创 java CAS详解

CAS解释:CAS(compare and swap),比较并交换。可以解决多线程并行情况下使用锁造成性能损耗的一种机制.CAS 操作包含三个操作数—内存位置(V)、预期原值(A)和新值(B)。如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值。否则,处理器不做任何操作。一个线程从主内存中得到num值,并对num进行操作,写入值的时候,线程会把第一次取到的num值和主内存中num值进行比较,如果相等,就会将改变后的num写入主内存,如果不相等,则一直循环对比,知道成功为止。CAS

2021-05-26 20:37:57 16493

原创 java volatile关键字介绍

333

2021-05-26 16:24:08 104

原创 eclispe中的项目引入jar包后注释乱码

1、将Eclipse的Window——Preferences中的General——Content Types中的Java Class File设置成了UTF-8;2、将Window——Preferences——General——Workspace的Text file encoding设置为uft-8;3、重启eclipse,一定要关闭再重启才有效。...

2019-06-26 18:15:18 125

2020最强Java面试题共(6000页).zip

2020最强Java面试题共(6000页)

2021-06-10

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除