java 异常机制的原理与应用
答:每当程序出现异常之后,如果程序没有进行相应的处理,则程序会出现中断现象。
实际上,产生了异常之后, JVM 会抛出一个异常类的实例化对象,如果此时使用了 try 语句
捕获的话,则可以进行异常的处理,否则,交给 JVM 进行处理。当 try 语句捕获异常之后,
将与 catch 语句的异常类型进行匹配,如果匹配成功则执行 catch 内的语句。简单的应用:
在所以 throws 语句的地方加入 try-catch 。标准应用: try-catch-finally-throw-throws 一起使用。
2. 垃圾回收机制的优点
答:释放无用的对象所占用的空间。方式:自动回收,手动回收。使用 System.gc(),实际上
调用 Runtime.getRuntime().gc()
3. Error 与 Exception 区别
答:Error 是 jvm 进行处理, 是 jvm 出错 exception 是可以由程序处理的,可以用 try-catch 捕
获的
4. final,finally,finallize
答: final 定义的变量的值不能改变,定义的方法不能被覆盖,定义的类不能被继承
finally 是异常的统一出口, finallize 是垃圾回收前的收尾工作,是 Object 类定义的
5. Anonymous Inner Class 是否可以 extends,是否可以 implements Interface
答:允许继承和实现,因为匿名内部类就是在抽象类和接口的基础上发展起来的
6. Static Nested Class 与 Inner Class 的区别
答:使用 Static 定义的 Class 就是外部类,可以通过外部类 . 内部类直接访问
而 Inner Class 是不能被外部访问的,只能通过外部类的实例再找到内部类实例。
7. HashMap and HashTable?
答:HashMap:1) released in jdk 1.2,new Class 2) 采用异步处理方式, 性能较高, 是非线程安全
的 3)允许 null
HashTable:1)released in jdk 1.0 ,old Class 2) 采用同步处理方式,性能低,是线程安全的 3)不
允许 null
8. assert代表什么?
答: asserts是 jdk 1.4 之后发布的新关键字,表示断言,即程序执行到某个地方肯定是预计
的值,一般开发很少使用。要使用 assert,必须加上 -ea 参数
9. gc 是什么?
答: gc 是 garbage collection ,垃圾回收,使用 gc 可以进行垃圾空间的释放
10. String s = new String("xyz") 产生了几个对象?
答:一个匿名对象 xyz,在栈空间内。一个 new 实例化的对象,在堆空间内。
11. sleep() and wait()?
答: sleep()是 Thread 类定义方法,表示线程的休眠,可以自动唤醒
wait() 方法是 Object 类定义的方法, 需要手动 notify() 和 notifyAll()//sleep() 不释放资源, wait()
释放资源
12. java 中存在 goto,但不能使用
评论0