Java语言与C语言相比,最大的特点是编程人员无需过多的关心Java的内存分配和回收,因为所有这一切,Java的虚拟机都帮我们实现了。JVM的内存管理,大大降低了开发人员对内存管理的要求,也不容易出现C语言中的内存泄漏和溢出。但一旦应用内存发生问题,也会导致程序员难以定位。所以对于Java程序员来说 ...
分类:
编程语言 时间:
2020-06-30 17:35:18
阅读次数:
101
(1) 基本概念 jvm是运行java代码的虚拟机,包括一套字节指令集,一组寄存器,一个栈,一个垃圾回收,堆和一个存储方法域,jvm是运行在操作系统之上的,它与硬件没有直接的交互 (2)运行程序 我们都知道java的源文件,也就是.java文件,可以通过编译器生成相应的.class文件,也就是字节码 ...
分类:
其他好文 时间:
2020-06-30 12:57:51
阅读次数:
54
垃圾回收(GC):是JVM中创建对象的内存分配以及销毁对象的内存回收的机制。 对象是否可回收: 1、对象引用计数法:根据对象的引用数量判断对象是否可回收 2、对象不可达分析法:根据对象是否可达判断对象是否可回收; 垃圾收集机制: 1、标记 - 清除: 根据对象是否可达判断对象是否可回收;然后进行标记 ...
分类:
编程语言 时间:
2020-06-29 09:29:10
阅读次数:
74
Java后端开发学习路线 编程基础 Java语言 语言基础 基础语法 面向对象 接口 容器 异常 泛型 反射 注解 I/O 图形化(如Swing) JVM 类加载机制 字节码执行机制 jvm内存模型 GC垃圾回收 jvm性能监控与故障定位 jvm调优 并发/多线程 并发编程基础 线程池 锁 并发容器 ...
分类:
编程语言 时间:
2020-06-28 18:20:44
阅读次数:
123
CLR GC是一种引用跟踪算法,大致步骤如下: 1、暂停进程中所有的线程; 2、标记阶段,遍历堆中的所有对象,标记为删除,然后检查所有活动根,如果有引用对象,就标记那个对象可达,否则不可达; 3、GC压缩阶段,对堆中可达对象压缩,使占用连续的内存; GC是基于代的垃圾回收算法,对象越新,生存期越短, ...
分类:
其他好文 时间:
2020-06-27 14:45:03
阅读次数:
62
理论+实战 构建完整JVM知识体系 对于Java开发而言,Java虚拟机是开发工作中必须要理解和掌握的知识内容,也是Java面试中面试官常会问到的考点。在本课程中,我将带你循序渐进的学习JVM:从源码到运行、类加载,再到内存分配和垃圾回收,以及JVM调优的技巧与实战。整个课程基于JDK13讲解,理论 ...
分类:
其他好文 时间:
2020-06-27 09:40:23
阅读次数:
396
.Net Core CLR 的GC分为两个部分,一个是GC的内存分配,另外一个是GC的垃圾回收。这里我们先讲一下垃圾回收。 一.垃圾回收的触发条件1.在C#代码中调用 GC.Collection();2.物理内存不足的情况下3.分配量超过分配阈值4.找不到可分配的内存空间在满足了以上四个条件中的任何 ...
分类:
Web程序 时间:
2020-06-27 09:31:35
阅读次数:
75
Golang一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。Golang提供了方便的安装包,支持Windows、Linux、Mac系统。 下载安装包 Golang的官网是https://golang.org/,如果官网打不开,可以访问https://golang.google.cn/这 ...
分类:
其他好文 时间:
2020-06-26 22:37:16
阅读次数:
107
垃圾回收(GC),主要关注三个点:如何进行回收,哪些内存需要回收,什么时候回收。 在上一个文章中介绍到了程序计数器,Java虚拟机栈,本地方法栈会随着线程生而生灭而灭,同时Java虚拟机栈中的栈帧会随着方法的进入和退出执行者入栈和出栈的操作。每一个栈帧分配多少内存在类结构确定的时候就已经确认(JIT ...
分类:
其他好文 时间:
2020-06-26 16:50:13
阅读次数:
60
静态对象无非就是比普通对象前多了一个static 例如 public xxx a = new xxx(); 普通对象 public static xxx a = new xxx(); 静态对象 在静态对象所在的类被第一次使用的时候,静态对象就被创建了 反之 不使用就永不被创建 例如 public c ...
分类:
其他好文 时间:
2020-06-26 14:44:40
阅读次数:
39