黑马程序员——Java基础——API常用类

------ Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
System类:
package cn.fuxi._01system;
/**
 * System :类中的方法都是静态的
 * 常见方法:
 * long currentTimeMillis();获取当前时间的毫秒值,可以通过此方法检测程序的执行时间.
 * 
 * Properties getProperties();确定当前的系统属性.
 * Properties集合中存储的都是String类型的键和值.
 * 最好使用它自己存储和取出的方法来完成元素的操作.
 * 
 * 
 */
import java.util.*;
public class SystemDemo01 {
	public static void main(String[] args) {
		long l1 = System.currentTimeMillis();
		System.out.println(l1);//1447857436917
		for (int i = 0; i < 100000; i++) {
			for (int j = 0; j < 10000; j++) {
				for (int j2 = 0; j2 < 10000; j2++) {
				}
			}
		}
		long l2 = System.currentTimeMillis();
		System.out.println(l2);//1447857437264
		System.out.println(l2-l1);//347
		System.out.println("-----------------------");
		Properties prop = System.getProperties();
		Set nameSet = prop.stringPropertyNames();
		for(String name:nameSet){//增强for循环
			String value = prop.getProperty(name);
			System.out.println(name + "="+value);
		}
	}
}
输出结果:
1448447171400
1448447171792
392
-----------------------
java.runtime.name=Java(TM) SE Runtime Environment
sun.boot.library.path=D:\develop\Java\jdk1.7.0_67\jre\bin
java.vm.version=24.65-b04
java.vm.vendor=Oracle Corporation
java.vendor.url=http://java.oracle.com/
path.separator=;
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg=sun.io
user.script=
user.country=CN
sun.java.launcher=SUN_STANDARD
sun.os.patch.level=
java.vm.specification.name=Java Virtual Machine Specification
user.dir=D:\develop\workspace\fuxi4
java.runtime.version=1.7.0_67-b01
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs=D:\develop\Java\jdk1.7.0_67\jre\lib\endorsed
os.arch=amd64
java.io.tmpdir=C:\Users\ADMINI~1\AppData\Local\Temp\
line.separator=


java.vm.specification.vendor=Oracle Corporation
user.variant=
os.name=Windows 8.1
sun.jnu.encoding=GBK
java.library.path=D:\develop\Java\jdk1.7.0_67\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;D:/develop/Java/jdk1.7.0_67/bin/../jre/bin/server;D:/develop/Java/jdk1.7.0_67/bin/../jre/bin;D:/develop/Java/jdk1.7.0_67/bin/../jre/lib/amd64;D:\develop\Java\jdk1.7.0_67\bin;D:\develop\Java\jdk1.7.0_67\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\develop\eclipse;;.
java.specification.name=Java Platform API Specification
java.class.version=51.0
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
os.version=6.3
user.home=C:\Users\Administrator
user.timezone=
java.awt.printerjob=sun.awt.windows.WPrinterJob
file.encoding=GBK
java.specification.version=1.7
user.name=Administrator
java.class.path=D:\develop\workspace\fuxi4\bin
java.vm.specification.version=1.7
sun.arch.data.model=64
java.home=D:\develop\Java\jdk1.7.0_67\jre
sun.java.command=cn.fuxi._01system.SystemDemo01
java.specification.vendor=Oracle Corporation
user.language=zh
awt.toolkit=sun.awt.windows.WToolkit
java.vm.info=mixed mode
java.version=1.7.0_67
java.ext.dirs=D:\develop\Java\jdk1.7.0_67\jre\lib\ext;C:\Windows\Sun\Java\lib\ext
sun.boot.class.path=D:\develop\Java\jdk1.7.0_67\jre\lib\resources.jar;D:\develop\Java\jdk1.7.0_67\jre\lib\rt.jar;D:\develop\Java\jdk1.7.0_67\jre\lib\sunrsasign.jar;D:\develop\Java\jdk1.7.0_67\jre\lib\jsse.jar;D:\develop\Java\jdk1.7.0_67\jre\lib\jce.jar;D:\develop\Java\jdk1.7.0_67\jre\lib\charsets.jar;D:\develop\Java\jdk1.7.0_67\jre\lib\jfr.jar;D:\develop\Java\jdk1.7.0_67\jre\classes
java.vendor=Oracle Corporation
file.separator=\
java.vendor.url.bug=http://bugreport.sun.com/bugreport/
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
sun.desktop=windows
sun.cpu.isalist=amd64


package cn.fuxi._01system;
/**
 * Windows 系统中换行为\r\n两个转义字符,Linux只有一个\n.
 */
import java.util.*;

public class SystemDemo02 {
	public static void main(String[] args) {
		System.out.println("hello-\r\n word");
		final String LINE_SEPARATOR = System.getProperty("line.separator");
		System.out.println("hello"+LINE_SEPARATOR+"word");
	}
}
/*
 * P.S.
 * 给属性设置一些属性信息,这些信息是全局的,其他程序都可以使用.
 * 例:System.setPeroPerty("myclasspath","c:\myclass");.
 */
输出结果:
hello-
 word
hello
word

package cn.fuxi._02runtime;

import java.io.IOException;

/**
 * Runtime类
 * 每个Java应用程序都有一个Runtime类实例,使用应用程序能够与其运行的环境相连接.应用程序
 * 不能创建自己的Runtime类实例.
 * 
 * P.S.
 * Runtime:没有构造方法摘要,说明该类不可以创建对象.又发现还有非静态的方法,
 * 说明该类应该提供静态的放回该类对象的方法.而且只有一个,说明Runtime类使用了单列设计模式.
 */

public class RuntimeDemo {
	public static void main(String[] args) throws Exception {
		Runtime r = Runtime.getRuntime();
		Process p  = r.exec("notepad.exe E:\\传智播客JAVA基础班\\练习");
		Thread.sleep(5000);
		p.destroy();
	}

}


package cn.fuxi._03math;

import java.util.Random;

/**
 * Math:提供了操作数学运算的方法,都是静态的.
 * 
 * 常用方法:
 * ceil():返回大于参数的最小整数.
 * floor():返回小于参数的最大整数.
 * round():返回四舍五入的整数.
 * pow(a,b):返回a的b次方.
 */

public class MathDemo01 {
	public static void main(String[] args) {
		double d1 = Math.ceil(12.56);
		double d2 = Math.floor(12.56);
		double d3 = Math.round(12.56);
		System.out.println(d1);//13.0
		System.out.println(d2);//12.0
		System.out.println(d3);//13.0
		
		double d4 = Math.pow(10, 2);
		System.out.println(d4);//100.0
		System.out.println("------------------");
		Random r = new Random();//创建一个随机数生成器
		System.out.println(r);
		for (int i = 0; i < 5; i++) {
			double d5 = Math.ceil(Math.random()*10);
			System.out.println(d5);
		}
		System.out.println("------------------");
		for (int i = 0; i < 5; i++) {
			double d6 =(int)(r.nextDouble()*6+1);
			System.out.println(d6);
		}
	}
}
输出结果:
13.0
12.0
13.0
100.0
------------------
java.util.Random@2278e185
4.0
3.0
10.0
6.0
9.0
------------------
3.0
4.0
3.0
6.0
2.0

package cn.fuxi._04date;
/**
 * Date,DateFormat类
 *	
 * 日期对象和毫秒值之间的转换
 * 毫秒值--->日期对象:
 * 1.通过Date对象的构造方法new Date(timeMillis);
 * 2.还可以通过setTime设置.
 * 因为可以通过Date对象的方法对该日期中的各个字段(年月日等)进行操作.
 * 
 * 日期对象--->毫秒值:
 * 1.getTime方法.
 * 因为可以通过具体的数值进行运算.
 * 
 * 对日期对象经行格式化:
 * 将日期对象--->日期格式的字符串.
 * 使用的是DateFormat类中的format方法.
 * 
 * 将日期格式的字符串--->日期对象.
 * 使用的是DateFormat类中的prase方法.
 */
import java.util.*;
import java.text.*;
public class DateDemo01 {
	public static void main(String[] args) {
		method1();
		System.out.println("----------------------------");
		method2();
		System.out.println("----------------------------");
		method3();
	}


	public static void method1() {
		long time = System.currentTimeMillis();
		System.out.println(time);//1447911145088
		//将当期日期和时间封装成Date对象
		Date date1 = new Date();
		System.out.println(date1);//Thu Nov 19 13:32:25 CST 2015
		//将指定毫秒值封装成Date对象
		Date date2 = new Date(14052443142342l);//Wed Apr 22 08:25:42 CST 2415
		System.out.println(date2);
	}
	
	public static void method2() {
		Date date = new Date();
		System.out.println(date);//Thu Nov 19 13:55:03 CST 2015
		//setTime(long l)获取指定毫秒值的日期
		date.setTime(0l);
		System.out.println(date);//Thu Jan 01 08:00:00 CST 1970
		//获取日期格式对象,具备着默认的风格.也可以指定为FULL(显示日期),LONG风格(显示具体时间).
		DateFormat df = DateFormat.getDateInstance(DateFormat.FULL);
		System.out.println(df);//java.text.SimpleDateFormat@be3eaf08
		String sdf = df.format(date);
		System.out.println(sdf);//1970年1月1日 星期四
		df = DateFormat.getDateTimeInstance(DateFormat.FULL,DateFormat.LONG);
		String sdf2 = df.format(date);
		System.out.println(sdf2);//1970年1月1日 星期四 上午08时00分00秒
	}

	public static void method3() {
		Date date = new Date(0l);
		DateFormat df = DateFormat.getDateInstance(DateFormat.LONG);
		String sdf1 = df.format(date);
		System.out.println(sdf1);//1970年1月1日
		String sdf2 = DateFormat.getDateInstance(DateFormat.LONG).format(new Date());
		System.out.println(sdf2);//2015年11月19日
		String sdf3 = "2015--11-11";
		try {
			System.out.println(DateFormat.getDateInstance(DateFormat.LONG).parse(sdf1));
			//Thu Jan 01 00:00:00 CST 1970
			System.out.println(DateFormat.getDateInstance(DateFormat.LONG).parse(sdf2));
			//Thu Nov 19 00:00:00 CST 2015
			System.out.println(new SimpleDateFormat("yyyy--MM-dd").parse(sdf3));
			//Wed Nov 11 00:00:00 CST 2015
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
}
输出结果:
13.0
12.0
13.0
100.0
------------------
java.util.Random@2e1df471
7.0
3.0
9.0
4.0
1.0
------------------
2.0
1.0
2.0
5.0
1.0

package cn.fuxi._04date;
/**
 * 练习:
 * 		"2012-3-17"到"2012-4-6"中间有多少天?
 * 
 * 思路:	1.两个日期转换为Date对象
 * 		2.获取两个日期Date对象的毫秒值
 * 		3.毫秒值相减然后除以每一天的毫秒数得出结果
 */
import java.util.*;
import java.text.*;
public class DateTest01 {
	public static void main(String[] args) throws Exception{
		String s1 = "2012-3-17";
		String s2 = "2012-4-6";
		Date d1 = new SimpleDateFormat("yyyy-MM-dd").parse(s1);
		Date d2 = new SimpleDateFormat("yyyy-MM-dd").parse(s2);
		System.out.println(Math.abs(d1.getTime()-d2.getTime())/1000/60/60/24); 
		//一行流~写着玩~
		System.out.println(Math.abs((new SimpleDateFormat("yyyy-MM-dd").parse("2012-3-17").getTime())-(new SimpleDateFormat("yyyy-MM-dd").parse("2012-4-6").getTime()))/1000/60/60/24);
	}	
}
输出结果:
20
20


package cn.fuxi._05calendar;
/**
 * Calendar类: 
 * 这是一个抽象类,它为特定瞬间与一组诸如YEAR,MONTH,DAY_OF_MONTH,HOUR
 * 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得星期的日)提供
 * 了一些方法.
 */
import java.util.*;
public class CalendarDemo {
	public static void main(String[] args) {
		//method_1();
		method_2();
		
	}
	public static void method_1(){
		Calendar c = Calendar.getInstance();
		show(c);
	}
	public static void method_2(){
		Calendar c = Calendar.getInstance();
		//设置年月日,注意,月份+1,0月相当于我们的1月
		c.set(2014,3,20);
		//年份减2,替换原来的年份
		c.add(Calendar.YEAR, -2);
		show(c);
	}
	public static void show(Calendar c) {
		int year = c.get(Calendar.YEAR);
		int month = c.get(Calendar.MONTH)+1;
		int day = c.get(Calendar.DAY_OF_MONTH);
		int week = c.get(Calendar.DAY_OF_WEEK);
		System.out.println(year+"年"+month+"月"+day+"日"+getWeek(week));
	}
	public static String getWeek(int week ){
		String[] weeks = {"","星期一","星期二","星期三","星期四","星期五","星期六","星期天"};
		return weeks[week];
	}
}
输出结果:
2012年4月20日星期六


package cn.fuxi._05calendar;
/**
 * 练习:
 * 		打印每年的二月份有多少天.
 * 思路: 1.找到每年的3月1日
 * 		2.天数减一,得到的数值就是二月份最后一天的日子,得出天数
 */
import java.util.*;
public class CalendarTest {

	public static void main(String[] args) {
		int year = 2015;
		Calendar c = Calendar.getInstance();
		c.set(year, 2,1);//注意:系统接收的月份的数值是实际月份-1;所以是2
		c.add(Calendar.DAY_OF_YEAR, -1);//几种方式都可以,只要是Day,-1即可.
		//c.add(Calendar.DAY_OF_MONTH, -1);
		//c.add(Calendar.DAY_OF_WEEK, -1);
		int day = c.get(Calendar.DAY_OF_MONTH);
		System.out.println(day);//28
	}

}
输出结果:
28




你可能感兴趣的:(Java学习笔记)