Code Life

boris1993的个人博客

最近公司需要用到一个名叫 Concourse CICI/CD 工具,那么我当然就要学习一下啦。顺便还能水一篇,啊不,写一篇博客,当作学习过程中的笔记。

阅读全文 »

一个 private 属性只能被它所在的类访问,这件事地球人都知道。但是,你有没有想过,这条规则有没有可能在某种情况下,会变得不成立?

本文将通过一个小例子,来演示怎么让 private 修饰符 “失效”,以及它为什么会 “失效”。

阅读全文 »

在 Spring 中,那些由 IoC 容器所管理的对象被称之为 bean。而一个 bean 的定义,其实只是一个 “蓝图”,指导着 Spring 如何去创建这样一个 bean。而在这个蓝图中,有一个属性叫做 “作用域”,它规定了这个 bean 的可见范围。这里我们看一下 Spring 的 bean 都有哪些作用域。

阅读全文 »

在使用 Spring Boot 时,最使我们收益的一个功能就是它的自动配置。但是,用了这么久的自动配置功能,有没有想过它是怎么实现的?本文将从源码入手,一步一步搞明白 Spring Boot 自动配置的原理。

阅读全文 »

在用 Git 管理包含中文的文件时,会出现类似这样的 “乱码”:

1
2
3
4
5
6
7
8
9
$ git status
On branch master
Your branch is up to date with 'origin/master'.

Untracked files:
(use "git add <file>..." to include in what will be committed)
"\345\271\277\345\221\212\345\220\214\346\255\245\345\271\263\345\217\260\346\216\245\345\217\243\346\226\207\346\241\2432.0.docx.new"

nothing added to commit but untracked files present (use "git add" to track)

解决方法是配置 Git 的全局属性 core.quotepathfalse,即执行命令 git config --global core.quotepath false,然后再执行 git status,就可以看到中文正常显示了:

1
2
3
4
5
6
7
8
9
$ git status
On branch master
Your branch is up to date with 'origin/master'.

Untracked files:
(use "git add <file>..." to include in what will be committed)
广告同步平台接口文档2.0.docx.new

nothing added to commit but untracked files present (use "git add" to track)

我们知道,使用 VisualVM 可以监控 Java 应用的各种运行时信息,包括资源占用、正在运行的线程等等。本文将简单介绍如何使用 VisualVM 的插件 Visual GC 来监控 Java 应用的垃圾回收情况。

阅读全文 »

Java 的垃圾回收算法一文中,我们知道 JVM 是根据一个对象有没有被引用来判断要不要对其进行垃圾回收的。但是,如果我们为了提升垃圾回收的效率,想要再把垃圾回收的条件更细化一些,比如只在内存非常紧张的时候才回收某些对象,那么光靠一个粗略的 “引用”,就显得心有余而力不足了。所以,在 JDK 1.2 版本之后,Java 扩充了引用的概念,将其扩充成了强引用软引用弱引用虚引用四个更细化的概念。

本文将参考《深入理解 Java 虚拟机 (第 3 版)》中再谈引用一节,简述一下这四种引用的概念,以及被引用的对象何时会被垃圾回收器回收。

阅读全文 »

在排查垃圾回收相关的问题时,一个必不可少的技能就是要能看懂 Java 的垃圾回收日志。本文将介绍打印 GC 日志相关的 JVM 参数,以及使用不同参数时 JVM 将会打印出的日志内容。

阅读全文 »

做技术,不能只知其然而不知其所以然。在知道了工具的原理之后,才能更高效的使用这个工具。在程序的世界里,源码里面没有秘密,看懂了源码,也就看懂了原理。

这次就来阅读一下 HashMap 的源码。

阅读全文 »

做技术,不能只知其然而不知其所以然。在知道了工具的原理之后,才能更高效的使用这个工具。在程序的世界里,源码里面没有秘密,看懂了源码,也就看懂了原理。

这次就来阅读一下 Object 类里面 hashCode 方法和 equals 方法的源码。

阅读全文 »
0%