摘要:
实例化前的作用 1.初始化前,也是Spring提供的一个扩展点:BeanPostProcessor.postProcessBeforeInitialization()。 2.利用初始化前,可以对进行了依赖注入的Bean进行处理。 使用示例 1.首先必须要添加@Component注解,因为处理器不加入 阅读全文
摘要:
意义 1.为什么需要自动注入? 需要自动注入的原因是基于控制反转的理念产生的,在IOC容器中,我把所有需要用的类变成Bean对象,当发现某个Bean需要用到我所拥有的其他Bean的时候,我就自动将Bean的实例赋予过去。 2.为什么现在使用自动注入的方式会被放弃? 具体原因是 容易调用无关的东西,不 阅读全文
摘要:
意义 1.这部分的代码看似很简洁,但是却便于扩展,而且对于增加功能也不用改动主体代码(策略模式,也是为什么要用设计模式的原因) 2.其次是为什么要有这一步,这一步针对的是 BeanDefinition 的处理,正如我们经常在类加上一些依赖注入或者其他的注解(这里便是为了让把这些注解封装成对象,塞入到 阅读全文
摘要:
作用 @DependsOn注解可以定义在类和方法上,意思是我这个组件要依赖于另一个组件,也就是说被依赖的组件会比该组件先注册到IOC容器中。 在哪里被解析 解析的地方在 ComponentScanAnnotationParser类#doScan方法 【可查看Spring基于注解的扫描底层流程】 代码 阅读全文
摘要:
代码部分 说明 1.hasInstantiationAwareBeanPostProcessors()方法说明 其实是判断 AbstractBeanFactory类的hasInstantiationAwareBeanPostProcessors中 是否标志有处理器( 5.3版本后其实是存放于Bean 阅读全文
摘要:
说明 意义 1.在Spring中,Bean的作用域可以通过scope属性来指定。 2.指定作用域的目的是 存储在此类单例bean的高速缓存中,并且对该命名bean的所有后续请求和引用都返回该高速缓存的对象。(本身的理念就是以空间换时间的思维,创建步骤繁杂,而且频繁用到,我就存起来,下次用的时候就不用 阅读全文
摘要:
题目: 思路: 本题难点:由于是整型矩阵,所以存在5*5,4*5,4*6,这种,可能出现还剩下一列或者一行或者单个的情况。 代码示例: import java.util.Arrays; public class Solution2 { public static void main(String[] 阅读全文
摘要:
题目: 思路: 本题难点:第一,三个数相乘有可能会达到数值的极限,应用long,其次,结果为两种,最大的三个数相乘或者最大的正数与最小的两个负数相乘。 代码示例: public class Solution2 { public static void main(String[] args) { in 阅读全文
摘要:
题目: 思路: 本题难点:第一,不知道链条有多大,最合起来的数可能会远大于long与int能存的极限。 思路一,将链表反转,链条反转的链表从个位数开始相加,然后取余数,不断叠成新的链表。 思路二,将链表的数据取出组合成字符串,然后利用大数相加的方法,取得相加的和,然后根据新的和的字符串生成新的链表。 阅读全文
摘要:
题目: 思路: 如图: 思路一,利用动态规划的方法,列出全部结果来寻找规律,我们发现45度下滑,如果连续相等的话我们可以做递加,不但可以得出最长的字符串数量还可以知道字符的位置。 思路二,这是我看别人提供的一种思路,通过将一个字符串截取部分,然后判断是否在另一个字符串中,然后不断偏移直至全部比对完, 阅读全文
摘要:
题目: 思路: 由于这是一个链表,所以我们一般只能获取到一个头结点,然而其他信息我们不确定。所以可以采用双指针的方法。 思路一,利用一个指针获取整个链表元素的总数,利用总数减去目标数,所以我们可以确定要删除的位置。 思路二,利用一个指针先走出目标数目,然后两个指针一起走,那么先走的指针走完时,第二个 阅读全文
摘要:
题目: 思路: 首先画个图出来,假设有两个指针指向头结点 p1与p2,那么当p1走一步,而p2走两步,如果存在圆,那么必然会出现,p1与p2同时落在C处(即重合点)。故此时链表有环。 其次,题目要求我们取出入口节点,由上可知, 假设 链表头到环入口AB长度为——a, 环入口到相遇点BC长度为——b, 阅读全文
摘要:
题目: 思路: 首先我们要确定进行转换的数的可能性为三种,即负数,正数与0; 其次十进制以上的转化情况。例:11进制中,10用A表示, 然后最后考虑到的是获取进制数的顺序 代码示例: import java.util.Stack; public class Solution4 { public st 阅读全文
摘要:
题目: 思路: 首先明确了这个可以在一次循环中解决即时间复杂度为O(n) 其次,在循环中,我们应能知道起始的位置,然后终止于哪个位置,当碰到终止的时候必然是元素为已经纳入我们统计中的元素。然后我们要如何确认这个元素在哪个位置,并且把一些废弃的元素丢弃掉,重新到下一次统计,直至目标数组遍历完全。 所以 阅读全文
摘要:
原理:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。 图解: 桶排序: 计数排序: 基数排序: 代码示例: import java.util.ArrayList; import java.util.Arrays; import ja 阅读全文