字节码增强技术探索 Java

字节码增强技术探索

1.字节码 1.1 什么是字节码? Java之所以可以“一次编译,到处运行”,一是因为JVM针对各种操作系统、平台都进行了定制,二是因为无论在什么平台,都可以编译生成固定格式的字节码(.class文件)供JVM使用。因此,也可以看出字节码对于Java生态的重要性。之所以被称之为字节码,是因为字节码文件由十六进制值组成,而JVM以两个十六进制值为一组,即以字节为单位进行读取。在Java中一般是用...
阅读全文
Java 并发编程之 ReentrantLock 源码分析 Java

Java 并发编程之 ReentrantLock 源码分析

我是一个优秀的人,但也有缺点,比我优秀的人有很多很多。连自己都认输,何谈你的对手,与你一样优秀,甚至比你优秀的人。战胜自己,就是最大的超越。 在Java5.0之前,协调对共享对象的访问可以使用的机制只有synchronized和volatile。我们知道synchronized关键字实现了内置锁,而volatile关键字保证了多线程的内存可见性。 在大多数情况下,这些机制都能很好地完成工作,但...
阅读全文
Java14 处理 NullPointerException 新方式,真的太香了! Java

Java14 处理 NullPointerException 新方式,真的太香了!

在Java语言中,处理空指针往往是一件很头疼的事情,一不小心,说不定就搞出个线上Bug,让你的绩效考核拿到3.25。最近新出的Java14,相信大家都有所耳闻,那么今天就来看看,面对NullPointerException,Java14有哪些更好的处理方式呢? 1.传统的 NullPointerException 我们编码过程中呢,经常会使用链式调用的方式来写代码,这样写起来很方便,也很清...
阅读全文
就因为没看这篇文章面试失败了 Java

就因为没看这篇文章面试失败了

前言 熬夜整理了一份java基础面试题,希望大家支持,如果文中有错误希望大家指正; 公众号:知识追寻者 知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;) 一 java基础面试 1.1面向对象和面向过程的区别 面向过程: 优点: 性能比面向对象高 ,因为...
阅读全文
Java基础加强笔记——测试、反射、注解 Java

Java基础加强笔记——测试、反射、注解

目录 Junit单元测试: 测试分类: 1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。 2. 白盒测试:需要写代码的。关注程序具体的执行流程。 Junit使用:白盒测试 步骤: 1. 定义一个测试类(测试用例) 建议: 测试类名:被测试的类名Test CalculatorTest 包名:xxx.xxx.xx.test cn.i...
阅读全文
Java Lambda表达式知多少 编程技术

Java Lambda表达式知多少

1. 匿名内部类实现 匿名内部类仍然是一个类,只是不需要程序员显示指定类名,编译器会自动为该类取名。因此如果有如下形式的代码,编译之后将会产生两个class文件: public class MainAnonymousClass { public static void main(String[] args) { new Thread(new Runnable(){ ...
阅读全文
Java垃圾回收详解 编程技术

Java垃圾回收详解

1.GC介绍 什么是垃圾回收(GC)? 垃圾回收,顾名思义,便是将已经分配出去的,但却不再使用的内存回收回来,以便能够再次分配。 在 Java 虚拟机的语境下, 垃圾 指的是死亡的对象所占据的堆空间。 Java 虚拟机中的垃圾回收器采用 可达性分析 来探索所有存活的对象。它从一系列 GC Roots 出发,边标记边探索所有被引用的对象。 为了防止在标记过程中堆栈...
阅读全文
SpringBoot 原理深入及源码剖析 编程技术

SpringBoot 原理深入及源码剖析

SpringBoot 项目间接继承 spring-boot-dependencies,该文件对常用技术框架进行了统一版本管理,所以在SpringBoot 项目 pom.xml 引入spring-boot-dependencies管理的依赖文件不需要标注依赖文件版本号。引入 starter 就可以实现对应场景开发,而不需要额外导入相关依赖文件。 自动配置(启动流程) SpringBoot ...
阅读全文
Loading...