6.Checked Exception(受检的异常) 马克-to-win:为什么我大胆的把Checked Exception翻译成受检的异常?因为这类异常,编译器检查发现到它后会强令你catch它或throws它(我们之后讲),马克-to-win:而相对于本节前面我们提到的各种比如ArithmeticException,都是unchecked exception(不受检)的异常,unchecked异常都是RuntimeException或者它的子类.马克-to-win:换句话:编译器检查发现到它…
在java中String类为什么要设计成final? - 胖胖的回答 - 知乎 https://www.zhihu.com/question/31345592/answer/114126087…
大神链接:在java中String类为什么要设计成final? - 程序员 - 知乎 我进行了重新排版,并且更换了其中的一个例子,让我们更好理解. String很多实用的特性,比如说“不可变性”,是工程师精心设计的艺术品!艺术品易碎!用final就是拒绝继承,防止世界被熊孩子破坏,维护世界和平! 1. 什么是不可变? String不可变很简单,如下图,给一个已有字符串"abcd"第二次赋值成"abcedl",不是在原内存地址上修改数据,而是重新指向一个新对象,新地址…
有读者问,为什么< .NET并发编程实战>一书中的节流为什么不翻译成限流? 这个问题问得十分好!毕竟“限流”这个词名气很大,耳熟能详,知名度比“节流”大多了. 首先,节流的原词Throttle来自于机械行业中的节流阀.(P.S< .NET并发编程实战>一书中的很多词特别是函数式编程方面的专业名词都来自于数学.硬件.机械行业). 更重要的是: 使用“rx 限流”出来的搜索结果是这样的 使用“rx 节流”出来的搜索结果是这样的 很明显啦!如果翻译成“限流”而不是“节流”的话,读者根据“…
网易面试要我画异常的结构图,什么是检查异常,什么是非检查异常,我当时的表情是这样的,.我看过,忘了.没办法,继续看,写博客掌握. 先来看看异常的结构图,建议你结合JDK一起看. 可以看出异常的家族势力庞大,通常我们说的异常是包括exceptio和error. Exception家族我们恐怕见的不少,但是error家族我们可能就没什么印象了,下面我来说说这两个类的区别: Error(错误):是程序无法处理的错误,表示运行应用程序中较严重问题.大多数的错误与代码编写者执行的操作无关,而是表示代码运行…
Error和Exception的联系 继承结构:Error和Exception都是继承于Throwable,RuntimeException继承自Exception. Error和RuntimeException及其子类称为未检查异常(Unchecked exception),其它异常成为受检查异常(Checked Exception). Error和Exception的区别 Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢出等.如java.lang.S…
所有异常类型都是 Throwable 类的子类,它包含Exception类和Error类,Exception又包括checked exception和unchecked exception. unchecked exception:Java编译器不要求对未检查异常一定捕获或抛出,可以不做处理.此类异常通常是在逻辑上有错误,可以通过修改代码避免.在eclipse中(保存即编译)编译后此类异常发生处会报错. checked exception:Java编译器要求对检查异常必须捕获或抛出,代码逻辑没有…
Exception和Error都是继承了Throwable类,在Java中只有Throwable类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型. Exception和Error体现了Java平台设计者对不同异常情况的分类. Exception是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理. Error是指在正常情况下,不大可能出现的情况,绝大部分的Error都会导致程序(比如JVM自身)处于非正常的.不可恢复状态.既然是非正常情…
最近突然被问到String为什么被设计为不可变,当时有点懵,这个问题一直像bug一样存在,竟然没有发现,没有思考到,在此总结一下. 1.String的不可变String类被final修饰,是不可继承和修改的.当一个String变量被第二次赋值时,不是在原有内存地址上修改数据,而是在内存中重新开辟一块内存地址,并指向新地址. String类为什么要被设计为是final的? 1.不可变性支持线程安全. 2.不可变性支持字符串常量池,提升性能. 3.String字符串作为最常用数据类型之一,不可变防止…
一.不可变类和不可变对象 Normally,you create an object and allow its contents to be changed later.However ,occasionally it is desirable to create an object whose contents cannot be changed once the object has been created.We call such an object as immutable obje…