API
概念:
API:
API指的是"Java提前做好的那些类".
API文档:
指的是"Java提前做好的类的说明书."
操作:
- 打开API文档
- 在左边索引位置下边的搜索框中,填写"你要找到类的名称",找到之后,点击回车
- 看右边,类的说明
- 看右边构造方法(有了构造方法才能创建对象)
- 看普通方法(普通方法就是该类提供的功能)
Math
概述:
Math类中,定义了"和数学运算有关系的功能"
方法:
public static int abs(int a) //返回参数的绝对值
public static double ceil(double a) //向上取整
public static double floor(double a) //向下取整
public static int round(float a) //四舍五入
public static int max(int a,int b) //返回两个int值中的较大值
public static int min(int a,int b) //返回两个int值中的较小值
public static double pow(double a,double b)//返回a的b次幂的值
public static double random() //返回值为double的正值,[0.0,1.0)
System
概述:
System中包含了一些"系统相关"和"JDK相关"的方法
方法:
public static void exit(int status); //终止当前虚拟机,0表示正常终止,非0表示异常终止.
public static long currentTimeMillis(); //获取当前系统时间的毫秒值
public static void arraycopy(数据源数组, 起始索引, 目的地数组, 起始索引, 拷贝个数); //拷贝数组
Object
概述:
Object是一切类的父类. 所有类都直接或间接继承该类.
方法:
public String toString(); //默认放回"对象的地址值".要求子类重写该方法.重写后直接打印对象时,会打印对象的内存性.
public boolean equals(对象); //默认比较"地址值",要求子类重写该方法,重写后,比较内容.
Objects
概述:
Objects是一个操作对象的工具类.
方法:
public static Boolean isNull(对象) //判断对象是否"为空"
public static Boolean nonNull(对象) //判断对象是否"不为空"
BigDecimal
概述:
BigDecimal是一个高精度的double类型数据. 在进行高精度运算时,要使用BigDecimal进行运算.
构造:
public BigDecimal(double d);
public BigDecimal(String s); //推荐使用,精确运算时,必须使用字符串构造方法
方法:
public BigDecimal add(另一个BigDecimal对象) //加法
public BigDecimal subtract(另一个BigDecimal对象) //减法
public BigDecimal multiply(另一个BigDecimal对象) //乘法
public BigDecimal divide(另一个BigDecimal对象) //除法
public BigDecimal divide(另一个BigDecimal对象,精确几位,舍入模式) //除法
public BigDecimal setScale(精确几位,舍入模式) //保留几位精度
补充:
BigDecimal.ROUND_UP //舍入模式 -> 进一法. 新版本用: RoundingMode.UP
BigDecimal.ROUND_FLOOR//舍入模式 -> 去尾法. 新版本用: RoundingMode.FLOOR
BigDecimal.ROUND_HALF_UP//舍入模式 -> 四舍五入. 新版本用: RoundingMode.HALF_UP
包装类
概述
就是基本数据类型对应的"引用数据类型形式",一般用于"基本数据类型和String之间的相互转换"
组成:
byte -> Byte
short -> Short
int -> Integer
long -> Long
float -> Float
double -> Double
char -> Character
boolean -> Boolean
注意:
所有包装类,除了类名不一样之外,其功能和操作方式几乎一模一样.
补充:
装箱:
把"基本数据类型"变为"与之对应的包装类"
自动装箱:
指的就是自动发生的装箱操作 -> JDK5
拆箱:
把"包装类"变为"与之对应的基本数据类型"
自动拆箱:
指的就是自动发生的拆箱现象 -> JDK5
Integer
概述:
Integer是int类型的包装类
转换:
//String -> int
int num = Integer.parseInt("数字类型字符串");
//int -> String
String s = 数字 + "";
String s = String.valueOf(数字);
注意:
String类型数据转化char类型没有valueof方法用的是s.charAt(参数).参数为下标值
Arrays
概述:
专门用来操作数组的工具类.
方法:
public static void sort(int[] arr); //对数组进行升序排列
public static int binarySearch(int[] arr, int key); //从数组arr中的key元素所在的索引位置(必须从小到大的顺序).
public static String toString(int[] arr); //返回数组的字符串形式.("[1,2,3]")
递归
概述:
方法自己调用自己的现象称之为"递归".
书写:
- 定义方法(定义的是通用方法)
- 在方法中书写规律,注意,规律中一定有结束的时候.
- 利用"定义好的方法"替换"语法性错误".
注意:
- 递归定义要有结束标记.
- 递归的次数不能太多.
时间类
Date
概述:
仅仅用来表示时间(代表时间).
构造:
public Date(); //获取当前系统时间
public Date(long times); //获取"毫秒值参数"所代表的时间
方法:
public long getTime(); //获取时间所代表的毫秒值
SimpleDateFormat
概述:
负责转换时间,也就是把Date转换为能看懂的格式
构造:
public SimpleDateFormat("时间格式");
方法:
public String format(Date date); //格式化(把Date按照指定"时间格式"转换为String)
public Date parse(String source);//解析(把String按照指定"时间格式"转换为Date)
扩展:
y:年, M:月, d:日, H:时, m:分, s:秒
异常
概述
所谓的异常指的就是"程序中出现的不正常现象",可以简单理解为"报错".
做法:
- 把"异常类型, 异常原因, 异常位置"都打印到控制台.
- 终止当前Java程序的运行.
异常处理
JVM默认处理
概述:
如果开发人员不处理异常,则JVM会自动处理异常.
做法:
- 把"异常类型, 异常原因, 异常位置"都打印到控制台.
- 终止当前Java程序的运行.
异常声明
概述:
书写在方法上,是告诉方法的调用者,该方法有可能有问题,让调用者处理该问题.简单来说,就是"甩锅".
格式:
public static void 方法名() throws 异常类型{
//方法体
}
注意:
异常声明,一般用于处理"编译时异常".
异常捕获
概述:
就是把异常抓住,让后续代码能够正常运行.
格式:
try{
//可能出现异常的代码
//可能出现异常的代码
//可能出现异常的代码
}catch(异常类型 对象名){
//如果发生异常,就执行catch
//如果不发生异常,就不执行catch
}
注意:
- 如果有多种错误,就可以书写多个catch,每个catch处理不同的异常.(际开发中直接写Exception即可)
- 可以使用快捷键"Ctrl + Alt + T",然后选择"try/catch"
- try-catch的主要意义在于:代码出问题时,不影响try-catch结构外的代码的运行.
补充
异常方法
public String getMessage(); //获取"异常原因".
public String toString(); //获取"异常类型,异常原因".
public void printStackTrace(); //把"异常类型,异常原因,异常位置"打印到控制台
throw-异常抛出
概述: throw用于"制造异常"
格式: throw 异常对象;
自定义异常
意义:
仅仅为了"见名知意". 当发生异常时,通过异常类型的名字,直接表示异常发生的原因.
步骤:
- 定义一个类,继承RuntimeException或Exception
- 用Idea生成"无参构造方法"和"字符串参数的构造方法"