首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

java与C在底层具体是怎么办数组越界的

2013-11-18 
java与C在底层具体是怎么处理数组越界的?C语言并不检测数组越界,可直接对内存中的数据进行覆盖。但java却会

java与C在底层具体是怎么处理数组越界的?
C语言并不检测数组越界,可直接对内存中的数据进行覆盖。但java却会抛出异常,在程序和内存中间是谁在检测数组越界的,还有是怎么检测的。跪求大师详解 java 内存 c语言 异常
[解决办法]
1. ArrayIndexOutOfBoundsException是运行时异常, 编译器是不会知道的, 只有运行时jvm才能捕获到。jvm为何能捕获到,数组在运行时是由jvm创建的一个东西,是用机器指令创建的。。。 类似于汇编指令, 先根据你声明的长度分别为每个元素赋值,压栈, 而对于数组的长度也是由一个特定的指令来得到的, 也会压到栈中。这就是你为什么能用a.length得到数组长度的原因, 并且jvm在读写数组元素时都会有与数组长度比较的指令, 如果越界则抛出异常

热点排行