最新 最热

JAVA虚拟机与Android虚拟机的区别

1.JAVA虚拟机运行的是JAVA字节码,Dalvik虚拟机运行的是Dalvik字节码 java虚拟机:JAVA->class文件 dalvik虚拟机:JAVA->class文件->Dalvik字节码->打包到dex中->DVM通过解释DEX文件来执行这些字节码。...

2022-06-22
1

Android插件化学习之路(三)之调用外部.dex文件中的代码

Java程序中,JVM虚拟机是通过类加载器ClassLoader加载.jar文件里面的类的。Android也类似,不过Android用的是Dalvik/ART虚拟机,不是JVM,也不能直接加载.jar文件,而是加载dex文件。...

2022-06-22
1

Android插件化学习之路(二)之ClassLoader完全解析

Java代码都是写在Class里面的,程序运行在虚拟机上时,虚拟机需要把需要的Class加载进来才能创建实例对象并工作,而完成这一个加载工作的角色就是ClassLoader。...

2022-06-22
1

Java String 构造方法中的内存分配

因为构造 String 对象有几种不同的方法,我们可以通过直接赋值的方式构造 String 对象,我们也可以通过 new 的方式来构造一个 String 对象。

2022-06-22
1

Java 字符串引用(String Interning)

我们都知道 Strings 在 Java 中是不可变的( immutable),因此 JVM 可以通过访问这个字符串的引用,或者我们可以借用指针的这个概念来访问 String 字符串。...

2022-06-22
1

Java 使用 char[] Array 还是 String 存储字符串

在本文章中,我们主要用来说明为什么应该使用 char[] 数组来存储密码,而不是使用 String 来存储密码。

2022-06-20
1

线程封闭与ThreadLocal

利用局部变量不被多个线程所共享的特性, 避免多线程的并发问题. 关于栈结构可以阅读JVM栈.

2022-06-20
1

JVM调优之NO FullGC

FullGC是对整个堆进行垃圾回收, 会引起STW(stop the world),影响整个服务的运行.

2022-06-20
1

代码执行过程中JVM栈区域的使用

栈是JVM内存区域中非常重要的一个区域, JVM会对每个线程创建一个栈, 在线程销毁时,释放栈空间.每个栈又是由多个栈帧组成.

2022-06-20
1

Java 对象在内存

1. Mark word: 记录线程,锁等对象状态,64位机占用8字节;32位机占用4字节; 当前主机是64位占8字节

2022-06-20
1