一、了解API
1.API的定义
(1).api是应用程序接口,是一些预先定义的函数,或指软件系统不同组成部分衔接的约定。
(2).api目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问原码或理解内部工作机制的细节。
(3).api的一个主要功能是提供通用功能集。api同时也是一种中间件,为各种平台提供数据共享,程序设计的实践中编程接口的设计首先要使软件系统的职责得到合理划分。
二、Scanner类
2.1查看类
java.util.Scanner:该类需要import导入后使用
如图:
2.2查看构造方法
public Scanner:构造一个新的Scanner,它生成的值是从指定的输入流扫描的。
2.3查看成员方法
public int nextInt():将输入信息的下一个标记扫描为一个int值,使用Scanner类,完成接收键盘录入数据的操作.
三、Math类
3.1Math简述:
Math继承了Object类,位于java.lang包下,因此使用前无需import导包。Math类包含用于执行基本数学运算的方法,通过查看API文档知道类当中的方法都是静态方法,因此可同通过类名·方法名直接调用。
3.2Math构造方法
方法 | 说明 |
---|---|
public static int abs ( int a) | 返回 int 值的绝对值 |
public static double ceil ( double a) | 返回最小的(最接近负无穷大) double 值,该值大于等于参数,并等于某个整数(向上取整) |
public static double floor ( double a) | 返回最大的(最接近正无穷大) double 值,该值小于等于参数,并等于某个整数 (向下取整) |
public static int max (inta ,int b) | 返回两个 int 值中较大的一个 |
public static int min ( int a, int b) | 返回两个 int 值中较小的一个 |
public static long round ( double a) | 返回最接近参数的 long。结果将舍入为整数 |
public static double random () | 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。返回值是一个伪随机选择的数 |
四、Object类
4.1.Object简述
Java 中的 Object 方法在面试中是一个非常高频的点,毕竟 Object 是所有类的“老祖宗”。Java 中所有的类都有一个共同的祖先 Object 类,子类都会继承所有 Object 类中的 public 方法。
4.2.Object常用方法
方法 | 说明 |
---|---|
public static String toString(对象) | 返回参数中对象的字符串表示形式。 |
public static String toString(对象, 默认字符串) | 返回对象的字符串表示形式。 |
public static Boolean isNull(对象) | 判断对象是否为空 |
public static Boolean nonNull(对象) | 判断对象是否不为空 |
4.3.GetClass 方法
final 方法、获取对象的运行时 class 对象,class 对象就是描述对象所属类的对象。这个方法通常是和 Java 反射机制搭配使用的。
public final native Class<?> getClass();
4.4.hashCode 方法
该方法主要用于获取对象的散列值。Object 中该方法默认返回的是对象的堆内存地址。
public native int hashCode();
4.5.equals 方法
该方法用于比较两个对象,如果这两个对象引用指向的是同一个对象,那么返回 true,否则返回 false。一般 equals 和 == 是不一样的,但是在 Object 中两者是一样的。子类一般都要重写这个方法。
public boolean equals(Object obj) { return (this == obj);}
4.6.ToString 方法
4.6.1.重写toString方法的方式在idea里用Alt + Insert 选择toString,或者是在类的空白区域,右键 -> Generate -> 选择toString
toString方法的作用是以良好的格式,更方便的展示对象中的属性值
public class Student extends Object{
private String name;
private int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
class obj{
public static void main(String[] args) {
Student stu = new Student();
stu.setName("鲍勃");
stu.setAge(20);
System.out.println(stu);
System.out.println(stu.toString());
}
}
}
五、BigDecimal
5.1.BigDecimal的构造方法
方法 | 说明 |
---|---|
BigDecimal(double val) | 参数为double |
BigDecimal(String val) | 参数为String |
5.2.BigDecimal的常用方法
方法 | 说明 |
---|---|
public BigDecimal add(另一个BigDecimal对象) | 加法 |
public BigDecimal subtract (另一个BigDecimal对象) | 减法 |
public BigDecimal multiply (另一个BigDecimal对象) | 乘法 |
public BigDecimal divide (另一个BigDecimal对象) | 除法 |
public BigDecimal divide (另一个BigDecimal对象,精确几位,舍入模式) | 除法 |
5.3.BigDecimal总结
- BigDecimal是用来进行精确计算的
- 创建BigDecimal的对象,构造方法使用参数类型为字符串的。
- 四则运算中的除法,如果除不尽请使用divide的三个参数的方法。
BigDecimal divide = bd1.divide(参与运算的对象,小数点后精确到多少位,舍入模式);
参数1 ,表示参与运算的BigDecimal 对象。
参数2 ,表示小数点后面精确到多少位
参数3 ,舍入模式
BigDecimal.ROUND_UP 进一法
BigDecimal.ROUND_FLOOR 去尾法
BigDecimal.ROUND_HALF_UP 四舍五入
六、包装类
6.1.基本包装类的作用
基本类型包装类的作用 将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据
常用的操作之一:用于基本数据类型与字符串之间的转换
6.2.基本类对应的包装类
基本数据类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
6.3.构造方法
每个包装类都有对应的构造方法来创建一个包装类对象。
方法 | 说明 |
---|---|
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 |
6.4.包装类示例
public class Main {
public static void main(String[] args) {
Integer int1 = new Integer(123);
Integer int2 = Integer.valueOf(456);
int i = int1.intValue();
String s1 = int1.toString();
String s2 = Integer.toString(789);
int a = Integer.parseInt("123");
System.out.println(int1);
System.out.println(int2);
System.out.println(i);
System.out.println(s1);
System.out.println(s2);
System.out.println(a);
}
}
七、自动拆箱和自动装箱
7.1.自动拆箱和自动装箱的概念
自动装箱: 就是将基本数据类型自动转换成对应的包装类。
自动拆箱:就是将包装类自动转换成对应的基本数据类型。
Integer i = 10; //自动装箱
int b = i; //自动拆箱
7.2.自动装箱与自动拆箱的实现原理
自动装箱都是通过包装类的 valueOf() 方法来实现的.自动拆箱都是通过包装类对象的 XXXValue() 来实现的。
7.3.自动装箱与自动拆箱的数据类型
基础类型 | 包装类型 | 大小(字节) | 取值范围 | 默认值 | 缓存范围 |
---|---|---|---|---|---|
byte | Byte | 1 | -2^7, 2^7-1 | 0 | -128,127 |
short | Short | 2 | -2^15, 2^15-1 | 0 | -128,127 |
int | Integer | 4 | -2^31, 2^31-1 | 0 | -128,127 |
long | Long | 8 | -2^63, 2^63-1 | 0L | -128,127 |
char | Character | 2 | 0, 216-1 (\u0000,\uffff) | \u0000 | 0,127 |
float | Float | 4 | 1.4E-45, 3.4028235E38 | 0.0f | 无 |
double | Double | 8 | 4.9E-324, 1.7976931348623157E308 | 0.0d | 无 |
boolean | Boolean | 1 | true, false | false | true,false |