JAVA学生培训 下载本文

}catch(Exception e){//第一次有异常,正好设置COUNT值 settings.setProperty(\, String.valueOf(0)); }

settings.get(\);//从HASHTABLE读取的,返回的是OBJECT int c=Integer.parseInt(settings.getProperty(\))+1;//得到System.out.println(\运行次数是\+c);

//settings.put(\new Integer(c).toString());//将字符转换为settings.setProperty(\, new Integer(c).toString());//这个

的是字符串,转换为INT

整数,存储到文件中 方法更好

try{

settings.store(new FileOutputStream(\), \

run\);//保存到文件中 }catch(Exception e){ }

}

}

e.printStackTrace();

一般共享软件就是采用这种方法,这不过运行次数可能记录到注册表中了

System和Runtiome类:

JAVA不支持全局函数和变量,而是将一些与系统相关的函数和变量收集到system类中,其中的成员都是静态的,可以直接使用,如使用的输入输出。 System类:

---exit方法:退出系统的运行 ---currentTimeMIllis方法,返回自1970,1,1,o点0分0秒,以毫秒为单位,是一个LONG型,我们可以使用它检查一个程序运行的时间 如上面的程序我们可以加入

long starttime=System.currentTimeMillis(); ….

long endTime=System.currentTimeMillis() long totaltime=endtime-starttime;

import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.Properties; public class Properties_File {

public static void main(String[] args) {

Properties settings=new Properties(); long starttime=System.currentTimeMillis(); try{

settings.load(new FileInputStream(\));//从文件中读取运}catch(Exception e){//第一次有异常,正好设置COUNT值

行次数

}

settings.setProperty(\, String.valueOf(0));

settings.get(\);//从HASHTABLE读取的,返回的是OBJECT int c=Integer.parseInt(settings.getProperty(\))+1;//得到System.out.println(\运行次数是\+c);

//settings.put(\new Integer(c).toString());//将字符转换为settings.setProperty(\, new Integer(c).toString());//这个

的是字符串,转换为INT

整数,存储到文件中 方法更好

try{

settings.store(new FileOutputStream(\), \

run\);//保存到文件中 }catch(Exception e){ }

}

}

long endtime=System.currentTimeMillis(); long totaltime=endtime-starttime; System.out.println(totaltime);

e.printStackTrace();

---JAVA虚拟机的系统属性,如何为其增加新的系统属性? 在dos下输入java就可以显示系统属性

getProperties和getProperties可以获得java虚拟机的属性

import java.util.Enumeration; import java.util.Properties;

public class Test_java_properties {

public static void main(String[] args) {

//System.setProperty(key, value)可以设置新建的属性和值 Properties sp=System.getProperties();//取出系统属性

Enumeration e=sp.propertyNames();//得到系统属性中的所有属性的名称,

Enumeration用于表示集合中元素的一种抽象机制 while(e.hasMoreElements()){

String key=(String)e.nextElement();

System.out.println(key+\+sp.getProperty(key));//sp.getProperty(

key)得到返回值 } }

}

runtime类:封装了JAVA命令本身启动的进程,即JAVA虚拟机,一个JAVA虚拟机对应一个RUNTIME进程,RUNTIME方法和SYSTEM很相近,不能通过NEW来创建RUNTIME,只能使用其中的静态方法

编程:在JAVA程序中启动一个windows记事本程序的运行实例,并在该运行实例中打开这个JAVA程序的源文件,启动记事本程序5秒中后关闭

import java.util.Enumeration; import java.util.Properties;

public class Test_java_properties {

public static void main(String[] args) {

//System.setProperty(key, value)可以设置新建的属性和值 Properties sp=System.getProperties();//取出系统属性

Enumeration e=sp.propertyNames();//得到系统属性中的所有属性的名称,

Enumeration用于表示集合中元素的一种抽象机制 while(e.hasMoreElements()){

String key=(String)e.nextElement();

System.out.println(key+\+sp.getProperty(key));//sp.getProperty(

key)得到返回值 }

try{

Process p=null;//这个类代表JAVA虚拟机启动的子进程 p=Runtime.getRuntime().exec(\

D:/workspace/java_training/src/base_express/Test_java_properties.java\); }

}

//getRuntime获得实例对象,exec(执行程序 所要执行的文件),注意路径和Thread.sleep(5000);//睡眠5秒 p.destroy();//关闭进程 }catch(Exception e1){

e1.printStackTrace();}

windows的书写相反\\---/

16、与日前和时间有关的类

最常用的Date、DateFormat和Calender

Date类用于表示日前和时间,不带参数的构造函数以当前时间来初始化,由于其没有考虑国际化,所以设计了两个新类DateFormat和Calender,其中Calender主要完成日前字段之间的相互操作,ADD方法可以增加天、年、小时,GET方法获取时间值,SET可以修改值,该类是一个抽象基类,需要通过GETINSTANCE静态方法来返回一个Calender类型,GREGORIANCALENDAR是Calender的唯一子类,GETINSTANCE返回的实际上就是GREGORIANCALENDAR类型 编程:计算距现在315时间的

import java.util.Calendar; public class Test_Calendar {

public static void main(String[] args) {

Calendar cl= Calendar.getInstance();//产生GREGORIANCALENDAR实例

对象

}

}

System.out.println(cl.get(Calendar.YEAR)+\+

cl.get(cl.MONTH)+\+ cl.get(cl.DAY_OF_MONTH)+\+ cl.get(cl.HOUR)+\+ cl.get(cl.SECOND)+\);

//静态成员的调用两种方法Calendar.YEAR、cl.MONTH cl.add(cl.DAY_OF_YEAR, 315);

System.out.println(cl.get(Calendar.YEAR)+\+

cl.get(cl.MONTH)+\+ cl.get(cl.DAY_OF_MONTH)+\+ cl.get(cl.HOUR)+\+ cl.get(cl.SECOND)+\);

Date类:

虽然Clendar几乎可以完全替代date类,但还有些地方要用DATE类,如程序中的参数就是Date类的话。java.text.DateFormat可以将一个DATE类中的日前用指定的格式输出,或将一种特定格式的日前字符串转换成一个DATE的实例对象,DateFormat是一个抽象类,完成具体任务时候,需要用其子类,java.text.SimpleDateFormat就是其子类,用于把DATE对象中的日前格式化本地字符串,或者是通过语义分析,将日前或时间特殊格式的字符串转换为日前对象,实际上就相当于定义了一个日前格式的表现模式 编程:2002-03-15转换为2002年3月15日

import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class Test_Calendar {

public static void main(String[] args) {

Calendar cl= Calendar.getInstance();//产生GREGORIANCALENDAR实例System.out.println(cl.get(Calendar.YEAR)+\+

cl.get(cl.MONTH)+\+ cl.get(cl.DAY_OF_MONTH)+\+ cl.get(cl.HOUR)+\+ cl.get(cl.SECOND)+\);

对象

//静态成员的调用两种方法Calendar.YEAR、cl.MONTH cl.add(cl.DAY_OF_YEAR, 315);

System.out.println(cl.get(Calendar.YEAR)+\+

cl.get(cl.MONTH)+\+ cl.get(cl.DAY_OF_MONTH)+\+ cl.get(cl.HOUR)+\+ cl.get(cl.SECOND)+\);

//=====

SimpleDateFormat sdf1=new SimpleDateFormat(\);//参数

指明了转换的格式,可以参考JDK帮助,模式字符串