这里简单介绍Java类库中的System类,数据类型累,Cloneable类接口,Arrays类,Date类,Calendar类,Scanner类。

1,System类。

包含很多静态方法和变量,可以获取系统属性,以及包含标准输入输出。

示例1:

这个示例中分别使用两种计算方法来计算百元百鸡问题,然后使用System类中的方法获取当前时间,从而得到算法的运算时间。

我们也可以通过System类来访问系统属性。

public class Example02 {

	/**
	 * 类库练习
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//百元买百鸡
		//小鸡0.5,公鸡2.母鸡3;
		long time1,time2;
		time1=System.currentTimeMillis();
		System.out.println(1/2);
		System.out.println(1.0/2);
		int father,mother,child;
		for(father =0;father<=50;father++)
		{
			for(mother = 0;mother<34;mother++)
			{
				for(child = 0;child<=200;child++)
				{
					if(2*father+3*mother+(1.0/2)*child==100&&father+mother+child==100)
					{
						System.out.println("公鸡:"+father+"   母鸡:"+mother+"   小鸡:"+child);
					}
				}
			}
		}
		time2 = System.currentTimeMillis();   //用于获取当时时间
		System.out.println("第一种方法的计算时长为:"+(time2-time1));
		time1 = System.currentTimeMillis();
		for(father =0;father<=50;father++)
		{
			for(mother = 0;mother<34;mother++)
			{
				if(100-father-mother>=0&&(100-father-mother)*0.5+2*father+3*mother==100)
				{
					System.out.println("公鸡:"+father+"   母鸡:"+mother+"   小鸡:"+(100-father-mother));
				}
			}
		}
		time2 = System.currentTimeMillis();
		System.out.println("第一种方法的计算时长为:"+(time2-time1));
		System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
		System.out.println(System.getProperty("java.vm.version"));  //JVM版本
		System.out.println(System.getProperty("java.home"));        //Java目录
		System.out.println(System.getProperty("java.vendor.url"));  //JRE生产真的URL
		System.out.println(System.getProperty("os.home"));          //系统目录
		System.out.println(System.getProperty("os.arch"));          //OS架构
		System.out.println(System.getProperty("user.name"));        //用户名
		System.out.println(System.getProperty("user.dir"));         //用户当前目录
		System.out.println(System.getProperty("user.home"));        //用户的主目录
		
	}

}


在System类中我们也可以使用public static void exit(int status)方法来终止当前正在运行的Java虚拟机,结束运行。 status为退出状态,一般为0,表示正常退出。

示例2:

public class Example02 {

	/**
	 * 类库练习
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stu
		int integer1,integer2;
		integer1=4;
		integer2=6;
		System.out.println("two integers already inpput:");
		if(integer2==6)
		{
			System.exit(0);
		}
		System.out.println("the sum of integer1 and integer2:");
		System.out.println(integer1+integer2);
		
	}

}


在示例中,执行到System.exit(0)的时候Java虚拟机停止运行,后面的代码可以看作“无效”.

2.数据类型类。

Java中提供了各种数据类型,对各种数据类的值进行包装。其中较为重要的一个就是数值型和字符串类型之间的相互转换。

示例3:

public class Example02 {
	/**
	 * 类库练习
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int i = 123;
		String str;
		str = Integer.toString(i);
		System.out.println("转换String类型为:"+str+"   长度为:"+str.length());
		i = Integer.parseInt(str);
		System.out.println("再次转换为数字为:"+i);		
	}
}


其他类型诸如boolean类型、double类型都可以和字符串相互转换。

3.Cloneable接口

Cloneable接口实现了对象的复制,实现该接口后就可以直接利用Object.clone()方法复制对象。

示例4:

public class Example02 {
	/**
	 * 类库练习
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StudentInfo stu1,stu2;
		stu1=new StudentInfo("张三",18,201211009);
		System.out.println("第一个学生的信息:");
		System.out.println(stu1.name);
		System.out.println(stu1.age);
		System.out.println(stu1.number);
		stu2=(StudentInfo)stu1.clone();
		System.out.println("第二个学生的信息是:");
		System.out.println(stu2.name);
		System.out.println(stu2.age);
		System.out.println(stu2.number);		
	}
}
class StudentInfo implements Cloneable    //学生信息类
{
	public String name;
	public int age;
	public int number;
	public StudentInfo(String name,int age,int number)
	{
		this.name=name;
		this.age=age;
		this.number=number;
	}
	public Object clone()
	{
		StudentInfo s=null;
		try{
			s=(StudentInfo)super.clone();
		}catch(CloneNotSupportedException e)
		{}
		return s;
	}
}


4.Arrays类

Arrays类包含用来操作数组的各种方法,例如排序,查找等。

示例5:

public class Example02 {
	/**
	 * 数组的排序和搜索
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int array[]=new int [10];
		for(int j =0;j<=9;j++)
		{
			array[j]=(int)(Math.random()*100)+1;
			System.out.println(array[j]);
		}
		Arrays.sort(array);
		for(int j =0;j<=9;j++)
		{
			System.out.println(array[j]);
		}
		System.out.println("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
		int arr[]={12,22,43,44,9,80,76,18,90,10};
		int pos;
		Arrays.sort(arr);
		pos=Arrays.binarySearch(arr,22);
		System.out.println("排序之后22的位置:"+pos);		
	}
}


5.Date类

该类的功能和方法主要是生成时间对象并访问时间值。

示例6:

import java.util.*;
public class Example03 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Date mydate=new Date();
		System.out.println("当前时间为:"+mydate);
		mydate.setTime(100000000L);  //表示100000000毫秒后的时间
		System.out.println("100000000L后的时间为:"+mydate);
	}
}


6.Calendar类

该类是一个抽象类,他提供了关于日历日期的多种算法。

示例7:

import java.util.*;
public class Example03 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Calendar mycal=Calendar.getInstance();
		mycal.setTime(new Date());
		String year=String.valueOf(mycal.get(Calendar.YEAR));//分别获取当前年份,月份,日期,时间
		String month=String.valueOf(mycal.get(Calendar.MONTH)+1);
		String day=String.valueOf(mycal.get(Calendar.DAY_OF_MONTH));
		String week=String.valueOf(mycal.get(Calendar.DAY_OF_WEEK)-1);
		int hour=mycal.get(Calendar.HOUR_OF_DAY);
		int minute=mycal.get(Calendar.MINUTE);
		int second=mycal.get(Calendar.SECOND);
		System.out.println("当前日期:");
		System.out.println(year+"年"+month+"月"+day+"日");
		System.out.println("当前时间:");
		System.out.println(hour+"时"+minute+"分"+second+"秒");
		long mytime1=mycal.getTimeInMillis();
		mycal.set(2020, 0, 0);
		long mytime2=mycal.getTimeInMillis();
		long distence=(mytime2-mytime1)/(1000*60*60*24);
		System.out.println("距离2020年1月1日还有:"+distence+"天");
	}
}


7.Scanner类

Scanner类有很多方法,嘴常用的就是数据输入的方法。

示例8:

import java.util.*;
public class Example03 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner scan=new Scanner(System.in);
		String  str=scan.nextLine();
		int number1=scan.nextInt();
		int number2=scan.nextInt();
		double number3=scan.nextDouble();
		System.out.println("字符串是:"+str);
		System.out.println("第一个数是:"+number1);
		System.out.println("第二个数是:"+number2);
		System.out.println("第三个数是:"+number3);
	}
}


另外,还有一个方法:

public void close()

用于关闭信息的输入扫描器。