Java 是否有缓冲区溢出?

2022-08-31 10:09:15

Java 是否有缓冲区溢出?如果是,你能给我一些场景吗?


答案 1

由于 Java 字符串基于 char 数组,并且 Java 会自动检查数组边界,因此缓冲区溢出仅在异常情况下才有可能:

  1. 如果通过 JNI 调用本机代码
  2. 在JVM本身(通常用C++编写)
  3. 解释器或 JIT 编译器无法正常工作(Java 字节码强制边界检查)

答案 2

Java 和 C# 等托管语言没有这些问题,但实际运行代码的特定虚拟机(JVM/CLR/等)可能会出现这些问题。


推荐