自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 资源 (1)
  • 收藏
  • 关注

原创 $1.6、线程上下文类加载器揭秘及作用

在前面5篇文章介绍了类加载器和对应的双亲委托模式后,我们还需要了解“破坏”双亲模式的特例,而这种特例在很多SPI(服务提供接口)架构中有着广泛的应用,甚至说 ,如果不破坏双亲模式,Java的很多功能都是无法实现的。以jdbc的模式进行举例:java对jdbc的规范中,只是定义了Driver(驱动)、Connection(连接)等接口,具体的实现是由各自的数据库厂商决定的,比如mysql厂商的驱...

2019-12-18 14:32:49 519

原创 $1.5、加载器的命名空间详解及双亲加载器总结

关于加载器的命名空间,我们首先介绍何为命名空间以及它与双亲委托模式之间的关联。命名空间定义:该类加载器(定义类加载器)和它父类加载器所加载的类构成的先介绍几个结论,后续我们通过代码来进行说明每个类加载器都有自己的命名空间,各自命名空间里的类是互相不可见的。 子类加载器命名空间可以看见父类加载器命名空间的类,但父类加载器空间里的类不能看到下面子类加载器所加载的类。如果访问会报Class...

2019-12-16 23:52:05 144

原创 $1.3、自定义类加载器详解与双亲模式分析

上一篇加载器与双亲委托介绍对于类加载器和双亲有了大致的了解后,下面我们通过自定义类加载器加深对双亲机制的理解和介绍 ClassLoader抽象类中一些重要的方法。自定义类加载器所有自定义加载器都要继承父类:ClassLoaderpublic class MyParentClassLoader extends ClassLoader { public String cl...

2019-12-13 10:20:26 249 1

原创 总结1

1、jmm内存模型可见性-volatilevolatile可以保证可见性,实现原理是每个线程都从主线程中拷贝变量到自己的工作内存,当线程修改了变量值写回主内存中,其它线程马上也能获取到内存中的新值。这种保证内存可见性是通过内存屏障来实现的,具体表现为before,after等cpu内核指令完成的。扩展:volatile的作用: ①保证线程间内存可见 ②不保证原子性 ③ 防止指令重排序...

2020-04-29 20:00:54 221

原创 总结2

1、kafka发送消息为push推模式,消费消息为pull拉模式(优点是可以批量消费,提高效率) broker:一个kafka实例 partions分区:topic消息均匀分布到不同的分区上,用于存储消息,本身就是一个文件夹(segment),里面的文件是index和log,log文件存放消息. 集群中的角色(broker的主节点叫Controller,分区主节点的角色Leader,其它...

2020-04-21 15:27:08 284

原创 SSM架构流程整理

mybaties:总体上来说分为解析,执行两个部分,主线是:程序的目的是获取SqlSession,通过工厂SqlSessionFctoryBuilder产生,对应的构造方法里面一个配置对象(Configuration),就是解析配置文件的结果。第一步就是解析,使用的是XmlConfigBuilder去解析,得到Configuration配置对象,然后传递给DefaultSqlSessio...

2020-04-02 16:30:19 286

转载 java8中reduce方法在Stream和Collector中的使用和区别

本为转载:https://blog.csdn.net/icarusliu/article/details/79504602

2020-02-27 14:46:28 396

原创 lambda表达式的方法引用详解

背景lambda表达式现在来说,已经在很多语言中出现过了,语法简单明了,功能强大,短短一行代码却能抵上jdk1.8之前的好几行,一般的lambda表达式写法资料已经很多了,本文不做介绍,今天我们要讨论的是其中一种读起来比较费解的表达式:::就是两个冒号的表达式,String::new,System.out::println...等等,这种写起来很高大上,但是什么情况下可以使用这种表达式,我...

2020-02-21 17:48:55 342

原创 $2.5、动态代理字节码层面的剖析

动态代理我们都使用过,很多场景下是对被代理类的方法进行增强,那么它反映在字节码中是什么样的呢?先实现一个动态代理,实现InvocationHandler和代理的接口类如下:public interface Subject { void test();}实现的类:public class RealSubject implements Subject { @Ov...

2020-01-02 10:40:57 307 1

原创 $2.4、方法在字节码中的调用形式及重载和复写的区别

方法在字节码中的调用指令,主要分为5种:1、invokeinterface:执行接口中的方法,该指令是运行时的指令,具体去找实现类对应的方法2、invokestatic:执行静态方法3、invokespecial:调用私有方法,父类方法(父类的普通方法、父类构造方法),构造方法调用的指令,是编译时就可以确定的调用关系4、invokevirual:虚方法,需要在运行时才确定的执行指令...

2019-12-30 18:45:53 164

原创 $2.3、我就是反编译器,走进字节码世界

按照我们上篇生成的字节码文件解析与组成部分,现在我们要挨个读取里面的内容,真正走进字节码文件的世界模数:四个字节(1个字节占8位,其中16进制刚好4位代表,因此2个16进制就是代表1个字节)CAFE BABE,Java之父定义的固定值,没有啥好说的。版本号:00 00 00 34,代表的版本号就是52,其中次版本号没有,JDK1.8对应的主版本号就是52,JDK1.7就是51,依次递减...

2019-12-21 15:02:51 142

原创 $2.2、java字节码文件的组成与实例详解

java语言号称“一处编译,处处运行”,它能“打出”这样的广告,主要是因为两点:1、它运行在虚拟机环境里,不管哪种操作系统,只要安装了jdk的运行环境就行;2、我们今天的主角-字节码文件,jvm提供了字节码规范,它可以解析字节码文件,因此只要符合字节码的语法,那么在jvm中都是能运行,比如现在的scala,Groovy,Kotlin等都是实现了jvm字节码规范的语言。首先按照惯例,我们简单写一...

2019-12-21 14:57:42 249

原创 $2.1、java字节码规范信息

1、常量池中14种数据类型结构(图表显示11种是因为jdk1.7之后又增加了三种,支持动态扩展有关的常量池信息)2、字节码文件的整体组成结构3、java访问属性标记4、字段信息描述符5、字段表的访问信息7、方法表的组成结构方法的访问权限8、如果方法中的attribute是code,即代表方法的描述进入code结构中,对应的code结构如下:...

2019-12-21 10:47:12 373

原创 $1.4、复杂类加载器(加载过程中其他的对象引用)详解

介绍完基本的类加载器后,我们再扩展一点,如果在加载过程中,还使用到了其他对象的引用,那我们加载是怎样进行的呢?上代码(用我们上篇文字所自定义的加载器,然后去加载MySample和MyCat类,因MySample里面主动创建了MyCat对象,因此对MySampl的加载过程中,也产生了对MyCat的对象引用),最后我们看输出结果public class MySample { /* s...

2019-12-16 23:48:36 265 1

原创 $1.1、类加载器生命周期及初始化详解

类的加载是指将class字节码文件加载到虚拟机内存中,总共分为5个阶段:1、加载 将字节码文件从外部存储系统(本地磁盘,文件系统,网络)加载到虚拟机内存的过程,这是进入虚拟机的第一步。2、连接 连接是整个加载器最耗时的阶段,连接又可以细分为三个阶段: 2.1、验证:对加载进来的class字节码进行格式,语法等合法性验证 ...

2019-12-13 10:32:47 159

原创 $1.2、jvm类加载器分类与双亲委托机制介绍

前沿类加载器是jvm浩瀚领域中,程序员接触的比较多的一块,在有需要的场景下,我们还会自定义类的加载器,今天我们就系统的了解下类的加载器和对应的双亲委托机制。类的加载器首先开门见山,加载器(classloader)的目的就是将class字节码文件从资源地(包括本地存储系统,网络,zip压缩包等)读取到jvm虚拟机内存中,虚拟机规范并未指明需要从哪里获取class文件。ClassLoa...

2019-12-13 09:46:39 211

win系统清理bat工具

系统清理小工具,适用于wins系统,可以帮助清理缓存文件。

2019-02-14

空空如也

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

TA关注的人

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