博主头像
HT.

念念不忘,必有回响.

Java 2025年版

1、try{}catch(){}finally{}的用法

try块:在这里执行要执行的代码
catch块:如果try块当中抛出了异常,那么catch就会捕获异常并执行
finally块:无论try块是否发生异常,finally块的代码都会执行

2、throw和throws的区别

throw关键字用于在Java中抛出一个异常
throws关键字用于在方法签名中,声明该方法可能会抛出的异常类型

3、如何自定义一个异常

需要继承Exception类

4、所有异常的父类是Exception

错,所有异常的父类是Throwable

5、常见的异常类型有那些

常见的异常类型可以分为Exception(可检查异常)和RuntimeException(非检查异常,也称为非受查异常)两大类

6、ArrayList和LinkedList的用法,创建、增删改查和遍历操作,以及他们的操作场景,*无序且唯一

(1)ArrayList

创建:

ArrayList<Integer> list = new ArrayList<>();

增加:

// 添加元素到列表末尾
list.add(1);
// 添加元素到指定位置
list.add(index, element);

删除:

// 删除指定位置的元素
list.remove(index);
// 删除指定元素的第一次出现
list.remove(object);

修改:

// 修改指定位置的元素
list.set(index, element);

查询:

// 获取指定位置的元素
int element = list.get(index);
// 检查是否包含某个元素
boolean contains = list.contains(element);

遍历

for (int i = 0; i < list.size(); i++) {
    System.out.println(list.get(i));
}
// 使用增强for循环
for (Integer num : list) {
    System.out.println(num);
}
// 使用迭代器
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

LinkedList

创建

LinkedList<Integer> list = new LinkedList<>();

增加

// 添加元素到列表末尾
list.add(1);
// 添加元素到列表开头
list.addFirst(1);
// 添加元素到指定位置
list.add(index, element);
// 添加所有元素到列表末尾
list.addAll(collection);

删除

// 删除指定位置的元素
list.remove(index);
// 删除指定元素的第一次出现
list.remove(element);
// 删除所有匹配的元素
list.removeAll(collection);
// 清空列表
list.clear();

修改

// 修改指定位置的元素
list.set(index, element);

查询

// 获取指定位置的元素
int element = list.get(index);
// 检查是否包含某个元素
boolean contains = list.contains(element);
// 获取列表大小
int size = list.size();

遍历

for (Integer num : list) {
    System.out.println(num);
}
// 使用迭代器
Iterator<Integer> iterator = list.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

7、HashSet和TreeSet的用法:创建、增删改查和遍历操作,以及他们的使用场景,*无序且唯一

(1)HashSet

创建

HashSet<Integer> set = new HashSet<>();

增加

// 添加元素到集合
boolean added = set.add(element);

删除

// 删除指定元素
boolean removed = set.remove(element);
// 清空集合
set.clear();

修改

// HashSet不允许直接修改元素,但可以通过删除旧元素和添加新元素的方式来实现修改
set.remove(oldElement);
set.add(newElement);

查询

// 检查是否包含某个元素
boolean contains = set.contains(element);
// 获取集合大小
int size = set.size();

遍历

for (Integer num : set) {
    System.out.println(num);
}
// 使用迭代器
Iterator<Integer> iterator = set.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

(2)TreeSet

创建

TreeSet<Integer> set = new TreeSet<>();

增加

// 添加元素到集合
boolean added = set.add(element);

删除

// 删除指定元素
boolean removed = set.remove(element);

修改

// TreeSet不允许直接修改元素,因为元素是唯一的,但可以通过删除旧元素和添加新元素的方式来实现修改
set.remove(oldElement);
set.add(newElement);

查询

// 检查是否包含某个元素
boolean contains = set.contains(element);

遍历

for (Integer num : set) {
    System.out.println(num);
}
// 使用迭代器
Iterator<Integer> iterator = set.iterator();
while (iterator.hasNext()) {
    System.out.println(iterator.next());
}

8、HashMap和TreeMap的用法,创建、增删改查和遍历操作,以及他们的使用场景,*键值对

HashMap

创建

HashMap<Integer, String> map = new HashMap<>();

增加

// 将指定值与此映射中的指定键关联
map.put(key, value);

删除

// 如果存在指定键,则将其映射的关系从映射中移除
map.remove(key);
// 清空映射
map.clear();

修改

// 通过put方法修改对应键的值
map.put(key, newValue);

查询

// 返回指定键所映射的值
String value = map.get(key);
// 检查映射中是否包含指定的键
boolean containsKey = map.containsKey(key);
// 检查映射中是否包含指定的值
boolean containsValue = map.containsValue(value);

遍历

// 遍历键
for (Integer key : map.keySet()) {
    String value = map.get(key);
    System.out.println(key + " : " + value);
}
// 遍历值
for (String value : map.values()) {
    System.out.println(value);
}
// 遍历键值对
for (Map.Entry<Integer, String> entry : map.entrySet()) {
    Integer key = entry.getKey();
    String value = entry.getValue();
    System.out.println(key + " : " + value);
}

TreeMap

创建

TreeMap<Integer, String> map = new TreeMap<>();

增加

// 将指定值与此映射中的指定键关联
map.put(key, value);

删除

// 如果存在指定键,则将其映射的关系从映射中移除
map.remove(key);
// 清空映射
map.clear();

修改

// 通过put方法修改对应键的值
map.put(key, newValue);

查询

// 返回指定键所映射的值
String value = map.get(key);
// 检查映射中是否包含指定的键
boolean containsKey = map.containsKey(key);
// 检查映射中是否包含指定的值
boolean containsValue = map.containsValue(value);

遍历

// 遍历键
for (Integer key : map.keySet()) {
    String value = map.get(key);
    System.out.println(key + " : " + value);
}
// 遍历值
for (String value : map.values()) {
    System.out.println(value);
}
// 遍历键值对
for (Map.Entry<Integer, String> entry : map.entrySet()) {
    Integer key = entry.getKey();
    String value = entry.getValue();
    System.out.println(key + " : " + value);
}

9、String的用法

创建字符串

String str = "Hello, World!";

字符串连接

String concatenated = "Hello, " + "World!";

获取字符串长度

int length = str.length(); // 或者 str.length

字符串比较

boolean isEqual = str.equals("Hello, World!");
boolean isIgnoreCaseEqual = str.equalsIgnoreCase("hello, world!");

查找字符或子字符串

int index = str.indexOf('W'); // 返回字符 'W' 的索引
int indexFrom = str.indexOf("World", 3); // 从索引 3 开始搜索子字符串 "World"
int lastIndexOf = str.lastIndexOf('o'); // 返回最后一次出现字符 'o' 的索引

字符串替换

String replaced = str.replace('W', 'w'); // 替换字符
String replacedSubstring = str.replace("World", "Java"); // 替换子字符串

分割字符串

String[] parts = str.split(","); // 以逗号为分隔符分割字符串

字符串截取

String substring = str.substring(0, 5); // 截取从索引 0 到 5 的子字符串

字符串转换

String toLowerCase = str.toLowerCase(); // 转换为小写
String toUpperCase = str.toUpperCase(); // 转换为大写

去除空白

String trimmed = str.trim(); // 去除字符串两端的空白

字符串格式化

String formatted = String.format("The value is: %d", 123); // 格式化字符串

检查字符串

boolean isEmpty = str.isEmpty(); // 检查字符串是否为空
boolean isNotEmpty = !str.isEmpty(); // 检查字符串是否非空

字符串分割与合并

StringJoiner joiner = new StringJoiner(",");
joiner.add("Item1");
joiner.add("Item2");
String result = joiner.toString(); // 结果为 "Item1,Item2"

正则表达式操作

String replacedRegex = str.replaceAll("\\bWorld", "Java"); // 使用正则表达式替换

10、时间日期函数的用法

java.util.Date

Date 类用于表示特定的瞬间,精确到毫秒。

创建日期:

java

Date date = new Date(); // 当前日期和时间
Date dateWithMillis = new Date(System.currentTimeMillis()); // 根据毫秒值创建

获取日期信息:

java

long time = date.getTime(); // 获取自1970年1月1日以来的毫秒数

格式化和解析:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate = sdf.format(date); // 将Date对象格式化为字符串
Date parsedDate = sdf.parse("2023-01-01 12:00:00"); // 将字符串解析为Date对象

java.util.Calendar

Calendar 类是一个抽象类,提供了操作日期和时间的方法。

创建日历实例:

Calendar calendar = Calendar.getInstance(); // 获取当前日期和时间的Calendar实例

设置和获取日期时间字段:

calendar.set(Calendar.YEAR, 2023);
int year = calendar.get(Calendar.YEAR);

日期时间计算:

calendar.add(Calendar.DAY_OF_MONTH, 1); // 增加一天
calendar.roll(Calendar.DAY_OF_MONTH, -1); // 减少一天,保持同一月

java.time (Java 8+)

Java 8 引入了新的日期和时间API,提供了LocalDateLocalTimeLocalDateTimeZonedDateTimeInstant等类。

创建日期和时间

LocalDate localDate = LocalDate.now(); // 当前日期
LocalTime localTime = LocalTime.now(); // 当前时间
LocalDateTime localDateTime = LocalDateTime.now(); // 当前日期和时间

日期时间操作:

LocalDate date = LocalDate.of(2023, Month.JANUARY, 1);
LocalDateTime dateTime = LocalDateTime.of(date, LocalTime.of(12, 0));

日期时间格式化和解析:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String strDateTime = localDateTime.format(formatter); // 格式化
LocalDateTime parsedDateTime = LocalDateTime.parse("2023-01-01 12:00:00", formatter); // 解析

日期时间计算:

LocalDate tomorrow = localDate.plusDays(1); // 增加一天
LocalDateTime oneHourLater = localDateTime.plusHours(1); // 增加一小时

时区处理:

ZonedDateTime zonedDateTime = ZonedDateTime.now(ZoneId.of("Europe/Paris"));
Instant instant = Instant.now(); // 时间戳

11、Comaparable接口和Comparator接口的区别

Comparable 接口是一个单参数的接口,其方法 compareTo 用于定义对象的自然顺序。

Comparator 接口是一个双参数的接口,其方法 compare 用于定义两个对象之间的排序规则。

12、system类、Scanner类

System 类在 Java 中是一个非常重要的类,它属于 java.lang 包,提供了一些有用的方法来与 Java 应用程序的外部环境进行交互。

Scanner 类在 Java 中用于解析原始类型和字符串的简单文本扫描仪。它属于 java.util 包,可以从不同的输入流中读取数据,如键盘输入、文件等。

13、abstract抽象类和抽象方法

抽象类是一个不能被实例化的类,它通常作为其他类的基类使用。抽象类可以包含抽象方法和具体方法。

抽象方法是没有实现体的方法,它只提供一个声明,由继承该方法的子类提供具体实现。

Java 2025年版
http://www.perlink.cc/index.php/%E7%AC%94%E8%AE%B0/53.html
本文作者 HT.
发布时间 2025-01-02
许可协议 CC BY-NC-SA 4.0
仅有 1 条评论
  1. 评论头像

    раскрутка сайта цена

    Davidsap January 31st, 2025 at 11:39 pm 回复
发表新评论