Java知识点-Java常用类库与异常的捕获与处理

Java常用类库

String类

String str1 = "hello world!";
String str2 = "hello world!";
Boolean result1 = (str1 == str2);
String str3 = new String("hello world!");
Boolean result2 = (str1 == str3);

对于上面的例子,String是一个类,str1就是类的对象,对象名称一定要保存在栈内存之中,字符串"hello world!"一定保存在对内存之中。

如果是使用直接赋值的方式实例化对象,为了节省内存,如果内容已经存在,Java编译器就不会开辟新的内存空间,而是让str2指向已有的内存空间,这样的设计在开发模式上,称为共享设计模式。

只要是new关键字创建的对象,都会在堆内存中另外开辟新的空间

实际上String str1 = "hello world!";这条语句创建了两个String对象:一个是在堆内存中的"hello world!"字符串对象,另一个是指向这个对象的引用str1

Math与Random

Math类包含了所有用于几何和三角的浮点运算方法,但是这些方法都是静态的,也就是说Math类不能定义对象

使用的时候直接调用Math的方法

Math.abs(3.14);

Random类使用时,要先构造一个Random类的对象,然后利用如下方法:

方法名功能
nextInt(n)返回一个大于等于0,小于n(不包括n)的随机整数
nextDouble()返回一个大于等于0,小于1(不包括1)的随机浮点数
Random generator = new Random();
int simuDie = 1 + generator.nextInt(6); // nextInt(6)产生随机整数范围为0~5

异常的捕获与处理

Java中一些常见的异常

名称标识
算术异常:ArithmeticException
空指针异常:NullPointerException
类型强制转换异常:ClassCastException
数组负下标异常:NegativeArrayException
数组下表越界异常:ArrayIndexOutOfBoundsException
违背安全原则异常:SecturityException
文件已结束异常:EOFException
文件未找到异常:FileNotFoundException
字符串转换为数字异常:NumberFormatException
操作数据库异常:SQLException
输入输出异常:IOException
方法未找到异常:NoSuchMethodException
抽象方法错误,当应用试图调用抽象方法时抛出:java.lang.AbstractMethodError
用来指示一个断言失败的问题:java.lang.AssertionError
类循环依赖错误:java.lang.ClassCircularityError
类格式错误:java.lang.ClassFormatError
所有错误的基类,用于标识严重的程序运行问题:java.lang.Error
初始化程序错误:java.lang.ExceptionInInitializerError
违法访问错误:java.lang.IllegalAccessError
不兼容的类变化错误:java.lang.IncompatibleClassChangeError
实例化错误:java.lang.InstantiationError
内部错误:java.langInternalError
连接错误:java.lang.LinkageError
未找到类定义错误:java.lang.NoClassDefFoundError
域不存在错误:java.lang.NoSuchFieldError
方法不存在错误:java.lang.NoSuchMethodError
内存不足错误:java.lang.OutOfMemoryError
堆栈溢出错误:java.lang.StackOverflowError
线程结束:java.lang.ThreadDeath
未知错误:java.lang.UnknownError
未满足的链接错误:java.langUnsatisfiedLinkError
不支持的类版本错误:java.lang.UnsupportedClassVersionError
验证错误:java.lang.VerifyError
虚拟机错误:java.lang.VirtualMechineError
算术条件异常:java.lang.ArithmeticException
数组索引越界异常:java.lang.ArrayIndexOutOfBoundsException
数组存储异常:java.lang.ArrayStoreException
类造型异常:java.lang.ClassCastException
找不到类异常:java.lang.NotFoundException
不支持克隆异常:Java.lang.CloneNotSupportedException
枚举敞亮不存在异常:java.lang.EnumConstantNotPresentException
根异常:java.lang.Exception
违法的访问异常:java.lang.IllegalAccessExcetion
违法的监控状态异常:java.lang.IllegalMonitorStateException
违法的状态异常:java.lang.IllegalStateException
违法的线程状态异常:java.lang.IllegalThreadStateException
索引越界异常:java.lang.IndexOutOfBoundsException
实例化异常:java.lang.InstantiationException
被中止异常:java.lang.InterruptedException
数组大小为负值异常:java.lang.NegativeArraySizeException
属性不存在异常:java.lang.NoSuchFieldException
运行时异常:java.lang.RuntimeException
安全异常:java.lang.SecurityException
类型不存在异常:java.lang.TypeNotPresentException

异常类的处理流程

异常类型最大的父类是Throwable类,其分为两个子类,分别为Exception、Error。Exception表示程序可处理的异常,而Error表示JVM错误,一般无需程序开发人员自己处理

RuntimeException和Exception的区别:RuntimeException类是Exception类的子类,Exception定义的异常必须处理,而RuntimeException定义的异常,可以选择性处理。

throws关键字和throw关键字

throws关键字跟在方法的后面,然后后面跟异常类

访问权限  返回值类型 方法名称(参数列表) throws 异常类{
	// 方法体
}

throw关键字可直接抛出异常类的实例化对象

throw 异常类性的实例
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值