一:Calendar类
1.1 Calendar类的概述:
Calendar为某一时刻和一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法。
Calendar提供了一个类方法getInstance用于获取Calendar对象,其日历字段已使用当前日期和时间初始化;(Calendar是一个抽象类)
Calendar rightNow=Calendar.getInstance();
import java.util.*;
public class Main {
public static void main(String[] args){
//获取对象
Calendar cal=new GregorianCalendar();//多态
// System.out.println(cal);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH)+1;//这里的月份是从0开始的,因此要加一。
int day=cal.get(Calendar.DATE);
System.out.println(year+"年"+month+"月"+day+"日");
}
}
2.2 Calendar的常用方法:
//public abstract void add(int field,int amount):根据日历的规则,将指定的时间量添加或减去给定的日历字段
cal.add(Calendar.YEAR,+3);//年+3
//publicfinal void set(int year,int month,int day):设置当前日历的年月日。
cal.set(2030,10,11);
cal.set(Calendar.YEAR,2031);
(案例:求任意年份的二月份一共有多少天)
public static void main(String[] args) {
//获取对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入年份:");
int year = sc.nextInt();
//设置日历对象的年,月,日
Calendar cal = new GregorianCalendar();
cal.set(year, 2, 1);
//3月1日往前推1天,就是二月的最后一天
cal.add(Calendar.DATE,-1);
//获取这一天并输出
int day=cal.get(Calendar.DATE);
System.out.println("在"+year+"的二月份一共有"+day+"天");
}
二:异常
2.1 异常的概述
异常:就是程序出现了不支持的情况。
- Error:严重问题,不需要处理。
- Exception:称为异常类,它表示程序本身可以处理的问题。
- RuntimeException:在编译期是不检查的,出现问题后,需要我们回来修改代码。
- 非RuntimeException:编译期就必须处理的,否则程序不能通过编译,就更不能正常运行了。
2.2 JVM的默认处理方案
如果程序出现了问题,我们没有做任何处理,最终JVM会做默认的处理。
- 把异常的名称,异常原因及异常出现的位置等信息输出在了控制台。
- 程序停止执行。
2.3 异常处理
如果程序出现了问题,我们需要自己来处理,有以下两种方案:
- try...catch...
- throws
2.4 异常处理之try...catch...
执行流程:
程序从try里面的代码开始执行。
出现异常,会自动生成一个异常类对象,该异常对象将被提交给java运行时系统。
当java运行时系统接收到异常对象时,会到catch中去找匹配的异常类,找到后进行异常的处理
执行完毕之后,程序还可以继续往下执行。
public class Main {
public static void method(){
try {
int[] arr = {1, 2, 3};
System.out.println(arr[3]);
}catch (ArrayIndexOutOfBoundsException e){
// System.out.println("你访问的索引不存在!");
e.printStackTrace();
}
}
public static void main(String[] args) {
System.out.println("开始");
method();
System.out.println("结束");
}
}
2.5 Throwable的成员方法
2.6 编译时异常和运行时异常的区别
java中的异常被分为两大类:编译时异常和运行时异常,也被称为受检异常和非受检异常。
所有的RuntimeException类及其子类被称为运行时异常,其他的异常都是编译时异常。
- 编译时异常:必须显示处理,否则程序就会发生错误,无法通过编译。
- 运行时异常:无需显示处理,也可以和编译时异常一样处理。
2.7 异常处理之throws
虽然我们通过try...catch...可以对异常进行处理,但是并不是所有的情况我们都有群贤进行异常的处理,也就是说,有些问题可能出现的异常是我们处理不了的,这个时候,Java提供了shrows的处理方案。
格式:throws 异常类名;
注意:这个格式是跟在方法的括号后面的
编译时异常必须要进行处理,两种处理方案:try...catch...或者throws,如果采用throws这种方案,将来谁调用谁处理。
运行时异常可以不处理,出现问题后,需要回来修改代码。
2.8 自定义异常
格式:
范例:
2.9 throws和throw的区别
throws:
- 用在方法声明后面,跟的是异常类名。
- 表示抛出异常,由该方法的调用者来处理。
- 表示出现异常的一种可能性,并不一定会发生这些异常。
throw:
- 用在方法体内,跟的是异常对象名
- 表示抛出异常,由方法体内的语句处理。
- 执行throw一定抛出了某种异常。
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入成绩");
int score =sc.nextInt();
teacher t=new teacher();
try{
t.checkScore(score);
}catch(ScoreException e){
e.printStackTrace();
}
}
}
class ScoreException extends Exception{
public ScoreException(){};
public ScoreException(String message){
super(message);
}
}
class teacher{
public void checkScore(int score) throws ScoreException{
if(score<0 || score>100){
throw new ScoreException("你给的分数有误,分数应该在0-100之间");
}else{
System.out.println("分数正常");
}
}
}
三:Collention
3.1 Collention
集合类的特点:提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变。
集合类体系结构:
3.2 collention集合的概述和使用:
3.3 collention集合的常用方法:
import java.util.*;
public class Main{
public static void main(String[] args) {
//1.创建集合对象
Collection<String> c=new ArrayList<String>();
//2.添加元素
c.add("hello");
c.add("world");
c.add("java");
//3.移除元素
c.add("java");
//4.清空元素
c.clear();
//5.判断集合是否存在指定元素,(有则返回TRUE)
c.contains("java");
//6.判断集合是否为空集合
c.isEmpty();
//输出对象
System.out.println(c);
}
}
3.4 Collection集合的遍历
- Iteraor:迭代器,集合的专用遍历方式。
- Iteraor<E> iterator(): 返回此集合中元素的迭代器,通过集合的iterator()方法得到
迭代器是通过集合的iterator()方法得到的,所以我们说它是依赖于集合而存在的
Iterator的常用方法:
- E next():返回迭代中的下一个元素
- boolean hasNext():如果迭代具有更多元素,则返回true。
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
public class Main{
public static void main(String[] args) {
//1.创建集合对象
Collection<String> c=new ArrayList<String>();
//2.添加元素
c.add("hello");
c.add("world");
c.add("java");
//Iterator<E> iterator(): 返回此集合中元素的迭代器,通过集合的Iteraor()方法得到
Iterator<String> it=c.iterator();
while(it.hasNext()){
System.out.println(it.next());
/*hello
world
java*/
}
}
}
(PS:以上照片截至黑马程序员java教程视频)