优雅的编程者终端篇优雅的编程者修行从打造一款高效颜值双具备的终端开始。iterm2On my zshpowerlevel10ktmux效果安装iterm2下载地址:https://iterm2.com/font:nerd-fonttheme:salarized dark安装zsh开源地址:https
查看更多常用shell命令外观样式shell输出颜色命令格式:echo -e "\033[字背景颜色;文字颜色m字符串\033[0m" 命令示例:echo -e "\033[30m 黑色字 \033[0m" echo -e "\033[31m 红色字 \03
查看更多死磕设计模式—适配器模式前言(八问知识体系)1.简介什么是适配器模式?1.将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作2.适配器模式既可以作为类结构型模式,也可以作为对象结构型模式3.适配器模式属于结构型模式4.适配器实现了统一管理,一个目标是适配接口对象多个适配
查看更多死磕设计模式—建造者模式前言(八问知识体系)1.1.简介什么是建造模式?1.将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示2.建造者模式是一步一步创建一个复杂的对象,建造者模式注重的是一步一步的创建复杂对象。这个和工厂模式存在区别建造模式的优缺点?优点1.将产品本身和其创建
查看更多死磕设计模式—工厂模式前言(八问知识体系)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
查看更多改善Java程序的一些建议The reasonable man adapts himself to the world: the unreasonable one persists in trying to adapt the world to himself.1.不要在变量或者常量中出现易混淆的字
查看更多Java8 Date前言:时间操作在开发中经常被使用到,最近项目是用Java8开发,因此总结一下时间操作常用方法。1.常用方法总结1.1.获取当前时间// 当前日期:2019-03-16LocalDate date = LocalDate.now();// 当前时间:22:13:03.450Loca
查看更多ElasticSearch初级撸一门技术,必先登其官网,扒其皮,喝其血官网地址:https://www.elastic.co/products/elasticsearch官方中文文档地址:https://www.elastic.co/guide/cn/elasticsearch/guide/curr
查看更多HashMap原理分析HashMap采用数组+链表的数据结构,只是在jdk1.7和1.8的实现上有所不同,下面,简单的分析一下,方便自己更加深刻的理解这种典型的key-value的数据结构。1.1.jdk1.7实现原理简单分析1.7的HashMap数据结构图也可以这么理解在jdk1.8之前,Hash
查看更多Guava MultiSet首先,我们来假定一个场景,统计一个词在文档中出现了多少次,传统的做法是这样的:。我们可以这样来实现,Map<String, Integer> counts = new HashMap<String, Integer>();for (String w
查看更多Google Guava在Java Collections API中,我们经常会使用到list、map、Collection、Arrays、Collections等等。今天,我们就来学习总结一下org.apache.commons.collections的常用类。org.apache.commons
查看更多Apache MapUtils官方文档传送门:MapUtils本篇笔记的基础示例数据代码如下:HashMap<String, Object> map = new HashMap<>();map.put("name","zhangsan"
查看更多Apache CollectionUtils1.1.CollectionUtils常用方法集合判空isEmpty(Collection coll)判断集合是否为空,当然,isNotEmpty(Collection coll)判断集合不为空。String[] arr = {"H",
查看更多Apache DateUtils1.1.常用的日期判断isSameDay(final Date date1, final Date date2):判断两个时间是否是同一天;isSameInstant(final Date date1, final Date date2):判断两个时间是否为同一毫秒常
查看更多Apache ArrayUtils1.1.数组的常用判断方法isEmpty(final Object[] array):判断数组是否为空;isNotEmpty(final float[] array):判断数组是否不为空;isSameLength(final char[] array1, final
查看更多Apache StringUtils1.1.判断是否空字符串isBlank(final CharSequence cs):判断是空字符串;isNotBlank(final CharSequence cs):判断不是空字符串;isEmpty(final CharSequence cs):判断是空字符串
查看更多ES6核心知识1. let和const关键字1.1 let关键字作用:与var类似,用于声明一个变量特点 在块作用域内有效,不能重复声明,不会预处理,不存在变量提升应用:循环遍历加监听<body> <button>按钮1</button> <bu
查看更多Vue核心知识1.1.Vue的基本简介学习一门技术首先登陆其官网,中文网址,英文网址,vue是一款渐进式JavaScript框架,作用是为了动态构建用户界面,该框架遵循MVVM模式,编码简洁,体积小,运行效率高;他借鉴了angular的模板和数据绑定技术,借鉴了react的组件化和虚拟DOM技术,当
查看更多JavaScript初级知识JavaScript基础知识脑图总结JavaScript简介大家都知道Html+CSS+JavaScript是前端入门的三门基本课程,其中Javascript应该是最难的,也是可以解决很多很多问题的,这篇笔记只是介绍JavaScript的基础知识,后面随着学习的深入,将会
查看更多CSS3思维导图总结前言css的全称是什么?——casccading style sheets样式表的组成?——选择器+声明块浏览器杜宇编译css的顺序?——div ul li #test从右往左选择器基本选择器通配符选择器——* {margin:0;}元素选择器——body {background
查看更多SS 指层叠样式表 (Cascading Style Sheets) ,简单讲就是定义如何显示 HTML 元素 ,CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明
查看更多Ghost 是一个为博客和出版物而设计的内容平台,基于Markdown的编辑环境支持快速格式化及无缝的创作体验,将焦点完全放在正在创建的内容上。 并排实时预览可让您随时查看文章的显示方式。
查看更多MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
查看更多Java 8 (又称为 jdk 1.8) 是 Java 语言开发的一个主要版本。 Oracle 公司于 2014 年 3 月 18 日发布 Java 8 ,它支持函数式编程,新的 JavaScript 引擎,新的日期 API,新的Stream API 等
查看更多