常用API

Math类


概述:

该类中提供了数学中的常用计算方法,比如求绝对值,取整等;


常用方法:

方法名方法说明
static double abs(double a)返回double类型数据的绝对值,abs方法每种数字类型都有重载
static double ceil(double a)对double类型的数据进行向上取整(即大于等于该double数值的最小整数)
static double floor(double a)对double类型数据进行向下取整(即小于等于该double数值的最大整数)
static int max(int a, int b)返回两个整数中的最大值(每种数字类型都有对应的重载方法)
static int min(int a, int b)返回两个整数中的最小值(每种数字类型都有对应的重载方法)
static int round(float a)对浮点数进行四舍五入取整
static double sqrt(double a)对double类型的数值进行开平方
static double pow(double a, double b)返回a的b次方
static double random()返回一个伪随机数,范围为[0.0, 1.0)

代码示例:

public static void main(String[] args) {
    // static int max(int a, int b)
    System.out.println(Math.max(3, 4)); // 4
    // static double ceil(double a)
    System.out.println(Math.ceil(12.23));  // 13.0
    // static double floor(double a)
    System.out.println(Math.floor(12.23)); // 12.0
    // static double pow(double a, double  b)
    System.out.println(Math.pow(2, 3)); // 8.0
    // static double sqrt(double a)
    System.out.println(Math.sqrt(4)); // 2.0
    // static double abs(double a)
    System.out.println(Math.abs(-22)); // 22.0
    // static int min(int a, int b)
    System.out.println(Math.min(3, 4)); // 3
    // static int round(float a)
    System.out.println(Math.round(12.23f)); // 12
}
--------------------------------------------------------------------------------
/**
 * 获取7-9之间的随机数
 * 操作随机数方法的常用步骤
 */
public class Demo04 {
    public static void main(String[] args) {
        // 大的数减去小的数,那么我们现在的范围就是[0, 2]
        // 将差值加1
        // 使用random()方法乘上面的值,范围为[0, 3)
        // 然后向下取整,范围为[0,2],再加上第一步减去的小的数,最终范围[7,9]
        for (int i = 0; i < 4; i++) {
            double num = Math.floor(Math.random() * 3) + 7;
            System.out.println(num);
        }
    }
}

System类


常用方法:

方法方法说明
static void arraycopy(Object src, int srcPos,Object dest, int destPos, int length)将一个数组中的内容从srcPos开始复制到另一个数组中的destPost去,复制长度为length
static long currentTimeMillis()获取当前时间(以毫秒为单位)

解释:

  • static void arraycopy(Object src, int srcPos,Object dest, int destPos, int length)该方法完成的是将数组src中的内容从srcPos索引位置开始,复制到数组destPos中的destPos位置,总共复制的个数为length个元素;
  • static long currentTimeMillis()该方法获取当前的时间,其相对的时间为1970-01-01 08:00:00 ,因为中国在东八区,所以是从八点开始计算;

代码示例:

int[] arr = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int[] brr = new int[5];
// 将arr数组中从0索引位置起始的元素复制5个,到brr数组中以0索引位置开始
System.arraycopy(arr, 0, brr, 0, 5);
for (int i = 0; i < brr.length; i++) {
    System.out.print(brr[i] + " ");
}
运行结果:
    1 2 3 4 5
--------------------------------------------------------------------------------
System.out.println(System.currentTimeMillis());
double start = System.currentTimeMillis();
for (int i = 0; i < 10000; i++) {
    System.out.println(i);
}
double end = System.currentTimeMillis();
System.out.println("运行毫秒数:" + (end - start));
运行结果:
    1577362226785
    省略循环输出
    运行毫秒数:110.0

currentTimeMillis()方法的应用场景:

  • 计算程序的运行时间,如上述代码示例第二段;
  • 对于一些需要保证唯一不重复的操作(比如文件的名字不能重复);


Arrays类


Arrays类的作用:

Arrays数组工具类,其作用就是用来操作数组;例如:排序功能、二分查找、拷贝功能、填充功能、转成字符串功能等(具体可以自行去API文档查看);


常用方法:

方法方法说明
sort(参数列表)对数组进行排序
fill(参数列表)给数组填充一样的值
copyOf(参数列表)复制数组中的元素

代码示例:

public class ArraysDemo01 {
    public static void main(String[] args) {
        int[] arr = {4, 2, 5, 6, 1, 9, 3};
        // 数组的排序
        Arrays.sort(arr);
        System.out.println(Arrays.toString(arr));
        // 数组的复制
        int[] brr = Arrays.copyOf(arr, 5);
        System.out.println(Arrays.toString(brr));
        // 数组的填充
        Arrays.fill(brr, 3);
        System.out.println(Arrays.toString(brr));
    }
}
运行结果:
    [1, 2, 3, 4, 5, 6, 9]
	[1, 2, 3, 4, 5]
	[3, 3, 3, 3, 3]


日期相关的类



Date类

概述:

Date类代表了一个特点的时间,精确到毫秒;其用来对时间进行操作;


常用方法:

方法方法说明
Date()日期的无参构造方法
Date(long date)日期的有参构造方法
long getTime()返回自1970年1月1日以来,由此 Date对象表示的00:00:00 GMT的毫秒数
void setTime(long time设置此 Date对象以表示1970年1月1日00:00:00 GMT后的 time毫秒的时间点

代码示例:

public class DateDemo01 {
    public static void main(String[] args) {
        // 无参构造方法,初始化获取的是当前的时间
        Date date = new Date();
        System.out.println(date);
        // 有参构造方法
        Date date1 = new Date(1000);
        System.out.println(date1);
        date1.setTime(10000);
        System.out.println(date1);
        long time = date1.getTime();
        System.out.println(time);
    }
}

SimpleDateFormat类

为什么要进行日期的格式化:

Date类提供的toString方法打印的日期格式不是我们自己想要的,为了达到我们想要的格式,就出现了日期格式转换类;


构造方法:

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

常用方法:

public final String format(Date date) // 将日期格式化成日期/时间字符串解析(从String到Date)
    
public Date parse(String source) // 从给定字符串的开始解析文本以生成日期

代码示例:

public class SimpleDateFormatDemo {
    public static void main(String[] args) throws ParseException {
        // 日期格式化:将Date转为String
        // 创建一个日期类对象
        Date d = new Date();
        // 创建日期格式类对象
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        // 将日期类转成字符串
        String format = sdf.format(d);
        System.out.println(format);

        // 解析字符串:将String转为Date
        String date = "2048年3月14日 2时5分30秒";
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        Date parse = sdf2.parse(date);
        System.out.println(parse);
    }
}
运行结果:
    2020-01-12 17:09:48
	Sat Mar 14 02:05:30 CST 2048

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) // 设置当前日历的年月日

代码示例:

public class CalendarDemo {
    public static void main(String[] args) {
        // 获取日历类的对象
        Calendar c = Calendar.getInstance();

        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH) + 1;
        int day = c.get(Calendar.DATE);
        System.out.println(year + "年" + month + "月" + day + "日");

        // 输出10年后的10天前
        c.add(Calendar.YEAR, 10);
        c.add(Calendar.DATE, -10);
        int year2 = c.get(Calendar.YEAR);
        int month2 = c.get(Calendar.MONTH) + 1;
        int day2 = c.get(Calendar.DATE);
        System.out.println(year2 + "年" + month2 + "月" + day2 + "日");
    }
}

注意:

月份默认从0开始,即0代表1月,11代表12月;


案例:

获取任意一年的二月有多少天;

public class CalendarTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入需要查阅的年份:");
        int year = sc.nextInt();

        Calendar c = Calendar.getInstance();
        c.set(year, 2, 1);

        c.add(Calendar.DATE, -1);
        int day = c.get(Calendar.DATE);
        System.out.println(year + "年的2月份有" + day + "天");
    }
}



包装类


概述:

Java是一个纯面向对象的高级语言,但是为了操作方便,将8种基本数据类型设计为非对象类型的数据,但是为了将这些基本数据类型的数据能够像对象一样的去操作,Java就提供了一种包装类机制,每一种基本数据类型都有对应的包装类;


基本数据类型对应的包装类:

byte 	---> 	Byte
short	--->	Short	
int		--->	Integer
long	--->	Long	
float	--->	Float
double	--->	Double
char	--->	Character
boolean	--->	Boolean

Integer类

转换成Integer的常用方法:

public static Integer valueOf(int i) // 返回表示指定的int值的Integer实例
    
public static Integer valueOf(String s) // 返回一个保存指定值的Integer对象 String

代码示例:

public class IntegerTest {
    public static void main(String[] args) {
        int num = 10;
        String str = "20";

        Integer a = Integer.valueOf(num);
        Integer b = Integer.valueOf(str);
        Integer c = num;

        System.out.println(a == c); // true
        System.out.println(a == b); // false
        System.out.println(c == num); // true
    }
}

由此可见,利用valueOf方法和直接赋值给Integer对象的效果是一样的,因为有个自动装箱的操作;其实,Integer c = num; 其底层的操作是Integer c = Integer.valueOf(num);所以它们两个是相等的;有自动装箱就有自动拆箱,当 c== num的时候,num就进行了自动拆箱操作,所以返回true;


自动装箱和自动拆箱:

自动装箱:就是把基本数据类型转换为对应的包装类类型;

自动拆箱:就是把包装类类型转换为对应的基本数据类型;

代码示例:

Integer i = 10;
i += 10; // ==> i = i + 10; ==> i + 10 自动拆箱 ==> i = 20 自动装箱

int和String类型的相互转换:

  • int转换为String:

    int num = 10;
    // 方式一
    String s1 = num + "";  // 最暴力最简单的方式
    // 方式二
    String s2 = String.valueOf(num);  
    
  • String转换为int:

    String str = "10";
    // 方式一
    Integer a = Integer.valueOf(str);
    int num1 = x.intValue();
    // 方式二
    int num2 = Integer.paresInt(str);
    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
中文版,平时开发超实用工具。 Java 2 Platform 软件包 java.applet 提供创建 applet 所必需的类和 applet 用来与其 applet 上下文通信的类。 java.awt 包含用于创建用户界面和绘制图形图像的所有类。 java.awt.color 提供用于颜色空间的类。 java.awt.datatransfer 提供在应用程序之间和在应用程序内部传输数据的接口和类。 java.awt.dnd Drag 和 Drop 是一种直接操作动作,在许多图形用户界面系统中都会遇到它,它提供了一种机制,能够在两个与 GUI 中显示元素逻辑相关的实体之间传输信息。 java.awt.event 提供处理由 AWT 组件所激发的各类事件的接口和类。 java.awt.font 提供与字体相关的类和接口。 java.awt.geom 提供用于在与二维几何形状相关的对象上定义和执行操作的 Java 2D 类。 java.awt.im 提供输入方法框架所需的类和接口。 java.awt.im.spi 提供启用可以与 Java 运行时环境一起使用的输入方法开发的接口。 java.awt.image 提供创建和修改图像的各种类。 java.awt.image.renderable 提供用于生成与呈现无关的图像的类和接口。 java.awt.print 为通用的打印 API 提供类和接口。 java.beans 包含与开发 beans 有关的类,即基于 JavaBeansTM 架构的组件。 java.beans.beancontext 提供与 bean 上下文有关的类和接口。 java.io 通过数据流、序列化和文件系统提供系统输入和输出。 java.lang 提供利用 Java 编程语言进行程序设计的基础类。 ......
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值