Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

前言 在之前的文章里我们介绍了ASM字节码框架,使用它可以动态的修改class文件。但是仔细一想,你会发现仅仅ASM并不能真正用于生产,为什么?假如你已经有一个在运行的系统了,现在想要做一些字节码修改的动作,难道我们要去修改源代码吗?麻烦不说,而且污染了本来的系统。 所以我们就考虑,有没有什么方法,可以实现动态的无污染的织入,这就要引入今天的主角,Instrument了。 正文 Instru...
Java

写这篇文章是因为在开水团实习的时候的一个项目用到了这个技术,在这里重新做下总结和梳理。 什么是ASM ASM是一个字节码操作框架,使用它可以动态地修改class文件,或者让类被加载到虚拟机之前修改一些行为。 ASM有什么用 一言以蔽之,AOP. 说到AOP,可能会想到Spring的JDK动态代理Proxy或者CGLIB. 这里JDK动态代理底层使用反射实现,众所周知反射的性能比较差。...
Java

此文为我在备战秋招过程中对Java基础知识的启发式总结。 Java集合类,有Set, List, Queue. List底下有Vector, ArrayList, LinkedList. Vecotr底下还有个Stack. 讲一讲区别? 要说区别的话,Vector和ArrayList底层都是动态数组,不同的是Vector是线程安全的,因为它的方法有被**synchronized**关...
Java

经过供应链大佬的预面试,觉得自己在Spring这一块掌握地还是有些浅,痛定思痛,再次阅读源码。 在上一篇文章中我们已经分析了Spring IOC的一个大概过程,那么AOP又是在什么时候发生的呢?(这篇文章不讲动态代理,不讲切面切点通知,只讲代码流程。) 缘起 Spring AOP很关键的一步就是创建AOP 代理,那么这一动作是何时发生的呢? 众所周知(不知道也没关系),创建代理对象有一种...

更新于2020-10-01 从IoC的角度来说,spring是个容器,这个容器就是BeanFactory, 当然你说它是ApplicationContext也没有问题。容器是用来装东西的,装的东西就是我们定义的bean, 不过spring对它进行了封装,叫做BeanDefinition. 所以spring初始化的过程中,首先会做这么几件事情: 创建容器 创建beandefinition...

今天面试被问到了Spring, 被面试官吊捶,痛定思痛,决定重新开始学习源码! 首先Spring容器的顶层容器接口是什么?BeanFactory和ApplicationContext, 其中ApplicationContext加了一些上下文的支持,更为高级一点。 以ClassPathXmlApplicationContext为例,容器初始化的入口方法在哪里呢?refresh()方法。 r...

要谈Spring循环依赖,首先要知道Spring何时进行依赖注入。在以前的文章中我们有提到,IoC容器初始化时,要经历BeanDefinition的Resource定位,BeanDefinition的载入解析以及BeanDefinition在IoC容器中的注册,经过上述过程后,IoC容器的初始化就完成了,里面的BeanDefinition也有了,然后才发生依赖注入。而循环依赖就是在依赖注入过...

最近在看Spring中的AOP, 其实现主要是靠动态代理,所以打算先了解一下动态代理。 要说动态代理,需要先知道什么是代理,既然是动态代理,那么有没有静态代理,区别又在哪里。 何为代理,最直观的,我们fq时会用到小飞机或者其他的正向代理,说白了就是让代理代替我们去做某件事,在设计模式中专门有一个代理模式,我们可以先来看下代理模式的类图。 其中ProxyImage就是代理对象,代理了Re...
Java

最近阿里各部门已经陆续开始春招,自己也写完了项目最后的一部分,简历也刚刚完成了1.0版本,但是仍旧按捺不住躁动的内心。对于简历投递与面试,我是既期望又紧张,害怕它来又怕他不来。与其临渊羡鱼,不如退而结网,有躁动的功夫,不如温习一下知识点,正好最近一直在写项目, 知识点也快忘的差不多了。接下来打算结合自己的简历,从面试官的角度,对自己进行提问。 Java 集合类是否了解? Set L...
Java

最近自己做的项目中用到了redis, 特此记录一下redis的持久化相关内容。 redis虽说是内存数据库,但其实自己是有持久化的,它的持久化有两种方式:RDB持久化和AOF持久化。 RDB持久化会在一个特定的时间间隔进行一个快照文件的保存。 AOF持久化会记录每一个服务器收到的写操作。当服务重启时,这些操作记录会被重新执行从而重建数据。 从上面的描述可以发现一点,RDB的快照持久化方式并不...