其他对象API

System类

API——— java.lang.System: 属性和行为都是静态的。

long currentTimeMillis(); // 返回当前时间毫秒值
//作用演示
long l1 =1335664696656l;//System.currentTimeMillis();

System.out.println(l1/1000/60/60/24);//1335664696656

//code..

long l2 =System.currentTimeMillis();

System.out.println(l2-l1);

//可以看你的程序从开始到结束用了多长时间。

exit(); // 退出虚拟机

System.out.println(System.getProperties("line.separator"));//获取指定键指示的系统属性。 操作系统的换行符。

Properties getProperties() ;// 获取当前系统的属性信息

Properties prop = System.getProperties(); //获取系统的属性信息,并将这些信息存储到Properties集合中。


//方法演示:
public static void demo_1(){
        //获取系统的属性信息,并存储到了Properties集合中。

        /*

         * properties集合中存储都是String类型的键和值。

         * 最好使用它自己的存储和取出的方法来完成元素的操作。

         */

        Properties prop =System.getProperties();

       

        Set<String>nameSet = prop.stringPropertyNames();

       

        for(String name : nameSet){
            String value = prop.getProperty(name);

           

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

        }

       

    }

System.setProperty("myclasspath","c:\myclass"); //给系统属性信息集添加具体的属性信息。这些信息是全局,其他程序都可以使用。

/*临时设置方式:运行jvm时,可以通过jvm的参数进行系统属性的临时设置,
可以在java命令的后面加入 –D<name>=<value> 用法:java –Dmyname=小明 类名。*/

String name = System.getProperty("os.name");	//获取指定属性的信息

想要知道该系统是否是该软件所支持的系统中的一个。

  Set<String> hs = new HashSet<String>();

  hs.add("Windows XP");

  hs.add("Windows 7");

  if(hs.contains(name))

  System.out.println("可以支持");

  else

  System.out.println("不支持");

Runtime类

API——— java.lang.Runtime: 类中没有构造方法,不能创建对象。

但是有非静态方法。说明该类中应该定义好了对象,并可以通过一个static方法获取这个对象。用这个对象来调用非静态方法。这个方法就是 static Runtime getRuntime();

这个Runtime其实使用单例设计模式进行设计。

  class RuntimeDemo {

    public static void main(String[] args) throws Exception {

      Runtime r = Runtime.getRuntime();

      Process p = r.exec("notepad.exe SystemDemo.java"); //运行指定的程序

      Thread.sleep(4000);

      p.destroy(); //杀掉进程   java只能杀掉自己开启的进程。

    }

Math类

API**——— java.util.Math**: 用于数学运算的工具类,属性和行为都是静态的。该类是final不允许继承。

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~1的伪随机数



public static void main(String[]args){

Random r=new Random();

for(int x=0;x<10;x++){

	//double d = Math.floor(Math.random()*10+1);

	//int d = (int)(Math.random()*10+1);

	int d=r.nextInt(10)+1;

	System.out.println(d);

}

}

Dath类(★★

API——— java.util.Date:日期类,月份从0—11;

/**
	这个要求大家必须会了

     * 日期对象和毫秒值之间的转换。

     * 毫秒值-->日期对象 :
     
     * 1,通过Date对象的构造方法 new Date(timeMillis);

     *  2,还可以通过setTime设置。

     *  因为可以通过Date对象的方法对该日期中的各个字段(年月日等)进行操作。

     * 日期对象-->毫秒值:

     * 2,getTime方法。

     * 因为可以通过具体的数值进行运算。
     */

    public static void methodDemo_1() {
        long time = System.currentTimeMillis();//

//      System.out.println(time);//1335671230671

        Date date = new Date();//将当前日期和时间封装成Date对象。

        System.out.println(date);//Sun Apr 29 11:48:02 CST 2012

        Date date2 = new Date(1335664696656l);//将指定毫秒值封装成Date对象。

        System.out.println(date2);

    }

日期对象转成字符串

/**
     * 对日期对象进行格式化。

     * 将日期对象-->日期格式的字符串。

     * 使用的是DateFormat类中的format方法。

     */

    public static void methodDemo_2() {
       
        Date date = new Date();

        //获取日期格式对象。具体着默认的风格。 FULL LONG等可以指定风格。

        DateFormat dateFormat =DateFormat.getDateInstance(DateFormat.LONG);

        dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);

//      System.out.println(dateFormat);

        //如果风格是自定义的如何解决呢?

        dateFormat = new SimpleDateFormat("yyyy--MM--dd");
       
        String str_date = dateFormat.format(date);

        System.out.println(str_date);

    }

字符串转成日期对象

/**
     * 将日期格式的字符串-->日期对象。

     * 使用的是DateFormat类中的parse()方法。

     * @throws ParseException
     
     */

    public  static void methodDemo_3() throws ParseException {
       
        String str_date = "2012年4月19日";

        str_date = "2011---8---17";      

        DateFormat dateFormat =DateFormat.getDateInstance(DateFormat.LONG);

        dateFormat = new SimpleDateFormat("yyyy---MM---dd");

        Date date =dateFormat.parse(str_date);
        
        System.out.println(date);

    }

练习

/* 练习:

 * "2012-3-17"到"2012-4-6"  中间有多少天?

 * 思路:

 * 两个日期相减就哦了。

 * 咋减呢?

 * 必须要有两个可以进行减法运算的数。

 * 能减可以是毫秒值。如何获取毫秒值?通过date对象。

 * 如何获取date对象呢?可以将字符串转成date对象。


 * 1,将日期格式的字符串转成Date对象。

 * 2,将Date对象转成毫秒值。

 * 3,相减,在变成天数

 */

 

public class DateTest {

    /**

     * @param args

     * @throws ParseException

     */

    public static void main(String[] args) throws ParseException {

        String str_date1 = "2012-3-17";

        String str_date2 = "2012-4-18";

        test(str_date1,str_date2);

    }

 

    public static void test(Stringstr_date1,String str_date2) throws ParseException {

        //1,将日期字符串转成日期对象。

        //定义日期格式对象。

        DateFormat dateFormat =DateFormat.getDateInstance();

        dateFormat = new SimpleDateFormat("yyyy-MM-dd");

        Date date1 =dateFormat.parse(str_date1);

        Date date2 =dateFormat.parse(str_date2);

        long time1 = date1.getTime();

        long time2 = date2.getTime();

        long time = Math.abs(time1-time2);

        int day = getDay(time);

        System.out.println(day);

    }

    private static int getDay(long time) {

        int day = (int)(time/1000/60/60/24);

        return day;

    }

Calendar类

   public static void method() {
        Calendar c = Calendar.getInstance();

        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH) + 1;//0-11
        String days = getNum(c.get(Calendar.DAY_OF_MONTH));
        int week = c.get(Calendar.DAY_OF_WEEK);
        System.out.println(year+ "年" + month+ "月"+days+"日" + getWeek(week));

    }

    public static String getNum(int num) {
        return num > 9 ? String.valueOf(num) : "0" + num;

    }

    public static String getWeek(int index) {
/*

    查表法:建立数据的对应关系.

    最好:数据个数是确定的,而且有对应关系。如果对应关系的一方,是数字,而且可以作为角标,那么可以通过数组来作为表。
s
    */

        String[] weeks = {"", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};//国外的第一天是星期日

        return weeks[index];

    }

练习

/*面试题,任何一年中的2月有多少天,这就是Calendar中set()和add,方法的使用,
那我就设置3月一号,然后设置偏移量也就是减一,那就是二月的最后一天*/

public class Demo {
    public static void main(String[] args) {

        Calendar c =Calendar.getInstance();

        int year = 2012;

        showDays(year);

    }

    public static void showDays(int year) {

        Calendar c = Calendar.getInstance();

        c.set(year, 2, 1); //月份0-11

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

        showDate(c);

    }

    private static void showDate(Calendar c) {
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH) + 1;
        int days = c.get(Calendar.DAY_OF_MONTH);
        System.out.println(year+ "年" + month+ "月"+days+"日");

    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值