public class ExceptionTest{ public void doSomething() throws ArithmeticException{ System.out.PRintln("do something"); } public static void main(String[] arge){ ExceptionTest test = new ExceptionTest(); test.doSomething(); } }是否可以编译通过?可以编译通过,因为ArithmeticExcetpion运行时异常,所以不用显示的try catch。
java 中异常分为两类:
1,checked exception
(1)继续抛出,消极做法,直到抛到JVM
(2)try...catch
2,unchecked exception (runtime exception)
------------------------------------------------------------------
一个类的声明可否既是abstract的有是final的?为什么?
不能。
abstract要求必须被继承,才可以实例化,而final则要求不能被继承,互相矛盾,所以一个类的声明不能同时用abstract和final两个修饰符。
一个抽象类里不一定包含抽象方法。
但是一个类里有抽象方法,则必须是抽象类。
为什么对于一个public类型的终态的成员变量,一般都要声明为static的?
public static final String s = "abc";
节省内存。
-------------------------------------------------------------------
String str = new String("abc");String str2 = new String("abc");System.out.println(str == str2);System.out.println(str.equals(str2));输出:false
true
----
Object object = new Object();Object object2 = new Object();System.out.println(object == object2);System.out.println(object.equals(object2));输出:false
false
由于Object类里 equals 方法为 this == ojb 所以返回false
---------------
class Person{ String name; public Person(String name){ this.name = name; } }Person p1 = new Person("zhangsan");person p2 = new Person("zhangsan");System.out.println(p1 == p2);System.out.println(p1.equals(p2));输出:
false
false
新闻热点
疑难解答