一.Java 类加载过程 Java 类加载需要经历一下 7 个过程: 1. 加载 加载是类加载的第一个过程,在这个阶段,将完成一下三件事情: 通过一个类的全限定名获取该类的二进制流。 将该二进制流中的静态存储结构转化为方法去运行时数据结 构。 在内存中生成该类的 Class 对象,作为该类的数据访问 ...
分类:
其他好文 时间:
2020-06-10 11:32:51
阅读次数:
53
/* 单例模式 饿汉式 :第一时间创建实例,类加载就马上创建 懒汉式 :需要才创建实例,延迟加载 单例模式会长期持有一个对象,不会释放 普通实例使用完后释放 单例可以只构造一次,提升性能(如果构造函数耗性能) 单例就是保证类型只有一个实例:计数器/数据库连接池 程序中某个对象,只有一个实例 */ / ...
被static修饰的变量和方法的特点: 1、被static修饰的变量和方法,从属于类,再类被加载时初始化,调用方式为:类名.变量名 、 类名.方法名 2、static修饰的变量存在于方法区中,如果变量值被改变,那么类的实例所引用的变量值也会改变 3、static修饰的方法不能使用super和this ...
分类:
编程语言 时间:
2020-06-09 14:44:38
阅读次数:
66
JVM 中类的装载是由类加载器(ClassLoader)和它的子类来实现的,Java 中的 类加载器是一个重要的 Java 运行时系统组件,它负责在运行时查找和装入类文件 中的类。 由于 Java 的跨平台性,经过编译的 Java 源程序并不是一个可执行程序,而是一 个或多个类文件。当 Java 程 ...
分类:
其他好文 时间:
2020-06-07 16:43:24
阅读次数:
70
前言 在学习java之前,我们学习了C语言。有了一定的编程基础,java学起来感觉并没有C语言那么艰难(其实C语言学起来也没那么难)。后来知道了C语言是面向过程的,是很多基层的语言,比如单片机(恰好这个学习也由单片机)。Java是面向对象编程的,而且有着强大的类库支持着,感觉很多都是可以直接拿来用的 ...
分类:
编程语言 时间:
2020-06-07 14:30:44
阅读次数:
65
@ 写博客哪有刷逼乎有意思 1 写博客哪有刷逼乎有意思 2 写博客哪有刷逼乎有意思 3 类的加载、 连接和初始化 系统可能在第一次使用某个类时加载该类, 也可能采用预加载机制来加载某个类。 JVM 和类 当调用 java 命令运行某个 Java 程序时, 该命令将会启动一个 Java 虚拟机进程, ...
分类:
编程语言 时间:
2020-06-06 09:13:40
阅读次数:
73
设计模式之单例模式 1. 概念 ? 所谓单例模式,就是采取一定的方法使得系统中只存在某个类的一个实例,并且该类只提供一个获取对象实例的方法(静态方法);比如Hibernate的SessionFactory 2.实现 1.静态常量/静态代码块方法(饿汉式) 类加载的时候就完成了实例化,不存在线程同步问 ...
分类:
其他好文 时间:
2020-06-05 23:00:22
阅读次数:
63
运行时数据区 class文件使用类加载子系统进行加载,经过加载、链接、初始化三个过程后进入方法区。接下来需要使用执行引擎进行执行并依赖于运行时数据区 如图所示,相同灰色为线程私有,绿色为多个线程共享的 线程是一个程序里的运行单元,jvm允许一个应用有多个线程并行执行,即多线程思想。每个线程独立包括程 ...
分类:
其他好文 时间:
2020-06-04 13:59:13
阅读次数:
85
1、@Import(AutoConfigurationPackages.Registrar.class) 初始SpringBoot 我们知道在SpringBoot 启动类上有一个@SpringBootApplication注解,配置类的加载就是从这里开始(源头),一起走起。 @SpringBootA ...
分类:
编程语言 时间:
2020-06-04 01:25:58
阅读次数:
89