罗曼罗兰说过:世界上只有一种英雄主义,就是看清生活的真相之后依然热爱生活。 对于 Lombok 我相信大部分人都不陌生,但对于它的实现原理以及缺点却鲜为人知,而本文将会从 Lombok 的原理出发,手撸一个简易版的 Lombok,让你理解这个热门技术背后的执行原理,以及它的优缺点分析。 简介 在讲原 ...
分类:
其他好文 时间:
2020-03-30 12:37:59
阅读次数:
81
一、啥是反射? 通过反射机制加载一个class字节码文件,获得并调用任意一个类的所有属性和方法。 二、反射能干啥? 在运行时判断任意一个对象所属的类 在运行时构造任意一个类的对象 在运行时判断任意一个类所具有的成员变量和方法 在运行时调用任意一个对象的方法 三、干一干试试看! 1. Animal样本 ...
分类:
其他好文 时间:
2020-03-24 00:59:29
阅读次数:
64
[toc] 前言 在阿里巴巴Java开发手册中,有下面这样的规定: 这篇文章我们就来深入探讨其中的原因。 正文 为什么结果如此不同? 我们先来看看前言中的反例会出现什么意料之外的结果: 仅仅是remove的元素不同,为什么会出现如此不同的结果呢?我们反编译上面报错的字节码文件可得: 通过这个反编译结 ...
分类:
其他好文 时间:
2020-03-23 15:13:17
阅读次数:
58
一.java程序的具体执行过程: 1.java源文件会被java编译器编译成字节码文件 2.然后由jvm中的类加载器加载各个类的字节码文件 3.加载完后,由jvm的执行引擎执行 备注:在执行的过程中jvm一段空间来存储数据:运行时数据区,也称jvm内存 二.根据jvm规范,jvm把内存划分为了如下几 ...
分类:
其他好文 时间:
2020-03-22 13:47:07
阅读次数:
59
Java虚拟机(JVM)是运行Java字节码的虚拟机 JVM可以理解的代码叫做字节码(.class文件) Java程序从源代码到运行一般分3步 : .java文件 .class文件 机器可以执行的二进制机器码 字节码到机器码的过程中,JVM 类加载器首先加载字节码文件,然后通过解释器 逐行解释执行, ...
分类:
其他好文 时间:
2020-03-20 10:51:56
阅读次数:
61
今天本人给大家讲解一下Java的反射基础技术,如有不对的或者讲的不好的可以多多提出,我会进行相应的更改,先提前感谢提出意见的各位了!!! 什么是反射? 反射它是根据字节码文件可以反射出类的信息、字段、方法、构造方法等内容,还可以创建对象调用方法,我们称它为反射技术。 如何通过反射获取Class对象了 ...
分类:
编程语言 时间:
2020-03-20 00:56:31
阅读次数:
80
1.热更新的概念 热更新就是动态下发代码,它可以使开发者在不发布新版本的情况下,修复 BUG 和发布功能。 一般这样的概念我会去整理它的输入什么,输出什么,来快速将抽象具体化。 热更新的输入是:代码的字节码文件 输出是:运行的结果是走新修改的文件逻辑得出来的 2.使用工具 使用的工具是阿里的Arth ...
分类:
其他好文 时间:
2020-03-17 19:43:11
阅读次数:
99
[toc] 内部类是什么?它有什么特点?有什么使用场景? 内部类,顾名思义就是定义在另一个类里面的类。就像下面这样: 通过编译上面的java文件我们发现最后总共产生了两个字节码文件:Outer.class和Outer$Inner.class。第一个很好理解,我们需要注意最后一个,因为完全有下面这种可 ...
分类:
其他好文 时间:
2020-03-15 13:14:55
阅读次数:
49
1、JRE JRE——Java提供的一个在操作系统之上的运行环境,JRE保证了Java语言的跨平台特性,有Java虚拟机(JVM)、类库及一些核心文件组成。 一个Java程序的执行过程:源文件(.java)——字节码文件(.class,由Java编译器javac.exe编译得到)——执行(Java解 ...
分类:
编程语言 时间:
2020-03-12 23:23:55
阅读次数:
71
User java.lang.Class 所有的类都是Class类的对象 类加载:由.java源文件编译生成.class二进制字节码文件,当运行时,首先Java虚拟机会将本地/网络阐传输.class文件加载到内存当中,那么加载的过程就叫做类加载 一.类加载的过程 加载过程:将.class文件通过IO ...
分类:
其他好文 时间:
2020-03-12 19:13:48
阅读次数:
59