赞
踩
Java中的API可以理解为一本编程字典或者工具包,它包含了许多预定义的类、接口和方法,可以帮助我们更方便地开发Java程序
想象一下,当你要做一个饭菜的时候,你需要食谱和厨具。食谱告诉你需要哪些食材和步骤,而厨具则提供了切菜、炒菜等功能。在这个例子中,食谱就当于API,而厨具就相当于Java的API
Java的API提供了各种各样的类和方法,例如用于处理字符串、日期、文件、网络通信等等。通过使用这些类和方法,我们可以更轻松地实现我们想要的功能,而不需要从头开始编写所有的代码
当我们需要使用API时,只需要按照API提供的文档或者说明,调用相应的类和方法即可。这样,我们可以节省大量的时间和精力,同时也能够利用已经被验证过的代码,提高程序的可靠性和效率
总之,API是Java开发中非常重要的一部分,它为我们提供了许多常用功能的实现,使得我们能够更加高效地开发Java程序
API帮助文档是对API的详细说明和使用指南。它提供了有关API中所有类、接口、方法和属性的详细描述,包括它们的功能、参数、返回值和使用示例等
API帮助文档通常由API提供者编写和维护,以便开发人员能够更好地理解和使用API。它可以作为开发人员的参考手册,帮助他们了解API的功能和用法,并在开发过程中查找需要的信息
所以API帮助文档提供的API所有类、接口、方法这些不需要去死记,它是字典,是工具
作为开发人员,会使用文档,会使用里面类的方法即可,如果忘记了就去找嘛
或者说当我们遇到问题或需要使用某个功能时,可以通过查阅API文档来找到合适的类和方法,并了解它们
的用法,这样就够了。
千万不要去死记!!!
想要获取API帮助文档可以从这个WX公众号
API中的类有很多,以下只是举例常用的
在API帮助文档下,Math类有以下介绍:
Math 类包含执行基本数字运算的方法,我们可以使用Math类完成基本的数学运算
以下是一些常用的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) // 按照四舍五入返回最接近参数的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() // 返回一个[0.0,1.0)的随机值
可以在IDEA中查看Math类的描述:
具体代码实现:
- public class MathDemo01 {
-
- public static void main(String[] args) {
-
- // public static int abs(int a) 返回参数的绝对值
- System.out.println("-2的绝对值为:" + Math.abs(-2));
- System.out.println("2的绝对值为:" + Math.abs(2));
-
- // public static double ceil(double a) 返回大于或等于参数的最小整数
- System.out.println("大于或等于23.45的最小整数位:" + Math.ceil(23.45));
- System.out.println("大于或等于-23.45的最小整数位:" + Math.ceil(-23.45));
-
- // public static double floor(double a) 返回小于或等于参数的最大整数
- System.out.println("小于或等于23.45的最大整数位:" + Math.floor(23.45));
- System.out.println("小于或等于-23.45的最大整数位:" + Math.floor(-23.45));
-
- // public static int round(float a) 按照四舍五入返回最接近参数的int
- System.out.println("23.45四舍五入的结果为:" + Math.round(23.45));
- System.out.println("23.55四舍五入的结果为:" + Math.round(23.55));
-
- // public static int max(int a,int b) 返回两个int值中的较大值
- System.out.println("23和45的最大值为: " + Math.max(23, 45));
-
- // public static int min(int a,int b) 返回两个int值中的较小值
- System.out.println("12和34的最小值为: " + Math.min(12 , 34));
-
- // public static double pow (double a,double b)返回a的b次幂的值
- System.out.println("2的3次幂计算结果为: " + Math.pow(2,3));
-
- // public static double random()返回值为double的正值,[0.0,1.0)
- System.out.println("获取到的0-1之间的随机数为: " + Math.random());
- }
-
- }
结果输出:
- -2的绝对值为:2
- 2的绝对值为:2
- 大于或等于23.45的最小整数位:24.0
- 大于或等于-23.45的最小整数位:-23.0
- 小于或等于23.45的最大整数位:23.0
- 小于或等于-23.45的最大整数位:-24.0
- 23.45四舍五入的结果为:23
- 23.55四舍五入的结果为:24
- 23和45的最大值为: 45
- 12和34的最小值为: 12
- 2的3次幂计算结果为: 8.0
- 获取到的0-1之间的随机数为: 0.7322484131745958
在API帮助文档下,System类有以下介绍
System包含了系统操作的一些常用的方法。比如获取当前时间所对应的毫秒值,再比如终止当前JVM等等
具体代码实现:
- public static long currentTimeMillis()
- // 获取当前时间所对应的毫秒值(当前时间为0时区所对应的时间即就是英国格林尼治天文台旧址所在位置)
-
- public static void exit(int status)
- // 终止当前正在运行的Java虚拟机,0表示正常退出,非零表示异常退出
-
- public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
- // 进行数值元素copy
- public class SystemDemo01 {
-
- public static void main(String[] args) {
-
- // 获取当前时间所对应的毫秒值
- long millis = System.currentTimeMillis();
-
- // 输出结果
- System.out.println("当前时间所对应的毫秒值为:" + millis);
- }
-
- }
运行程序进行测试,控制台的输出结果如下:
当前时间所对应的毫秒值为:1576050298343
currentTimeMillis方法获取到当前时间的毫秒值的意义:我们常常来需要统计某一段代码的执行时间。此时我们就可以在执行这段代码之前获取一次时间,在执行完毕以后再次获取一次系统时间,然后计算两个时间的差值,
这个差值就是这段代码执行完毕以后所需要的时间,示例如下:
- public class CodeExecutionTime {
- public static void main(String[] args) {
- // 获取开始时间
- long startTime = System.currentTimeMillis();
-
- // 执行需要计算执行时间的代码段
- for (int i = 0; i < 10000000; i++) {
- // 一些需要计算执行时间的操作
- int result = i * 2; // 乘法运算
- double squareRoot = Math.sqrt(i); // 平方根计算
- String str = "Number: " + i; // 字符串拼接
- //System.out.println(str); // 打印输出
- }
-
- // 获取结束时间
- long endTime = System.currentTimeMillis();
-
- // 计算执行时间
- long executionTime = endTime - startTime;
-
- // 打印执行时间
- System.out.println("代码执行时间为:" + executionTime + "毫秒");
- }
- }
结果输出:
代码执行时间为:222毫秒
- public class SystemDemo01 {
-
- public static void main(String[] args) {
-
- // 输出
- System.out.println("程序开始执行了.....");
-
- // 终止JVM
- System.exit(0);
-
- // 输出
- System.out.println("程序终止了..........");
-
- }
-
- }
输出结果:
程序开始执行了.....
- // src: 源数组
- // srcPos: 源数值的开始位置
- // dest: 目标数组
- // destPos: 目标数组开始位置
- // length: 要复制的元素个数
- public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
代码如下所示:
- public class SystemDemo01 {
-
- public static void main(String[] args) {
-
- // 定义源数组
- int[] srcArray = {23 , 45 , 67 , 89 , 14 , 56 } ;
-
- // 定义目标数组
- int[] desArray = new int[10] ;
-
- // 进行数组元素的copy: 把srcArray数组中从0索引开始的3个元素,从desArray数组中的1索引开始复制过去
- System.arraycopy(srcArray , 0 , desArray , 1 , 3);
-
- // 遍历目标数组
- for(int x = 0 ; x < desArray.length ; x++) {
- if(x != desArray.length - 1) {
- System.out.print(desArray[x] + ", ");
- }else {
- System.out.println(desArray[x]);
- }
-
- }
-
- }
-
- }
输出结果:
0, 23, 45, 67, 0, 0, 0, 0, 0, 0
在API帮助文档下,Runtime类有以下介绍
Runtime表示Java中运行时对象,可以获取到程序运行时设计到的一些信息
具体代码实现:
- public static Runtime getRuntime() //当前系统的运行环境对象
- public void exit(int status) //停止虚拟机
- public int availableProcessors() //获得CPU的线程数
- public long maxMemory() //JVM能从系统中获取总内存大小(单位byte)
- public long totalMemory() //JVM已经从系统中获取总内存大小(单位byte)
- public long freeMemory() //JVM剩余内存大小(单位byte)
- public Process exec(String command) //运行cmd命令
- public class RunTimeDemo1 {
- public static void main(String[] args) throws IOException {
- /*
- public static Runtime getRuntime() 当前系统的运行环境对象
- public void exit(int status) 停止虚拟机
- public int availableProcessors() 获得CPU的线程数
- public long maxMemory() JVM能从系统中获取总内存大小(单位byte)
- public long totalMemory() JVM已经从系统中获取总内存大小(单位byte)
- public long freeMemory() JVM剩余内存大小(单位byte)
- public Process exec(string command) 运行cmd命令
- */
-
- //1.获取Runtime的对象
- //Runtime r1 =Runtime.getRuntime();
-
- //2.exit 停止虚拟机
- //Runtime.getRuntime().exit(0);
- //System.out.println("看看我执行了吗?");
-
-
- //3.获得CPU的线程数
- System.out.println(Runtime.getRuntime().availableProcessors());//8
- //4.总内存大小,单位byte字节
- System.out.println(Runtime.getRuntime().maxMemory() / 1024 / 1024);//4064
- //5.已经获取的总内存大小,单位byte字节
- System.out.println(Runtime.getRuntime().totalMemory() / 1024 / 1024);//254
- //6.剩余内存大小
- System.out.println(Runtime.getRuntime().freeMemory() / 1024 / 1024);//251
-
- //7.运行cmd命令
- //shutdown :关机
- //加上参数才能执行
- //-s :默认在1分钟之后关机
- //-s -t 指定时间 : 指定关机时间
- //-a :取消关机操作
- //-r: 关机并重启
- Runtime.getRuntime().exec("shutdown -s -t 3600");
-
- }
- }
在API帮助文档下,Object类有以下介绍
所有的类都继承自object类。object类是类层次结构的根,它是所有类的超类
无论是自定义的类还是Java内置的类,都直接或间接地继承自object类
具体代码实现:
- public String toString() //返回该对象的字符串表示形式(可以看做是对象的内存地址值)
- public boolean equals(Object obj) //比较两个对象地址值是否相等;true表示相同,false表示不相同
创建一个学生类,提供两个成员变量(name , age);并且提供对应的无参构造方法和有参构造方法以及get/set方法
创建一个测试类(ObjectDemo01),在测试类的main方法中去创建学生对象,然后调用该对象的toString方法获取该对象的字符串表现形式,并将结果进行输出
Student类:
- public class Student {
- private String name;
- private int age;
-
- public Student() {
- }
-
- public Student(String name, int age) {
- this.name = name;
- this.age = 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 +
- '}';
- }
- }
测试类:
- public class ObjectDemo01 {
- public static void main(String[] args) {
- Student student = new Student("张三", 18);
- System.out.println(student.toString());
- }
- }
输出结果:
Student{name='张三', age=18}
在测试类的main方法中,创建两个学生对象,然后比较两个对象是否相同
Student类:
- public class Student {
- private String name;
- private int age;
-
- public Student() {
- }
-
- public Student(String name, int age) {
- this.name = name;
- this.age = 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 +
- '}';
- }
-
- @Override
- public boolean equals(Object obj) {
- if (this == obj) {
- return true;
- }
- if (obj == null || getClass() != obj.getClass()) {
- return false;
- }
- Student student = (Student) obj;
- return age == student.age && Objects.equals(name, student.name);
- }
-
- @Override
- public int hashCode() {
- return Objects.hash(name, age);
- }
- }
测试类:
- public class ObjectDemo02 {
- public static void main(String[] args) {
- Student student1 = new Student("张三", 18);
- Student student2 = new Student("张三", 18);
-
- System.out.println(student1.equals(student2)); // 输出true
- }
- }
输出结果:
true
Java是面向对象的语言,但Java不能把基本的数据类型(byte、short...)作为对象处理
可有时候可能需要把基本数据类型的数据作为对象使用
Java就提供了一系列包装类,把基本数据类型的值包装为引用数据类型的对象
基本数据类型 | 对应包装类 |
byte | Byte |
char | Character |
int | Integer |
short | Short |
long | Long |
double | Double |
boolean | Boolean |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。