金志宏的黑洞博客

任何时候 都不算太晚

Maven 怎么全局删除某个依赖

Maven 怎么全局删除某个依赖

Maven 怎么全局删除某个依赖 ​ 今天 SpringBoot 配置 log4j2 的时候遇见 spring-boot-starter-logging 依赖冲突问题启动时报错由于有依赖没有移除干净,发现很多基本上 spring-boot-starter-*都依赖logging。一个个移除依赖太不优雅。进行以下配置可以全局移除。 <!--全局移除spring-boot-start...

Java 观察者模式

Java 观察者模式

Java 观察者模式 1. 什么是观察者模式 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对...

Mac 环境下Maven的安装与配置

Mac 环境下Maven的安装与配置

Mac 环境下Maven的安装与配置 1.下载Maven [Maven官方下载地址][http://maven.apache.org/download.cgi] 选择下载:apache-maven-3.6.0-bin.tar.gz 解压到任意目录,我这里解压到 tar xvf /Users/xxxxxxxx/Documents/apache-maven-3.6.0-bi...

Java 代理模式

Java 代理模式

Java 代理模式 1. 什么是代理模式? 代理模式:为其他对象提供一种代理以便控制对这个对象的访问。可以详细控制访问某个类(对象)的方法,在调用这个方法前作的前置处理(统一的流程代码放到代理中处理)。调用这个方法后做后置处理。 例1:明星和经纪人、租房中介、电视和遥控机等。 1.1 代理模式怎么实现 抽象对象角色(抽象类 或 接口) 声明目标类和代理类相同的接口,在任何可以...

Mac OS Redis 安装启动停止设置密码

Mac OS Redis 安装启动停止设置密码

Mac OS Redis 安装启动停止设置密码 1. 下载和安装 # 我安装在 /usr/local/redis 目录下 cd /usr/local/ # 下载 wget http://download.redis.io/releases/redis-5.0.3.tar.gz # 解压 输入密码 sudo tar -xzvf redis-5.0.3.tar.gz # 编译安装Redis ...

Java 反射

Java 反射

Java 反射 ​ Java反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为java语言的反射机制。 ​ Java的反射机制允许编程人员在对类未知的情况下,获取类相关信息的方式变得更加多样灵活,调用类中相应方法,是Java增加其灵活性与动态性的一种机制。 优点...

Java 中的位运算和实际应用

Java 算法和数据结构

JAVA 中的位运算和实际应用 前言: ​ 作为一个有近8年 JAVA 开发经验的老程序员,再加上工作性质比较偏于项目管理,平时工作中对于位运算和二进制数的运算和应用比较少。偶尔看一些源码,对于出现的位运算符总是一脸懵逼,不得不再回炉重新温习一下,这篇文章记录一下自己的学习过程,加深印象。接下来就开始吧! 1. 数学中的二进制 ​ 先简单介绍下二进制,二进制是用0和1两个数码表示...

JVM 内存分配和回收策略

JVM 内存分配和回收策略

JVM 内存分配和回收策略 1. 前言 对象的内存分配往大方向讲,就是在堆上分配内存。对象主要分配在新生代Eden上,如果启动了本地线程分配缓冲,将按线程优先分配在TLAB上。少数情况也可能直接分配在老年代上,分配规则不是百分百的,主要看使用哪种垃圾收集器,以及虚拟机中内存相关参数的设置。 对于JVM内存区域不了解的同学可以看这里Java内存区域分配和GC。 之后我们通过代码验证下这...

JVM 看懂GC日志

JVM 看懂GC日志

JVM 看懂GC日志 1. 理解GC日志 阅读GC日志是处理Java虚拟机问题的基础技能,它只是一些人为确定的规则,没有太多技术含量。每种收集器的日志形式都是由塔门自身的实现决定的,换言之,每种收集器的日志格式可能都不同,但虚拟机设计者为方便用户阅读,将各个收集器的日志都维持一定的共性,例如以下经典GC日志。 怎么查看GC日志,在Idea的Application设置中添加VM o...

JVM 内存区域和GC

JVM 内存区域和GC

JVM 内存区域和GC 1. JVM 内存区域 1.1 概述 ​ 对于Java程序员来说,在虚拟机自动内存管理机制的帮助下,不再需要为每个new操作去编写配对的delete/free代码,不容易出现内存的泄露和溢出问题,由虚拟机管理内存,一切看起来是非常美好。不过,也正是因为Java程序员把内存控制的权利交给了Java虚拟机,一旦出现内存泄露和溢出方面的问题,如果不了解虚拟机是怎么样...