Java常用类一

1.System类:阅读源码得知:**

Among the facilities provided by the System class
class contains several useful class fields

  • and methods. It cannot be instantiated.
  • are standard input, standard output, and error output streams;
  • access to externally defined properties and environment
  • variables; a means of loading files and libraries; and a utility
  • method for quickly copying a portion of an array.**
    是不能被实例化的
    下面为定义在System类中的成员变量
public final static InputStream in = null;
public final static PrintStream out = null;
public final static PrintStream err = null;

所以对于 System.out.printfn();即可理解了,out为定义的PrintStream字段,而println()为PrintStream 类中的方法。
a.数组拷贝功能。
public static native void arraycopy(Object src, int srcPos,Object dest, int destPos,int length);五个参数分别对应被复制的数组,被复制的起始位置(包含),复制到的数组,复制到这个数组的起始位置,复制到这个数组的结束位置,如果被复制到的数组中有元素则会被覆盖,如果被复制的数组结束长度小于预期,则只能只能复制一部分,看例子:

class Main 
{
	public static void main(String[] args) 
	{
		int[] arr1 = {0,1,2,3,4,5,6};
		int[] arr2 = {0,0,0,0,0,0,0};
		System.arraycopy(arr1,2,arr2,1,4);//4-1 < 5
		for(int arr:arr2)
		System.out.print(arr + " ");//注意结果
	}
}

结果为:0 2 3 4 5 0 0
b.currentTimeMillis():返回毫秒数。可以用于计算代码段运行时间。
public static native long currentTimeMillis();
c.getProperty()获取系统属性
常用属性:
user.name 用户的账户名称
user.home 用户的主目录
user.dir 用户的当前工作目录
d. public static void gc();垃圾回收
e.exit(int status); 如果status为 0 则正常退出,非 0 代表异常退出。
2.Runtime类,代表Java程序的运行时环境,可以访问JVM的相关信息。程序不能自己创建此类对象,下面是对Runtime类的简单应用

class RuntimeTest
{
	public static void main(String[] args) throws Exception
	{
		Runtime r = Runtime.getRuntime();
		Process p = r.exec("c:\\windows\\notepad.exe");//打开记事本
		Thread.sleep(5000);
		r.gc();
		long s = r.freeMemory();//返回 Java 虚拟机中的空闲内存量。
		long ss = r.maxMemory() ;//返回 Java 虚拟机试图使用的最大内存量
		long sss = r.totalMemory(); // 返回 Java 虚拟机中的内存总量。
         //以上三者都以字节为单位
		
		// void gc() 运行垃圾回收器 
		System.out.println(s);
		System.out.println("Hello World!");
	}
}

3.Date类:阅读JavaAPI发现其构造方法只有两个,其余的都已经过时,不建议使用。Date(); Date(long date);具体看例子都比较简单

package com.usually;

import java.util.Date;

public class DateTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Date date1 = new Date();//获取当前时间
		
		Date date2 = new Date(10201020097865L);//分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,
												//即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
		System.out.println(date1.before(date2));//测试此日期是否在指定日期之前。
		System.out.println(date1.after(date2));//测试此日期是否在指定日期之后。
		System.out.println(date1.compareTo(date2));//比较两个日期的顺序。若小于0则date1在date2前,等于0二者相等,大于0 date1在date2之后
		System.out.println(date1);
		System.out.println(date2);
		System.out.println(date1.getTime());//返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。
		date1.setTime(123456789456L);// 设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。
		System.out.println(date1);
	}

}

运行结果为:

true
false
-1
Wed Oct 17 21:09:17 CST 2018
Tue Apr 04 16:41:37 CST 2293
1539781757431
Fri Nov 30 05:33:09 CST 1973

4.SimpleDateFormat类:首先先放一张日期和时间模式

日期和时间模式 结果
“yyyy.MM.dd G ‘at’ HH:mm:ss z” 2001.07.04 AD at 12:08:56 PDT
“EEE, MMM d, ''yy” Wed, Jul 4, '01
“h:mm a” 12:08 PM
“hh ‘o’‘clock’ a, zzzz” 12 o’clock PM, Pacific Daylight Time
“K:mm a, z” 0:08 PM, PDT
“yyyyy.MMMMM.dd GGG hh:mm aaa” 02001.July.04 AD 12:08 PM
“EEE, d MMM yyyy HH:mm:ss Z” Wed, 4 Jul 2001 12:08:56 -0700
“yyMMddHHmmssZ” 010704120856-0700
“yyyy-MM-dd’T’HH:mm:ss.SSSZ” 2001-07-04T12:08:56.235-0700

接下来观察构造函数:
SimpleDateFormat()
用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
SimpleDateFormat(String pattern)
用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
SimpleDateFormat(String pattern, DateFormatSymbols formatSymbols)
用给定的模式和日期符号构造 SimpleDateFormat。
SimpleDateFormat(String pattern, Locale locale)
用给定的模式和给定语言环境的默认日期格式符号构造 SimpleDateFormat。
format 方法: StringBuffer format(Date date, StringBuffer toAppendTo, FieldPosition pos)
将给定的 Date 格式化为日期/时间字符串,并将结果添加到给定的 StringBuffer。
parse方法: Date parse(String text, ParsePosition pos)
解析字符串的文本,生成 Date。
简单示例:

package com.usually;

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

public class SimpleDateFormatTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Date date = new Date();
		SimpleDateFormat sim = new SimpleDateFormat();
		String today = sim.format(date);
		System.out.println(today);
		System.out.println(date);
		Date tod;
		try {
			
			tod = sim.parse(today);
			System.out.println(tod.toString());
			
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

结果如下:
18-10-17 下午9:36 Wed Oct 17 21:36:54 CST 2018 Wed Oct 17 21:36:00 CST 2018
5.Calendar类:源码:public abstract class Calendar implements Serializable, Cloneable, Comparable说明Calendar类不能创建对象,对此,Calendar提供了一个类方法getInstance,以获得此类型的一个通用的对象,getInstance方法返回一个Calendar对象(该对象为Calendar的子类对象),其日历字段已由当前日期和时间初始化。简单示例

package com.usually;

import java.util.Calendar;

public class CalendarTest {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Calendar c = Calendar.getInstance();
		System.out.println(c.getTimeInMillis());
		System.out.println(c.get(Calendar.DAY_OF_MONTH));//这一天为本月第多少天
		System.out.println(c.get(Calendar.WEEK_OF_YEAR));//本周为本年的第多少周
		System.out.println(c.get(Calendar.DAY_OF_WEEK));//以周日为第一天,本天为本周的第多少天
		c.add(Calendar.YEAR, 1);
		System.out.println(c.get(Calendar.YEAR));
	}

}

结果为:

1539785221517
17
42
4
2019

关于Calendar的更多用法请查询JavaAPI 文档

猜你喜欢

转载自blog.csdn.net/qq_43060759/article/details/83099076