Java开发——18.常用类(System、Math、Arrays、Date、Calendar、DateFormat及实现类)

注意:17和18以及后面将要学习的Java中的常用类,这里都是仅做了解,具体使用还是要对照API文档;所以这是挑重点方法进行学习。

System:

System类包含几个有用的类字段和方法。 它不能被实例化。

图解:
在这里插入图片描述

其中:

static PrintStream err “标准”错误输出流。
static InputStream in “标准”输入流。
new Scanner(System.in); 就是使用标准输入流。
static PrintStream out“标准”输出流。
System.out.println(); 就是使用标准输出流。

需要了解的方法:

public static long currentTimeMillis()//返回当前时间(以毫秒为单位)。//一般测试代码的运行效率的时候使用,放在代码运行前,以及结束后,并计算差值返回。

Math:

数学类,进行一些常用的数学运算。

Math类包含执行基本数字运算的方法,如基本指数,对数,平方根(sqrt())、绝对值(abs())和三角函数…

可能出现的:ArithmeticException异常(一个整数“除以零”时,就会抛出该异常)

常用方法:

//Math类提供的两个常量值
static double E 
    double值比其他任何一个都更接近 e ,自然对数的基数。
static double PI 
    double值比任何其他的更接近 pi ,圆周长与其直径的比率。
random方法:返回值类型为double类型(0.0 <= random < 1.0)
//返回一个double值为正号,大于等于0.0 ,小于1.0,包头不包尾。
//返回的值是从该范围(大约)均匀分布而伪随机选择的,注意是从0开始,取不到1的。
public static double random()//此处有一个公式,大家可以嵌套,具体看你想要输出的范围
(int)(Math.random()*(b - a + 1)) + a
​
//公式推导过程: -> 求随机两位数 -> [10,99]
Math.random()*90  ->  [0.0,89.0]
(int)(Math.random()*90) -> [0,89]
(int)(Math.random()*90) + 10 -> [10,99]//随机生成两位数 -> [10,99]
(int)(Math.random()*(99 - 10 + 1)) + 10//随机生成1-10之前的随机数
(int)(Math.random() * 10) + 1  -> [0,10) +1 -> [1,10]//随机生成1-100之前的随机数
(int)(Math.random() * 100) + 1  -> [0,100) + 1 -> [1,100]

Arrays:

该类包含用于操作数组的各种方法(如排序和搜索)。 该类还包含一个静态工厂,可以将数组视为列表。

常见异常:NullPointerException,空指针异常;即调用方法的对象内容为空。

    int arr [] ={1,2,3};
        arr = null;
        System.out.println(arr[0]);
 /*
    Exception in thread "main" java.lang.NullPointerException...
*/

常用方法:

在这里插入图片描述

注意事项:

在使用binarySearch()方法的时候,要先使用sort()方法对传入的数组进行排序,否则会出现找不到指定key的现象。

sort(int[] a)  //按照数字顺序排列指定的数组。 //使用二叉搜索算法搜索指定的xx类型数组的指定值。
static xx类型  -> binarySearch( xx类型 a[] , xx类型 key )

注:binarySearch()在使用的时候,一定要先排序(Arrays.sort(a[])),否则会出现找不到key所对应的下标索引。

Date:

操作时间;但是其中的许多方法已经弃用,尽管弃用但是方法还是可以正常使用,只不过不推荐使用。

常用类及操作:

在这里插入图片描述

Calendar:

所述Calendar类是一个抽象类,可以为在某一特定时刻和一组之间的转换的方法calendar fields如YEAR , MONTH , DAY_OF_MONTH , HOUR ,等等,以及用于操纵该日历字段,如获取的日期下个星期。 时间上的瞬间可以用毫秒值表示,该值是从1970年1月1日00:00 00:00.000 GMT(Gregorian)的Epoch的偏移量。

Calendar抽象类中提供了一个特殊的方法,可以调用本身类中的方法:getInstance方法!
Calendar提供了一种类方法getInstance ,用于获取此类型的一般有用的对象。

Calendar rightNow = Calendar.getInstance();
    即可以直接使用rightNow调用本类中的方法。

DateFormat:

DateFormat是日期/时间格式化子类的抽象类,它以语言无关的方式格式化和分析日期或时间。
日期/时间格式化子类(如SimpleDateFormat )允许格式化(即日期文本),解析(文本日期)和归一化。
该日期表示为一个Date对象,或自1970年1月1日00:00:00 GMT以来的毫秒。

SimpleDateFormat:

SimpleDateFormat是一个具体的类,用于以区域设置敏感的方式格式化和解析日期。 它允许格式化(日期文本),解析(文本日期)和归一化。

注意事项: 年:Y 月:M 日:d 时:H 24小时 h 12小时 分:m 秒:s

常用方法:
//从给定字符串的开始解析文本以生成日期。 该方法可能不会使用给定字符串的整个文本。
public Date parse(String source)
           throws ParseException//将日期格式化成日期/时间字符串。 
public final String format(Date date)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Java常用Arrays的一些函数: 1. `toString()`:将数组转换为字符串并返回。该方法会按照数组的顺序将元素转换为字符串,并用逗号分隔。 ```java int[] arr = {1, 2, 3, 4, 5}; String arrString = Arrays.toString(arr); System.out.println(arrString); // 输出:[1, 2, 3, 4, 5] ``` 2. `sort()`:对数组进行排序。该方法会按照数组元素的自然顺序进行排序,或者可以通过传入自定义的Comparator来指定排序规则。 ```java int[] arr = {5, 3, 1, 4, 2}; Arrays.sort(arr); System.out.println(Arrays.toString(arr)); // 输出:[1, 2, 3, 4, 5] ``` 3. `binarySearch()`:在已排序的数组中使用二分查找算法查找指定元素的索引。如果找到元素,则返回其索引;如果找不到元素,则返回一个负数,表示应该插入元素的位置。 ```java int[] arr = {1, 2, 3, 4, 5}; int index = Arrays.binarySearch(arr, 3); System.out.println(index); // 输出:2 ``` 4. `copyOf()`:复制数组的一部分或整个数组,并返回一个新的数组。可以指定要复制的长度,如果超过原始数组的长度,则用默认值填充。 ```java int[] arr = {1, 2, 3, 4, 5}; int[] newArr = Arrays.copyOf(arr, 3); System.out.println(Arrays.toString(newArr)); // 输出:[1, 2, 3] ``` 5. `fill()`:将数组的所有元素都设置为指定的值。 ```java int[] arr = new int[5]; Arrays.fill(arr, 10); System.out.println(Arrays.toString(arr)); // 输出:[10, 10, 10, 10, 10] ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值