java.util包下的常用类和方法(工具包)

java学习–java.util包中常用类
java.util包被称为java工具包,里面包含大部分的工具类:
包括:

1.Random类产生随机数:
Random 类作为JAVA中用于产生的随机数 ,new Random(10) :10是种子数。
注意:Random 的一个特点是:相同种子数的Random对象,对应相同次数生成的随机数字是完全相同的。

1):Random生成随机数:

 Random random =new Random();
        for(int i = 0;i < 4;i++){
          // random.nextInt(10)意思是返回大于等于0,小于10的一个正整数,要想生成多少位的随机数,只需要修改参数值即可。
            System.out.println(random.nextInt(10));
        }

2):math.random()生成的是个伪随机数,何为伪随机数,这里java是以当前系统时间的相关数字作为种子数,按照特定复杂算法生成的,其实它生成的大量随机数是线性均匀分布的,黑客是完全可能通过返回的大量随机数结果破解种子数的,所以它并不是真正的随机,叫伪随机数。由此我们可以知道通过计算机生成一个真随机数几乎是不可能的,因为最终的输出结果都是依赖算法程序的,这些算法程序本身就是固定的,我们只能通过更复杂的算法不断优化,让它无限趋近于真随机数,但不绝对。
案例:

//生成一个5位数的随机数 想生成几位就*多少
for (int i =0;i<100;i++){
            System.out.println((int)((Math.random()*9+1)*10000));
        }

2.Date 日期类:
Date 类的基本用法:

package com.example.springboot.caipiao;

import java.text.SimpleDateFormat;
import java.util.ConcurrentModificationException;
import java.util.Date;

public class Test2 {

    public static void main(String[] args) throws Exception {


        Date date =new Date();
        //返回当前的时间 Mon Mar 11 20:30:06 CST 2019
        System.out.println(date);

//SimpleDateFormat 主要用来进行date格式转换。
        SimpleDateFormat simpleDateFormat =new SimpleDateFormat("yyyy-MM-dd");
         String time="2018-09-03";
         //把String类型转换成date类型
        Date date1 =(Date) simpleDateFormat.parse(time);
        System.out.println(date1);
        //把date类型转成String
        String dateStr=simpleDateFormat.format(date1);
        System.out.println(dateStr);

    }
}

3.Calendar 日历类:
基本使用:
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
int hour = c.get(Calendar.HOUR_OF_DAY);
int min = c.get(Calendar.MINUTE);
int sec = c.get(Calendar.SECOND);
int w = c.get(Calendar.DAY_OF_WEEK);

ps:Calendar类是一个抽象类,需要通过getInstance()方法来实现

Calendar与Date类之间的转换分别是getTime()和setTime()

Calendar对象获取month将会比实际的月份少一个月,是从下标为0开始的

Calendar对象获取day_of_week是获取到当前星期,返回的是重这周日到当前礼拜的天数。

package com.example.springboot.caipiao;

import javax.xml.crypto.Data;
import java.util.Calendar;
import java.util.Date;
import java.util.Random;

public class Test1 {

    public static void main(String[] args) {
        Calendar calendar =Calendar.getInstance();
        Date date =new Date();
        //把date set到Calendar
        calendar.setTime(date);
        //获取当前时间的年
        System.out.println(calendar.get(Calendar.YEAR));
        //当前年+1
        calendar.add(Calendar.YEAR,1);
        System.out.println(calendar.get(Calendar.YEAR));



    }
}

3-1:jdk1.8的时间:
一、jdk8与之前的日期和时间处理类的不同:

  1. Java的java.util.Date和java.util.Calendar类易用性差,不支持时区,并且是可变的,也就意味着他们都不是线程安全的;
  2. 用于格式化日期的类DateFormat被放在java.text包中,它是一个抽象类,所以我们需要实例化一个SimpleDateFormat对象来处理日期格式化,并且DateFormat也是非线程安全,这意味着如果你在多线程程序中调用同一个DateFormat对象,会得到意想不到的结果。
  3. 对日期的计算方式繁琐,而且容易出错,因为月份是从0开始的,这意味着从Calendar中获取的月份需要加一才能表示当前月份
    由于以上这些问题,出现了一些三方的日期处理框架,例如Joda-Time,data4j等开源项目
    二、Java 8日期/时间类
    Java 8的日期和时间类包含LocalDate、LocalTime、Instant、Duration以及Period,这些类都包含在java.time包中。
    三:日期的操作和格式化

1、增加和减少日期

2、格式化日期
新的日期API中提供了一个DateTimeFormatter类用于处理日期格式化操作,它被包含在java.time.format包中,Java 8的日期类有一个format()方法用于将日期格式化为字符串,该方法接收一个DateTimeFormatter类型参数:
四:时区
Java 8中的时区操作被很大程度上简化了,新的时区类java.time.ZoneId是原有的java.util.TimeZone类的替代品。ZoneId对象可以通过ZoneId.of()方法创建,也可以通过ZoneId.systemDefault()获取系统默认时区:

五:日期和时间主要类的关系

4.TimerTask 定时任务类:

5.Arrays 数组类:
binarySearch(数组,值) 用二分法查找值在数组中出现的下标位置,前提条件,数组必须是有序的
sort(数组) 对数组用快排法进行排序
toString(数组) 将数组转换成字符串形式
copyOf(数组,长度)拷贝数组,得到一个新数组

你可能感兴趣的:(java)