努力写有价值的技术文章
死磕设计模式—工厂模式前言(八问知识体系)1.1.简介简单工厂模式属于创建型模式,属于工厂模式中的一种,简单工厂模式就是由一个工厂对象来决定创建出一种具体的产品在简单工厂模式中,我们会定义一个创建对象的类,多使用反射的方法来创建具体产品实例,这个类用来封装实例化对象的行为。在软件开发中,当我们需要大
sonar1.1.sonar简介代码质量管理工具:sonar,sonar(SonarQube)是一个开源平台,用于管理源代码的质量,它不仅是一个质量数据报告工具,更是代码质量管理平台。它通过插件的形式来管理代码,它支持的语言包括:Java,PHP,C#,C等。1.2.docker compose安装
ElasticSearch—(提高篇)前言Elasticsearch的简单入门请参考之前写的一篇文章Elasticsearch简单入门篇,这篇简单介绍啦Elasticsearch的基本安装、Docker安装方法、基本的概念,以及如何使用Java代码实现对Elasticsearch的CRUD操作等入门
IDEA插件使用推荐工欲善其事,必先利其器1.1.Visualvm Launcher使用 VisualVM 进行性能分析及调优这个插件执行的是jdk安装目录中的bin目录下的jvisualvm工具。安装后配置命令路径即可在方法上运行就可监控结果如下1.2.查看字节码这个不是插件,只是在IDEA中配置
死磕设计模式—单例模式1.1.简介例如在Java开发中,我们都知道类和对象实例可以通过new来创建一个或者多个,而单例模式就是采取一定的办法保证整个系统中某一个类只能存在唯一一个对象实例,并且获取该类实例的方法只能是该类自己提供的一个获取其实例的静态方法。1.2.使用样例例如在Spring源码中的d
设计模式之UML类图文章封面由代号为g提供UML类图可以很清晰的表达程序的设计,在程序开发中各种类存在不同的依赖关系,在UML中使用不同的箭头来表达类之间的关系,例如依赖关系、关联关系、泛化关系、实现关系、组合关系和聚合关系*。可以使用StartUML工具或者Rose工具来画类图,但是已经2019年
死磕Java——ReentrantLockReentrantLock是java.util.concurrent.locks包下一个可重入的默认是非公平的锁,ReentrantLock类是Lock接口的一个使用很频繁的实现类,类结构如下图:前面说过JMM模型要求的是可见性,原子性和有序性。解决原子性的
死磕Java——多线程下的集合1.1.ArrayList都知道ArrayList是线程不安全的,如果在多线程下使用了ArrayList会产生什么样的情况,简单看一段代码。public static void main(String[] args) { List<String> li
死磕Java——CAS前面我们说到volatile不保证原子性,解决办法就是使用AtomicInteger代替int,但是为什么使用AtomicInteger就可以保证了原子性了,是因为AtomicInteger实现的就是CAS思想和Unsafe的支持。1.1.CAS是什么AtomicInteger
死磕Java——volatile1.1.JMM内存模型理解volatile的相关知识前,先简单的认识一下JMM(Java Memory Model),JMM是jdk5引入的一种jvm的一种规范,本身是一种抽象的概念,并不真实存在,它屏蔽了各种硬件和操作系统的访问差异,它的目的是为了解决由于多线程通过
GitHub1.1.使用in限制搜索Blog in:nameBlog in:name,descriptionBlog in:name,description,readme1.2.根据stars和forks数筛选springboot stars:>=5000springboot forks:&g
Docker撸一门技术,必先登其官网,扒其皮,喝其血官网地址:https://docs.docker.com中文网址:https://www.docker-cn.comDocker 中国官方镜像加速地址:https://www.docker-cn.com/registry-mirrorDocker