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
计算机原理 CPU 执行过程(简述)CPU 的本质就是一个执行指令的工人。 上面的概述引发了几个问题,什么是指令?指令从哪里来?CPU 如何执行和加载这些指令? 指令,顾名思义指示和命令。这个命令和指示的对象是 CPU,CPU 可以明白它的意图,并执行。 现代 CPU 识别的指令都是由字节码组成,即一长串的 0 和 1。 还记得远古计算机是如何编写和执行指令的吗?没错,是一条条穿孔的纸带,带孔为 1,无孔为 2022-02-11 学习笔记
Stream 什么是 Stream 流流就相当于工厂的流水线工作,传送带上是一件件产品,而传送带周围是一些工人。有的负责把挑出次品,把它放到其他另一条流水线中重新加工,有的负责根据产品颜色进行收集,等等。如下图所示。 三个员工对传送带上的产品进行操作,老王负责收集把黄色产品挑出,老周负责把产品按先后排序,而老赵负责把残次品挑拣出来,拆开零件放到新的床送带中,继续加工。传送带的终点就是篮子,产品都流向篮子里面。 2022-01-03 博客专栏 #Java #Stream
2021-年终总结(技术向) 简单的聊一聊一年下来自己学到了哪些技术,做了那些改变。 学习技术与成果: Maven,啃了半本《Maven 实战》,经典永不过时。能够解决 Maven 冲突,并写了一个简单的 Maven 插件。 学习使用 Docker,熟悉 Docker 基本命令,会编写简单的 Dockerfile,以及发布自己的 Docker 镜像。 了解 Jenkis 自动化部署的流程,能够进行简单的构建。 学习 Liunx 2022-01-01 年终总结 #年终总结
布隆过滤器 问题场景:给定一组文章 id 列表,如何判断文章 a 的 id 在给定的列表中? 我们很容易使用列表、数组、哈希表等将文章 id 先保存起来,判断重复时,直接遍历数组、列表、根据哈希值判断等。 上面的解决方式,最好的无疑是哈希表。哈希表检索时间复杂度为 O(1),但是这只限于没有发生哈希冲突的情况下,而且数据量一旦比较大,存储占用也会大大增加,会导致检索性能大大下降。 对于数据量较大的场景,如 2021-12-30 博客专栏 #布隆过滤器