文章目录
- API
- 1API概述
- 2常用API
- 2.1Math类
- 2.2System类
- 2.3Object类
- 2.4Objects类
- 2.5 BigDecimal类
- 2.6基本类型包装类
- 2.61Interger类
- 2.62 自动装箱和自动拆箱
- 2.63 int和String类型的相互转换
- 2.7Arrays类
- 2.8时间日期类
- 2.81Date类
- 2.82SimpleDateFormat类
- 2.83JDK8时间日期类
API
1API概述
- 什么是API
- API是应用程序编程接口
- java中的API
- 指的是JDK中提供的各种功能的java类,这些类将底层的实现封装起来,我们不需要关心这些类是如何实现的,只需要学习如何使用即可,通过学习熟悉这些常用API,才能更好的用于开发中,加快开发速度。API开发有相应的开发文档,不清楚的直接查询API文档即可。
2常用API
2.1Math类
Math类中没有构造方法,类的成员都是静态的,通过类名就可以直接调用。
方法名 方法名 | 说明 |
---|---|
public static int abs(int a) | 返回参数的绝对值 |
public static double ceil(double a) | 返回大于或等于参数的最小double值,等于一个整数 |
public static double floor(double a) | 返回小于或等于参数的最大double值,等于一个整数 |
public static int round(float a) | 按照四舍五入返回最接近参数的int |
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) |
2.2System类
System类也和Math类一样成员被静态修饰,通过类名调用
方法名 | 说明 |
---|---|
public static void exit(int status) | 终止当前运行的 Java 虚拟机,非零表示异常终止 |
public static long currentTimeMillis() | 返回当前时间(以毫秒为单位) |
2.3Object类
-
类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。简单理解,Object是所有类的爸爸。
-
Object只有空参构造:public Object()
-
Object类的println()方法为打印对象的地址值呢
- println()方法里面会调用String的静态valueOf方法,
对象作为参数传进去。 - valueOf里面是一个三元表达式,返回一个getClass().getName()+"@"+Integer.toHexString(hashCode());,即包名+类名+固定格式+对象的地址值。
- 为了更好的满足自己的开发需求,打印地址值是没有用处的,因此可以通过重写来扩展方法,打印里面的属性,经常会重写toString方法
- println()方法里面会调用String的静态valueOf方法,
-
Object中的equals方法
- 用于对象之间的比较,返回true和false结果,对象比较里面默认还是调用“==”符号比较两个对象的地址值。
- 重写equals方法的场景,不希望比较对象的地址值,想要结合对象属性进行比较的时候,需要重写equals方法
- String类对Objec里的equals方法进行了重写,首先会判断这个传进来的参数类型是不是字符串类型,不是直接返回false。而StringBuilder是直接使用Object中的equals方法
2.4Objects类
- Objects类是辅助 Object的类。
- Objects类的成员都是静态的,没有构造方法
方法名 | 说明 |
---|---|
public static String toString(对象) | 返回参数中对象的字符串表示形式。 |
public static String toString(对象, 默认字符串) | 返回对象的字符串表示形式。 |
public static Boolean isNull(对象) | 判断对象是否为空 |
public static Boolean nonNull(对象) | 判断对象是否不为空 |
2.5 BigDecimal类
-
作用
可以用来进行精确计算
-
构造方法
方法名 说明 BigDecimal(double val) 参数为double BigDecimal(String val) 参数为String -
常用方法
方法名 说明 public BigDecimal add(另一个BigDecimal对象) 加法 public BigDecimal subtract (另一个BigDecimal对象) 减法 public BigDecimal multiply (另一个BigDecimal对象) 乘法 public BigDecimal divide (另一个BigDecimal对象) 除法 public BigDecimal divide (另一个BigDecimal对象,精确几位,舍入模式) 除法 -
总结
- BigDecimal是用来进行精确计算的
- 创建BigDecimal的对象,构造方法使用参数类型为字符串的。
- 四则运算中的除法,如果除不尽请使用divide的三个参数的方法。
代码示例:
BigDecimal divide = bd1.divide(参与运算的对象,小数点后精确到多少位,舍入模式);参数1 ,表示参与运算的BigDecimal 对象。参数2 ,表示小数点后面精确到多少位参数3 ,舍入模式 BigDecimal.ROUND_UP 进一法 BigDecimal.ROUND_FLOOR 去尾法 BigDecimal.ROUND_HALF_UP 四舍五入
2.6基本类型包装类
- 基本类型包装类的作用
将基本数据类型封装成对象的好处可以在对象中定义更多的功能方法操作该数据。
常用的操作之一:用于基本数据类型与字符串之间的转换。
基本类型对应的包装类
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
2.61Interger类
- Integer类包装一个对象的原始类型int的值
- Integer类的构造方法
方法名 | 说明 |
---|---|
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 |
注意这里的String型指的是“整形数值”,例如Integer.valueOf(80);
不能是其他类型,否则会报错。
2.62 自动装箱和自动拆箱
-
自动装箱
把基本数据类型转换为对应的包装类类型
-
自动拆箱
把包装类类型转换为对应的基本数据类型
Integer i = 100; // 自动装箱i += 200; // i = i + 200; 是自动装箱
2.63 int和String类型的相互转换
-
int转换为String
-
转换方式
- 方式一:直接在数字后加一个空字符串
- 方式二:通过String类静态方法valueOf()
-
示例代码
public class IntegerDemo { public static void main(String[] args) { //int --- String int number = 100; //方式1 String s1 = number + ""; System.out.println(s1); //方式2 //public static String valueOf(int i) String s2 = String.valueOf(number); System.out.println(s2); System.out.println("--------"); }}
-
-
String转换为int
-
转换方式
- 方式一:先将字符串数字转成Integer,再调用valueOf()方法
- 方式二:通过Integer静态方法parseInt()进行转换
-
示例代码
public class IntegerDemo { public static void main(String[] args) { //String --- int String s = "100"; //方式1:String --- Integer --- int Integer i = Integer.valueOf(s); //public int intValue() int x = i.intValue(); System.out.println(x); //方式2 //public static int parseInt(String s) int y = Integer.parseInt(s); System.out.println(y); }}
-
2.7Arrays类
此类包含用来操作数组(比如排序和搜索)的各种方法。
成员都是静态的,通过类名调用即可。
Arrays的常用方法
方法名 | 说明 |
---|---|
public static String toString(int[] a) | 返回指定数组的内容的字符串表示形式 |
public static void sort(int[] a) | 按照数字顺序排列指定的数组 |
public static int binarySearch(int[] a, int key) | 利用二分查找返回指定元素的索引 |
二分查找,如果不存在的值,返回负数,这个负数 = 假设该值在数组中的索引的负数 - 1 ( 负数 = - 插入点- 1())
2.8时间日期类
2.81Date类
-
Date类概述
Date 代表了一个特定的时间,精确到毫秒,1970年1月1日 00:00:00为起始时间,中国时间中东有8小时的时间差,因此打印在起始时间的基础上加上8小时
-
Date类构造方法
方法名 说明 public Date() 分配一个 Date对象,并初始化,以便它代表它被分配的时间,精确到毫秒 public Date(long date) 分配一个 Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数
2.82SimpleDateFormat类
-
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):从给定字符串的开始解析文本以生成日期
- 格式化(从Date到String)
public class SimpleDateFormatDemo { public static void main(String[] args) throws ParseException { //格式化:从 Date 到 String Date d = new Date();// SimpleDateFormat sdf = new SimpleDateFormat(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); String s = sdf.format(d); System.out.println(s); System.out.println("--------"); //从 String 到 Date String ss = "2048-08-09 11:11:11"; //ParseException SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date dd = sdf2.parse(ss); System.out.println(dd); }}
2.83JDK8时间日期类
- JDK8新增日期类
- LocalDate 表示日期(年月日)
- LocalTime 表示时间(时分秒)
- LocalDateTime 表示时间+ 日期 (年月日时分秒)
- LocalDateTime创建方法
方法名 | 说明 |
---|---|
public static LocalDateTime now() | 获取当前系统时间 |
public static LocalDateTime of (年, 月 , 日, 时, 分, 秒) | 使用指定年月日和时分秒初始化一个LocalDateTime对象 |
- LocalDateTime格式化和解析
方法名 | 说明 |
---|---|
public String format (指定格式) | 把一个LocalDateTime格式化成为一个字符串 |
public LocalDateTime parse (准备解析的字符串, 解析格式) | 把一个日期字符串解析成为一个LocalDateTime对象 |
public static DateTimeFormatter ofPattern(String pattern) | 使用指定的日期模板获取一个日期格式化器DateTimeFormatter对象 |
public class JDK8DateDemo5 { public static void main(String[] args) { //method1(); //method2(); } private static void method2() { //public static LocalDateTime parse (准备解析的字符串, 解析格式) 把一个日期字符串解析成为一个LocalDateTime对象 String s = "2020年11月12日 13:14:15"; DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"); LocalDateTime parse = LocalDateTime.parse(s, pattern); System.out.println(parse); } private static void method1() { LocalDateTime localDateTime = LocalDateTime.of(2020, 11, 12, 13, 14, 15); System.out.println(localDateTime); //public String format (指定格式) 把一个LocalDateTime格式化成为一个字符串 DateTimeFormatter pattern = DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH:mm:ss"); String s = localDateTime.format(pattern); System.out.println(s); }}
- LocalDateTime增加或者减少时间的方法
方法名 | 说明 |
---|---|
public LocalDateTime plusYears (long years) | 添加或者减去年 |
public LocalDateTime plusMonths(long months) | 添加或者减去月 |
public LocalDateTime plusDays(long days) | 添加或者减去日 |
public LocalDateTime plusHours(long hours) | 添加或者减去时 |
public LocalDateTime plusMinutes(long minutes) | 添加或者减去分 |
public LocalDateTime plusSeconds(long seconds) | 添加或者减去秒 |
public LocalDateTime plusWeeks(long weeks) | 添加或者减去周 |
方法名 | 说明 |
---|---|
public LocalDateTime minusYears (long years) | 减去或者添加年 |
public LocalDateTime minusMonths(long months) | 减去或者添加月 |
public LocalDateTime minusDays(long days) | 减去或者添加日 |
public LocalDateTime minusHours(long hours) | 减去或者添加时 |
public LocalDateTime minusMinutes(long minutes) | 减去或者添加分 |
public LocalDateTime minusSeconds(long seconds) | 减去或者添加秒 |
public LocalDateTime minusWeeks(long weeks) | 减去或者添加周 |
-
LocalDateTime修改方法,这是对应with类似于添加减少的相关方法
-
求时间间隔Period和Duration类
- 求年月日两个皆可以用between()方法,查询秒、毫妙和纳秒只能用Duration的between
参考相关文章http://t.csdn.cn/28EPB