# java ## 介绍 java基础 #### jdk接口新特征 jdk1.8之后,接口里面可以写静态方法,但是需要加方法体 jdk1.8之后,接口里面可以写default修饰的方法,但是需要加方法体,让子类继承直接使用 接口里面写的静态方法,其 实现类写的同名的静态方法是不属于重写的,因为调用的影响。类掉静态方法 #### 内部类--普通内部类(非静态成员内部类) 声明在类中的类 内部类可以直接使用外部类的成员变量和成员方法 {访问属性可以直接访问} {访问方法需要加外部类类.this. outClass.this.showName();} 外部类的成员是对内部类完全公开的 内部类可以使用四个访问修饰符修饰 内部类可以实现很好的隐藏 外部类不能随意使用内部类的属性和方法 #### 内部类--静态成员内部类 静态内部类内部直接使用外部类静态的成员 静态内部类创建不需要借助外部类对象 #### 内部类--局部内部类 定义在方法中的类 只在当前方法使用 在方法后面创建对象 局部内部类使用方法中的变量默认是final修饰的,jdk1.7是必须加final的,1.8之后final省略了,但是还是有的 #### 内部类--匿名内部类 匿名内部类属于局部内部类中的一个,在方法内部声明的类 作用:匿名内部类可以帮助我们快速的产生一个接口下的实现类对象或者抽象类的子类对象,在匿名内部类中需要重写接口或抽象类的方法 匿名内部类没有名字 匿名内部类没有构造方法 匿名内部类作为局部内部类的一种,只能使用方法中final修饰的常量,jdk1.7是必须加final的,1.8之后final省略了,但是还是有的 适用场景:接口中抽象方法不多 当前功能仅仅在这个方法有效,方法不太能是通用的 #### 内部类--匿名内部类的应用 ####内部类--匿名内部类的应用1比较能力 位置 lang 实现接口 Comparable 实现方法 compareTo ####内部类--匿名内部类的应用2比较器 位置 util 实现接口 Comparator 实现方法 compare 返回正数 升序 返回负数 降序 #### 虚拟机的组成 java虚拟机将内存划分为若干个不同的数据区域{ 主要包括类加载器、运行时数据区、执行引擎、本地方法接口、本地方法库、垃圾回收器 } 运行时数据区{ 可细分为方法区、堆区、虚拟机栈、本地方法栈、程序计数器,其中方法区和堆区为进程的所有子线程共享,其他的为线程独有 } #### 垃圾回收机制 #### 异常 1异常概念引入 异常捕获 try catch finally 异常抛出 throws throw 2异常体系介绍 Error:编码控制不了 Exception:{ 运行时异常 检查异常 } 3异常的捕获处理 try{}:将可能出现异常的代码放在try语句块中 catch(){}:程序如果出现了异常由catch语句负责捕获,没出异常不执行 单个catch捕获多个不同的异常 多个catch捕获不同的异常:针对不对的异常情况准备多种不同的处理方法 finaly{}:无论异常是否出现都会执行的语句块,一般用于释放资源,关闭资源 finaly一般不放return,一个方法少用return,尽量用一个 在方法体中,finaly语句块一定会在return之前执行 4异常的抛出处理 手动抛出异常throw:人为抛出异常。throw后面只能放异常对象 声明方法的异常列表throws:放在方法头中,代表当前方法可能出现的异常,给调用这个方法的上级提示或者准备,可以一级一级往上抛,注意需要捕获 5方法的组成部分 方法头( 访问修饰符 返回值 方法名 参数列表 异常列表 ) 方法体{} 异常列表代表方法在调用、运行的时候,可能会产生哪些异常情况 在调用方法时,会提示我们处理方法可能会出现的检查型异常,不会提示我们处理运行时异常 6异常不能抛出的情况 代码块中由异常只能捕获 重写时注意,子类方法抛出的异常范围不能超过父类方法抛出的异常范围 7自定义异常类
10jdk接口新特征、内部类--普通内部类(非静态成员内部类)、静态成员内部类、局部内部类、匿名内部类、异常
最新推荐文章于 2024-08-12 16:47:32 发布