一、字符串

1、String字符串

String字符串的底层是char数组实现的,且是final修饰的,因此String字符串发生拼接、截取等都会有新的对象生成且一旦创建它的值是不能改的。

2、StringBuffer字符串

StringBuffer也是字符串,但是它相当于一个容器,可以不断的根据自身内容扩展容量,因此,StringBuffer不论怎样发生拼接、截取等,始终都只会有本身这一个对象。因为它相当于于一个容器,可随意扩展,因此特具有增删改查的操作。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

3、StringBuilder字符串

StringBuffer和StringBuilder的区别:

  1.StringBuffer是线程安全的,而StringBuilder是线程不安全的,所以StringBuffer的性能要比StringBuilder低,因此在今后的开发中我们统一使用StringBuilder。

2.StringBuffer是jdk1.0开始出来的,而StringBuilder是jdk1.5出来的

3、StringBuffer和StringBuilder一样,都是可变字符串,始终只有一个对象,因为StringBuffer和StringBuilder都是引用数据类型,因此在最后转为String的时候需要使用toString方法来转换为固定字符串。

二、Math类(Math类是用来做运算的)

1BigDecimal: 它要比floatdouble精度更高的一种类型,BIgInteger一样,都是是引用数据类型,因此每次使用都必须要new一个对象。语法格式如下:BigDecimal bg = new BigDecimal(0.2)括号内必须传入字符串的值。

2IntegerBigInteger是一个能表示比long更大的数字的类型,但是它是一个引用数据类型,在做运算的时候和BigDecimal一样,必须通过调用方法来完成。

三、随机数

随机数:

  1.Math类中的   static double random() 获取值的范围[0.0,1.0),如果想要获取一个[begin,end]的随机数可以使用Math.Random()*(end-bbegin)+begin。

   2.Random中的   int nextInt()---》int范围内的随机数int nextInt(int n)----[0,n)

   3.ThreadLocalRandom   int nextInt(int least, int bound)

它的范围[least,bound)

   4. UUID       static UUID randomUUID()  产生的随机数是当前时间+你电脑的ip

四、异常

1 异常继承体系:

   java.lang.Object

   |

   |___java.lang.Throwable(Throwable 类是 Java 语言中所有错误或异常的超类)

   |

   |____java.lang.Error(错误):程序中一旦出现了该错误,基本上程序员都是解决不了的

|

|____java.lang.Exception(异常):程序中一旦出现了该异常,程序员基本上都能解决--->我们主要就是学习Exception下面的子孙类

2、 处理异常信息的语法结构:

   try{

   存放可能出现异常的代码

  }catch(异常类型 变量){

  存放处理异常代码

   }catch(异常类型 变量){//只能抓该异常类型的子孙类或者相等的异常

   真实开发处理方式:

   1.打印异常信息(因为你要告诉程序员,哪里出现了错误,让程序员方便修改)

  2.当你捕捉到这个异常之后,又把这个异常抛给下一个方法进行处理(先不管,目前你们体会不到)

   3.我们把捕捉到的异常信息打印到文件中(先不管,因为目前为止还没有学习io)

   }

   .....

异常一旦发现,就会进行捕获,只要捕获成功,执行代码块中的内容之后,整个try catch就执行完毕。

3打印异常信息的相关方法:

1. String getMessage() 返回此 throwable 的详细消息字符串。                     用的比较多,它的使用场景,一般用在前端客户查看异常

2. void printStackTrace() 将此 throwable 及其追踪输出至标准错误流(程序员看)。 

4、知识总结

①在方法名后面抛出的异常最红抛给了谁?谁调用我这个方法,就抛给了谁;

②运行时类:RunTimeException及其子孙类都是运行时类;

③非运行时类:除了运行时类剩下的都是非运行时类;

④finally中一般写关闭资源释放内存的代码(finally中的代码无论如何都会执行),如果finally中有return语句,那么会覆盖之前的return语句;

⑤throws必须放在方法的()后面,可以抛出多个异常,throw必须放在方法面,只能抛出一个异常。

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄