编译出错和运行出错的区别

本文介绍Java编译时和运行时错误的区分。编译期将Java源代码编译成字节码文件,主要检查语法;运行期将字节码文件加载到内存由虚拟机执行,检查逻辑。编译期只产生内存分配指令,运行期真正分配内存。还列举了编译错误和运行错误的常见情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

要区分编译时错误和运行时错误, 先要明白什么是编译什么是运行

首先来看这张图

首先来看这张图

  1. 编译期就是将我们写的java源代码交给编译器执行的过程, 起翻译的作用. 主要是对java源代码的语法进行检查, 如果没有语法错误, 就将源代码编译成字节码文件(.class文件)
  2. 运行期则是将字节码文件(.class)加载到内存中交给java虚拟机执行, 直到程序执行结束的过程, 该过程主要是对程序的逻辑错误进行检查, 如果没有逻辑错误, 程序的功能就可以实现, 输出结果

编译期和运行期的内存分配区别

  1. 编译期只是在程序的字节码文件中产生一些控制程序运行时分配内存的指令, 仅仅是知道内存分配的大小以及存放的位置, 不做具体的分配操作
  2. 运行期是对内存的真正的分配, 确定程序分配内存的大小, 以及这些变量该存放内存的位置

常见的错误

  1. 编译错误一般指语法错误或者很明显的逻辑错误, 如 : 缺少分号, 少写括号, 关键字书写错误等
  2. 运行错误是在没有编译错误的基础上运行后产生的逻辑错误, 如 : 空指针异常, 除数为0 , 越界访问等
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值