java学习--java.util包中常用类

java.util包被称为java工具包,里面包含大部分的工具类

Random 随机数类
new Random()
rd.nextInt()
rd.nextInt(100)

Scanner 扫描器类
Scanner sc = new Scanner(system.in);
String str = sc.next();
String str1 = sc.nextLine();
int t = sc.nextInt();
float t = sc.nextFloat();

Date 日期类
Date d = new Date(); 当前时间
Date d = new Date(long); 指定的时间
d.getTime();获得当前时间的毫秒数

日期格式化类
SimpleDataFormat 格式化日期时间的类
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
String s = sdf.format(d);

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是获取到当前星期,返回的是重这周日到当前礼拜的天数。

TimerTask 定时任务类
Timer 定时器
定义一个类继承TimerTask,重写run方法
创建一个Timer对象
创建一个xxTask对象
启动任务

在指定的时间指定任务
t.schedule(task, date);

延迟一定时间执行
t.schedule(task, 500);

延迟一定时间执行,每隔一定时间重复执行一次
t.schedule(task, 5000, 1000);

在指定的时间开始执行,每隔一定时间重复执行一次
t.schedule(task, d, 1000);

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

附:控制台日历查询程序

 1 package com.work.calendar;
 2
 3 import java.util.Calendar;
 4 import java.util.Scanner;
 5
 6
 7 public class CalendarDemo {
 8     int year,month,day=0;
 9     //定义一个存放日期天数的数组
10     int[] days = {31,28,31,30,31,30,31,31,30,31,30,31};
11     Calendar cad ;
12     /**
13      * 无参构造方法中获取当前日期
14      */
15     public CalendarDemo(){
16         cad= Calendar.getInstance();
17         this.year = cad.get(Calendar.YEAR);
18         this.month=cad.get(Calendar.MONTH)+1;
19     }
20     /**
21      * 给日历对象传入一个具体的日期
22      * @param year
23      * @param month
24      * 2018年8月26日
25      */
26     public void setCalendarDemo(int year,int month){
27         this.year = year;
28         this.month = month;
29         cad = Calendar.getInstance();
30         cad.set(Calendar.YEAR, year);
31         cad.set(Calendar.MONTH,month-1);
32     }
33     /**
34      * 将获取到的日历打印
35      *
36      * 2018年8月26日
37      */
38     public void link() {
39         if(year/4==0&&year/100!=0||year%400 ==0) {
40             days[1]=29;
41         }else {
42             days[1]=28;
43         }
44         System.out.println(year+"年"+month+"月");
45         System.out.println("日\t 一\t 二\t 三\t 四\t 五\t 六");
46         cad.set(Calendar.DAY_OF_MONTH, 1);
47         int first = cad.get(Calendar.DAY_OF_WEEK);
48         for(int i = 0;i<first-1;i++) {
49             System.out.print("\t");
50         }
51         for(int i=0;i<days[month-1];i++) {
52             System.out.print(i+1+"\t");
53             if(first==7) {
54                 first=0;
55                 System.out.println();
56             }
57             first++;
58         }
59     }
60     public static void main(String[] args) {
61         int month,year;
62         boolean flag = true;
63         Scanner sc = new Scanner(System.in);
64         System.out.println("请输入年份和月份");
65         year = sc.nextInt();
66         month = sc.nextInt();
67         CalendarDemo c = new CalendarDemo();
68         c.setCalendarDemo(year, month);
69         c.link();
70         while(flag) {
71             System.out.println();
72             System.out.println("输入a,d可以查看上个月,下个月的日历");
73             System.out.println("输入r可以退出程序");
74             char operation = sc.next().charAt(0);
75             if(operation==‘a‘) {
76                 if(month==1) {
77                     year = year - 1;
78                     month = 12;
79                 }else {
80                 month=month-1;
81                 }
82             }else if(operation ==‘d‘){
83                 if(month==12) {
84                     year = year+1;
85                     month = 1;
86                 }else {
87                 month=month+1;
88                 }
89             }else if(operation ==‘r‘) {
90                 flag = false;
91             }
92             c.setCalendarDemo(year, month);
93             c.link();
94             System.out.println();
95             System.out.println("程序已退出");
96         }
97         sc.close();
98     }
99 }

CalendarDemo

原文地址:https://www.cnblogs.com/bananafish/p/9536868.html

时间: 2024-08-24 15:11:39

java学习--java.util包中常用类的相关文章

util包的常用类及其方法(上)

util包为JDK内置的一个包,与lang包不同的是,使用util包的类时需要引用: import java.util.* 1.Random类 Random类用来生成随机数,构造器有: Random(),无参数的构造器 Random(int seed),有参数的构造器 常用方法有: int nextInt()返回下一个整型值 long nextLong()返回下一个长整型值 double nextDouble()返回下一个0到1.0的双精度浮点值 float nextFloat()返回下一个0到

java学习--java.lang包中常用的类

java.lang包中的类是不需要import的 基本数据类型的包装类 包装类的使用相差不大,使用方法则以Integer为例 属性: MAX_VALUE 最大值 MIN_VALUE 最小值 构造方法: Integer t1 = new Integer(123); 将int构造成Integer Integer t2 = new Integer("1234"); 将数字字符串构造成Integer Integer t3 = 12345; 包装类与其对应的基本数据类型的区别是,包装类型所占用的

java中常用的包、类、以及包中常用的类、方法、属性-----io包

由于最近有需要,所以下面是我整理的在开发中常用的包.类.以及包中常用的类.方法.属性:有需要的看看 java中常用的包.类.以及包中常用的类.方法.属性 常用的包 java.io.*; java.util.*; java.lang.*; java.math.*; java.sql.*; java.text.*; java.awt.*; javax.swing.*;   包名 接口 类 方法 属性 java.io.*; java.io.Serializable实现序列化 java.io.Buffe

27 Java动态加载第三方jar包中的类

我加载的方法是://参数fileName是jar包的路径,processorName 是业务类的包名+类名public static A load(String fileName, String processorName) {            String filePath = fileName;              A processor = null;  URL url;try {  url = new URL(filePath);} catch (MalformedURLEx

关于java同步包中ConcurrentLinkedQueue类的深入分析与理解

一,官方描述 一个基于连接节点的无界线程安全队列.这个队列的顺序是先进先出.队列头部的元素是留在队列中时间最长的,队列尾部的元素是留在队列中时间最短的.新元素被插入到元素的尾部,队列从队列的头部检索元素.当许多线程共享访问同一个集合时,这个类是不二选择.这个队列不允许有null元素. 这个实现基于一种被描述为简单,快速,实用的非阻塞和阻塞公布队列算法而提供的一种有效的空闲等待算法. 注意,不像大多数集合,size方法的操作不是常量时间的,由于是异步队列,决定了元素的数量需要遍历真个元素集. 这个

Java基础复习笔记系列 五 常用类

Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String s2 = “hello”:结论:s1 == s2. 字符串常量放在data区. 3. String s3 = new String("hello"); String s4 = new String("hello");结论:s3 != s4.但s3.equals(s4).

好程序员Java学习路线分享JS中的面向对象

好程序员Java学习路线分享JS中的面向对象,在JS中,一般情况下我们都是直接写函数,直接调用,但是发现JS中也有new关键字,那么new关键字作为创建对象的关键字,给我们的感觉就是在JS中可以定义一个类,然后用new创建对象,那么在JS中如何做呢?我们先看如下案例,下面的案例是写一个简单的喷泉效果的. window.onload = function(){ // 创建一个画布对象var canvas = document.createElement("canvas");// 设置大小

Java学习-040-级联删除目录中的文件、目录

之前在写应用模块,进行单元测试编码的时候,居然脑洞大开居然创建了一个 N 层的目录,到后来删除测试结果目录的时候,才发现删除不了了,提示目录过长无法删除.网上找了一些方法,也找了一些粉碎机,都没能达到想要的结果,我就简写了一个小应用,用于删除自己脑洞大开创建的级联目录.此小应用没有代码注释,也没有进行容错处理,请大家知悉!哈哈哈哈哈.....若发现有错误,也请告知,我会去修改订正,非常感谢! 闲话少述,直接上码了! 1 /** 2 * Aaron.ffp Inc. 3 * Copyright (

Java学习笔记--不同包的访问权限

重点: 1.在同一个包中只有私有的不能被另一个类访问,也只有私有的不能被继承 2.子类不同包没有任何关系的两个类,只有public类的public成员才可以被另一个包中的类访问 3.在不同包担忧继承关系的两个类中,只有public类的public成员和protect成员可以被另一个包中的子类在内部使用,但是在子类的外部,通过子类对象名只能访问父类的public成员