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、增加和减少日期
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(数组,长度)拷贝数组,得到一个新数组