蓝旭第二次培训预习博客

1异常

1. Error与Exception的区别
Error是程序无法处理的错误,比如OutOfMemoryError、ThreadDeath等。此类异常是程序的致命异常,程序无法处理。

Exception是程序本身可以处理的异常,这种异常分两大类运行时异常和非运行时异常。 程序可以处理。

2异常分类

运行时异常都是RuntimeException类及其子类异常,如NullPointerException、IndexOutOfBoundsException等, 这些异常是非检查型异常,程序中可以选择捕获处理,也可以不处理。

非运行时异常是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。

3异常处理

1捕获异常

以数组越界为例

import java.util.Scanner;

public class Main {

    private static void foo() {
        int[] array = new int[10];
        for (int i = 0; i < 10; i ++ )
            array[i] = i;

        Scanner sc = new Scanner(System.in);
        int k = sc.nextInt();
        int x = sc.nextInt();

        try {
            array[k] /= x;
        } catch (ArithmeticException e) {
            System.out.println("除数为0!");
            e.printStackTrace();
        } catch (ArrayIndexOutOfBoundsException e) {
            System.out.println("数组越界!");
            e.printStackTrace();
        } finally {
            for (int i = 0; i < 10; i ++ ) {
                System.out.println(array[i]);
            }
        }
    }

   2抛出异常

throw: 在函数内抛出一个异常。
throws:定义抛出异常。

补充:try catch中常用finally作为结束,处理善后工作

---------------------------------------------------------------------------------------------------------------------------------

2

常用类

1包装类

为了更好地使用基本数据类型,java提供了他们的类

1形式上char对应Character,int对应Integer,其余均为首字母大写得来

2使用:新版jdk提供了自动拆装箱
public class Intro {
    public static void main(String[] args) {
    
        Integer integer = 199;    //自动装箱
        int int1 = integer;    //自动拆箱
    }
}

3好处:提供了更多方法便于使用,如字符串与包装类相互转换

如何将包装类转化为字符串

         String str = 包装类变量名 + "";
         String str = 包装类类名.toString();
          String str = String.valueOf(...);

2大整数和大浮点数类

类似于c中用字符串模拟高精度运算,但方便得多

1大整数BigInteger


            BigInteger big1 = new BigInteger("66666666666666666666666");
            BigInteger big2 = new BigInteger("88888888888888888888888");
            1加法运算;
            BigInteger add = big1.add(big2);
            System.out.println(add);
            2减法
            BigInteger subtract = big1.subtract(big2);
            3比较
            int a = big1.compareTo(big2);

2大浮点数


            BigDecimal bigDecimal1 = new BigDecimal("0.00001");
            BigDecimal bigDecimal2 = new BigDecimal("0.00002");


            1加法BigDecimal add = bigDecimal1.add(bigDecimal2);
            2减法 BigDecimal subtract = bigDecimal1.subtractv(bigDecimal2);
            3除法BigDecimal divide = bigDecimal1.divide(bigDecimal2);
            4乘法 BigDecimal multiply = bigDecimal1.multiply(bigDecimal2);

3StringBuffer与StringBuilder

1StringBuffer存储字符串变量,便于更改,效率更高

如何把String类转化为StringBuffer

利用StringBuffer构造器

StringBuffer stringbuffer = new StringBuffer("string");

StringBuffer的方法

stringbuffer.length();

stringbuffer.delete();

stringbuffer.replace();

stringbuffer.append();此方法可将String类转化为StringBuffer

2

StringBuilder也是存储字符串变量,但不如StringBuffer线程安全

StringBuilder构造,与方法与StringBuffer基本类似
      

                           


      

---------------------------------------------------------------------------------------------------------------------------------

3java中的容器

类似于c中的stl容器

1collection容器

主要有三种

Arraylist与Vector都是数组

Linkedlist是链表

set:

HashSet是数组与链表

LinkedHashset是链表和哈希表

TreeSet红黑树

queue:

queue:单向队列

dequeue:双向队列

2map容器

HashMap是数组+链表线程不安全

TreeMap是红黑树

HashTable是数组+链表但是线程安全

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值