自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lifeline张的博客

以大白话、逻辑清晰、表述详细的方式来写博客。

  • 博客(20)
  • 收藏
  • 关注

原创 今日项目总结

1、环境搭建先说搭环境的事情,首先,这应该是一个很简单的事情,但是我在引入项目的时候卡了半天,原因在于没有引入正确的阿里云镜像。但是很奇怪的是,上午的话,这个镜像是没有问题的,之前也跑起来过。我用的镜像是这一个(家里电脑也是这个镜像,最骚的是家里电脑也可以启动,并不报错):<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http:

2020-10-14 22:21:22 110

原创 十七、类加载器总结及扩展类加载器要点分析

1、类加载器双亲委托模型的好处1、可以确保java核心库的类型安全:所有的java应用都至少会引用java.lang.Object类,也就是说在运行期,这个类会被加载到虚拟机中;如果这个加载过程是由自定义类加载器所完成的,那么很可能就会在jvm中存在多个版本的Object类,而且这些类之间还是不兼容的,相互不可见的(是因为命名空间)。借助于双亲委托机制,java核心类库中的加载动作都是由启动类加载器来统一完成加载工作,从而保证了java应用所使用的都是同一个版本的java核心类,他们之间是相互兼容的。

2020-05-11 23:14:14 262

原创 十六、类加载器实战剖析与疑难点解析

1、jvm自带各级加载器的加载路径public class MyTest19 { public static void main(String[] args) throws Exception { System.out.println(System.getProperty("sun.boot.class.path")); System.out.println("======="); System.out.println(System.getPrope

2020-05-11 22:24:03 147

原创 十五、自定义类加载器在复杂类加载情况下的运行分析

准备动作:public class MyCat { public MyCat() { System.out.println("MyCat is loader by:" + this.getClass().getClassLoader()); }}public class MySample { public MySample() { System.out.println("MySample is loader by:" + this.getCl

2020-05-10 20:38:28 124

原创 十四、类的命名空间与卸载详解及jvisualvm使用

1、类的卸载当一个类被加载、连接、初始化后,他的生命周期就开始了。当代表该类的Class对象不再被引用时,即不可触及时,Class对象就会结束生命周期,该类在方法区的数据也会被卸载,从而结束类的生命周期。一个类何时结束生命周期,取决于代表他的Class对象何时结束生命周期。由java虚拟机自带的类加载器所加载的类,在虚拟机的生命周期中,始终不会被卸载。java虚拟机自带的类加载器包括根类加载器、扩展类加载器和系统类加载器。java虚拟机本身会始终引用这些类加载器,而这些类加载器则会始终引用他们所加载的

2020-05-10 19:16:18 131

原创 十三、自定义类加载器

工具类:public class User { public static int age = 13;}自定义类加载器:import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;public clas...

2020-05-10 12:14:49 127

原创 十二、ClassLoader文档分析

A class loader is an object that is responsible for loading classes. The class ClassLoader is an abstract class. Given the binary name of a class, a class loader should attempt to locate or generate d...

2020-05-08 00:28:09 126

原创 十一、不同的类加载器作用与加载动作分析

1、类加载器层级显示以下代码可以展示加载器的层级public class MyTest14 { public static void main(String[] args) { // 获得当前类的classloader ClassLoader classLoader = ClassLoader.getSystemClassLoader(); S...

2020-05-07 00:27:22 123

原创 十、初始化其他情况及总结

1、猜输出class Parent2 { static int a = 3; static { System.out.println("Parent2 static block"); }}class Child2 extends Parent2 { static int b = 4; static { System...

2020-05-06 23:50:08 114

原创 九、类加载器双亲委托机制

1、双亲委托机制在双亲委托机制中,各个加载器按照父子关系形成了树形结构(逻辑上的树形结构,并非继承关系),除了根类加载器之外,其余的类加载器都有且只有一个父加载器。双亲委托机制的工作过程:如果一个类加载器收到了类加载的请求,他首先不会自己去尝试加载这个类,而是把这个请求委托给父类加载器去完成,每一个层次的类加载器都是如此。因此所有的加载请求最终都应该传送到最顶层的根类加载器中。只有父类加载...

2020-05-05 15:20:15 93

原创 八、类加载器深入解析及重要特性剖析

1、类加载过程其中连接又分为三个阶段:验证、准备、解析。加载:就是把二进制形式的java类型读入到java虚拟机中验证:准备:为类的静态变量分配内存,设置默认值。但是在初始化之前,类变量都没有初始化为真正的初始值。解析:解析过程就是在类型的常量池中寻找类、接口、字段和方法的符号引用,把这些符号引用替换成直接引用初始化:为类变量赋予正确的初始值。类实例化:为新的对象分配内存,为实例...

2020-05-04 16:35:20 151

原创 七、接口初始化规则与类加载器准备阶段和初始化阶段的重要意义分析

注:这节课的例子不能说明这节课的结论。1、引例:判断接口有没有被初始化public class MyTest5 { public static void main(String[] args) { System.out.println(MyChild5.b); }}interface MyParent5 { int a = 5;}interf...

2020-05-04 12:03:09 2110

原创 六、编译期常量与运行期常量的区别及数组创建本质分析

1、编译期常量与运行期常量引例:判断MyParent3会不会初始化?import java.util.UUID;public class MyTest3 { public static void main(String[] args) { System.out.println(MyParent3.str); }}class MyParent3 { ...

2020-05-03 22:53:04 252 1

原创 五、常量的本质含义与反编译及助记符详解

1、关于加载的先后顺序问题引入:public class MyTest1 { public static void main(String[] args) { System.out.println(MyChild1.str); }}class MyParent1 { public static String str = "hello world";...

2020-05-03 19:32:15 190

原创 四、类的加载、连接与初始化过程详解

java类加载分为以下几个过程:java程序对类的使用方式可分为两种:主动使用被动使用所有的java虚拟机实现必须在每个类或接口被java程序“首次主动使用”时才初始化他们。(1、必须是首次 2、必须是主动使用)1、主动使用创建类的实例访问某个类或接口的静态变量,或者对该静态变量赋值(对于静态字段来说,只有直接定义了该字段的类才会被初始化,见例1)调用类的静态方法反射初...

2020-05-03 18:01:27 193

原创 三、类加载器深入解析与阶段分解

一、类加载在java代码中,类型的加载、连接与初始化过程都是在程序运行期间完成的。类型:指的是我们定义的一个class,一个interface,一个枚举等等,并不涉及到对象的概念。类型的加载:比较典型的一种场景:将已经编写好的、编译完成的类的class文件从磁盘上面加载到内存里面。连接:确定类与类之间的关系,并且对字节码进行一些处理(验证、校验等)。...

2020-05-03 16:21:56 98

原创 二、课程大纲分析及工具使用

一、课程大纲jvm介绍HotSpot虚拟机讲解:HotSpot是oracle公司推出的一个虚拟机,IBM也有自己实现的虚拟机。虚拟机有自己的实现规范,只有参照这个规范写一个虚拟机,能用即可。垃圾收集方式详解:java是自动垃圾回收,我们需要了解是怎么实现的:什么时候进行垃圾回收、垃圾回收及常见实现方式及各自特点垃圾收集算法详解垃圾收集器详解分代垃圾收集机制详解新生代讲解...

2020-05-03 15:40:00 107

原创 一、在jvm学习之前

一、jvm学习jvm学习不像一般的应用框架。一般的框架学完之后直接就可以测试应用,但是jvm偏理论,略显枯燥。本课程基于jdk8,主要讲解一些核心知识,忽略各个不同版本之间的细微差别。主要介绍一些常用的参数。...

2020-05-03 14:56:00 362

原创 清晨顿思

外部世界应该只是承载我思想观点的客体,应该以我为中心来评判大千世界,而不是让自己从属于这个大千世界。看别人的观点没有意思,发表自己的观点才有意思。看别人的观点只是从属于这个世界的纷扰,发表自己的观点才是专属于自己的对这个世界的解构。这个世界是割裂的,任何观点都一定有人骂,我应该主动去评论信息,然后去大千世界中求证。我自己平时最常使用的两个软件是b站和知乎,这两个也是我获取信息、被动接收观...

2020-04-25 10:51:45 103

原创 商城项目总结

一、前言b站上这个项目看了大概有两个月了,终于看完了。

2020-04-21 23:19:34 924

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除