前言 在学习java之前,我们学习了C语言。有了一定的编程基础,java学起来感觉并没有C语言那么艰难(其实C语言学起来也没那么难)。后来知道了C语言是面向过程的,是很多基层的语言,比如单片机(恰好这个学习也由单片机)。Java是面向对象编程的,而且有着强大的类库支持着,感觉很多都是可以直接拿来用的 ...
分类:
编程语言 时间:
2020-06-07 14:30:44
阅读次数:
65
前言 我们在IDE中编写的Java源代码被编译器编译成.class的字节码文件。然后由ClassLoader(类加载器)负责将这些.class文件加载到JVM中去执行。 ClassLoader Bootstrap ClassLoader(启动类加载器) C++实现 在java里无法获取 负责加载<J ...
分类:
其他好文 时间:
2020-06-02 10:58:15
阅读次数:
47
加载器从最底层开始往上的顺序 BootStrap ClassLoader:rt.jar,C++实现,虚拟机的一部分 Extention ClassLoader: 加载扩展的jar包 App ClassLoader:指定的classpath下面的jar包 Custom ClassLoader:自定义的 ...
分类:
其他好文 时间:
2020-06-02 10:56:13
阅读次数:
39
虚拟机类加载机制是把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。?需要注意的是Java语言与其他编译时需要进行连接工作的语言不通,它的连接过程是在程序运行期间完成的,这样会在类加载时稍微增加一些性能开销,但是却能为Java应用程序提供高度的灵活性。例如,如果编写一个使用接口的应用程序,可以等到运行时再指定其实际的实现。通过
分类:
编程语言 时间:
2020-06-01 10:28:39
阅读次数:
57
加载–>连接->初始化 父类静态变量、 父类静态代码块、 子类静态变量、 子类静态代码块、 父类非静态变量(父类实例成员变量)、 父类构造函数、 子类非静态变量(子类实例成员变量)、 子类构造函数。 1.静态代码块总是最先执行的; 2.子类和父类的静态代码块都执行完之后,在执行父类的非静态代码块和父 ...
分类:
其他好文 时间:
2020-06-01 00:28:53
阅读次数:
81
虚拟机类加载机制是把描述类的数据从 Class 文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的 Java 类型。 ? 需要注意的是 Java 语言与其他编译时需要进行连接工作的语言不通,它的连接过程是在程序运行期间完成的,这样会在类加载时稍微增加一些性能开销,但是 ...
分类:
编程语言 时间:
2020-05-31 16:01:26
阅读次数:
53
static 和final 的区别 static 修饰变量: 静态变量随着类加载时被完成初始化,内存中只有一个, 且JVM也只会为它分配一次内存,所有类共享静态变量 修饰方法: 在类加载器的时候就存在,不依赖任何实例; static方法必须实现,不能用 abstract修饰 修饰代码块: 在类加载完 ...
分类:
其他好文 时间:
2020-05-31 15:50:19
阅读次数:
81
JVM 深入理解JVM(6)——类加载器 Posted by Crow on August 21, 2017 虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流(即字节码)”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的 ...
分类:
其他好文 时间:
2020-05-30 21:56:40
阅读次数:
64
ClassLoader:类加载器。Java中所有的类都通过类加载器j进行加载,包含几种加载器: BootStrapClassLoader 使用C++编写属于Java的JVM层面。用于加载核心类库(lib)下的类库 ExtensionClassLoader 用于加载Java lib/ext下的类库 A ...
分类:
编程语言 时间:
2020-05-28 01:15:05
阅读次数:
97
一、AOP能解决什么问题 业务层每个service都要管理事务,在每个service中单独写事务,就会产生很多重复性的代码,而且修改事务时,需要修改源码,不利于维护。为此,把横向重复的代码,纵向抽取形成公共的功能。 横向重复,纵向抽取,这就是AOP思想。 二、AOP的原理 1、aop是什么 AOP( ...
分类:
编程语言 时间:
2020-05-27 20:54:09
阅读次数:
74