![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 64
cswhl
编码使人快乐
展开
-
JAVA动态代理源码分析
文章目录1.Proxy.newProxyInstance源码2.$Proxy0源码3.实验代码4.动态代理流程图1.Proxy.newProxyInstance源码Proxy的部分源码://Proxy类开始有这样的一个定义private final static Class[] constructorParams = { InvocationHandler.class };protected InvocationHandler h;protected Proxy(InvocationHandl原创 2021-08-08 14:35:50 · 297 阅读 · 0 评论 -
IoC容器初始化过程结构图
原创 2021-07-12 21:40:58 · 113 阅读 · 0 评论 -
IoC循环依赖流程图
1、循环依赖过程图2、循环依赖过程1、使用context.getBean(A.class),旨在获取容器内的单例A(若A不存在,就会走A这个Bean的创建流程),显然初次获取A是不存在的,因此走A的创建之路~2、实例化A(注意此处仅仅是实例化),并将它放进三级缓存(此时A已经实例化完成,已经可以被引用了)3、初始化A:@Autowired依赖注入B(此时需要去容器内获取B)4、为了完成依赖注入B,会通过getBean(B)去容器内找B。但此时B在容器内不存在,就走向B的创建之路~5、实例化B,原创 2021-07-11 17:34:26 · 350 阅读 · 0 评论 -
ioc容器加载过程
1、ioc容器的初始化过程1、实例化一个ApplicationContext对象2、解析 xml配置文件路径3、创建bean工厂4、创建bean定义,保存到beanDefinitonMap,用于后期的bean实例化5、调用bean工厂的后置处理器,可自定义修改bean定义invokeBeanFactoryPostProcessors(beanFactory)6、判断beanDefiniton是否符合生产标准(是不是抽象的,单例,懒加载)preInstantiateSingletons(原创 2021-07-09 00:52:22 · 1282 阅读 · 0 评论 -
HashMap使用及完整测试用例
文章目录1.常用方法2.超类Map的方法和属性3.测试用例及输出结果1.常用方法put(key, value))添加元素时,如果key已经存在,则返回旧value,并将新的value存到该key中;如果key不存在,则返回null当key=null时,并不会抛出异常,而是按照一个特殊的方法进行存储putIfAbsent(key,value):与put的区别:如果key存在且value不为null,则不会覆盖原有的valueget(key):key存在时返回对应value原创 2021-06-12 17:50:46 · 495 阅读 · 2 评论 -
JAVA 实例对象创建后的初始化过程
1.结论1.首先实例变量初始化和实例代码块初始化按照编码顺序来执行2.然后调用构造函数初始化实例化一个类的对象的过程是一个典型的递归过程:首先实例化Object类,再依次对以下各类进行实例化,直到完成对目标类的实例化。如果子类重写了父类的方法,父类构造函数中使用的便是子类重写的方法2.实验源码// 父类class Foo { { i = 99; // 代码块可以赋值其后定义的实例变量,但不能访问其后定义的实例变量 } int i = 1; Foo(原创 2021-06-10 16:02:22 · 415 阅读 · 0 评论 -
JAVA三个默认类加载器及相互关系
文章目录1. 什么是类加载器?2.AppClassLoader系统类加载器3.ExtClassLoader扩展类加载器4. BootstrapClassLoader启动类加载器5.加载器关系总结6.参考资料1. 什么是类加载器?虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”类加载器可以说是Java语言的一项创新,也是Java语言流行的重要原因之一,原创 2021-06-05 18:40:25 · 789 阅读 · 1 评论 -
java学习6:方法
重载方法使用同样的命名来定义不同的方法,只要参数不同(即签名不同)。Java编译器根据方法签名决定使用哪个方法:public class Main { public static void main(String[] args) { initData(100, 10); initData(3.14, 2.9); } // 整数类型 public static void initData(int x, int y) {原创 2021-01-03 22:47:25 · 95 阅读 · 0 评论 -
java学习5:类
1、 stdout、stdin、 stderrSystem.out:代表标准输出设备System.in: 代表标准输入设备Scanner input = new Scanner(System.in); // 创建Scanner类型对象,读取来自System.in的输入1、变量类型public class Variable{ static int allClicks=0; // 类变量 String str="hello world"; // 实例变量原创 2021-01-03 22:46:16 · 375 阅读 · 0 评论 -
java学习4:控制语句
条件语句if语句(同C/C++一样)有if、if…else…、if…else if…else…几种表达方式,statment只有一条语句时,可以不使用{}包括switch语句使用基本与C/C++一样,switch(表达式)的statment语句块必须用{}包括,表示式的结果必须是char、byte、short、int、String类型之一。和if语句对比1、多分支情况下,switch语句的运行效率比if要高: switch根据表达式值选择分支,只计算一次2、switch的case只能处理原创 2021-01-03 22:43:33 · 57 阅读 · 0 评论 -
java学习3:基础语法- 数据类型
1、类的定义Java是面向对象的强类型、静态类型语言。对象是由类产生,类使用关键字class定义。最外层公共类名需要与java文件名相同,否者会显示错误。如新建一个Main.java(源程序扩展名必须为.java)文件在其中定义类:public class Main { // 类名必须与Main.java的文件名相同 public static void main(String[] args) { // write your code here System.原创 2021-01-03 22:42:45 · 104 阅读 · 0 评论 -
Java学习2:创建Java project
创建全新 Java project1、设置Project SDK选择「Java」开发语言,另外预设「Project SDK」,已經自动设置为刚安裝的 Java SDK 1.8,若此处未自动指定,请指定到刚刚安裝 Java SDK 的路径。2、创建工程和文件设置project 名,及存储该project的路径使用java Class创建java文件参考官网创建Java工程史上最简单的 IntelliJ IDEA 教程judasnIntelliJ-IDEA-Tutorial.原创 2021-01-03 22:41:14 · 633 阅读 · 0 评论 -
Java学习1:基本概念及安装
1. 基本概念JVM, JRE and JDK是平台依赖,因为每个操作系统的都不一样。而Java语言是跨平台运行的,其实就是不同的操作系统,使用不同的JVM映射规则,让其与操作系统无关,完成了跨平台性JDK、JER、JVM关系图:1.1 SDK是什么?SDK全称为Software Dev Kit,即软件开发工具包,包括函数库、编译程序1.2 JDK是什么?JDK(Java Development Kit,Java开发工具包)是Sun Microsystems针对Java开发员的产品。J原创 2021-01-03 22:39:48 · 95 阅读 · 0 评论