Java 关于classloader编译存储知识点

简单介绍一下java 是一种面向对象,简单性,可移植性、跨平台性的一种编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念……


重点!!!三步:

首先java的环境分为 jdk(jre+工具),是开发环境 ;

                                    jre (jvm+类库)运用环境;   jvm呢是为了保证java语言跨平台,负责对字节码解析执行。

其次便是他的编译操作,主要通过编译器javac进行验证,把java文件编译成.class文件,javaa执行.class文件。

准备进行为其分配内存。

那么存储常常分为几种呢:

1.:主要放对象的引用、局部变量(与方法共存亡、无默认值、方法中)

2.:主要存放对象、数组(有初始化、默认值、类中方法外)

            堆 的特点呢就是,他可以被线程共享,那么就导致了他的安全性降低!在jvm中只有一块。

3.方法区:存储的是类的静态成员,这个方法区也叫静态方法区(与类共存亡,随着类的加载而记载),通俗就是当你执行一个 任务,开始加载的时候,那么你定义了一个静态代码块,也进行加载了其中的内容,那么静态方法也有其优先级。

 关于静态的属性访问:

      (1)静态修饰的变量优先于其他变量

      (2)导致了他的生命周期太长,随着类的消失而消失

      (3)static不可以修饰类,但可以修饰内部类;不可以修饰成员方法、成员变量;不可以修饰构造函数

      (4)静态的方法只能调用静态的静态方法,静态变量;反而非静态的可以调用非静态的和静态的

4.寄存器,存储的是每一条执行指令(它是存储资源最快的一种方法)

5.本地方法区:例如JNI可以与本地程序进行交互,使用JNI来实现“本地方法”(native methods),并在JAVA程序中调用它们。你 可以使用JNI来实现“本地方法”(native methods),并在JAVA程序中调用它们。

猜你喜欢

转载自blog.csdn.net/LoverLeslie/article/details/83660367
今日推荐