技术编程|Java知识点梳理( 五 )
此外 , 从异常是否必须需要被处理的角度来看 , 异常又可分为不受检查异常和受检查异常两种情况:
(1)不受检查异常:派生于 Error 或 RuntimeException 的所有异常 。
(2)受检查异常:除去不受检查异常的所有异常 。
文章图片
文章图片
finally子句 , 在对应的try子句执行的前提下 , finally 子句总会被执行 。并且 , finally子句 总是在诸如return、break、throw和continue等控制转移语句之前执行 。
【技术编程|Java知识点梳理】
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
13、六大设计原则
(1)单一职责原则:高内聚 , 一个类只做它该做的事情;
(2)接口隔离原则:接口小而专 , 避免大而全;
(3)依赖倒置原则:依赖抽象而非实现 , 面向接口编程;
(4)里氏替换原则:子类可以扩展父类的功能 , 但不能改变父类原有的功能;
(5)开闭原则:Open for Extension, Closed for Modification , 例如AOP , 代理模式 , 适配器模式就是其经典应用;
(6)迪米特法则:高内聚 , 低耦合;14、代理模式
根据代理类的创建时机和创建方式的不同 , 我们可以将代理模式分为静态代理和动态代理两种形式 , 其中 , 在程序运行前就已经存在的编译好的代理类是为静态代理 , 在程序运行期间根据需要动态的创建代理类及其实例来完成具体的功能是为动态代理 。其中 , 代理对象的作用如下:
(1) 代理对象存在的价值主要用于拦截对真实业务对象的访问;
(2) 代理对象应该具有和目标对象(真实业务对象)相同的方法 , 即实现共同的接口或继承于同一个类;
(3) 代理对象应该是目标对象的增强 , 否则我们就没有必要使用代理了 。
文章图片
文章图片
JDK 动态代理是动态代理模式的经典实现 , 主要包括三个角色对象:Subject (接口)、被代理的类以及InvocationHandler接口(一般持有被代理对象) , 例如:
(1)实现 InvocationHandler 接口
文章图片
文章图片
(2)Proxy.newProxyInstance
文章图片
文章图片
但是 , JDK动态代理只能完成对接口的代理 , 而不能完成对类的代理 , 关键原因为:Java只允许单继承 。具体地 , 代理对象proxySubject的类型为“com.sun.proxy.$Proxy0” , 这恰好印证了proxySubject对象是一个代理对象 。除此之外 , 我们还发现代理对象proxySubject所对应的类继承自java.lang.reflect.Proxy类 , 这也正是JDK动态代理机制无法实现对class的动态代理的原因 。15、迭代器模式
推荐阅读
- 行业互联网|华为 | 车载以太网物理层及TSN发展现状 与技术趋势
- 技术编程|什么是Plesk虚拟主机控制面板?
- 电池技术|法国发明出世界最快的电极:可将锂电池的密度提高3倍
- 技术编程|人工智能在大视频运维中如何实现CDN硬盘故障预测?
- 电池技术|关于惠州赣锋建设高端聚合物锂电池研发及生产基地建设,赣锋锂业要干大事
- |加速冲刺世界级技术领先地位,大族机器人获1.65亿元A轮融资
- 解码器|苹果 ProRes 视频编解码器获 2020 技术工程艾美奖
- 数据|徐叶润:另类数据技术是驱动资管科技的核心
- 中年|《经济学人》封面文章解析蚂蚁集团:数字技术的崛起代表了金融的未来
- 行业互联网|北科院轻工所技术入选中关村论坛技术交易大会“产业创新领先技术百强项目榜单”
