Java开发实用必备的几款插件,java总复习(二

二、浅谈异常

=========================================================================

2.1.基础常见异常


算术运算异常:ArithmeticException

数组下标越界异常:ArrayIndexOutofBoundException

数组下标负数异常:NegativeArraySizeException

空指针异常:NullPointerException

类型强制转换异常:ClassCastException

安全异常:SecurityException

传递非法参数:SecurityException

2.2继承结构


在这里插入图片描述

Error错误:一般是程序无法处理的错误,表示运行程序有较大问题,大多错误与代码的编写没有关系。

Exception异常:程序本身可以处理的异常。

编译期异常:是RuntimeException以外的异常,是程序语法上必须处理的异常,如果不处理,程序就不能编译通过。如IOExceptionSQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常。

运行期异常:都是RuntimeException类及其子类异常,如NullPointerException(空指针异常)、IndexOutOfBoundsException(下标越界异常)等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。

运行时异常的特点是Java编译器不会检查它,也就是说,当程序中可能出现这类异常,即使没有用try-catch语句捕获它,也没有用throws子句声明抛出它,也会编译通过

2.3异常处理机制


常见的关键字


try、catch、finally、throw、throws 

基本语法:


try{

   可能发生异常的代码

}catch(关心异常的具体类,不关心的异常基类处理){

}finally{

无论代码发生异常,代码必定执行

(排除System.exit(1);情况,若上面的代码块中有出现该代码,则不会执行finally块)

} 

throw扔的是异常对象

例如代码:

int peek(){

if(size==0){

      throw扔异常对象; throw new Exception

     }

 return ...;

}


不想用try,catch处理编译期异常时,可以使用throws扔

void fun throws 异常类{



} 

```



[](https://gitee.com/vip204888/java-p7)三、Object类中的方法

================================================================================



1.  `clone():`受保护权限,再使用clone()方法是要实现`Cloneable`方法。



```

class Student implements Cloneable{

   @Override

   protected native Object clone() throws CloneNotSupportedException{

       return super.clone();//浅拷贝形式

   {

} 

```



浅拷贝与深拷贝:如果拷贝后与拷贝前的变量存在内存共享,则为浅拷贝。没有则为深拷贝。  

2\. `getclass()`:获取当前类的class对象,目的是为了获得运行时的类型  

3\. `toString()`: 输出一个对象的地址字符串(哈希code码),通过重写来获取对象属性。  

4\. `equals`:在Object中和==相同  

equals和 ==在比较对象上的不同。



"== "比较的是内存中存放的对象的内存地址,用来判断两个对象的地址是否相同,即是否是指相同一个对象  

“equals”:不能做基本类型的比较,引用类型如果不重写比较的是地址值,重写之后比较的是内容.  

5\. `finalize()`:用于资源释放,当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。  

6.`hashcode()`:返回该对象的哈希码值。  

在集合中重写的时候要重写`equals()`方法和`hashcode()`方法,只重写其一能满足吗?  

new了两个对象,p1和p2。  

假如只重写`equals`而不重写`hashcode`,那么类的`hashcode`方法就是Object默认的`hashcode`方法,根据对象的内存地址经哈希算法得来的,如果重写`equals`方法后得到的`p1==p2`,那么它们所对应的`hashcode`值也相等。不重写`equals`方法得到的`p1!=p2`时对应的`hashcode`不一定相等,此时就矛盾了,因此重写`equals`方法时也要重写`hashcode`方法。



```

### 最后

**我还通过一些渠道整理了一些大厂真实面试主要有:蚂蚁金服、拼多多、阿里云、百度、唯品会、携程、丰巢科技、乐信、软通动力、OPPO、银盛支付、中国平安等初,中级,高级Java面试题集合,附带超详细答案,希望能帮助到大家。**

**[资料领取方式:戳这里免费下载](https://gitee.com/vip204888/java-p7)**

![新鲜出炉的蚂蚁金服面经,熬夜整理出来的答案,已有千人收藏](https://img-blog.csdnimg.cn/img_convert/470967199b426c7b8f63ac6d4c6362af.png)

**还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。**

![新鲜出炉的蚂蚁金服面经,熬夜整理出来的答案,已有千人收藏](https://img-blog.csdnimg.cn/img_convert/272189bc53725870642191272149e844.png)

/gitee.com/vip204888/java-p7)**

[外链图片转存中...(img-Z7HyHQ8u-1628073753903)]

**还有专门针对JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。**

[外链图片转存中...(img-bz1th3Ry-1628073753905)]

# 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值