编译是报错和运行是报错有和区别?

bobo364 2009-11-25 11:00:02
1.ArrayList<ObjectOne>list=new ArrayList<ObjectOne>();
2.list.Add(new ObjectOne());
3.list.Add(new ObjectOne());
4.list.Add(new ObjectOne());
5.Collections.sort(list);
6.class ObjectOne{
7. private int x=0;
8. private int y=0;

9.}

第5行有错,我认为是因为Collections是个接口,不能直接使用,但题目说是第五行编译是报错,但编译是报错和运行是报错有和区别?如何判断代码段中的编译是报错和运行是报错?谢谢
...全文
76 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
gao11811 2009-11-25
  • 打赏
  • 举报
回复
异常分为2类,运行时异常和非运行异常,前者不可jvm不可预见,可能发生,后者lvm能预见,必然发生
比如
int x=1;
int y;该值再运行的时候从外部获得
double z = x/y;
此时编译能通过,但是运行的时候如果输入y=0,则出错,这种错误就是运行时异常
但是程序员是可以预见的,所以可以提前捕获处理
amdgaming 2009-11-25
  • 打赏
  • 举报
回复

编译 出错 说明你的程序 肯定 不合乎 java语法规则

还有一个 是 异常 ,跟这个不是一个东西

一种是非运行异常<必须捕捉或抛出>,一种是运行时异常<可以不处理>


霜之哀伤 2009-11-25
  • 打赏
  • 举报
回复
编译是 javac ...
运行是 java ...
这点区别么?
bayougeng 2009-11-25
  • 打赏
  • 举报
回复
哦,明白了,如果你的ObjectOne没有实现Comparable接口,就会报错的。
ScAREcrOw_ss 2009-11-25
  • 打赏
  • 举报
回复
public class Collections extends Object{}
bayougeng 2009-11-25
  • 打赏
  • 举报
回复
Collection是接口。
Collections是类。sort是静态方法,你这么写是对的。

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧