学习 Concourse CI - 快速入门
最近公司需要用到一个名叫 Concourse CI
的 CI/CD
工具,那么我当然就要学习一下啦。顺便还能水一篇,啊不,写一篇博客,当作学习过程中的笔记。
最近公司需要用到一个名叫 Concourse CI
的 CI/CD
工具,那么我当然就要学习一下啦。顺便还能水一篇,啊不,写一篇博客,当作学习过程中的笔记。
一个 private
属性只能被它所在的类访问,这件事地球人都知道。但是,你有没有想过,这条规则有没有可能在某种情况下,会变得不成立?
本文将通过一个小例子,来演示怎么让 private
修饰符 “失效”,以及它为什么会 “失效”。
在 Spring 中,那些由 IoC 容器所管理的对象被称之为 bean。而一个 bean 的定义,其实只是一个 “蓝图”,指导着 Spring 如何去创建这样一个 bean。而在这个蓝图中,有一个属性叫做 “作用域”,它规定了这个 bean 的可见范围。这里我们看一下 Spring 的 bean 都有哪些作用域。
在使用 Spring Boot 时,最使我们收益的一个功能就是它的自动配置。但是,用了这么久的自动配置功能,有没有想过它是怎么实现的?本文将从源码入手,一步一步搞明白 Spring Boot 自动配置的原理。
在用 Git 管理包含中文的文件时,会出现类似这样的 “乱码”:
1 | $ git status |
解决方法是配置 Git 的全局属性 core.quotepath
为 false
,即执行命令 git config --global core.quotepath false
,然后再执行 git status
,就可以看到中文正常显示了:
1 | $ git status |
我们知道,使用 VisualVM 可以监控 Java 应用的各种运行时信息,包括资源占用、正在运行的线程等等。本文将简单介绍如何使用 VisualVM 的插件 Visual GC
来监控 Java 应用的垃圾回收情况。
在 Java 的垃圾回收算法一文中,我们知道 JVM 是根据一个对象有没有被引用来判断要不要对其进行垃圾回收的。但是,如果我们为了提升垃圾回收的效率,想要再把垃圾回收的条件更细化一些,比如只在内存非常紧张的时候才回收某些对象,那么光靠一个粗略的 “引用”,就显得心有余而力不足了。所以,在 JDK 1.2
版本之后,Java 扩充了引用的概念,将其扩充成了强引用
,软引用
,弱引用
,虚引用
四个更细化的概念。
本文将参考《深入理解 Java 虚拟机 (第 3 版)》中再谈引用
一节,简述一下这四种引用的概念,以及被引用的对象何时会被垃圾回收器回收。
在排查垃圾回收相关的问题时,一个必不可少的技能就是要能看懂 Java 的垃圾回收日志。本文将介绍打印 GC 日志相关的 JVM 参数,以及使用不同参数时 JVM 将会打印出的日志内容。
做技术,不能只知其然而不知其所以然。在知道了工具的原理之后,才能更高效的使用这个工具。在程序的世界里,源码里面没有秘密,看懂了源码,也就看懂了原理。
这次就来阅读一下 HashMap
的源码。
做技术,不能只知其然而不知其所以然。在知道了工具的原理之后,才能更高效的使用这个工具。在程序的世界里,源码里面没有秘密,看懂了源码,也就看懂了原理。
这次就来阅读一下 Object
类里面 hashCode
方法和 equals
方法的源码。