Hi,我是Mic 今天给大家分享一道阿里一面的面试题. 这道题目比较基础,但是确难倒了很多人. 关于"受检异常和非受检异常的理解" 我们来看看普通人和高手的回答. 普通人: 嗯....... 运行异常不需要捕获的其他异常是需要强制捕获的,像一些IO异常. 高手: 好的. 所谓的受检异常,表示在编译的时候强制检查的异常,这种异常需要显示的通过try/catch来捕捉,或者通过throws抛出去,否则从程序无法通过编译. 而非受检异常,表示在编译器可以不需要强制检查的异常,这种异常不需要显…
Java的可检测异常和非检测异常泾渭分明.可检测异常经编译器验证,对于声明抛出异常的任何方法,编译器将强制执行处理或声明规则. 非检测异常不遵循处理或声明规则.在产生此类异常时,不一定非要采取任何适当操作,编译器不会检查是否已解决了这样一个异常.有两个主要类定义非检测异常:RuntimeException和Error. 为什么Error子类属于非检测异常?这是因为无法预知它们的产生时间.若Java应用程序内存不足,则随时可能出现OutOfMemoryError:起因一般不是应用程序中的特殊调用,…
Java把所有的非正常情况分为两种:异常(Exception)和错误(Error),它们都继承Throwable父类. Java的异常(Exception和Error)分为检查异常和非检查的异常. 其中根据Exception异常进行分类,可分为运行时异常和非运行时异常. 检查异常: 就是编译器要求你必须处理的异常.比如我们在编程某个文件的读于写时,编译器要求你必须要对某段代码try....catch... 或者 throws exception,这就是检查异常,简单的来说,你代码还没有运行,编码…
受检异常和非受检异常(运行时异常)举例 RuntimeException(即非受检异常): RuntimeException在默认情况下会得到自动处理,所以通常用不着捕获RuntimeException.RuntimeException是那些可能在Java虚拟机正常运行期间抛出的异常的超类,可能在执行方法期间抛出但未被捕获的RuntimeException的任何子类都无需在throws子句中进行声明. java.lang.ArithmeticException java.lang.ArraySt…
Hi,大家好,我是Mic 一个工作4年的粉丝,投了很多简历 好不容易接到一个互联网公司的面试邀约. 在面试第一轮就被干掉了,原因是对主流互联网技术理解太浅了. 其中就有一个这样的问题:"简单说一下你对序列化和反序列化的理解" 下面看看普通人和高手的回答. 普通人: 序列化和反序列化就是说我要去把一个对象传输到网络上的其他的一个应用上一个情况下,就是我需要对这个对象做序列化. 然后想Java里面我们可以,我们需要对这个对象的序列化的话,我们需要去实现像Serializable这样一个接口…
个人见解 ,如果有问题 ,还希望大神们 指正 1. 非检查异常 又称运行时 异常 ,所有 继承自 RuntimeException 的异常都是 非检查异常  ,, 如果你不处理  会有 虚拟机 main  方法处理 2. 凡是 不继承自 RuntimeException 的异常都是 检查异常 (如 IO 异常) 3. 上层调用者必须对  检查 异常 做处理 : try_catch  或者 继续 throws 给上层处理 4.  为什么要有检查异常: 通常情况下 ,检查异常 并不是你的程序写的有问…
通常,Java的异常(包括Exception和Error)分为检查异常(checked exceptions)和非检查的异常(unchecked exceptions).其中根据Exception异常进行划分,可分为运行时异常和非运行时异常. What:什么是检查异常(checked exception)? 就是编译器要求你必须处置的异常.不知道你编程的时候有没有遇到过,你写的某段代码,编译器要求你必须要对这段代码try...catch,或者throws exception,如果你遇见过,没错,…
-- 转载自牛客网 是瑶瑶公主吖 Java 基础 40 语言特性 12 Q1:Java 语言的优点? ① 平台无关性,摆脱硬件束缚,"一次编写,到处运行". ② 相对安全的内存管理和访问机制,避免大部分内存泄漏和指针越界. ③ 热点代码检测和运行时编译及优化,使程序随运行时间增长获得更高性能. ④ 完善的应用程序接口,支持第三方类库. Q2:Java 如何实现平台无关? JVM: Java 编译器可生成与计算机体系结构无关的字节码指令,字节码文件不仅可以轻易地在任何机器上解释执行,还可…
首先理解一下受检异常与非受检异常: 异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机操作中可能遇到的异常,是一种常见的运行错误,只要程序设计的没有问题通常就不会发生.受检异常与程序的上下文环境有关,仍然可能因使用问题而引发.java编译器要求方法必须声明抛出可能发生的受检异常,但是并不要求抛出未被捕获的运行时异常. 转自https://blog.csdn.net/troubleshooter/article/details/78354757 受检异常为什么要转化为非受检异常:ht…
本文转载自:Java中会存在内存泄漏吗,请简单描述 会.java导致内存泄露的原因很明确:长生命周期的对象持有短生命周期对象的引用就很可能发生内存泄露,尽管短生命周期对象已经不再需要,但是因为长生命周期对象持有它的引用而导致不能被回收,这就是java中内存泄露的发生场景. 1.集合类,集合类仅仅有添加元素的方法,而没有相应的删除机制,导致内存被占用.这一点其实也不明确,这个集合类如果仅仅是局部变量,根本不会造成内存泄露,在方法栈退出后就没有引用了会被jvm正常回收.而如果这个集合类是全局性的变量…