![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 78
麦田里的守望者_zhg
如果有人碰到别人在穿越麦田,我一定会抓住他...
展开
-
Java中的抽象类和接口的区别
什么是抽象类,抽象类和接口的区别?原创 2022-10-01 15:46:54 · 579 阅读 · 0 评论 -
JVM中的直接内存
1 定义直接内存并不属于JVM的内存结构,它是物理机的内存,但是JVM虚拟机可以调用该部分内存。直接内存的使用:常见于NIO,用于数据缓冲区分配回收的代价较高,但是速度很快不收JVM内存回收管理2 正常IO读取从上图的结构图中,我们可以看到,当java程序需要读取文件时,首先会在java堆内存中new一个缓冲区,然后系统内存从磁盘中读取文件,再然后在将系统缓冲区中的字节流...原创 2020-04-19 21:40:54 · 2833 阅读 · 0 评论 -
Java字节码指令含义解释与指令查询
1 反编译获得java字节码信息首先看一段java源代码,然后编译后产生了一个.class文件,使用命令:javap -v xxx.class将其反编译。public class Code { public static void main(String[] args) { int i = 0; int x = 0; while(i &l...原创 2020-04-19 21:39:47 · 1362 阅读 · 0 评论 -
JVM面试题以及字节码讲解
0 前言关于java字节码指令的含义,可以参考这篇博客:Java字节码指令含义解释与指令查询1 try…catch…finally1.1 catch1.1.1 catch单个异常查看相应的java代码:public class FinallyDemo { public static void main(String[] args) { int i = 10; ...原创 2020-04-19 21:39:04 · 277 阅读 · 0 评论 -
Java线程安全的集合
1 线程安全的集合Vector为什么Vecter是线程安全的呢?查看源代码:从上面的代码可以看到,每个方法都加上了synchronized关键字,所以它是线程安全的。但是因为它的所有方式都加上了synchronized关键字,那么无论你是否需要对其进行多线程访问时,它都会对其进行锁定,执行效率会很低。现在已经弃用。HashTableHashTable和Vector类似,都是在每...原创 2020-04-19 21:37:49 · 1530 阅读 · 0 评论 -
什么是内存泄漏?
1 内存泄漏的定义内存泄漏(Memory leak)是在计算机科学中,由于疏忽或错误造成程序未能释放已经不再使用的内存。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,导致在释放该段内存之前就失去了对该段内存的控制,从而造成了内存的浪费。内存泄漏通常情况下只能由获得程序源代码的程序员才能分析出来。2 内存泄漏导致的后果内存泄漏会因为减少可用内存的数量从而降低...原创 2020-04-19 21:37:13 · 9143 阅读 · 0 评论 -
JVM的内存结构简介
1 JVM结构图2 栈内存栈内存是由编译器自动分配的内存。栈内存在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。每个java程序线程运行时,JVM都会给该java线程分配一个java栈,不...原创 2020-04-19 21:36:01 · 443 阅读 · 0 评论