Java学习

Java学习第五天

记住idea快捷键这样会极大的加快代码速度!设置->键盘映射中查看

3.9.2常见的异常类

java中提供了大量的异常类,他们都是java.lang.Throwable类的子类。具体如图所示:

在这里插入图片描述

3.9.3try…catch和finally

由于出现了异常导致程序代码无法继续向下执行。为了解决这样的问题,Java中提供了一种对异常进行处理的方式,即异常捕获。异常捕获通常使用try…catch语句,具体语法格式如下:

然后在处理异常时,我们偶尔也希望无论程序是否发生异常都要执行某个特定语句,此时就需要在try…c.atch后面加上一个finally语句,无论程序是否发生异常,finally语句中的内容都会执行。接下来使用try…c.atch和finally语句对文件3-41中出现的异常进行捕获

try{
    //程序代码块
}catch(异常类型(Exception类或子类)变量){
    //对异常的处理
}
package com.itheima.example07;

public class example07 {
    public static void main(String[] args) {
        try{
            int res=calulate(5,0);
            System.out.println(res);

        }catch(Exception e){
            System.out.println("捕获的异常是:"+e.getMessage());
            return;
        }finally{
            System.out.println("finally代码块");
        }
        System.out.println("代码继续运行...");
    }
    public static  int calulate(int a,int b){
        int res=a/b;
        return res;
    }
}

运行结果:在这里插入图片描述

3.9.4 throws 关键字

抛出异常使用throws关键字对外声明该方法有可能发生的异常,这样在调用方法时,就很清楚该方法是否有异常,并必须对异常进行针对性的处理,否则编译失败。具体语法格式如下:

修饰符 返回值类型 方法名([参数 1,参数 2...])throws ExceptionType1[,ExceptionType2...]{ 
}
package com.itheima.Example08;

public class Example08 {
    public static void main(String[] args){
        int res=calculate(6,3);
        System.out.println(res);

    }
    public static int calculate(int x,int y) throws Exception{
        int res=x/y;
        return res;
    }
}

3.10访问控制:

Java针对类、成员方法和属性提供了四种访问级别,分别是private、default、protected和public。这四种访问级别控制了访问权限的大小,下面通过图例对这四种访问级别进行排序,如图3-25所示。

在这里插入图片描述

访问范围privatedefaultprotectedpublic
同一类中
同一包中
子类中
全局范围

第四章:集合类:

4.1初识集合:

4.1.1集合概述:

数组可以用于保存多个对象,但如果在对象数目无法确定的情

况下,数组是不适用的,因为数组的长度不可变。为了保存这些数目不确定的对象,JDK中提供了集合类(又称容器类),这些类可以存储任意类型的对象,并且长度可变。所有的集合 类都位于java.util包中,在使用时需要导入该包,否则会出现异常。

集合按照存储结构可以分为两大类,分别是单列集合(Collection)和双列集合(Map), 这两种集合的特点如下所示。

• Collection:单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个 重要的子接口,分别是 List和 Set。其中,List的特点是元素有序,元素可重复;Set的特 点 是 元 素 无 序,而 且不可重复。List接口的主要实现类有ArrayList和LinkedList,Set接口的主要实现类有HashSet和 TreeSet。

• Map:双列集合类的根接口,用于存储具有键(Key)、值(Value)映射关系的元素,每个元素都包含一对键值,在使用Map集合时可以通过指定 的Key找到对应的Value,例如根据一个员工的工号就可以找到对应的员工。Map接口的主要实现类有HashMap和TreeMap

在这里插入图片描述

4.1.2Collection 接口简介:

Collection是所有单列集合的父接口,因此 Collection接口中定义了很多单列集合(List和Set)通用的方法,这些方法分别用于在集合中添加元素、删除元素、获取集合中元素的个 数等

方法声明功能描述
boolean add(Object o)向集合中添加一个元素
boolean alladd(Collection c)将指定 Collection中的所有元素添加到该集合中
void clear( )将指定 Collection中的所有元素添加到该集合中
boolean remove(Object o)删除该集合中的所有元素
boolean removeAll(Collection c)删除指定集合中的所有元素
boolean isEmpty( )判断该集合是否为空
boolean contains(Object o)判断该集合中是否包含某个元素
boolean containsAll(Collection c)判断该集合中是否包含指定集合中的所有元素
Iterator iterator( )返回在该集合的元素上进行迭代的迭代器(Iterator),用于遍历该集合所有元素
int size( )获取该集合元素的个数

4.2List 接口简介:

在 List集合中可以出现相同的元素,所有的元素是以一种线性方式进行存储的,因此使用此集合能够精确地控制每个元素插入的位置,用户能够使用索引访问List中的元素。另外,List集合还有一个特点就是元素有序,即元素的存入顺序和取出顺序一致。

在这里插入图片描述

4.2.2 ArrayList集合:

ArrayList是 List接口的一个实现类。在 ArrayList内部封装了一个长度可变的数组,当存入的元素超过数组长度时,ArrayList会在内存中分配一个更大的数组存储这些元素,因此可以将ArrayList集合看作一个长度可变的数组。

package com.itheima.Example09;
import java.util.*;
public class example09 {
    public static void main(String[] args) {
        ArrayList list= new ArrayList();
        list.add("zhangsan");
        list.add("lisi");
        list.add("wangwu");
        list.add("zhaoliu");
        System.out.println("集合的长度是:"+list.size());
        System.out.println("第二个元素是:"+list.get(2));
    }
}

由于 ArrayList集合的底层使用一个数组保存元素,在增加或删除指定位置的元素时,会导致创建新的数组,极大地降低了效率,因此该集合不适合进行大量的增删操作。但这种数组的结构允许程序通过索引的方式访问元素,因此 ArrayList集合的优势是查找 元素效率高

4.2.3 Iterator接口:

Iterator接口也是集合框架中的一员,它与 Collection和 Map接口不同的是,Collection接口与 Map接口主要用于存储元素,而Iterator主要用于遍历 Collection和 其子类中的元素,因此Iterator对象也被称为迭器。

代码如下:

package com.itheima.Example09;
import java.util.*;
public class example09 {
    public static void main(String[] args) {
        ArrayList list= new ArrayList();  //创建Arraylist集合
        list.add("zhangsan");             //向集合添加元素
        list.add("lisi");
        list.add("wangwu");
        list.add("zhaoliu");
        Iterator it= list.iterator();     //得到Iterator对象
        while(it.hasNext()){              //判断ArrayList集合中是否有下一个元素
            Object obj=it.next();
            System.out.println(obj);       //取出ArrayList集合中的元素
        }
    }

结果如下:在这里插入图片描述

4.2.4 foreach循环

虽然Iterator可以用于遍历集合中的元素,但在写法上比较麻烦,为了能够简化书写,从JDK5.0开始,Java提供了foreach循环。foreach循环是一种更加简洁的for循环,也称增强for循环。foreach循环用于遍历集合或者数组中的元素,具体语法格式如下:

for(集合内存储类型 变量名:集合的变量名){
    执行语句部分;
}

代码如下:

package com.itheima.Example09;
import java.util.*;
public class example09 {
    public static void main(String[] args) {
        ArrayList list= new ArrayList();  //创建Arraylist集合
        list.add("zhangsan");             //向集合添加元素
        list.add("lisi");
        list.add("wangwu");
        list.add("zhaoliu");
        for(Object obj:list){           //使用 foreach 循环遍历 ArrayList 集合
            System.out.println(obj);    //取出并打印 ArrayList 集合中的元素
        }
    }
}

一定要好好看祖先类!
一定要好好看祖先类!
一定要好好看祖先类!

自己找文章读一读,我闹的不好,一定要好好看!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值