Java 9 语言特性 接口中允许添加私有方法java 8 中添加了 default 方法,但这些方法之间却无法优雅的复用代码。例如:methodA 和 methodB 都需要调用 biFunction 方法,于是只能将 biFunction 方法声明成 default。 123456789101112131415public interface Java8Interface { default void 2022-11-22 博客专栏 #Java9
Git Bisect 快速上手 假设你刚接手一个项目,这时线上出现了一个 bug,因为对业务不熟悉加上老板施压,导致 bug 定位过程异常艰难,开始焦头烂额。 聪明的你转念一想:既然无法准确定位 bug,那不如先找到是哪个提交引入的 bug,这样再去定位 bug 就简单很多了。 于是你确认了bug 存在的 commit 区间,使用二分查找来找 bug commit ,假设 bug 存在的 commit 区间是(3 ~ 10),你 2022-11-09 博客专栏 #Git
操蛋的 Git Git 中的一些抓狂经历,平时遇不到,一遇到就很操蛋。 部分参考:Oh Shit, Git git-flight-rules branch本地分支太多了,老子要删掉。12345# 看一眼本地有哪些分支git branch # 删掉本地对应分支git branch -d <本地分支名> 远程分支有点多余,老子要删掉。12345# 看一眼远程有哪些分支git branch -r# 2022-10-16 博客专栏 #Git
Spring 与事务 简介事务是让人生厌的八股,也是面试中的常客。网路上关于 Spring 与事务的问题非常多,然而大部分解答都是在「 背答案」,并没有把它的底层逻辑讲清楚,只要问题一经变通,也就无从下手不知所措。 Spring 使用魔法般的注解 @Transactional 帮我们解决事务的使用问题,给我们带来便利的同时,也屏蔽了底层的细节。屏蔽了底层的细节,也就导致事务相关的使用都是靠着积累的经验,而无法真正理解它 2022-10-10 博客专栏 #Spring #事务
Java 中的 GC 人在日常活动中不可避免会产生垃圾,程序也是如此。在方法中 new 一个对象,每次调用该方法都会进行 new 对象操作,如果没有人去管理这些对象,没有把这些对象占有内存及时释放掉,内存很快就会满。因此,在程序运行过程中,需要及时寻找和处理「 死去」的对象。这个「 死去」的对象就是垃圾,而寻找和处理垃圾的过程就叫做 GC。 GC 全称 “Garbage Collection” 即垃圾收集。不同的语言对 2022-07-14 博客专栏 #Java #JVM #GC
单例实现的几种方式 什么是单例单例是一个只实例化一次的类,即类仅存在一个对象。 私有化构造器 + 静态成员变量显示声明构造器,并使用 private 关键字将其私有化,避免使用 new Object 来创建对象。需要使用该实例,只需要通过成员变量 INSTANCE 访问即可。 1234public class MySingleton { public static final MySingleton 2022-06-24 博客专栏 #Java #单例
Jenkins 自动化部署 简介:Java 编写的最广泛使用的开源持续集成工具,非常易用,广泛的第三方插件支持,以及分布式构建。 文章所演示的项目地址: GitHub: https://github.com/greek-zzf/oh-my-jenkins.gitGitee: https://gitee.com/geek-zzf/oh-my-jenkins.git 安装War 包方式优点:安装启动非常方便。 缺点:与环境强绑定 2022-04-30 博客专栏 #Jenkins
interview Java 基础 为什么需要装插箱? 为了兼容集合类,由于 List 不放便,因此使用装箱类型表示他的集合 List Method.invoke(obj,args) / Method.invoke(null,args) static / non-static 字段同理。 异常中 finally 中的字节码实现,是将 Finally 块中的代码分别复制到 try 和 cat 2022-04-28 学习笔记
字节码加载与执行 字节码字节码是高级语言和 JVM 通信的桥梁,高级语言只做一件事:把代码编译成字节码。因此,完全可以编写一套自己的编程语言,定义他的语法规则,然后将实现一个编译器,将代码转为字节码即可。 来看看 Java 中的字节码长什么样子,源代码如下: 12345678910package com.greek.shop;import org.junit.jupiter.api.Test;class ShopA 2022-03-03 博客专栏 #Java #字节码
JVM 基本结构 谈起 JVM 第一印象就是「八股」,毕竟正经人谁学 JVM 啊。当我深入学习,了解了相关原理后,真令人大呼过瘾。 了解 JVM 并不会让你更快的 CRUD,对大部分工作没有实质性的帮助,但这是成为高级程序员的第一步。 JVM 初识JVM 全称是 Java virtual machine 即 Java 虚拟机。JVM 是抽象(虚拟)计算机,它定义了一系列规范,因此他有很多实现,如:HotSpot,E 2022-02-26 博客专栏 #Java #JVM