黑马程序员------毕老师视频笔记第18-21天------其他对象(System、Runtime、Data、Calendar、Math)

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------

System

public final class System

extends Object

没有公开的构造函数

属性和方法都是静态的

字段:

static PrintStream err

static InputStream in

static PrintStream out

方法:

public static void setIn(InputStream in)

public static void setOut(PrintStream out)

public static void setErr(PrintStream err)

public static Console console()

public static Channel inheritedChannel()throwsIOException

public static voidsetSecurityManager(SecurityManager s)

public static SecurityManagergetSecurityManager()

public static longcurrentTimeMillis()

public static voidarraycopy(Object src, int srcPos, Object dest, int destPos, int length)

public static int identityHashCode(Objectx)

public static PropertiesgetProperties()

public static void setProperties(Propertiesprops)

public static String getProperty(Stringkey)

public static String getProperty(Stringkey, String def)

public static String setProperty(String key,String value)

public static String clearProperty(Stringkey)

public static String getenv(String name)

public static Map<String,String>getenv()

public static voidexit(int status)

public static void gc()

public static voidrunFinalizersOnExit(boolean value)

public static void load(String filename)

public static void loadLibrary(Stringlibname)

public static String mapLibraryName(Stringlibname)

 

示例:确定当前系统属性

import java.util.*;
class SystemDemo
{
	public static void main (String [] args)
	{
		Properties prop = System.getProperties();
		for (Object obj : prop.keySet())
		{
			String value = (String)prop.get(obj);
			System.out.println(obj+"----"+value);
		}
	}
}


后面还有很多信息,就不截图了

 

Runtime

public class Runtime

extends Object

没有公开的构造函数,按理说方法应该是静态的,可是Runtime中有非静态的方法,怎么用呢?说明一定有办法获得Runtime对象的办法------getRuntime,单例设计模式

每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。

方法:

void addShutdownHook(Thread hook)

 intavailableProcessors()

 Process exec(String command)

 Process exec(String[] cmdarray)

 Process exec(String[] cmdarray, String[] envp)

 Process exec(String[] cmdarray, String[] envp,File dir)

 Process exec(String command, String[] envp)

 Process exec(String command, String[] envp,File dir)

 void exit(int status)

 longfreeMemory()

 void gc()

 InputStreamgetLocalizedInputStream(InputStream in)

 OutputStream getLocalizedOutputStream(OutputStreamout)

static Runtime getRuntime()

 voidhalt(int status)

 voidload(String filename)

 voidloadLibrary(String libname)

 longmaxMemory()

 boolean removeShutdownHook(Thread hook)

 voidrunFinalization()

static void runFinalizersOnExit(booleanvalue)

 longtotalMemory()

 voidtraceInstructions(boolean on)

 voidtraceMethodCalls(boolean on)

 

示例:

import java.util.*;
class RuntimeDemo
{
	public static void main (String [] args)throws Exception
	{
		Runtime r = Runtime.getRuntime();
		r.exec("c:\\windows\\system32\\calc.exe");
	}
}


我们发现我们可以用Java程序开启系统上的软件

同样,我们可以杀死一些进程(有些是杀不死的,权限问题)

 

Date

public class Date

extends Object

implements Serializable, Cloneable,Comparable<Date>

相关联的类:DateFormat, Calendar, TimeZone, 序列化表格

构造函数

Date()

Date(long date)

 

示例;

import java.util.*;
import java.text.*;
class DateDemo
{
	public static void main (String [] args)throws Exception
	{
		Date d = new Date();
		System.out.println(d);
		//将模式封装到SimpleDateFormat对象中
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");
		//调用ormat方法啊让模式格式化指定Date对象
		String time = sdf.format(d);
		System.out.println(time);
	}
}

Calendar

public abstract class Calendar

extends Object

implements Serializable, Cloneable,Comparable<Calendar>

字段与方法有很多,参见API中uti包中的Calendar类

Date有很多方法都已经过时,使用Calendar更方便与精细

示例:


import java.util.*;
import java.text.*;
class CalendarDemo
{
	public static void main (String [] args)throws Exception
	{
		Calendar c = Calendar.getInstance();
		System.out.println(c);
		System.out.println(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");
		System.out.println("星期"+c.get(Calendar.DAY_OF_WEEK)); 
		String[] mons = {"一月","二月","三月","四月",
			"五月","六月","七月","八月","九月","十月","十一月","十二月"};
		int index = c.get(Calendar.MONTH);
		System.out.println(mons[index]);
		String[] weeks = {"星期日","星期一","星期二","星期三","星期四",
			"星期五","星期六"};
		index = c.get(Calendar.DAY_OF_WEEK)-1;
		System.out.println(weeks[index]);
	}
}

另外还有很多很好用的方法

add,set等等

 

练习:

1.获取任意年的二月有多少天

思路:根据指定年设置一个时间,

set(year,2,1)//某一年的3月1日

add(Calendar.DAY_OF_MONTH,-1)//3月1日往前推一天就是2月最后一天

2.获取昨天的现在这个时刻

add(Calendar.DAY_OF_MONTH,-1);

 

Math—Random

public final class Math

extends Object

又是一个工具类

字段:

static double E比任何其他值都更接近 e(即自然对数的底数)的double 值。

static double PI 比任何其他值都更接近 pi(即圆的周长与直径之比)的double 值。

方法:

很多数学工具,注意掌握

ceil

floor

round

pow

特别注意掌握random

Java中还提供了一个生成随机数的类Random

 

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值