1.包装类

1.1 基本类型包装类

基本类型包装类的作用

  将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据

  常用的操作之一:用于基本数据类型与字符串之间的转换

基本类型 包装类
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

1.2 Integer

Integer类概述

  包装一个对象中的原始类型 int 的值

构造方法

方法名 说明
public Integer(int value) 根据 int 值创建 Integer 对象(过时)
public Integer(String s) 根据 String 值创建 Integer 对象(过时)
public static Integer valueOf(int i) 返回表示指定的 int 值的 Integer 实例
public static Integer valueOf(String s) 返回一个保存指定值的 Integer 对象 String

1.3 int和String类型的相互转换

int转换为String 转换方式

  方式一:直接在数字后加一个空字符串

  方式二:通过String类静态方法valueOf()

String转换为int 

  方式一:先将字符串数字转成Integer,再调用valueOf()方法

  方式二:通过Integer静态方法parseInt()进行转换

1.4 自动拆箱和自动装箱

自动装箱

  把基本数据类型转换为对应的包装类类型

自动拆箱

  把包装类类型转换为对应的基本数据类型

2.时间日期类

2.1 Date类

Date类概述

  Date 代表了一个特定的时间,精确到毫秒

Date类构造方法

方法名 说明
public Date() 分配一个 Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒
public Date(long date) 分配一个 Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数

2.2 Date类常用方法

方法名 说明
public long getTime() 获取的是日期对象从1970年1月1日 00:00:00到现在的毫秒值
public void setTime(long time) 设置时间,给的是毫秒值

2.3 SimpleDateFormat类

SimpleDateFormat类概述

  SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。

  我们重点学习日期格式化和解析

SimpleDateFormat类构造方法

方法名 说明
public SimpleDateFormat() 构造一个SimpleDateFormat,使用默认模式和日期格式
public SimpleDateFormat(String pattern) 构造一个SimpleDateFormat使用给定的模式和默认的日期格式

SimpleDateFormat类的常用方法

  格式化(从Date到String)

    public final String format(Date date):将日期格式化成日期/时间字符串

  解析(从String到Date)

    public Date parse(String source):从给定字符串的开始解析文本以生成日期

2.5 Calendar类

Calendar类概述

  Calendar 为特定瞬间与一组日历字段之间的转换提供了一些方法,并为操作日历字段提供了一些方法

  Calendar 提供了一个类方法 getInstance 用于获取这种类型的一般有用的对象。 该方法返回一个Calendar 对象。

Calendar类常用方法

方法名 说明
public int get(int field) 返回给定日历字段的值
public abstract void add(int field, int amount) 根据日历的规则,将指定的时间量添加或减去给定的日历字段
public final void set(int year,int month,int date) 设置当前日历的年月日

二月天案例

 1 public class CalendarTest {
2 public static void main(String[] args) {
3 //键盘录入任意的年份
4 Scanner sc = new Scanner(System.in);
5 System.out.println("请输入年:");
6 int year = sc.nextInt();
7 //设置日历对象的年、月、日
8 Calendar c = Calendar.getInstance();
9 c.set(year, 2, 1);
10 //3月1日往前推一天,就是2月的最后一天
11 c.add(Calendar.DATE, -1);
12 //获取这一天输出即可
13 int date = c.get(Calendar.DATE);
14 System.out.println(year + "年的2月份有" + date + "天");
15 }
16 }

3.异常

3.1 异常

异常的概述

  异常就是程序出现了不正常的情况

异常的体系结构

Throwable

  Error:严重的错误,我们无法处理

  Exception:程序本身可以处理的错误

    RuntimeException:在编译期不做检查,等到发现错误时由我们回来修改程序

    非RuntimeException:编译期就必须处理,否则无法通过编译

3.2 JVM默认处理异常的方式

如果程序出现了问题,我们没有做任何处理,最终JVM 会做默认的处理,处理方式有如下两个步骤:

  把异常的名称,错误原因及异常出现的位置等信息输出在了控制台

  程序停止执行

3.3 try-catch方式处理异常

定义格式

1 try {
2   可能出现异常的代码;
3 } catch(异常类名 变量名) {
4   异常的处理代码;
5 }

执行流程

  程序从 try 里面的代码开始执行

  出现异常,就会跳转到对应的 catch 里面去执行

  执行完毕之后,程序还可以继续往下执行

3.4 Throwable成员方法

常用方法

方法名 说明
public String getMessage() 返回此 throwable 的详细消息字符串
public String toString() 返回此可抛出的简短描述
public void printStackTrace() 把异常的错误信息输出在控制台

3.5 编译时异常和运行时异常的区别

编译时异常

  都是Exception类及其子类

  必须显示处理,否则程序就会发生错误,无法通过编译

运行时异常

  都是RuntimeException类及其子类

  无需显示处理,也可以和编译时异常一样处理

3.6 throws方式处理异常

定义格式

1 public void 方法() throws 异常类名 {
2 ……
3 }

注意事项

  这个throws格式是跟在方法的括号后面的

  编译时异常必须要进行处理,两种处理方案:try...catch …或者 throws,如果采用 throws 这种方案, 将来谁调用谁处理

  运行时异常可以不处理,出现问题后,需要我们回来修改代码

3.7 throws和throw的区别

Throws

  用在方法声明的后面,跟着的是异常类名

  表示抛出异常,由该方法的调用者来处理

  表示出现异常的一种可能,并不一定会出现这个异常

Throw

  用在方法体内,跟着的是异常类名

  表示抛出异常,由方法体内语句处理

  执行throw一定抛出了某种异常

3.8 自定义异常

自定义异常类

1 public class iNumberLargeException extends Exception {
2 public iNumberLargeException(){}
3
4 public iNumberLargeException(String message){
5 super(message);
6 }
7 }

检测类

1 public class Check {
2 public static void check(int sorce) throws iNumberLargeException {
3 if (sorce < 0 || sorce > 100) {
4 throw new iNumberLargeException("分数异常!");
5 } else {
6 System.out.println("正常");
7 }
8 }
9 }

测试类

import java.util.Scanner;

public class iExceptionDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int sorce = sc.nextInt();
try {
Check.check(sorce);
} catch (iNumberLargeException e) {
e.printStackTrace();
}
}
}

JavaSE13-常用API&异常的更多相关文章

  1. node.js整理 02文件操作-常用API

    NodeJS不仅能做网络编程,而且能够操作文件. 拷贝 小文件拷贝 var fs = require('fs'); function copy(src, dst) { fs.writeFileSync ...

  2. request对象常用API 获取请求参数的值 request应用 MVC设计模式

    1 request对象常用API   1)表示web浏览器向web服务端的请求   2)url表示访问web应用的完整路径:http://localhost:8080/day06/Demo1     ...

  3. kubernetes 客户端KubeClient使用及常用api

    KubeClient是kubernetes 的C#语言客户端简单易用,KubeClient是.NET Core(目标netstandard1.4)的可扩展Kubernetes API客户端, gith ...

  4. jedis常用API

    一.Redis Client介绍 1.1.简介 Jedis Client是Redis官网推荐的一个面向java客户端,库文件实现了对各类API进行封装调用. Jedis源码工程地址:https://g ...

  5. JsRender 前端渲染模板常用API学习

    JsRender 常用API 1. $.templates() $.templates()方法是用来注册或编译模板的,使用的情况有以下几种. 把html字符串编译编译成模板 获取使用script标签声 ...

  6. Map容器——TreeMap及常用API,Comparator和Comparable接口

    TreeMap及常用API ①   TreeMap类通过使用红黑树实现Map接口; ②   TreeMap提供按排序顺序存储键/值对的有效手段,同时允许快速检索; ③   不像散列(HashMap), ...

  7. 反射常用API

    反射所有功能都是通过class API来实现的 class常用API有: 1.class.GETINTERFACES():获得这个类实现的接口. 2.class.getMethods() Method ...

  8. gojs常用API (中文文档)

    常用API   操作类API   API 例子 应用场景 添加节点 myDiagram.model.addNodeData(node); var node = {}; node["key&q ...

  9. Netty的常用API(二)

    在使用Netty之前先介绍下Netty的常用API,对其有一个大概的了解. 一.EventLoop和EventLoopGroup EventLoop如同它的名字,它是一个无限循环(Loop),在循环中 ...

  10. Java 常用API (第二部分)

    常用api第二部分 Date 类 import java.util.Date; 时间原点: 1970-01-01 00:00:00(英国格林威治) 中国属于东八区, 会把时间增加 8 个小时: 197 ...

随机推荐

  1. 这篇SpringBoot整合JSON的学习笔记,建议收藏起来,写的太细了

    前言 JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛. 采用完全独立于编程语言的文本格式来存储和表示数据. 简洁和清晰 ...

  2. ABBYY FineReader 15如何比较文档?

    ABBYY FineReader 15 OCR文字识别软件能帮助用户快速地对比两个文档间的差异,适合用于审阅.修改文档,发现新旧版本差异,预防输出错误版本等情况.此功能既能用于对比同一格式文档的不同版 ...

  3. 使用Camtasia制作冰雪奇缘视频

    冰雪奇缘的精良制作,以及场景的华丽,让很多女孩子都很喜欢.对于其中美丽的冰雪场景,我们还可以使用Camtasia(Windows系统)教程录制软件来做冰雪奇缘视频. Camtasia教程录制软件是一款 ...

  4. CorelDRAW 里面如何将文字调整成半透明的颜色

    早在几年前,平面设计师在做设计时会遇到关于印刷的难题,那就是为了降低印刷成本,必须减少他们的颜色数量.随着印刷方法的进步,特别是数字出版物的兴起,我们生活在一个主要是通过屏幕观看图形的时代,一个可以显 ...

  5. guitar pro系列教程(二十七):Guitar Pro教程之理解记谱法

    前面的章节我们讲解了很多关于Guitar Pro'的功能使用,今天小编还是采用图文结合的方式为大家讲解它的理解记谱法,对于很多新人来说,在我们看谱之前,我们肯定要先熟悉他的一些功能如何使用以及一些关于 ...

  6. nginx学习http_access_module模块

    location ~ ^/1.html { root /opt/app/code; deny XXXXX; #这个ip不能访问1.html allow all; #其他的可以访问这个页面1.html ...

  7. [COCI2016-2017#1] Mag 结论证明

    结论:最多包含一个 \(2\),并且不在链的两端点. 证明:我们问题分成两个 \(\texttt{pass}\). \(\texttt{pass 1}\):\(\forall u,s.t.x_{u}\ ...

  8. 1. git简介

    1.1 版本控制理解 版本控制 工程设计领域中使用版本控制管理工程蓝图的设计过程,在 IT 开发过程中也可以使用版本控制思想管理代码的版本迭代 集中式版本控制工具 CVS.SVN.VSS等 分布式版本 ...

  9. 求1-1e11内的素数个数(HDU 5901 Count primes )

    参考链接:https://blog.csdn.net/Dylan_Frank/article/details/54428481 #include <bits/stdc++.h> #defi ...

  10. 牛客练习赛69 火柴排队 题解(dp)

    题目链接 题目大意 给你一个长为n(n<=5e3)的数组a.随机使得k个元素增加d.要你求多大的概率使得,这些数组元素的相对大小不发生改变 输出 n 行每行一个整数,第 i 行的整数表示 k=i ...