欢迎您光临本小站。希望您在这里可以找到自己想要的信息。。。

java8学习笔记总结(二)

java water 2713℃ 0评论

包和接口

包是多个类的容器,保持类的名称空间相互隔离

通过使用关键字interface,Java可以将接口从其实现中完全抽象出来

Java使用文件系统目录存储包

 

Java提供的所有标准类都存储在名为java的包中,基本的语言函数存储在java包的java.lang子包中,编译器隐式地为所有程序导入java.lang包。

 

使用关键字interface,可以从类的实现中完全抽象出类的接口。

接口类的修饰符,(两种默认访问级别和public

JDK 8为接口添加了一个特性(JDK 8之前,接口只能定义“有什么”,而不能定义“如何实现”),可以在接口方法中添加默认实现,因此,现在接口可以指定一些行为。然而,默认实现只是构成了一种特殊 用途,接口最初的目的没变

 

在接口中可以声明变量,它们被隐式的标识为finalstatic,所有方法和变量都隐式地声明为public

实现接口的方法必须被声明为public

可将变量声明为使用接口而不是类的对象引用(运行时动态查询)会造成严重的负担,在性能要求苛刻的代码中少用

部分实现:如果类包含了一个接口,但是没有实现该接口定义的全部方法,那么必须将类声明为abstract

 

嵌套接口:可以将接口声明为某个类或另外一个接口的成员(可以被声明为publicprivateprotected,顶级接口只能声明为(public或默认访问级别)

在封装范围之外使用嵌套接口,必须使用包含嵌套接口的类或接口的名称进行限定(完全限定)

 

接口中的变量:可以使用接口将共享的常量导入到多个类中,具体方法是简单地声明包含变量的接口,并将变量初始化为期望的值。当在类中包含这种接口时,所有这些变量在作用域内都会被作为常量

 

接口可以通过关键字extends继承另一个接口,语法和继承类相同

 

开发默认方法的主要动机是提供一种扩展接口的方法,而不破坏现有代码,另一个动机是希望在接口中指定本质上可选的方法

 

添加默认方法并没有改变接口关键特征:不能维护状态信息。接口仍然不能有实例变量。因此,接口与类之间决定性的区别是类可以维护状态信息,而接口不可以。

 

为接口定义默认方法,类似于为类定义方法。主要区别是,声明前面加关键字default

Java 8 为接口添加了另一项新功能:定义一个或更多个静态方法。(实现接口的类或子接口不会集成接口中的静态方法)

 

异常处理

异常是运行时在代码序列中引起的非正常状况

异常可以由Java运行时系统生成,也可以通过代码手动生成。由Java抛出的异常与那些违反Java语言规则或Java执行环境约束的基础性错误有关。手动生成的异常通常用于向方法的调用者报告某些错误条件。

 

JDK 7开始,try语句增加了一种支持自动资源管理的新形式。这种新形式的try被称为带资源的try

所有异常类型都是内置类Throwable的子类。它有两个子类,将异常分为两个不同分支。

 

Exception:可以用于用户程序应当捕获的异常情况,也可以用于创建自定义异常类型的子类。它有RuntimeException子类,这种类型的异常是自动定义的。

Error:定义了在常规环境下不希望由程序捕获的异常。由Java运行时系统使用,以指示运行时环境本身出现了某些错误。

 

Java运行时系统提供的默认异常处理程序很有用,但是通常希望自己处理异常。自己处理异常有两个优点:第一,允许修复错误;第二,阻止程序自动终止。

异常构造函数(不带参数或带一个字符串参数)

 

如果方法可能引发自身不进行处理的异常,就必有指明throws这种行为,以便方法调用者能够保卫自己以防备上述异常。除了ErrorRuntimeException及其子类类型的异常之外,对于所有其它类型的异常这都是必需的。

 

方法返回之前都会执行finally子句

RuntimeException标准类型的子类(未经检查的异常),编译器不检查方法是否处理 或抛出这些异常

JDK 1.4开始,链式异常这一特性被包含进了异常子系统。通过链式异常,可以为异常关联另一个异常。第二个异常描述第一个异常的原因

 

JDK 7开始,异常系统添加了3特性。带资源的try语句,多重捕获(ArithmeticException | ArrayIndexOutOfBoundsException e),重新抛出

 

转载请注明:学时网 » java8学习笔记总结(二)

喜欢 (0)or分享 (0)

您必须 登录 才能发表评论!