Java异常、包装类和字符串

24 阅读3分钟

引言: Java异常机制、包装类和字符串是Java开发中常用的三大概念。本文将从技术层面进行介绍,重点分析它们在Java中的运作原理和使用方法,帮助读者加深理解。通过给出实际代码示例,读者可以在理解概念的同时掌握相关API的应用。这些知识点的掌握对提高Java开发能力至关重要。

一、Java异常机制

异常是java中处理错误的重要机制。任何代码在执行过程中都可能会遇到异常情况,使用异常可以优雅的处理这些错误。

1.1 异常的分类

Java中异常分为两大类:受检异常和非受检异常。受检异常需要用try-catch捕获并处理,如IOException。非受检异常如 NullPointerException,程序在运行时会直接抛出。

public class ExceptionExample {
  public static void main(String[] args) {
    try {
      throw new IOException("IO Exception"); 
    } catch (IOException e) {
      e.printStackTrace();
    }
    
    int a = 10/0; // ArithmeticException
  }
}

1.2 异常的抛出与捕获

使用throw语句抛出异常,try-catch捕获异常并进行处理。可以抛出自己定义的异常类。

class MyException extends Exception{}

public class ExceptionExample {
  public static void method() throws MyException {
    throw new MyException();
  }
  
  public static void main(String[] args) {
    try {
      method();
    } catch (MyException e) {
      e.printStackTrace();
    }
  }
}

1.3 finally子句

finally子句中的代码不管是否发生异常都会执行,用于清理资源等情况。

public class ExceptionExample {
  public static void main(String[] args) {
    FileInputStream fis = null;
    try {
      fis = new FileInputStream("a.txt");
    } catch (FileNotFoundException e) {
      e.printStackTrace();
    } finally {
      if(fis != null) {
        try {
          fis.close();
        } catch (IOException e) {
          e.printStackTrace();
        }  
      } 
    }
  }
}

二、包装类与自动装箱与拆箱

Java提供8种基本数据类型,但又需要支持引用类型,所以提供了包装类来对基本类型进行包装。自动装箱与拆箱让使用更方便。

2.1 包装类

用来包装各种基本数据类型的引用类型,如Integer、Character等。

Integer x = new Integer(10);
Character c = new Character('a');

2.2 自动装箱与拆箱

在基本类型与包装类型之间自动完成装箱(基本类型->包装类型)与拆箱(包装类型->基本类型)操作。

Integer x = 10; // 自动装箱  
int y = x; // 自动拆箱

2.3 引用类型的优势

包装类型可以被作为引用类型使用,如添加到Collection中,支持基本类型的面向对象设计等特性。

三、Java字符串

String为字符序列,是常用的引用类型之一。

3.1 字符串的定义

使用双引号定义字符串字面量,new String()可以创建字符串对象。

String str = "Hello";
String str2 = new String("World");

3.2 字符串操作

length(),charAt(),equals(),concat()方法等操作字符串。

String str = "Hello";
str.length(); // 5
str.charAt(0); // 'H'  
str.equals("Hello"); // true

3.3 字符串不可变的特性

Java中的字符串是不可变的,对字符串进行操作不会修改原始字符串,而是返回新的字符串对象。

结论: 本文从异常分类、抛出捕获、包装类的概念、自动装箱和拆箱,以及字符串的特性等多个方面阐述了Java异常、包装类和字符串三大重要技术点。希望能为大家学习Java提供帮助。