System类
System 类包含一些有用的类字段和方法。它不能被实例化(表示没有构造函数)。
类中的方法和属性都是静态的。
out:标准输出,默认是控制台。
in:标准输入,默认是键盘。
获取系统属性信息:
properties getProperties();
String setProperty(String key, String value)
设置指定键指示的系统属性,返回系统属性以前的值,如果没有以前的值,则返回 null。
system的改变标准输入或输出设备。
static void
setIn(InputStream in)
重新分配“标准”输入流。
static void setOut(PrintStream out)
重新分配“标准”输出流
//setIn()方法应该写在前面,在后面好像没用
System.setIn(new FileInputStream("d:\\3.txt"));
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in));
PrintStream ps = System.out;
String line =null;
while((line = br.readLine())!=null){
if(line.equals("over")){break;}
// System.out.println(line.toUpperCase());
ps.println(line);
}
Properties类
Properties是Hashtable的子类,是一个持久的属性集,可以使用Map的方法。属性的键和值都是字符串。
--1.1 getProperties(String
key)
--1.2 getProprtties(String )
--1.3
stringPropertyNames();返回键集Set<String>
--1.4 Object
setProperty(key,value);设置属性,调用了hashtable的put方法。
--1.5 void list(PrintWriter
out) 将属性列表输出到指定的输出流(比如配置文件)。
--1.6 void load(InputStream
inStream) ;将流中的数据加载中property中。
Runtime类
该类没有构造函数。每个应用程序都有个Runtime实例对象
说明不可以new对象,那么会直接想到该类中的方法都是静态是。
发现该类中还有非静态方法。
说明该类中肯定会提供了方法获取本类对象。而且该方法是静态的,
并且返回值类型是本类型,该方法是:getRuntime()。
由这个特点可以看出该类使用了单例设计模式。
常用方法:
Process exec(String command)
例子:
Runtime r =
Runtime.getRuntime();//不能new
Process p = r.exec("notepad.exe
day1802.java");
p.destroy();
void gc() 运行垃圾回收器。
1.Date类。--大部分方法过时。 *
使用DateFormat(抽象)的子类,simpleDateFormat格式化为想要的格式。
DateFormat抽象类:format(Date):将一个Date格式化为日期/时间的字符串。
Date d = new Date();
System.out.println(d);
//构造时即可传入模板
SimpleDateFormat sd = new SimpleDateFormat("yyyy.MM.ww:dd");
//用Format方法格式化Date对象
String time = sd.format(d);//返回String
System.out.println(time);
2.Calender类。取代Date的很多方法。
能返回本类对象 static Calendar getInstance()
void set(int year,
int month)
int get(int field);field: DAY_OF_YEAR
void set(int field, int value)
将给定的日历字段设置为给定值。
set方法
c.set(Calendar.YEAR,1988);
c.set(2014, 04, 23);
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH);
int day = c.get(Calendar.DAY_OF_MONTH);
int hour = c.get(Calendar.HOUR_OF_DAY);
int day1 = c.get(Calendar.DAY_OF_YEAR);
System.out.println(year+"年"+(month+1)+"月"+day+"日");//自己设置时间打印时不用加1
//2.3对时间进行增删(正负表示增和减)
c.add(Calendar.DAY_OF_MONTH, 1);//增一年
c.add(Calendar.DAY_OF_MONTH, -1);//减一年
两种方法的区别:SimpleDateFormat类好像还可以使用增减时间,并获取字段。
注意:0是一月。7是星期六
0是一月
练习:1.获取任意年的二月有多少天(get)
思路;三月减一天。
Math工具类类,方法都是静态。
常用方法:abs(a):绝对值
--1. static double ceil(double a)
,注意返回值是double.而且只有double类型数据用它。//天花板
--2. floor(double)同上。//地板
-- static long round(double a) :注意返回值 四舍五入 四舍五入 有两个方法
返回最接近参数的 long。
--3. static int round(float a)
返回最接近参数的 int。
--4.0 pow(double a, double b) pow(2,3) 2的3次方。
之所以double类型,是因为在写的时候可以写double,而int可以准成double
但是返回值类型double
--5.0 random() :0.0-1.0 包含0不包含1
0.04443583448134936
类 Random
nextInt(int n)//只有这一个可以使用参数n
练习:练习:给定一个小数,保留该小数的后两位。
double x = (double)(Math.round(d*100))/100;//round方法返回的是整数
System.out.println(x);