您的位置:首页 > 职场人生

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

2014-06-07 19:45 423 查看
---------------------- 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培训、期待与您交流! ----------------------
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐