------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组历程的能力,而又无需访问源码,或理解内部工作机制的细节。
一 System;
1 概述
System 类包含一些与系统相关的类字段和方法。它不能被实例化,类中所有属性和方法都是static,可直接被System调用。
2 常用方法:
static void exit(int status) 终止虚拟机的运行.对于发生了异常情况而想终止虚拟机的运行,传递一个非0数值,对于正常情况下退出系统传递0值;
该方法实际调用的是Runtime.getRuntime().exit(int status);
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 数组拷贝
static long currentTimeMillis() 返回以毫秒为单位的当前时间。
String getenv(String name) 获得指定的环境变量;
static void gc() 运行垃圾回收器。
实际上调用了 Runtime中的gc()方法;
Runtime.getRuntime().exec("notepad ");
static Properties getProperties() 取得当前的系统属性。
static String getProperty(String key) 取得指定键指示的系统属性。
static String getProperty(String key, String def) 获取用指定键描述的系统属性,def表示默认信息。
Example:
import java.util.*;
class SystemDemo2
{
public static void main(String[] args)
{
Properties prop=System.getProperties();//获取系统属性。
System.out.println(prop);
String value=System.getProperty("os.name");//获取指定键值的属性。
System.out.println(value);
}
}
二 Runtime:
1 概述
Runtime类:类中没有构造方法,不能创建对象。
但是有非静态方法。说明该类中应该定义好了对象,并可以通过一个static方法获取这个对象。
1、每个java应用程序都有一个Runtime类实例,使用应用程序能与其中运行的环境相连接,应用程序不能创建自己的Runtime类的实例,是由系统底层自己创建的。
2、该类中并没有提供构造函数。说明不可以new对象。那么会直接想到该类中的方法都是静态的。查阅API文档发现,该类中还有非静态方法。说明该类肯定会提供了方法获取本来对象。而且该方法是静态的,并返回值类型是本来类型。
3、可以看出该这个Runtime其实使用单例设计模式进行设计的。
2 常用方法
static Runtime getRuntime();//获取本类对象。
Process exec(String command);//在单独的进程中执行指定字符串命令。
void destroy();//在Process中有一个杀掉子进程的方法,可将exec方法开启的进程结束。
Example:
class RuntimeDemo
{
public static void main(String[] args)throws Exception
{
Runtime r=Runtime.getRuntime();//获取Runtime本类对象。
//执行QQ音乐程序。
Process p=r.exec("C:\\Program Files (x86)\\Tencent\\QQMusic\\1144.2015.1.23.19.0.41\\QQMusic.exe");
Thread.sleep(2000);
p.destroy();//杀掉进程。
System.out.println("Hello world!");
}
}
三 Math和Random
1 概述
Math类:
java.lang.Math类中包含基本的数字操作,如指数、对数、平方根和三角函数。
java.math是一个包,提供用于执行任意精度整数(BigInteger)算法和任意精度小数(BigDecimal)算法的类。
java.lang.Math类中包含E和PI两个静态常量,以及进行科学计算的类(static)方法,可以直接通过类名调用。
public static final Double E = 2.7182818284590452354
public static final Double PI = 3.14159265358979323846
2 方法
static double ceil(double a) ; //返回大于指定数值的最小整数
static double floor(double a) ; //返回小于指定数值的最大整数
static long round(double a) ; //四舍五入成整数
static double pow(double a, double b) ; //a的b次幂
static double random(); //返回0.0~1.0的伪随机数
3 Random
这是java.util包中的一个单独的类,该类对象用于获取随机数。与Math中的random方法是一样的,不过这个类有自身的方法,可以将相应的随机数强转为指定基本数据类型。
如:intnextInt(int n);//返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int值。
Example:
import java.util.Random;
class MathAndRandomDemo
{
public static void main(String[] args)
{
double x=15.23;
double a=Math.ceil(x);//返回大于指定数值的最小整数。
double b=Math.floor(x);//返回小于指定数值的最大整数。
long c=Math.round(x);//四舍五入。
double d=Math.pow(a,2);//a的2次幂。
int e=(int)Math.floor(Math.random()*10+1);//返回0~10之间的伪随机数。
Random r=new Random();
int f=r.nextInt(10)+1;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
}
}
四 Date
1概述
Date:日期类,处理日期,时间。
大部分的方法已过时,不推荐使用,但是你使用过时的方法也不会报错。
日期对象和毫秒值之间的转换。
1,日期对象转成毫秒值。Date类中的getTime方法。
2,如何将获取到的毫秒值转成具体的日期呢?
Date类中的setTime方法。也可以通过构造函数。
//日期对象转成毫秒值
Date d = new Date();
long time1 = d.getTime();
long time2 = System.currentTimeMillis(); / /毫秒值。
//毫秒值转成具体的日期
long time = 1322709921312l;
Date d = new Date();
d.setTime(time);
Example:
import java.util.*;
class DateDemo5
{
public static void main(String[] args)
{
long time=System.currentTimeMillis();
Date d=new Date();
d.setTime(time);//毫秒值转换成日期对象。
System.out.println(d);
Date f=new Date();
long g=f.getTime();//日期对象转换成毫秒值。
System.out.println(g);
}
}
2 java.text.SimpleDateFormat
SimpleDateFormat 是一个与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。
SimpleDateFormat(String pattern) 用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
public final String format(Date date)将一个 Date 格式化为日期/时间字符串。
public Date parse(String source) throws ParseException:把字符串source表示的时间按source的格式转成Date对象。
将日期字符串转换成日期对象:使用的就是DateFormat方法中的 Date parse(String source) ;
public static void method() throws Exception {
String str_time = "2011/10/25";
DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); //SimpleDateFormat作为可以指定用户自定义的格式来完成格式化。
Date d = df.parse(str_time);
}
如果不需要使用特定的格式化风格,完全可以使用DateFormat类中的静态工厂方法获取具体的已经封装好风格的对象。getDateInstance();getDateTimeInstance();
Date d = new Date();
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG);
df = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
String str_time = df.format(d);
//将日期对象转换成字符串的方式:DateFormat类中的format方法。
//创建日期格式对象。
DateFormat df = new SimpleDateFormat(); //该对象的建立内部会封装一个默认的日期格式。11-12-1 下午1:48
//如果想要自定义日期格式的话。可使用SimpleDateFormat的构造函数。将具体的格式作为参数传入到构造函数中。如何表示日期中年的部分呢?可以必须要参与格式对象文档。
df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
//调用DateFormat中的format方法。对已有的日期对象进行格式化。
String str_time = df.format(d);
Example:
import java.text.*;
import java.util.*;
class SimpleDateFormatDemo
{
public static void main(String[] args)throws ParseException
{
String str="2015/3/9";//日期字符串。
Date d=new Date();
DateFormat df=new SimpleDateFormat("yyyy/MM/dd");//定义自己的日期格式。
d=df.parse(str);//将字符串转成日期对象。
DateFormat df2=new SimpleDateFormat("yyyy-MM-dd");
String str2=df2.format(d);//调用DateFormat中的format()方法将日期对象转成字符串形式。
System.out.println(d);
System.out.println(str2);
}
}
五 Calendar:
1 概述
1.Calendar是一个抽象类,不能实例化,通过static Calendar getInstance() 获得一个Calendar对象。
int get(int field):返回指定日历字段值
2.静态常量:
YEAR 表示年的字段数字。
MONTH 表示月份字段数字,月份范围是[0,11]。
DATE 表示一个月中的某天。
DAY_OF_MONTH 表示一个月中的某天。
DAY_OF_WEEK 表示一个星期中的某天。
HOUR_OF_DAY / HOUR 表示第几小时
MINUTE 表示第几分钟
SECOND 表示第几秒
2 常用方法
1)获取年份:Calendar.YEAR
2)获取月份:Calendar.MONTH
3)获取日期:Calendar.DAY_OF_MONTH
4)获取星期:Calendar.DAY_OF_WEEK
5)获取小时:Calendar.HOUR_OF_DAY
6)获取分钟:Calendar.MINUTE
7)获取秒数:Calendar.SECOND
Date getTime() 返回一个表示此 Calendar 时间值的 Date 对象。
void set(int year, int month, int date, int hour, int minute, int second) 设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。
abstract void add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量。
若 amount为负数,则减去一天,
若 amount为正数 ,则加上一天。
Example:
import java.util.*;
import java.text.*;
import java.io.*;
class CalendarDemo1
{
public static void main(String[] args)throws Exception
{
BufferedReader bufr=new BufferedReader(new InputStreamReader(System.in));//获取键盘录入。
String line=bufr.readLine();//读取
DateFormat df=new SimpleDateFormat("yyyy-MM-dd");//指定指定格式。
Date d=df.parse(line);//将日子字符串转成日期对象。
System.out.println(d);
Calendar c=Calendar.getInstance();
c.setTime(d);
System.out.println(c.get(Calendar.DAY_OF_YEAR));//获取一边中的第几天。
System.out.println(getWeek(c.get(Calendar.DAY_OF_WEEK)));//获取星期
}
public static String getWeek(int index)
{
String[] str={"","日","一","二","三","四","五","六"};
return str[index];
}
}