文章分类 - java知识进阶
摘要:jvm堆溢出和栈溢出 一、jvm堆溢出 1、介绍 在jvm运行java程序时,如果程序运行所需要的内存大于系统的堆最大内存(-Xmx),就会出现堆溢出问题。 2、案例 // 介绍:执行该段代码需要大于10m内存空间 public class HeadOverflow { public static
阅读全文
摘要:类加载器 类加载类是jvm的一部分 底层是用c语言实现的,jvm是由c++和c语言写的 由于jvm有公开标准,所以Jvm有多种实现,使用的语言不止有C++。 常用的Hotspot JVM是C++实现的,此外还有一些其他的jvm,这里有详细介绍和使用的语言等。 例子
阅读全文
摘要:我们为什么需要序列化呢?或者说什么情况下需要用到序列化呢?或者说如果没有序列化的话,哪些场景是我们处理不了的呢? a)当你想把的内存中的对象保存到一个文件中或者数据库中时候; 第一种情况是:一般情况下Java对象的声明周期都比Java虚拟机的要短,实际应用中我们希望在JVM停止运行之后能够持久化指定
阅读全文
摘要:jvm虚拟机规范官方文档https://docs.oracle.com/javase/specs/jvms/se8/html/index.html 反编译 返编译后的字节码指令表示。解释官方文档 由此可以看出,一句命令被拆成多个字节码指令,不具有原子性。所以有线程安全性问题(方法中调用全局变量时)
阅读全文
摘要:https://blog.csdn.net/qq_36314960/article/details/79923581?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-
阅读全文
摘要:https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-2.html#jvms-2.5 jvm运行class文件 class文件中的内容放到jvm的不同地方(数据区) class文件中到底有多少种数据类型? 对象,常量,静态变量,成员变量,方法
阅读全文
摘要:一、static、final、abstract三者的使用场景与注意事项 static关键字可用于修饰成员变量和成员函数,想要实现对象中的共性数据的对象共享,可以将这个数据进行静态修饰,被静态修饰的成员可以直接被类名调用,静态随着类的加载而加载,而且优先于对象存在。静态方法只能访问静态成员(静态方法和
阅读全文
摘要:new的解释 java里的new的英文意思就是"新的"的意思。在JAVA里就是创建一个新的实例,或者说一个新的对象,一个普通类在没有实例化之前,就是new之前,它的属性,方法等等在内存中都是不存在的。只有使用new了以后,这个类的一些东西在内存中才会真的存在,也就是说只有new了之后,这个类才能用。
阅读全文
摘要:一、什么是反射机制? 反射的官方定义是这样的:在运行状态中,对于任意的一个类,都能够知道这个类的所有属性和方法,对任意一个对象都能够通过反射机制调用一个类的任意方法,这种动态获取类信息及动态调用类对象方法的功能称为java的反射机制。 讲的通俗一点的话就是,对于jvm来说,.java文件必须要先编译
阅读全文
摘要:如果能确认某个加锁的对象不会逃逸出局部作用域,就可以进行锁删除。这意味着这个对象同时只可能被一个线程访问,因此也就没有必要防止其它线程对它进行访问了。这样的话这个锁就是可以删除的。这个便叫做锁消除,本文是JVM实现机制的系列文章,这也正是今天要讲的主题。 众所周知,java.lang.StringB
阅读全文

浙公网安备 33010602011771号