zoukankan      html  css  js  c++  java
  • 常用工具类1

    1. Runtime类的使用

    例1. 内存管理示例程序。

    package util;
    
    public class demoMemory {
    
        public static void main(String[] args) {
            try {
                Runtime runObj = Runtime.getRuntime();
                System.out.println("虚拟机可用存储空间:"+runObj.totalMemory());
                System.out.println("申请空间之前剩余空间:"+runObj.freeMemory());
                Integer buf[]=new Integer[10240];
                System.out.println("申请空间后剩余空间:"+runObj.freeMemory());
                //启动垃圾回收线程
                runObj.gc();
                Thread.sleep(1000);
                System.out.println("启动垃圾收集机制后剩余空间:"+runObj.freeMemory());
                System.out.println("======为对象分配值,重复上述操作======");
                for(int i=0;i<10240;i++)
                    buf[i]=i+1;
                Thread.sleep(1000);
                System.out.println("对象赋值后剩余空间:"+runObj.freeMemory());
                runObj.gc();
                Thread.sleep(1000);
                System.out.println("启动垃圾回收机制后剩余空间:"+runObj.freeMemory());
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            
    
        }
    
    }

    程序运行结果如下:

    虚拟机可用存储空间:5177344
    申请空间之前剩余空间:4937392
    申请空间后剩余空间:4896416
    启动垃圾收集机制后剩余空间:4979744
    ======为对象分配值,重复上述操作======
    对象赋值后剩余空间:4822272
    启动垃圾回收机制后剩余空间:4812736

    2. 执行其他程序

    例2. 启动记事本。

    package util;
    
    import java.io.IOException;
    
    public class runNotepad {
    
        public static void main(String[] args) {
            Runtime runObj = Runtime.getRuntime();
            try {
                runObj.exec("notepad");
                
            } catch (IOException e) {
                System.out.println("无法启动记事本");
            }
    
        }
    
    }

    用记事本打开F:workspaceTestsrcutil下的runNotepad.java文件:

    package util;
    
    import java.io.IOException;
    
    public class runNotepad {
    
        public static void main(String[] args) {
            Runtime runObj = Runtime.getRuntime();
            try {
                String cmdarray[] = {"notepad","F:\workspace\Test\src\util\runNotepad.java"};
                runObj.exec(cmdarray);            
            } catch (IOException e) {
                System.out.println("无法启动记事本");
            }
    
        }
    
    }

    下面的程序会等记事本执行完毕后才结束:

    package util;
    
    import java.io.IOException;
    
    public class runNotepad {
    
        public static void main(String[] args) {
            Runtime runObj = Runtime.getRuntime();
            Process prc = null;
            try {
                String cmdarray[] = {"notepad","F:\workspace\Test\src\util\runNotepad.java"};
                prc = runObj.exec(cmdarray);
                prc.waitFor();
            } catch (IOException e) {
                System.out.println("无法启动记事本");
            } catch (InterruptedException e) {
                System.out.println("异常中断!");
            }
            System.out.println("记事本返回值为:"+prc.exitValue());
        }
    
    }

    程序运行结果:

    记事本返回值为:0

    3. 利用currentTimeMillis()记录程序执行的时间。——System类的使用
    例3. 计算程序运行时间。

    package util;
    
    public class elapsed {
    
        public static void main(String[] args) {
            try {
                long start = System.currentTimeMillis();
                System.out.println("程序开始执行......");
                Thread.sleep(1000);
                long end = System.currentTimeMillis();
                System.out.println("程序执行结束!");
                System.out.println("程序执行时间为:"+(end-start)+"毫秒");
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            
        }
    
    }

    程序运行结果为:

    程序开始执行......
    程序执行结束!
    程序执行时间为:1000毫秒

    4. exit()退出方法

    例4. 从子线程中退出虚拟机。

    package util;
    
    public class exitJVM extends Thread {
    
        public static void main(String[] args) {
            exitJVM tr = new exitJVM();
            tr.start();
            try {
                Thread.sleep(10000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("主线程结束!");
        }
        
        public void run(){
            System.out.println("这是在子线程中!");
            System.exit(0);
        }
    }

    程序运行结果如下:

    这是在子线程中!

    5. 获取和设置环境属性

    例5. 获取环境属性:

    package util;
    
    public class showProperties {
    
        public static void main(String[] args) {
            System.out.println("Java 运行环境版本:"+System.getProperty("java.version"));
    
        }
    
    }

    6. Date类的简单使用

    例6. 显示当前时间。

    package util;
    
    import java.util.Date;
    
    public class currentTime_1 {
    
        public static void main(String[] args) {
            Date date = new Date();
            System.out.println(date.getTime());
        }
    
    }

    程序运行结果:

    1422019278109

    7. 使用SimpleDateFormat格式化输出时间

    假如程序员希望定制日期数据的格式,比如“星期二-04月-09日-2013年”,这需要用到另外一个类:java.text.SimpleDateFormat,这个类是从抽象类java.text.DateFormat派生出来的。

    例7. 按照定制格式显示日期。

    package util;
    
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class currentTime_2 {
    
        public static void main(String[] args) {
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-EEEE");
            Date date = new Date();
            System.out.println(sdf.format(date));
        }
    
    }

    程序运行结果如下:

    2015-01-23-星期五

    例8. 按照定制格式显示日期。

    package util;
    
    import java.text.DateFormat;
    import java.util.Date;
    
    public class currenTime_3 {
    
        public static void main(String[] args) {
            Date date = new Date();
            DateFormat shortDateFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
            DateFormat longDateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
            DateFormat mediumDateFormat = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM);
            DateFormat fullDateFormat = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);
            System.out.println(shortDateFormat.format(date));
            System.out.println(mediumDateFormat.format(date));
            System.out.println(longDateFormat.format(date));
            System.out.println(fullDateFormat.format(date));
        }
    
    }

    程序运行结果如下:

    15-1-23 下午10:03
    2015-1-23 22:03:45
    2015年1月23日 下午10时03分45秒
    2015年1月23日 星期五 下午10时03分45秒 CST

    例9. 从文本串创建日期对象。

    package util;
    
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    public class textToTime {
    
        public static void main(String[] args) {
            SimpleDateFormat sdf = new SimpleDateFormat("MM-dd-yyyy");
            String s = "01-23-2015";
            try {
                Date date = sdf.parse(s);
                System.out.println(date.getTime());
            } catch (ParseException e) {
                e.printStackTrace();
            }
            
        }
    
    }

    程序运行结果如下:

    1421942400000

    这个数的末尾全是0,是因为时间字符串中没有指定时、分、秒。

    8. Calendar类的特色

    例10. 用Calendar显示当前的日期和时间。

    package util;
    
    import java.util.Calendar;
    
    public class DateAndTime {
        //星期要转换成汉语显示,数字1表示星期日
        static final char days[] = {' ','日','一','二','三','四','五','六'};
        public static void main(String[] args) {
            Calendar cal = Calendar.getInstance();
            int year = cal.get(Calendar.YEAR);
            int month = cal.get(Calendar.MONTH)+1;
            int date = cal.get(Calendar.DATE);
            int day = cal.get(Calendar.DAY_OF_WEEK);
            int hour = cal.get(Calendar.HOUR_OF_DAY);
            int min = cal.get(Calendar.MINUTE);
            int sec = cal.get(Calendar.SECOND);
            System.out.println("今天是:"+year+"年"+month+"月"+date+"号"+"  星期"+days[day]);
            System.out.println("现在的时间是: "+hour+":"+min+":"+sec);
        }
    
    }

    程序运行结果如下:

    今天是:2015年1月24号  星期六
    现在的时间是: 11:10:22

    9. 利用GregorianCalendar输出日历

    例11. 用GregorianCalendar实现一个万年历。

    package util;
    import java.util.*;
    public class showCalendar {
        //用来显示日历头
        static final String head[] = {"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
        public static void main(String[] args) {
            Scanner in = new Scanner(System.in);
            int i;
            System.out.println("请输入年份:");
            int year = in.nextInt();
            System.out.println("请输入月份: ");
            int month = in.nextInt()-1;  //GregorianCalendar的第一个月是0,和人的理解不同
            in.close();
            //以指定的年、月、该月的第一天来创建对象
            GregorianCalendar cal = new GregorianCalendar(year,month,1);
            //获取这个月的天数
            int totalDays = cal.getActualMaximum(Calendar.DAY_OF_MONTH);
            //获取这个月的第一天是星期几
            int startDay = cal.get(Calendar.DAY_OF_WEEK)-1;
            //输出日历头部,每一个输出项占8个字符宽度
            for(i=0;i<head.length;i++)
                System.out.print(head[i]+"   ");
            System.out.println();
            //输出第一天之前的空格,每个输出项占8个空格
            for(i=0;i<startDay;i++)
                System.out.print("        ");
            //依次输出每一天,每一个输出项占8个字符宽度
            for(int day =1;day<=totalDays;day++){
                System.out.printf("   %2d   ",day);
                i++;
                if(i==7){
                    System.out.println();
                    i=0;
                }
            }
    
        }
    
    }

    程序运行结果如下:

    请输入年份:
    2015
    请输入月份: 
    2
    星期日   星期一   星期二   星期三   星期四   星期五   星期六   
        1       2       3       4       5       6       7   
        8       9      10      11      12      13      14   
       15      16      17      18      19      20      21   
       22      23      24      25      26      27      28   
  • 相关阅读:
    MQ怎么解决消息堆积的问题
    怎么解决Mysql的超大分页
    微信小程序开发入门 —— 认识微信小程序
    C++中strcpy()函数和strcpy_s()函数的使用及注意事项
    UML免费建模工具
    UML 各种图总结精华
    TIFF 文件格式
    LIBTIFF+VS15+WIN10编译
    LIBTIFF VS2013下编译LIBTIFF4.0.9
    Qt 多线程之QtConcurrent::map(处理序列容器)
  • 原文地址:https://www.cnblogs.com/gaopeng527/p/4245167.html
Copyright © 2011-2022 走看看