java——阶段性整理(二)

一、Error和Exception的区别,Checked异常和Runtime异常的区别。

1)Error和Exception的区别

  • Error类,表示仅靠程序本身无法回复的严重错误,比如说内存溢出、动态链接异常、虚拟机错误。应用程序不应该抛出这种类型的对象。假如出现这种错误,除了尽力使程序安全退出外,在其他方面是无能为力的。所以在进程程序设计时,应该更关注Exception类
  • Exception类,有java应用程序抛出和处理的非常严重错误,比如所需文件没有找到、零作除数,数组下标越界等。他的各种不同子类分别对应不同类型异常。可分为两类:Checked异常和Runtime异常。

2)Checked异常和Runtime异常的区别

  • 运行时异常:包含RuntimeException及其所有子类。不要求程序必须对它们做出处理,比如InputMinsmatchException、ArithmeticException、NullPointerException等。即使没有使用try-catch或throws进行处理,仍旧可以进行编译和运行。如果运行时发生异常,会输出异常的堆栈信息并中止程序执行。
  • Checked异常(飞运行是异常):除了运行时异常外的其他异常类都是Checked异常。程序必须捕获声明抛出这种异常,否则出现编译错误,无法通过个编译。处理方式包括两种:通过try-catch捕获异常,通过throws声明抛出异常从而交给上一级调用方法处理。

二、String、StringBuffer、StringBuilder区别与联系

  • String类是不可变类,即一旦一个String对象被创建后,包含在这个对象中的字符序列是不可改变的,直至这个对象销毁。
  • StringBuffer类则代表一个字符序列可变的字符串,可以通过append、insert、reverse、setCharAt、setLength等方法改变其内容。一旦生成了最终的字符串,调用toString方法将其转变为String
  • JDK1.5新增了一个StringBuilder类,与StringBuffer相似,构造方法和方法基本相同。不同是StringBuffer是线程安全的,而StringBuilder是线程不安全的,所欲性能略高。通常情况下,创建一个内容可变的字符串,应该优先考虑使用StringBuilder。
原文地址:https://www.cnblogs.com/rsdqc/p/5411124.html