throw 和 throws的区别:
(1)throw一般用于程序中,throws一般用于方法中
(2)throws可以一次性抛出多个异常,而throw只能一个
(3)throws抛出异常时,它的上级(调用者)也要申明抛出异常或者捕获,不然编译报错。而throw的话,可以不申明或不捕获(这是非常不负责任的方式)但编译器不会报错。
如何实现序列化,作用是什么?
序列化是一种将对象转换为字节流的过程,可以将对象在网络中传输或者保存到磁盘中。序列化可以将对象的状态保存下来,以便在需要时重新创建对象。Java 中提供了一套序列化机制,可以使得对象的序列化和反序列化变得简单而方便。
union和union all有什么区别?
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
UNION去重且排序,执行效率较低;
UNION ALL不去重,执行效率较高;
Java8新特性:
用什么方法实现过滤,求总和:filter 和sum
代码如下,我们将过滤列表中给定用户id的范围,然后计算用户的年龄总和。
package com.concretepage;
import java.util.List;
public class FilterMapToIntAndSum {
public static void main(String[] args) {
List<User> list = User.getUsers();
System.out.println("--- Sum of age between the user id 2 and 4 ---");
int sum = list.stream().filter(u -> u.getId() >= 2 && u.getId() <= 4)
.mapToInt(u -> u.getAge()).sum();
System.out.println("Sum: " + sum);
}
}
--- Sum of age between the user id 2 and 4 ---
Sum: 70
Java中异常分为哪些,具体列举:
Java中的异常主要分为两大类:检查型异常(Checked Exception)和运行时异常(Runtime Exception)。
检查型异常(Checked Exception):
- FileNotFoundException:当试图打开指定路径名表示的文件失败时抛出。
- SQLException:处理数据库操作过程中发生错误时抛出。
- IOException:在输入输出操作失败或中断时抛出。
- EOFException:表示输入过程中意外到达文件或流的末尾。
- NumberFormatException:当应用程序试图将字符串转换成一种数值类型但该字符串不能转换为适当格式时抛出。
运行时异常(Runtime Exception):
- NullPointerException:当应用程序试图在需要对象的地方使用 null 时,抛出该异常。
- ArrayIndexOutOfBoundsException:用非法索引访问数组时抛出。
- ClassCastException:当试图将对象强制转换为不是实例的子类时抛出。
- ArithmeticException:当出现异常的算术条件时抛出,如除以零。
- NegativeArraySizeException:如果应用程序试图创建大小为负的数组,则抛出。