万字长文:从计算机本源深入探寻volatile和Java内存模型 前言 在本篇文章当中,主要给大家深入介绍Volatile关键字和Java内存模型.在文章当中首先先介绍volatile的作用和Java内存模型,然后层层递进介绍实现这些的具体原理.JVM底层是如何实现volatile的和JVM实现的汇编代码以及CPU内部结构,深入剖析各种计算机系统底层原理.本篇文章超级干,请大家坐稳扶好,发车了!!!本文的大致框架如下图所示: 为什么我们需要volatile? 保证数据的可见性 假如现在有两个线程…
文章目录 Redis的介绍.优缺点.使用场景 Linux中的安装 常用命令 Redis各个数据类型及其使用场景 Redis字符串(String) Redis哈希(Hash) Redis列表(List) Redis集合(Set) Redis有序集合(sorted set) Redis - 瑞士军刀 慢查询 pipeline流水线 发布订阅 bitmap HyperLogLog算法 GEO Redis持久化,数据备份与恢复 RDB AOF SpringBoot + Jedis + 1主2从3哨兵 实…
查找元素索引位置 基本查找 根据数组元素找出该元素第一次在数组中出现的索引 public class TestArray1 { public static void main(String[] args) { //定义一个数组 int[] arr={10,20,70,10,90,100,1,2}; //根据元素查找出该元素在数组中第一次出现的索引 int index=getIndexByEle(arr,2); System.out.println("该元素第一次在数组中出现的索引是:"…
Sping Spring概念介绍 spring是啥呢,你在斗地主的时候把别人打爆了那叫spring, 你成功的追到了你爱慕已久的女神,人生中的春天来了,那也叫sping 好了别看我老婆了,咱来讲讲啥是Spring Sping:Spring是分层的javaEE/SE应用full-stack轻量级开源框架,他以AOP( 面向切面编程 aspect oriented programming)和IOC(控制反转 invers of control)为内核,这个框架之所以叫spring是因为他给软件行业的…
导读 文章首发于微信公众号[码猿技术专栏],原创不易,谢谢支持. Zookeeper 相信大家都听说过,最典型的使用就是作为服务注册中心.今天陈某带大家从零基础入门 Zookeeper,看了本文,你将会对 Zookeeper 有了初步的了解和认识. 注意:本文基于 Zookeeper 的版本是 3.4.14,最新版本的在使用上会有一些出入,但是企业现在使用的大部分都是 3.4x 版本的. Zookeeper 概述 Zookeeper 是一个分布式协调服务的开源框架.主要用来解决分布式集群中应用系…
前言 上一篇文章写了Redis分布式锁的原理和缺陷,觉得有些不过瘾,只是简单的介绍了下Redisson这个框架,具体的原理什么的还没说过呢.趁年前项目忙的差不多了,反正闲着也是闲着,不如把Redisson的源码也学习一遍好了. 虽说是一时兴起,但仔细研究之后发现Redisson的源码解读工作量还是挺大的,其中用到了大量的Java并发类,并且引用了Netty作为通信工具,实现与Redis组件的远程调用,这些知识点如果要全部讲解的话不太现实,本文的重点主要是关于Redisson分布式锁的实现原理,所…
1 Docker dockerfiler 镜像构建 Compose是在单机进行容器编排 Horbor 镜像仓库 Docker swarm 在多机进行容器编排 Docker Compose缺点是不能在分布式多机器上使用 Docker swarm缺点是不能同时编排多个服务, Docker Stack,可以在分布式多机器上同时编排多个服务. 1.1 Docker常用命令 如果在使用 镜像或者是容器的别名有问题的话,就使用它的容器id docker 服务 启动 停止 重启 查看 开机自启 systemc…
这篇文章是我学习整理 Dubbo 的一篇文章,首先大部分内容参考了官网 + 某硅谷的视频,内容讲解进行了重新编排,40多张图片,也都是我修改重制的,虽然一万多字,但是其实也可以看出来,更多的内容集中在了概念或功能的介绍,具体环境的搭建,以及如何配置,快速上手上面,但是对于这样一款优秀的框架,文章中提到的每一个点其实展开来讲都能写这样篇幅的一篇文章,仅仅入门来看也没必要,总得学会走,才可以去试着跑 文章提及了 SSM 和 Springboot 下的不同配置方式,但是 Zookeeper 环境搭在了…
大家好,我是程序员小跃,一名在职场已经写了6年程序的老程序员,从一开始的菊厂 Android 开发到现在某游戏公司的Java后端架构,对Java还是相对了解的挺多. 大概是半年前吧,在知乎上有个知友私信给我,问我关于零基础如何学习Java,以及在学习过程中会存在一定的迷茫,如何应对等等. 我想着何不把以前的内容重新整合下分享出来给大家呢,于是就有了今天的这次分享. 在过去的一年多时间里,跃哥通过这份清晰的路线图,已经帮助 20+同学做好定位,快速认清了自己当前的现状,并做好相应的应对措施,甚至有…
1.简介 TestNG还为我们提供了测试的记录功能-日志.例如,在运行测试用例期间,用户希望在控制台中记录一些信息.信息可以是任何细节取决于目的.牢记我们正在使用Selenium进行测试,我们需要有助于用户理解测试步骤或测试用例执行期间的任何失败的信息.在TestNG Logs的帮助下,可以在Selenium测试用例执行期间启用日志记录. 这一篇文章宏哥主要介绍利用TestNG中的Report类来实现简单的log输出,在TestNG中有一个Report的类,这个类的作用是,在添加了@Test的方…