java复习总结3

异常简介
     阻止当前方法或作用域,称之为异常
     Throwable : Error Exception
     Exception 分为检查异常和非检查异常
     非检查异常有空指针异常,数组下标越界异常,类型转换异常,算术异常等
     检查异常:文件异常,SQL异常


  处理异常
      try-catch以及try-catch-finally


  java中的异常抛出
     throw - 将产生的异常抛出
     throws - 声明将要抛出何种类型的异常(声明)
    自定义异常
    class自定义异常类 extends 异常类型{
    }
   java中的异常类
   总结
     1 处理运行时异常时,采用逻辑去合理规避同时辅助try-catch处理
     2 在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常
     3 对于不确定的代码,也可以加上try-catch,处理潜在的异常
     4 尽量去处理异常,切记只是简单的调用printStackTrace()去打印输出
     5 具体如何处理异常,要根据不同的业务需求和异常类型去决定
     6 尽量添加finally语句块去释放占用的资源


     “==” 和 equals() 有什么区别?


==: 判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象


equals(): 比较存储在两个字符串对象中的内容是否一致
包装类主要提供了两大类方法:


1. 将本类型和其他基本类型进行转换的方法


2. 将字符串和本类型及包装类互相转换的方法


基本类型转换为字符串有三种方法:


1. 使用包装类的 toString() 方法


2. 使用String类的 valueOf() 方法


3. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串


Calendar 类
   java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间,如 Calendar c = Calendar.getInstance();
 java中的集合框架
       java中的集合类:是一种工具类,就像是容器,储存任意数量的具有共同属性的对象。
       集合的作用
          在类的内部,对数据进行组织。
 简单而快速的搜索大数量的条目
 有的集合接口,提供了一系列排列有序的元素,并且可以在序列中间快速的插入或者删除有关元素
 有的集合接口,提供了映射关系,可以通过关键字(key)去快速查找到对应的唯一对象,而这个关键字可以是任意类型
集合与数组的对比
        数组的长度固定,集合长度可变
数组只能通过下表访问元素,类型固定,而有的集合可以
通过任意类型查找所映射的具体对象
java中的集合框架结构
   Collection   Map
   Collection(List Queue Set)
   Map(Hashmap)
Collection接口、子接口以及实现类
     Collection接口
        是List、Set和Queue接口的父接口
定义了可用于操作List、Set和Queue的方法-增删改查
    List接口及其实现类-ArrayList
       List是元素有序并且可以重复的集合,被称为序列
       List可以精确的控制每个元素的插入位置,或删除某个位置元素
       ArrayList-数组序列,是List的一个重要实现类
       ArrayList底层是由数组实现的


    泛型
       集合中的元素,可以是任意类型的对象(对象的引用)
       如果把某个对象放入集合,则会忽略他的类型,而把他当做Object处理
       泛型则是规定了某个集合只可以存放特定类型的对象
       会在编译期间进行类型检查
       可以直接按指定类型获取集合元素


    Set接口及其实现类-HashSet
        Set是元素无序并且不可以重复的集合,被称为集
HashSet-哈希集,是Set的一个重要实现类
Set是无序的,List是有序的
Set中,添加某个对象,无论添加多少次,最终只会保留一个该对象
还可以添加空的对象
Map和HashMap
    Map接口
     Map提供了一种映射关系,其中的元素是以键值对(key-value)的
     形式存储的,能够实现根据key快速查找value
     Map中的键值对以Entry类型的对象实例形式存在
     键(key值)不可重复,value值可以
     Map支持泛型,
   HashMap类
     HashMap是Map的一个重要实现类,也是最常用的,基于哈希表实现
     HashMap中的Entry对象是无序排列的
     key值和value值都可以为null,但是一个hashMap只能有一个key值为null的映射

     (key值不可重复)

 案例:
       package hpu.edu.cn.Admin;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import java.util.Set;

public class MapTest {

	/**
	 * @param args
	 */
	public Map<String, Student> students;
	public MapTest(){
		this.students = new HashMap<String,Student>();
	}
	public void testPut(){
		Scanner console = new Scanner(System.in);
		int i = 0;
		while(i < 3){
			System.out.println("请输入学生ID:");
			String ID = console.next();
			Student st = students.get(ID);
			if(st == null){
				System.out.println("请输入学生姓名:");
				String name = console.next();
				Student newSt = new Student(ID,name);
			    students.put(ID, newSt);
			    System.out.println("成功添加学生:" + students.get(ID).name);
			    i++;
			}else{
				System.out.println("该学生ID已被占用!!");
				continue;
			}
			
		}
	}
	public void testKeySet(){
		Set<String> keySet = students.keySet();
		System.out.println("总共有:" + students.size() + "个学生!!");
		
		for (String stuId:keySet) {
			Student st = students.get(stuId);
			if(st != null){
				System.out.println("学生:" + st.name);
			}
		}
	}
	public void testRemove(){
		Scanner console = new Scanner(System.in);
		while(true){
			System.out.println("请输入要删除学生的ID:");
			String ID = console.next();
			Student st = students.get(ID);
			if(st == null){
				System.out.println("该ID不存在!!");
				continue;
			}
			students.remove(ID);
			System.out.println("成功删除学生:" + st.name);
			break;
		}
	}
	/*
	 * 
	 * entrySet方法来遍历Map
	 **/
	public void testEntrySet(){
		Set<Entry<String,Student>> entrySet = students.entrySet();
		for(Entry<String,Student> entry:entrySet){
			System.out.println("取得键:" + entry.getKey());
			System.out.println("对应的值为:" + entry.getValue().name);
			
		}
	}
	public void testModify(){
		System.out.println("请输入要修改的学生ID:");
		Scanner console = new Scanner(System.in);
		while(true){
			String stuID = console.next();
			Student student = students.get(stuID);
			if(student == null){
				System.out.println("该ID不存在!请重新输入!");
				continue;
			}
			
			System.out.println("当前该学生ID,所对应的学生为:" + student.name);
			System.out.println("请输入新的学生姓名:");
			String name = console.next();
			Student newSt = new Student(stuID,name);
			students.put(stuID,newSt);
			System.out.println("修改成功!!");
			break;
		}
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        MapTest mt = new MapTest();
        mt.testPut();
        mt.testKeySet();
	 mt.testRemove();
        mt.testEntrySet();
	}

}


你可能感兴趣的:(java复习总结3)