当前位置: 首页 > news >正文

廖雪峰-Java教程-Part02

异常处理

在方法定义的时候,使用throws Xxx表示该方法可能抛出的异常类型。调用方在调用的时候,必须强制捕获这些异常,否则编译器会报错。

static byte[] toGBK(String s) {try {// 用指定编码转换String为byte[]:return s.getBytes("GBK");} catch (UnsupportedEncodingException e) {// 如果系统不支持GBK编码,会捕获到UnsupportedEncodingException:System.out.println(e); // 打印异常信息return s.getBytes(); // 尝试使用默认编码}}

也可以不捕获它,而是在方法定义处用throws表示toGBK()方法可能会抛出UnsupportedEncodingException,就可以让toGBK()方法通过编译器检查(在使用toGBK方法时,仍然需要捕获异常,或者使用throws或者try-catch)

static byte[] toGBK(String s) throws UnsupportedEncodingException {return s.getBytes("GBK");}

如果不想写try-catch,可以在main方法中使用throws

finally字句不论是否有异常都会执行

反射

  • 每加载一个class,jvm就会为class创建一个Class实例,包括,类名、父类、接口等,可以通过Class实例获取对应clas所有信息(反射:通过Class实例获取class的方法
  • Class实例可以用==判断是否相等,与instanceof不同的是,后者对于子类与父类判断结果也为true,Class实例判断则为false
  • jvm中基本数据类型也有对应的Class实例

动态代理

JDK提供的动态创建接口对象的方法,不需要实现类

静态代码:定义接口,类实现接口后创建类的实例,将实例转型为接口然后调用

泛型

编写模板代码来适应各种类型

http://www.dtcms.com/a/336668.html

相关文章:

  • C#高级语法_委托
  • 力扣第463场周赛
  • 17-线程
  • uC/OS - III 系统DEBUG时内核对象统计信息
  • 模拟实现 useEffect 功能
  • 配置 NVIDIA RTX 5090 + sm_120 + flashattention,已跑通一个大模型 ~~
  • clion 如何调试 redis(在 mac 上)
  • AMBA-AXI and ACE协议详解(三)
  • 期望分位数回归模型
  • 利用pypy加速pyxlsbwriter生成xlsb文件
  • 五、redis入门 之 客户端连接redis
  • 日语学习-日语知识点小记-进阶-JLPT-N1阶段蓝宝书,共120语法(3):21-30语法
  • 雷卯针对香橙派Orange Pi Kunpeng Pro开发板防雷防静电方案
  • CloudBeaver:基于浏览器的DBeaver
  • 机器学习案例——对好评和差评进行预测
  • 当AI替我“搬砖”,我的价值是什么?
  • 21.AlexNet
  • 金山办公的服务端开发工程师-25届春招部分笔试题
  • C# Newtonsoft.Json 反序列化子类数据丢失问题
  • DBeaver连接MySQL 8报错连接丢失
  • HTTP协议-3-HTTP/2是如何维持长连接的?
  • JAVA后端开发——Token自动续期机制的必要性
  • 【Linux内核】Linux信号机制
  • 【Linux】五种IO模型
  • JVM学习笔记-----StringTable
  • react 错误边界
  • Python 内置模块 collections 常用工具
  • 【撸靶笔记】第二关:GET -Error based -Intiger based
  • Spring Framework :IoC 容器的原理与实践
  • CW32L011_电机驱动器开发板试用