Java常用类
Java 类库提供了不少常用类,可以在编程中直接调用使用。介绍 Arrays、StringBuilder、Calendar、Date、Math、System、Random 类以及类的常用方法。
Arrays类
Arrays 类包含用于操作数组的各种方法(例如排序和搜索)。还包含一个静态工厂,允许将数组转为 List‘’
Arrays类的常用方法
随机给数组赋值
Random random=new Random();
for(int i=0;i<arr.length;i++){
arr[i]=random.nextInt(100);
}
copy数组
int[] newarr=Arrays.copyOf(arr,arr.length);
StringBuilder类
StringBuilder 类是可变的。它是 String 的对等类,它可以增加和编写字符的可变序列,并且能够将字符插入到字符串中间或附加到字符串末尾(当然是不用创建其他对象的)
StringBuilder 的构造方法:
StringBuilder 类的常用方法:
Calendar类
在早期的 JDK 版本中,Date 类附有两大功能:
1,允许用年、月、日、时、分、秒来解释日期
2,允许对表示日期的字符串进行格式化和句法分析
在 JDK1.1 中提供了类 Calendar 来完成第一种功能,类 DateFormat 来完成第二项功能。DateFormat 是 java.text 包中的一个类。与 Date 类有所不同的是,DateFormat 类可以接受用各种语言和不同习惯表示的日期字符串。
但是 Calendar 类是一个抽象类,它完成 Date 类与普通日期表示法之间的转换,而我们更多的是使用 Calendar 类的子类 GregorianCalendar 类。它实现了世界上普遍使用的公历系统。当然我们也可以继承 Calendar 类,然后自己定义实现日历方法。
先来看一看 GregorianCalendar 类的构造函数:
TimeZone 是 java.util 包中的一个类,其中封装了有关时区的信息。每一个时区对应一组 ID。类 TimeZone 提供了一些方法完成时区与对应 ID 两者之间的转换。
eg:
//太平洋时区的 ID 为 PST
TimeZone tz0 = TimeZone.getTimeZone("PST")
//getDefault()可以获取主机所处时区的对象
TimeZone tz1 = TimeZone.getDefault()
Locale 只是一种机制,它用来标识一个特定的地理、政治或文化区域获取一个 Locale 对象的构造方法:
//调用Locale类的构造方法
Locale l0 = new Locale(String language)
Locale l1 = new Locale(String language, String country)
Locale l2 = new Locale(String languge, String country, String variant)
//调用Locale类中定义的常量
Locale l1 = Locale.CHINA
Calendar 类详解
Calendar 类是一个抽象类,它为特定时间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。
1、使用Calendar类别之前,要先知道Calendar的一些方法取回的数字是对应于Calendar本身的常数,也就是说并不是取回1 这个数字,就表示今天是星期一。
a、想要取得时间,首先使用Calendar的getInstance()取得一个Calendar的实例,例如:
Calendar rightNow = Calendar.getInstance();
b、如果现在您想知道是几年,则可以使用get()方法并指定常数,例如:
System.out.println(rightNow.get(Calendar.YEAR));
c、如果是2005年,则上例会显示2005的数字,依照这个例子,假设撰写本文的时间是5月份,而现在想使用程式取得月份,则下例可能会有些困惑:
System.out.println(rightNow.get(Calendar.MONTH));
d、程式会显示4这个数字,而不是预期的5,因为传回的4并不是代表月份,而是对应于Calendar.MAY常数的值, Calendar在月份上的常数值从Calendar.JANUARY开始是0,到Calendar.DECEMBER的11,所以如果想要显示传回值的真正意涵,可以如下撰写:
String[] months = {“一月”, “二月”, “三月”, “四月”,“五月”, “六月”, “七月”, “八月”,“九月”, “十月”, “十一月”, “十二月”};
Calendar rightNow = Calendar.getInstance();
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class CalendarDemo{
public static void main(String[] args){
System.out.println("完整显示日期时间:");
//字符串转换日期格式
//向上转型
DateFormat dataFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//获取当前时间并使用format将Data格式化为SimpleDategFormat定义的格式
String str = dataFormat.format(new Date());
System.out.println(str);
//创建Calendar对象
//创建一个 Calendar 用于比较时间
/*getInstance是少部分类才有的一个方法,各自的实现也不同。getInstance在单例模式
(保证一个类仅有一个实例,并提供一个访问它的全局访问点)的类中常见,
用来生成唯一的实例,getInstance往往是static的*/
//Calendar.getInstance()是获取一个Calendar对象并可以进行时间的计算,时区的指定
Calendar calendar=Calendar.getInstance();
//此方法用来设置日历时间为给定的日期
calendar.setTime(new Date());
System.out.println("年:"+calendar.get(calendar.YEAR));
System.out.println("月:"+calendar.get(calendar.MONTH));
System.out.println("min:"+calendar.get(calendar.MINUTE));
//今年的第几天
System.out.println("今年的第"+calendar.get(calendar.DAY_OF_YEAR)+"天");
//本月的第几天
System.out.println("本月的第几天"+calendar.get(calendar.DAY_OF_MONTH));
//三个小时后的时间
calendar.add(Calendar.HOUR_OF_DAY,3);
//Calendar.getTime() 方法返回一个Date对象,它表示此Calendar的时间值
System.out.println("三小时后的时间"+calendar.getTime());
//格式化显示
str=(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime()));
System.out.println(str);
//重置当前calendar显示的时间
calendar.setTime(new Date());
str=(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime()));
System.out.println(str);
}
}
Date类
Date 类表示日期和时间,里面封装了操作日期和时间的方法。Date 类经常用来获取系统当前时间。
来看看类 Date 中定义的未过时的构造方法:
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateDemo{
public static void main(String[] args){
String strDate,strTime;
Date objDate=new Date();
System.out.println("今天的日期是"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(objDate));
}
}
Math类
Math 类在 java.lang 包中,包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
常见方法:
System类
System 类提供了一下功能:
1.标准输入,标准输出和错误输出流;
2.访问外部定义的属性和环境变量;
3.加载文件和库的方法;
4.以及用于快速复制数组的实用方法。
System 不可以被实例化,只可以使用其静态方法。
import java.util.Arrays;
public class SystemDemo {
public static void main(String[] args) {
int[] a = {7, 8, 9, 10, 11};
int[] b = {1, 2, 3, 4, 5, 6};
//从数组a的第二个元素开始,复制到b数组的第三个位置 复制的元素长度为3
System.arraycopy(a, 1, b, 2, 3);
//输出结果
System.out.println(Arrays.toString(b));
System.out.println("当前时间:" + System.currentTimeMillis());
System.out.println("java版本信息:" + System.getProperty("java.version"));
//运行垃圾收集器
System.gc();
//退出
System.exit(0);
}
}
Random
Random 类用于生成伪随机数流,在java.util包下。
import java.util.Random;
public class RandomDemo {
public static void main(String[] args) {
Random random = new Random();
//随机生成一个整数 int范围
System.out.println(random.nextInt());
//生成 [0,n] 范围的整数 设n=100
System.out.println(random.nextInt(100 + 1));
//生成 [0,n) 范围的整数 设n=100
System.out.println(random.nextInt(100));
//生成 [m,n] 范围的整数 设n=100 m=40
System.out.println((random.nextInt(100 - 40 + 1) + 40));
//随机生成一个整数 long范围
System.out.print(random.nextLong());
//生成[0,1.0)范围的float型小数
System.out.println(random.nextFloat());
//生成[0,1.0)范围的double型小数
System.out.println(random.nextDouble());
}
}