当程序主动使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载、连接、初始化3个步骤来对该类进行初始化。如果没有意外,JVM将会连续完成3个步骤,所以有时也把这个3个步骤统称为类加载或类初始化。 一、类加载过程1.加载 加载指的是将类的class文件读入到内存,并为之创建一个java.lan ...
分类:
编程语言 时间:
2020-07-17 11:39:42
阅读次数:
65
声明:本文摘抄自:https://blog.csdn.net/u010349169/column/info/jvm-principle 作为Java程序猿,我们知道,我们写好的.java 源代码,最后会被Java编译器编译成后缀为.class的文件,该类型的文件是由字节组成的文件,又叫字节码文件。那 ...
分类:
其他好文 时间:
2020-07-17 11:32:30
阅读次数:
66
反射机制的应用和获得反射对象 Java反射优点和缺点 优点 可以实现动态创建对象和编译,体现出很大的灵活性 缺点 对性能有影响。使用反射基本上是一种解释操作,我们可以告诉JVM,我们希望做什么并且它满足我们的要求。这类操作总是慢于直接执行相同的操作。 反射相关的主要API java.lang.Cla ...
分类:
其他好文 时间:
2020-07-17 01:22:24
阅读次数:
108
IntelliJ IDEA 启动一个之前运行正常的项目失败,报错是: java.lang.OutOfMemoryError : GC overhead limit exceeded 百度了一下,说是 IntelliJ IDEA 设置的内存太小,需要设置大一点。修改完成后,果然可以运行了,这里记录一下 ...
分类:
编程语言 时间:
2020-07-16 21:48:15
阅读次数:
310
大数据时代随之而来的就是并发问题。Java开发本身提供了关于锁的操作。我们知道的有Synchronized。 这个是JVM层面的锁。操作简单 Lock的由来 因为Synchronized简单所以不可控制,或者说不是很灵活。Synchronized是已块进行执行加锁的。这个时候我们需要通过Lock进行 ...
分类:
编程语言 时间:
2020-07-16 11:46:11
阅读次数:
56
简介 JVM在运行的时候会对class文件进行加载,链接和初始化的过程。class文件中定义的常量池在JVM加载之后会发生什么神奇的变化呢?快来看一看吧。 class文件中的常量池 之前我们在讲class文件的结构时,提到了每个class文件都有一个常量池,常量池中存了些什么东西呢? 字符串常量,类 ...
分类:
其他好文 时间:
2020-07-16 11:44:07
阅读次数:
41
java基础知识总结(一) 1.java准备 JVM(Java Virtual Machine): Java虚拟机,用于保证Java跨平台的特性; JRE(Java Runtime Environment):java运行环境,包括java+jvm的核心类库 JDK(Java Development ...
分类:
编程语言 时间:
2020-07-15 23:59:58
阅读次数:
94
@Autowired与@Resource的区别 @RequestMapping 作用 ThreadLocal与 synchronized @Required 作用 jvm内存模型-常量存放位置 oracle merge into oracle 游标 mybatis SQLSessionFactory ...
分类:
编程语言 时间:
2020-07-15 16:00:11
阅读次数:
77
乘风破浪会有时,直挂云帆济沧海,高考的同学们加油! 面试官:你不是精通 Java 并发吗?从基础的 Java 线程生命周期开始讲讲吧。 好的,面试官。吧啦啦啦... 如果要说 Java 线程的生命周期的话,那我觉得就要先说说操作系统的线程生命周期 因为 JVM 是跑在操作系统上面的嘛,所以是绕不过去 ...
分类:
编程语言 时间:
2020-07-15 15:41:06
阅读次数:
64
最近几次面试总是遇到这个问题,因此在这里我特意将这个总结一下: Sychronized 和 lock的区别1.首先synchronized是java内置关键字,在jvm层面, Lock是个java提供的一个接口;2.synchronized无法判断是否获取锁的状态,Lock可以判断是否获取到锁;3. ...
分类:
编程语言 时间:
2020-07-15 15:37:16
阅读次数:
118