Java基础语法(二)
-
异常类
Throwable |—— Error |__ Exception
-
Java内部类有哪些?
- 成员内部类
- 方法内部类
- 匿名内部类
- 继承式匿名内部类格式
- 接口式匿名内部类格式,加@Override注解
- 参数式的匿名内部类
- 静态嵌套类
内部类的作用:提供了Java的"多重继承"的解决方案
特点:内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号 -
Java中反射的概念
在运行状态中获取任意类的名称、package 信息、所有属性、方法、注解、类型、类加载器、modifiers(public、static)、父类、现实接口等
;获取任意对象的属性
,并且能改变对象的属性;调用任意对象的方法
;判断任意一个对象所属的类;实例化任意一个类的对象。
应用场景:动态装配,降低代码的耦合度;动态代理等。
使用方法:JDK 中java.lang.Class
类,就是为了实现反射提供的核心类之一。一个 jvm 中一种 Class 只会被加载一次。 -
动态代理
Java 中实现动态的方式:- JDK 中的动态代理
- Java类库 CGLib
应用场景:
- 统计每个 api 的请求耗时
- 统一的日志输出
- 校验被调用的 api 是否已经登录和权限鉴定
- Spring的 AOP 功能模块就是采用动态代理的机制来实现切面编程
-
Java的安全性有哪些体现
- 使用引用取代了指针,指针的功能强大,但是也容易造成错误,如数组越界问题。
- 拥有一套异常处理机制,使用关键字 throw、throws、try、catch、finally
- 强制类型转换需要符合一定规则
- 不用程序员显示控制内存释放,JVM 有垃圾回收机制
-
Java中基本类型的转换规则
等级低到高:- byte、short、int、long、float、double
- char、int、long、float、double
自动转换:低级->高级,计算中自动转
强制转换:高级->低级,会丢失精度
-
Java的多态
条件:继承;子类重写父类;父类引用变量指向子类
向上转型:将父类的引用指向一个子类对象,自动进行类型转换
向下转型:将指向子类对象的引用赋给一个子类的引用,必须进行强制类型转换