王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

一、System1.1、概述

System类包含一些有用的类字段和方法。它不能被实例化。

在System类提供的设施中,有标准输入、标准输出和错误输出流;对外部定义的属性和环境变量的访问;加载文件和库的方法;还有快速复制数组的一部分的实用方法。

字段摘要staticPRintStream

err

“标准”错误输出流。

static InputStream

in

“标准”输入流。

static PrintStream

out

“标准”输出流。

1.2、getPropertis()获取system加载时都加载了哪些对象

Properties是HashTable的子类,也就是Map集合的子类对象

可以通过Map的方法取出该集合中的元素。

该集合中存储的都是字符串,没有泛型定义

packagecom.pb.system.demo1;importjava.util.Iterator;importjava.util.Properties;importjava.util.Set;publicclassSystemDemo1 {publicstaticvoidmain(String[] args) {//获取System启动是初始化的对象,返回是一个Properties,这个是HashTable的子类对象也是个Map集合Properties prop=System.getProperties();

Set set=prop.keySet();//获取所胡键Iterator it=set.iterator();while(it.hasNext()){

String key=(String)it.next();

String value=(String)prop.get(key);

System.out.println(key+": "+value);

}

}

}

结果:

java.runtime.name: Java(TM) SE Runtime Environment

sun.boot.library.path: C:\Java\jre1.8.0_60\bin

java.vm.version:25.60-b23

java.vm.vendor:OracleCorporation

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.country: CN

user.script:

sun.java.launcher: SUN_STANDARD

sun.os.patch.level:

java.vm.specification.name: Java Virtual Machine Specification

user.dir: F:\work\ListDemo

java.runtime.version:1.8.0_60-b27

java.awt.graphicsenv: sun.awt.Win32GraphicsEnvironment

java.endorsed.dirs: C:\Java\jre1.8.0_60\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: Windows7sun.jnu.encoding: GBK

java.library.path: C:\Java\jre1.8.0_60\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Java/jre1.8.0_60/bin/server;C:/Java/jre1.8.0_60/bin;C:/Java/jre1.8.0_60/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Broadcom\Broadcom 802.11 Network Adapter\Driver;;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\Lenovo\Bluetooth Software\;C:\Program Files\Lenovo\Bluetooth Software\syswow64;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;C:\Java\jdk1.8.0_60\bin;C:\Java\jdk1.8.0_60\jre\bin;F:\eclipse-jee-mars-R-win32-x86_64\eclipse;;.

java.specification.name: Java Platform API Specification

java.class.version: 52.0sun.management.compiler: HotSpot64-Bit Tiered Compilers

os.version:6.1user.home: C:\Users\Administrator

user.timezone:

java.awt.printerjob: sun.awt.windows.WPrinterJob

file.encoding: UTF-8java.specification.version:1.8java.class.path: F:\work\ListDemo\bin

user.name: Administrator

java.vm.specification.version:1.8sun.java.command: com.pb.system.demo1.SystemDemo1

java.home: C:\Java\jre1.8.0_60

sun.arch.data.model:64user.language: zh

java.specification.vendor: Oracle Corporation

awt.toolkit: sun.awt.windows.WToolkit

java.vm.info: mixed mode

java.version:1.8.0_60

java.ext.dirs: C:\Java\jre1.8.0_60\lib\ext;C:\Windows\Sun\Java\lib\ext

sun.boot.class.path: C:\Java\jre1.8.0_60\lib\resources.jar;C:\Java\jre1.8.0_60\lib\rt.jar;C:\Java\jre1.8.0_60\lib\sunrsasign.jar;C:\Java\jre1.8.0_60\lib\jsse.jar;C:\Java\jre1.8.0_60\lib\jce.jar;C:\Java\jre1.8.0_60\lib\charsets.jar;C:\Java\jre1.8.0_60\lib\jfr.jar;C:\Java\jre1.8.0_60\classes

java.vendor: Oracle Corporation

file.separator: \

java.vendor.url.bug: http://bugreport.sun.com/bugreport/sun.io.unicode.encoding: UnicodeLittle

sun.cpu.endian: little

sun.desktop: windows

sun.cpu.isalist: amd64

二、Runtime2.1、Runtime概述

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

应用程序不能创建自己的 Runtime 类实例。

java.lang.Runtime

static Runtime

getRuntime()

返回与当前 Java 应用程序相关的运行时对象。

单例模式

2.2、示例

packagecom.pb.system.demo1;importjava.io.IOException;publicclassRuntimeDemo {publicstaticvoidmain(String[] args) {

Runtime rt=Runtime.getRuntime();

Process p=null;//进程try{//打开启事本p=rt.exec("notepad e:\\a.txt");//或者路径加命令 返回一个进程Thread.sleep(5000);//等待5秒}catch(IOException e) {

e.printStackTrace();

}catch(InterruptedException e) {

e.printStackTrace();

}finally{

p.destroy();//关闭进程}

}

}

三、Date3.1、Date

类Date表示特定的瞬间,精确到毫秒

方法摘要boolean

after(Date when)

测试此日期是否在指定日期之后。

boolean

before(Date when)

测试此日期是否在指定日期之前。

Object

clone()

返回此对象的副本。

int

compareTo(Date anotherDate)

比较两个日期的顺序。

boolean

equals(Object obj)

比较两个日期的相等性。

int

getDate()

已过时。从 JDK 1.1 开始,由Calendar.get(Calendar.DAY_OF_MONTH)取代。

int

getDay()

已过时。从 JDK 1.1 开始,由Calendar.get(Calendar.DAY_OF_WEEK)取代。

int

getHours()

已过时。从 JDK 1.1 开始,由Calendar.get(Calendar.HOUR_OF_DAY)取代。

int

getMinutes()

已过时。从 JDK 1.1 开始,由Calendar.get(Calendar.MINUTE)取代。

int

getMonth()

已过时。从 JDK 1.1 开始,由Calendar.get(Calendar.MONTH)取代。

int

getSeconds()

已过时。从 JDK 1.1 开始,由Calendar.get(Calendar.SECOND)取代。

long

getTime()

返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此Date对象表示的毫秒数。

int

getTimezoneOffset()

已过时。从 JDK 1.1 开始,由-(Calendar.get(Calendar.ZONE_OFFSET) + Calendar.get(Calendar.DST_OFFSET))

/ (60 * 1000)取代。

int

getYear()

已过时。从 JDK 1.1 开始,由Calendar.get(Calendar.YEAR) -

1900取代。

int

hashCode()

返回此对象的哈希码值。

static long

parse(String s)

已过时。从 JDK 1.1 开始,由DateFormat.parse(String

s)取代。

void

setDate(int date)

已过时。从 JDK 1.1 开始,由Calendar.set(Calendar.DAY_OF_MONTH, int date)取代。

void

setHours(int hours)

已过时。从 JDK 1.1 开始,由Calendar.set(Calendar.HOUR_OF_DAY, int hours)取代。

void

setMinutes(int minutes)

已过时。从 JDK 1.1 开始,由Calendar.set(Calendar.MINUTE,

int minutes)取代。

void

setMonth(int month)

已过时。从 JDK 1.1 开始,由Calendar.set(Calendar.MONTH,

int month)取代。

void

setSeconds(int seconds)

已过时。从 JDK 1.1 开始,由Calendar.set(Calendar.SECOND,

int seconds)取代。

void

setTime(long time)

设置此Date对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后time毫秒的时间点。

void

setYear(int year)

已过时。从 JDK 1.1 开始,由Calendar.set(Calendar.YEAR,

year + 1900)取代。

String

toGMTString()

已过时。从 JDK 1.1 开始,由DateFormat.format(Date

date)取代,使用 GMTTimeZone。

String

toLocaleString()

已过时。从 JDK 1.1 开始,由DateFormat.format(Date

date)取代。

String

toString()

把此Date对象转换为以下形式的String: dow mon dd

hh:mm:ss zzz yyyy 其中:dow是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri,

Sat)。

static long

UTC(int year,

int month, int date, int hrs, int min, int sec)

已过时。从 JDK 1.1 开始,由Calendar.set(year + 1900,

month, date, hrs, min, sec)或GregorianCalendar(year + 1900, month,

date, hrs, min, sec)取代,使用 UTCTimeZone,后跟Calendar.getTime().getTime()。

3.2、SimpleDateFormat

日期和时间模式

日期和时间格式由日期和时间模式字符串指定。在日期和时间模式字符串中,未加引号的字母'A'到'Z'和'a'到'z'被解释为模式字母,用来表示日期或时间字符串元素。文本可以使用单引号 (') 引起来,以免进行解释。"''"表示单引号。所有其他字符均不解释;只是在格式化时将它们简单复制到输出字符串,或者在解析时与输入字符串进行匹配。

定义了以下模式字母(所有其他字符'A'到'Z'和'a'到'z'都被保留):

字母日期或时间元素表示示例G

Era 标志符

Text

AD

y

年

Year

1996;96

M

年中的月份

Month

July;Jul;07

w

年中的周数

Number

27

W

月份中的周数

Number

2

D

年中的天数

Number

189

d

月份中的天数

Number

10

F

月份中的星期

Number

2

E

星期中的天数

Text

Tuesday;Tue

a

Am/pm 标记

Text

PM

H

一天中的小时数(0-23)

Number

0

k

一天中的小时数(1-24)

Number

24

K

am/pm 中的小时数(0-11)

Number

0

h

am/pm 中的小时数(1-12)

Number

12

m

小时中的分钟数

Number

30

s

分钟中的秒数

Number

55

S

毫秒数

Number

978

z

时区

General time zone

Pacific Standard Time;PST;GMT-08:00

Z

时区

RFC 822 time zone

-0800

SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。

示例:

packagecom.pb.date.demo1;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassDateDemo1 {publicstaticvoidmain(String[] args) {

Date d=newDate();

System.out.println(d);//返回值为Sun Sep 27 15:35:10 CST 2015//格式转换SimpleDateFormat sdf1=newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String str=sdf1.format(d);

System.out.println(str);//2015-09-27 15:36:37}

}

四、Calendar4.1、Calendar

Calendar类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。

该类还为实现包范围外的具体日历系统提供了其他字段和方法。这些字段和方法被定义为protected。

与其他语言环境敏感类一样,Calendar提供了一个类方法getInstance,以获得此类型的一个通用的对象。Calendar的getInstance方法返回一个Calendar对象,其日历字段已由当前日期和时间初始化:

Calendar rightNow = Calendar.getInstance();

4.2、示例

packagecom.pb.date.demo1;importjava.util.Calendar;importjava.util.GregorianCalendar;publicclassCalendarDemo {publicstaticvoidmain(String[] args) {

Calendar c=Calendar.getInstance();

System.out.println(c);intyear=c.get(Calendar.YEAR);//年intmonth=c.get(Calendar.MONTH)+1;//月0-11之间+1为当前月份intday=c.get(Calendar.DAY_OF_MONTH);//月中的日期inthour=c.get(Calendar.HOUR_OF_DAY);//天中的小时intminuts=c.get(Calendar.MINUTE);intsecond=c.get(Calendar.SECOND);

System.out.println(year+"年"+month+"月"+day+"日"+hour+"时"+minuts+"分"+second+"秒");//获取2年之前的日期//getYear(c,-2);//获取2年之后的日期//getYear(c,2);//获取2个月之前的日期//getMonth(c,-2);//获取2个月之后的日期//getMonth(c,2);//当前日期-20天的日期//getDay(c,-20);//当前日期+83天的日期//getDay(c,83);//求当年是不是闰年//isLearYear(c);/** Calendar的子类提供了,判断是不是闰年的方法*/GregorianCalendar gc=newGregorianCalendar();//boolean flag=gc.isLeapYear(2015);booleanflag=gc.isLeapYear(gc.YEAR);if(flag){

System.out.println("闰年!");

}else{

System.out.println("不是闰年!");

}

}//对年进行+和-操作publicstaticvoidgetYear(Calendar c,intnum){

c.add(Calendar.YEAR, num);intyear=c.get(Calendar.YEAR);

System.out.println(year);

}//对月进行+和-操作publicstaticvoidgetMonth(Calendar c,intnum){

c.add(Calendar.MONTH, num);intmonth=c.get(Calendar.MONTH)+1;intyear=c.get(Calendar.YEAR);

System.out.println(year+"年"+month+"月");

}//对日进行+和-操作publicstaticvoidgetDay(Calendar c,intnum){

c.add(Calendar.DAY_OF_MONTH, num);intday=c.get(Calendar.DAY_OF_MONTH);intyear=c.get(Calendar.YEAR);intmonth=c.get(Calendar.MONTH)+1;

System.out.println(year+"年"+month+"月"+day);

}publicstaticvoidisLearYear(Calendar c){intyear=c.get(Calendar.YEAR);//闰年的条件可以被4整除但不能被100整除,或者可以被400整除if(year%4==0&&year%100!=0 ||year%400==0){

System.out.println(year+"年闰年!");

}else{

System.out.println(year+"年不是闰年!");

}

}

}

五、Math5.1、Math

Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。

字段摘要static double

E

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

static double

PI

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

方法摘要static double

abs(double a)

返回double值的绝对值。

static float

abs(float a)

返回float值的绝对值。

static int

abs(int a)

返回int值的绝对值。

static long

abs(long a)

返回long值的绝对值。

static double

acos(double a)

返回一个值的反余弦;返回的角度范围在 0.0 到pi之间。

static double

asin(double a)

返回一个值的反正弦;返回的角度范围在 -pi/2 到pi/2 之间。

static double

atan(double a)

返回一个值的反正切;返回的角度范围在 -pi/2 到pi/2 之间。

static double

atan2(double y,

double x)

将矩形坐标 (x,y) 转换成极坐标

(r,theta),返回所得角theta。

static double

cbrt(double a)

返回double值的立方根。

static double

ceil(double a)

返回最小的(最接近负无穷大)double值,该值大于等于参数,并等于某个整数。

static double

copySign(double magnitude,

double sign)

返回带有第二个浮点参数符号的第一个浮点参数。

static float

copySign(float magnitude,

float sign)

返回带有第二个浮点参数符号的第一个浮点参数。

static double

cos(double a)

返回角的三角余弦。

static double

cosh(double x)

返回double值的双曲线余弦。

static double

exp(double a)

返回欧拉数e的double次幂的值。

static double

expm1(double x)

返回ex-1。

static double

floor(double a)

返回最大的(最接近正无穷大)double值,该值小于等于参数,并等于某个整数。

static int

getExponent(double d)

返回double表示形式中使用的无偏指数。

static int

getExponent(float f)

返回float表示形式中使用的无偏指数。

static double

hypot(double x,

double y)

返回

sqrt(x2+y2),没有中间溢出或下溢。

static double

IEEEremainder(double f1,

double f2)

按照 IEEE 754 标准的规定,对两个参数进行余数运算。

static double

log(double a)

返回double值的自然对数(底数是e)。

static double

log10(double a)

返回double值的底数为 10 的对数。

static double

log1p(double x)

返回参数与 1 之和的自然对数。

static double

max(double a,

double b)

返回两个double值中较大的一个。

static float

max(float a,

float b)

返回两个float值中较大的一个。

static int

max(int a, int b)

返回两个int值中较大的一个。

static long

max(long a,

long b)

返回两个long值中较大的一个。

static double

min(double a,

double b)

返回两个double值中较小的一个。

static float

min(float a,

float b)

返回两个float值中较小的一个。

static int

min(int a, int b)

返回两个int值中较小的一个。

static long

min(long a,

long b)

返回两个long值中较小的一个。

static double

nextAfter(double start,

double direction)

返回第一个参数和第二个参数之间与第一个参数相邻的浮点数。

static float

nextAfter(float start,

double direction)

返回第一个参数和第二个参数之间与第一个参数相邻的浮点数。

static double

nextUp(double d)

返回d和正无穷大之间与d相邻的浮点值。

static float

nextUp(float f)

返回f和正无穷大之间与f相邻的浮点值。

static double

pow(double a,

double b)

返回第一个参数的第二个参数次幂的值。

static double

random()

返回带正号的double值,该值大于等于0.0且小于1.0。

static double

rint(double a)

返回最接近参数并等于某一整数的double值。

static long

round(double a)

返回最接近参数的long。

static int

round(float a)

返回最接近参数的int。

static double

scalb(double d,

int scaleFactor)

返回d×

2scaleFactor,其舍入方式如同将一个正确舍入的浮点值乘以 double

值集合中的一个值。

static float

scalb(float f,

int scaleFactor)

返回f×

2scaleFactor,其舍入方式如同将一个正确舍入的浮点值乘以 float

值集合中的一个值。

static double

signum(double d)

返回参数的符号函数;如果参数为 0,则返回 0;如果参数大于 0,则返回 1.0;如果参数小于 0,则返回

-1.0。

static float

signum(float f)

返回参数的符号函数;如果参数为 0,则返回 0;如果参数大于 0,则返回 1.0;如果参数小于 0,则返回

-1.0。

static double

sin(double a)

返回角的三角正弦。

static double

sinh(double x)

返回double值的双曲线正弦。

static double

sqrt(double a)

返回正确舍入的double值的正平方根。

static double

tan(double a)

返回角的三角正切。

static double

tanh(double x)

返回double值的双曲线余弦。

static double

toDegrees(double angrad)

将用弧度表示的角转换为近似相等的用角度表示的角。

static double

toRadians(double angdeg)

将用角度表示的角转换为近似相等的用弧度表示的角。

static double

ulp(double d)

返回参数的 ulp 大小。

static float

ulp(float f)

返回参数的 ulp 大小。

5.2、示例

packagecom.pb.math.demo1;publicclassMathDemo1 {publicstaticvoidmain(String[] args) {doubled = Math.ceil(16.3);//返回大于指定数据的最小整数17System.out.println("d=" +d);doubled1 = Math.ceil(-16.3);//返回大于指定数据的最小整数-16System.out.println("d1=" +d1);doubled2 = Math.floor(16.3);//16,返回小于指定数据最大整数System.out.println("d2=" +d2);doubled3 = Math.floor(-16.3);//16,返回小于指定数据最大整数-17System.out.println("d3=" +d3);doubled4 = Math.round(12.3);//12;System.out.println("d4=" +d4);doubled5 = Math.round(12.54);//13;System.out.println("d5=" +d5);doubled6 = Math.round(-12.54);//-12;System.out.println("d6=" +d6);doubled7 = Math.round(-12.34);//-12;System.out.println("d7=" +d7);

System.out.println(Math.round(11.5));//12System.out.println(Math.round(-11.5));//-11}

}

5.3、Random类

Random类实现的算法使用一个protected实用工具方法,每次调用它最多可提供 32 个伪随机生成的位。

构造方法摘要Random()

创建一个新的随机数生成器。

Random(long seed)

使用单个long种子创建一个新的随机数生成器。

方法摘要protected

int

next(int bits)

生成下一个伪随机数。

boolean

nextBoolean()

返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的boolean值。

void

nextBytes(byte[] bytes)

生成随机字节并将其置于用户提供的 byte 数组中。

double

nextDouble()

返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布的double值。

float

nextFloat()

返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布的float值。

double

nextGaussian()

返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正态”)分布的double值,其平均值是0.0,标准差是1.0。

int

nextInt()

返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的int值。

int

nextInt(int n)

返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的int值。

long

nextLong()

返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的long值。

void

setSeed(long seed)

使用单个long种子设置此随机数生成器的种子。

示例:

packagecom.pb.math.demo1;importjava.util.Random;/*** 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。

* 返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。

* 大于等于 0.0 且小于 1.0 的伪随机 double 值

**/publicclassMathDemo2 {publicstaticvoidmain(String[] args) {

Random r=newRandom();for(intx=0;x<10;x++){inti=r.nextInt(10);//1-10包含1不包含10floatf=r.nextFloat()*10;//0-1之间*10doubled=r.nextDouble()*10;//0-1之间*10sop(i);

sop(f);

sop(d);

}

}publicstaticvoidsop(Object obj){

System.out.println(obj);

}

}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航