Java基础——常用API

System类

1.知识点

(1)所在位置:java.lang包

(2)特点:不能够实例化,所以成员全部是静态的

2.成员摘要

字段摘要
static PrintStreamerr 
          “标准”错误输出流。
static InputStreamin 
          “标准”输入流。
static PrintStreamout 
          “标准”输出流。

方法摘要
static voidarraycopy(Object src, int srcPos, Object dest, int destPos, int length) 
          从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
static longcurrentTimeMillis() 
          返回以毫秒为单位的当前时间。
static voidexit(int status) 
          终止当前正在运行的 Java 虚拟机。
static voidgc() 
          运行垃圾回收器。
static Map<String,String>getenv() 
          返回一个不能修改的当前系统环境的字符串映射视图。
static Stringgetenv(String name) 
          获取指定的环境变量值。
static PropertiesgetProperties() 
          确定当前的系统属性。
static StringgetProperty(String key) 
          获取指定键指示的系统属性。
static StringgetProperty(String key, String def) 
          获取用指定键描述的系统属性。
static voidsetProperties(Properties props) 
          将系统属性设置为 Properties 参数。
static StringsetProperty(String key, String value) 
          设置指定键指示的系统属性。
static voidsetErr(PrintStream err) 
          重新分配“标准”错误输出流。
static voidsetIn(InputStream in) 
          重新分配“标准”输入流。(重新给In成员赋值成别的输入流对象)
static voidsetOut(PrintStream out) 
          重新分配“标准”输出流。(重新给Out成员赋值成别的输出流对象)
static intidentityHashCode(Object x) 
          返回给定对象的哈希码,该代码与默认的方法 hashCode() 返回的代码一样,无论给定对象的类是否重写 hashCode()。可通过此方法确定两对对象是否是同一对象
static voidrunFinalization() 
          运行处于挂起终止状态的所有对象的终止方法。调用回收对象的finalize()方法

Properties类

1.知识点

(1)所在位置:java.util——hashtalbe的子类

(2)通过System中的getProperties()可以获得该类对象

(3)描述:此类是一个存储键值对的集合类,可以轻松读取文件中的配置信息存入Map集合,或者输出配置信息到文件。可以存储的系统的属性信息(如下)


(4)dos命令行下可以通过“ java -D key = value”的方式添加属性信息

2.特有方法

方法摘要
 Set<String>stringPropertyNames() 
          返回此属性列表中的键集,其中该键及其对应值是字符串,如果在主属性列表中未找到同名的键,则还包括默认属性列表中不同的键。
 voidlist(PrintStream out) 
          将属性列表输出到指定的输出流。
 voidlist(PrintWriter out) 
          将属性列表输出到指定的输出流。
 voidload(InputStream inStream) 
          从输入流中读取属性列表(键和元素对)。能够直接把一个文件中的数据存入到Properties集合中
 voidload(Reader reader) 
          按简单的面向行的格式从输入字符流中读取属性列表(键和元素对)。能够直接把一个文件中的数据存入到Properties集合中
 StringgetProperty(String key) 
          用指定的键在此属性列表中搜索属性。
 ObjectsetProperty(String key, String value) 
          调用 Hashtable 的方法 put
 voidstore(OutputStream out, String comments) 
          以适合使用 load(InputStream) 方法加载到 Properties 表中的格式,将此 Properties 表中的属性列表(键和元素对)写入输出流。把集合中数据加载进文件
 voidstore(Writer writer, String comments) 
          以适合使用 load(Reader) 方法的格式,将此 Properties 表中的属性列表(键和元素对)写入输出字符。把集合中数据加载进文件
 voidloadFromXML(InputStream in) 
          将指定输入流中由 XML 文档所表示的所有属性加载到此属性表中。读取XML的配置文件
 voidstoreToXML(OutputStream os, String comment) 
          发出一个表示此表中包含的所有属性的 XML 文档。把集合中的数据加载进XML文件
 voidstoreToXML(OutputStream os, String comment, String encoding) 
          使用指定的编码发出一个表示此表中包含的所有属性的 XML 文档。把集合中的数据加载进XML文件
import java.io.*;
import java.util.*;

/**
*Properties类应用,创建用于记录程序使用次数的配置文件,当使用次数超过5时,提示用户
*/

class java
{
	public static void main(String[] args)throws Exception{
		File file = new File("d:\\sb.ini");//文件地址与名称
		if(!file.exists())
			file.createNewFile();//文件不存在的话创建新文件
		InputStream is = new FileInputStream(file);//关联输入流
		
		Properties pro = new Properties();

		pro.load(is);//读取配置文件的信息

		String value = pro.getProperty("count");
		
		if(value==null)
			value = "0";//第一次使用时自定义值value为0
		int count = Integer.parseInt(value);

		if(count>=5)//判断条件
			System.out.println("您好,此软件的使用次数已到,请付钱购买正版!");
		pro.setProperty("count",++count+"");//新属性信息存入内存中
		
		Writer out = new FileWriter(file);

		pro.store(out,"");//内存中的信息写入文件汇总
	}
}

Runtime类

1.知识点

(1)所在位置:java.lang包

(2)意义:每一个Java应用程序都有一个Runtime类实例,使应用程序能够与其运行的系统环境相连接

(3)没有构造函数,不过可以通过getRuntime()方法获得该类的实例。单利设计模式

2.方法摘要

方法摘要
static RuntimegetRuntime() 
          返回与当前 Java 应用程序相关的运行时对象。
 Processexec(String command) thorws IOException
          在单独的进程中执行指定的字符串命令。(exec是execute的简写,cmd是command的简写)(输入的字符串command地址未找到应用程序,会从系统环境变量指定位置接着找)(此command字符串可以用这样的“notepad.exe SystemDemo.java”方式,用相关程序打开某个具体文件 )
 voidhalt(int status) 
          强行终止目前正在运行的 Java 虚拟机。
intavailableProcessors() 
          向 Java 虚拟机返回可用处理器的数目。
longfreeMemory() 
          返回 Java 虚拟机中的空闲内存量。
 longtotalMemory() 
          返回 Java 虚拟机中的内存总量。
 longmaxMemory() 
          返回 Java 虚拟机试图使用的最大内存量。

Process类

1.知识点

(1)所在位置:java.lang包

(2)注意:此类是一个抽象类,并且全部方法都是抽象的,可是你发现它没有子类。因为应用程序一执行就会产生进程,是调用系统的底层资源来创建的进程。所以定义抽象类,没有定义子类实现方式,底层在做实现方式,不需要用户做。

2.方法摘要

abstract  voiddestroy() 
          杀掉子进程。

Date类

1.知识点

(1)所在位置:java.util包

(2)意义:由于日期是一个复杂的事物,封装为一个对象处理起来较为简单,所以Date类就出现了

(3)注意:该类中大量方法已过时,已被SimpleDateFormat与Calendar中的方法替代

2.方法摘要

构造方法摘要
Date() 
          分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
Date(long date) 
          分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。

方法摘要
 booleanafter(Date when) 
          测试此日期是否在指定日期之后。
 booleanbefore(Date when) 
          测试此日期是否在指定日期之前。
 intcompareTo(Date anotherDate) 
          比较两个日期的顺序。
 booleanequals(Object obj) 
          比较两个日期的相等性。
 StringtoString() 
          把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。

SimpleDateFormat类

1.知识点

(1)所在位置:java.text包中DateFormat抽象类的子类

(2)意义:主要是对给定时间返回对应的字符串表达形式

(2)模式对照表(模式使用范例:”yyyy年MM月dd日“ 输出的字符串格式为"xxxx年xx月xx日"

字母日期或时间元素表示示例
GEra 标志符TextAD
yYear199696
M年中的月份MonthJulyJul07
w年中的周数Number27
W月份中的周数Number2
D年中的天数Number189
d月份中的天数Number10
F月份中的星期Number2
E星期中的天数TextTuesdayTue
aAm/pm 标记TextPM
H一天中的小时数(0-23)Number0
k一天中的小时数(1-24)Number24
Kam/pm 中的小时数(0-11)Number0
ham/pm 中的小时数(1-12)Number12
m小时中的分钟数Number30
s分钟中的秒数Number55
S毫秒数Number978
z时区General time zonePacific Standard TimePSTGMT-08:00
Z时区RFC 822 time zone-0800

2.方法摘要

构造方法摘要
SimpleDateFormat() 
          用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat
SimpleDateFormat(String pattern) 
          用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat(传入的模式字符串请参考上边的模式表)

方法摘要
 Stringformat(Date date) 
          将一个 Date 格式化为日期/时间字符串。(此方法是继承自DateFormat抽象类)
 voidsetTimeZone(TimeZone zone) 
          为此 DateFormat 对象的日历设置时区。(可以通过修改时区对象来显示不同地区的时间)
 Dateparse(String source) 
          从给定字符串的开始解析文本,以生成一个日期。

Calendar抽象类

1.知识点

(1)所在位置:java.util包

(2)特点:能够获取具体的年、月、日、时间并对这些时间进行修改的类

2.方法摘要

字段摘要
static intDAY_OF_MONTH 
          get 和 set 的字段数字,指示一个月中的某天。
static intDAY_OF_WEEK 
          get 和 set 的字段数字,指示一个星期中的某天。(星期日对应的数字是1,外国星期日是一个星期的第一天,星期六对应的是7)
static intDAY_OF_WEEK_IN_MONTH 
          get 和 set 的字段数字,指示当前月中的第几个星期。
static intDAY_OF_YEAR 
          get 和 set 的字段数字,指示当前年中的天数。
static intHOUR_OF_DAY 
          get 和 set 的字段数字,指示一天中的小时。
static intMONTH 
          指示月份的 get 和 set 的字段数字。(计算机计算月份使用0开始的,是0-11)
static intWEEK_OF_MONTH 
          get 和 set 的字段数字,指示当前月中的星期数。
static intWEEK_OF_YEAR 
          get 和 set 的字段数字,指示当前年中的星期数。
static intYEAR 
          指示年的 get 和 set 的字段数字。
static intHOUR 
          get 和 set 的字段数字,指示上午或下午的小时。
static intHOUR_OF_DAY 
          get 和 set 的字段数字,指示一天中的小时。
static intMINUTE 
          get 和 set 的字段数字,指示一小时中的分钟。
static intSECOND 
          get 和 set 的字段数字,指示一分钟中的秒。
static intPM 
          指示从中午到午夜之前这段时间的 AM_PM 字段值。

方法摘要
 intget(int field) 
          返回给定日历字段的值。
 voidset(int field, int value) 
          将给定的日历字段设置为给定值。
 voidset(int year, int month, int date) 
          设置日历字段 YEARMONTH 和 DAY_OF_MONTH 的值。(修改时间为参数值,时间值为符合时间标准的值
 voidset(int year, int month, int date, int hourOfDay, int minute) 
          设置日历字段 YEARMONTHDAY_OF_MONTHHOUR_OF_DAY 和 MINUTE 的值。
 voidset(int year, int month, int date, int hourOfDay, int minute, int second) 
          设置字段 YEARMONTHDAY_OF_MONTHHOURMINUTE 和 SECOND 的值。
abstract  voidadd(int field, int amount) 
          根据日历的规则,为给定的日历字段添加或减去指定的时间量。(时间往后或往前推给定参数值,field为成员字段,amount为推移量)
static CalendargetInstance() 
          使用默认时区和语言环境获得一个日历。(返回的就是该类的子类GregorianCalendar对象)
static CalendargetInstance(TimeZone zone) 
          使用指定时区和默认语言环境获得一个日历。(可以根据传入时区对象的不同来获取不同地区的时间)
 DategetTime() 
          返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。
 longgetTimeInMillis() 
          返回此 Calendar 的时间值,以毫秒为单位。

3.代码演示

import java.util.*;
import java.text.*;

class java
{
	public static void main(String[] args){
		System.out.println(getDaysOfMonth(2011));//2011年2月有多少天?

		System.out.println(getTimeOfYes());
	}

	//获取任意年的2月有多少天
	public static int getDaysOfMonth(int year){
		Calendar c = Calendar.getInstance();
		//设置现在时间为 year年3月1日
		c.set(year,2,1);

		//日期天往前搓一天
		c.add(Calendar.DAY_OF_MONTH,-1);

		//获取天数
		return c.get(Calendar.DAY_OF_MONTH);
	}

	//获取昨天现在这个时刻
	public static String getTimeOfYes(){
		Calendar c = Calendar.getInstance();

		c.add(Calendar.DAY_OF_MONTH,-1);

		//设置日期的字符串自定义表现形式
		DateFormat df = new SimpleDateFormat("yyyy/MM/dd E hh:mm:ss a");

		//返回Calendar对应Date对象的指定字符串表现形式
		return df.format(c.getTime());
	}
}

Math类

1.知识点

style="line-height: 2;">(1)所在位置:java.lang包

(2)意义:是一个工具包,常用的数学方法与数值都存在这里面

2.方法摘要

字段摘要
static doubleE 
          比任何其他值都更接近 e(即自然对数的底数)的 double 值。
static doublePI 
          比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。

注:重载方法不再一一列出

方法摘要
static doubleabs(double a) 
          返回 double 值的绝对值。
static doubleceil(double a) 
          返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数。(可用来做四舍五入求整)
tatic doublefloor(double a) 
          返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。
static longround(double a) 
          返回最接近参数的 long(四舍五入)
static doublepow(double a, double b) 
          返回第一个参数的第二个参数次幂的值。(a为底数,b为指数,做幂运算)
static doublerandom() 
          返回带正号的 double 值,该值大于等于 0.0 且小于 1.0(重点方法,产生一个伪随机数)

Random类

1.知识点

(1)所在位置:java.util包

(2)意义:生成随机数的类

2.方法摘要

方法摘要
protected  intnext(int bits) 
          生成下一个伪随机数。
 doublenextDouble() 
          返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。
 intnextInt(int n) 
          返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。

Scanner类

位置:java.util包

作用:可以很方便的获取用户的键盘输入,Scanner是一个基于正则表达式的文本扫描器

构造方法摘要
Scanner(File source) 
          构造一个新的 Scanner,它生成的值是从指定文件扫描的。
Scanner(File source, String charsetName) 
          构造一个新的 Scanner,它生成的值是从指定文件扫描的。
Scanner(InputStream source) 
          构造一个新的 Scanner,它生成的值是从指定的输入流扫描的。
Scanner(InputStream source, String charsetName) 
          构造一个新的 Scanner,它生成的值是从指定的输入流扫描的。
Scanner(String source) 
          构造一个新的 Scanner,它生成的值是从指定字符串扫描的。
 
方法摘要
 booleanhasNext() 
          如果此扫描器的输入中有另一个标记,则返回 true。
 Stringnext() 
          查找并返回来自此扫描器的下一个完整标记。
ScanneruseDelimiter(Pattern pattern) 
          将此扫描器的分隔模式设置为指定模式。
 ScanneruseDelimiter(String pattern) 
          将此扫描器的分隔模式设置为从指定 String 构造的模式。
 booleanhasNextLine() 
          如果在此扫描器的输入中存在另一行,则返回 true。
 StringnextLine() 
          此扫描器执行当前行,并返回跳过的输入信息。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值