JVM面试题

2023-12-22 19:36:32

1. 什么是虚拟机栈

每个线程运行时需要的内存,称为虚拟机栈

2. 方法内的 局部变量是线程安全吗?

局部变量的话一般的线程安全的,但是也不一定,要看方法的形参啊返回值啊。
在这里插入图片描述
在这里插入图片描述
这里说明一下m3,当不同的线程调用m3方法时是线程安全的,但是当一个线程调用m3得到返回值,多个线程多返回值进行操作则是线程不安全的,返回的是一个引用,而且stringBuilder是可变类,多个线程对返回的引用修改时操作的都是同一个地址,那这个就作为共享变量被多个线程操作,所以不安全。

3. 直接内存

直接内存就是一块内存区域,文件操作啊性能较高,像我们在java程序中操作文件时,其实涉及到用户态和核心态的转换,对应的缓存也是要完成操作系统的缓存和堆内存的复制,直接内存是新开辟的一块缓存不需要两个缓存来回转换。
在这里插入图片描述

文章来源:https://blog.csdn.net/qq_51240148/article/details/135159092
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。