其他对象

 1 //java基础视频教程第18天-01-其他对象(System)
 2 /*
 3     这节课讲解了System中的一些方法,它中的方法全是静态的,重点讲解了System中的getProperties()方法
 4     getProperty()返回的是Properties类,Properties属于HashTable的子类,然而HashTable又属于Map接口,
 5     所以,可以用Map中的keySet,entrySet方法打印出Properties中的键值对,这些键值对就是系统的一些信息,
 6 
 7     然后就是获取单个系统信息
 8     System.getProperty(要获取的单个的键)
 9     然后自己设定一个系统信息
10     System.setProperty(key,value)
11     然后就是在java虚拟机启动时动态加载一些属性
12     java -D(name)=(value) 类名
13     
14 */
15 import java.util.*;
16 class SystemDemo
17 {
18     public static void main(String[] args) 
19     {
20         Properties p = System.getProperties();        //这就相当于一个Map集合   public static Properties getProperties()
21 
22         //获取单个系统信息
23         sop(System.getProperty("os.name"));  //返回系统名称 Winsdow71,用于安装软件时判断是那个系统  public static String getProperty(String key)
24         //自己设定一个个人的系统信息
25         sop(System.setProperty("nmlgb","我去年买了个表"));            //public static String setProperty(String key,String value)
26         //动态加载一些属性信息
27         //sop(System.getProperty("wcnm"));        //由于系统中没有wcnm这个属性,但是返回来的是一个null,又由于系统属性都会在java虚拟机开启时都会读取,所以我们可以再虚拟机中动态的加载一些属性信息
28                                                 //所以在我们用java这个命令的时候就是在开启虚拟机,开启时,我们就可以通过-D(name)=(value)来动态加载一些属性
29                                                 //例如:java -D(wcnm)=("哇哈哈") SystemDemo,这个主要在tamcat服务中药用到
30         //获取全部的系统信息
31         for(Object o:p.keySet())                    
32         {
33             String s =(String)o;            //明显这个地方有一些问题,因为没涉及到泛型就必须转型,如果这里使用到String的某些方法就必须转型,注意点!!!!!!!!
34             sop(s+"---"+p.get(s));            //打印出的一些列键值对就是当前系统的一些全面的描述,
35         }
36 
37     }
38     public static void sop(Object o)
39     {
40         System.out.println(o);
41     }
42 }
 1 //java基础视频教程第18天-02-其他对象(Runtime)
 2 /*
 3     本节课主要讲了Runtime中的exec方法public Process exec(String command)
 4                                                     throws IOException
 5     Runtime这个类没有构造方法,不能new对象,(为啥子??),并且它的方法中只提供了一个静态方法getRuntime,返回值就是本生Runtime,而其他的方法都是非静态的
 6     所以这里应该想到单例设计模式
 7     exec是execute(执行)的缩写,传递的参数可以是一个可执行文件,返回的是一个进程,由于传递的参数是一个可执行文件,
 8     这个文件可能会找不到,所以会出异常,所以要抛异常         
 9 */
10 class RunTimeDemo
11 {
12     public static void main(String[] args) throws Exception            //exec()方法要抛异常,因为它中的参数位置不一定正确,不正确时就要抛异常,一般抛的是IO异常,但这里为了不导入IO包就直接抛Excption异常
13     {
14         Runtime r = Runtime.getRuntime();        //这里用了单例设计模式,返回一个Runtime类型,Runtime类型里面有很多方法都是非静态的
15         Process p = r.exec("D:\\Program Files (x86)\\Shark\\Shark.exe");    //中间的每个\都要被转移,否则出错    exec作用就是执行某个可以执行文件
16         //exec()方法返回的是一个进程Process,进程中也有很多方法,其中一个就是杀掉进程destroy
17         Thread.sleep(10000);        //让这个进程谁10000毫秒
18         p.destroy();            //干掉这个进程
19 
20         //Runtime当中的方法不仅仅是执行一个程序,而且可以用某个软件打开某个文件
21         Process c = r.exec("D:\\Program Files (x86)\\DuoMi\\DuoMi.exe C:\\Users\\Administrator\\Desktop\\1.mp3");    //注意是空格哈,这个好好玩!!
22 
23 
24         
25     }
26 }
 1 //java基础视频教程第18天-03-其他对象(Date)
 2 /*
 3     这节课主要讲了Date类,Date类中只有两个现用的构造方法,其他的已经废弃
 4     但是Date对象打印出来的时间不便于观看,需要把时间格式化,就用到了Dateformat,而DateFormate类是抽象的,但它有一个子类SimpleDateFormat可以固定一个时间模板,
 5     而时间模板有个format可以将一个时间以模板形式的打印出来
 6 */
 7 import java.util.*;
 8 import java.text.*;        //由于类DateFormat以及子类SimpleDateFormat都是text里面的类,所以加载这个包
 9 class DateDemo
10 {
11     public static void main(String[] args) 
12     {
13         Date d = new Date();            //这样打印出来并不便于观看,为了便于观看,我们参见DateFormat,DateFormat是一个抽象的方法,它有一个子类SimpleDateFormat
14         sop(d);
15         SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 E HH:mm:ss");        //封装一个模板对象,这里的E走的是本地化星期
16         sop(sdf.format(d));                //SimpleDateFormat有个format方法public StringBuffer format(Date date, StringBuffer toAppendTo,FieldPosition pos)(后面两个参数有些不懂)
17         
18     }
19     public static void sop(Object o)
20     {
21         System.out.println(o); 
22     }
23 }
24  
 1 //java基础视频教程第18天-04-其他对象(Calendar)
 2 /*
 3     本节课主要讲解了Calender这个类中的getInstance()方法,get()方法,以及set()方法,add()方法
 4     注意一点Calendar获取的月份数字和星期天数字都要加1
 5 */
 6 import java.util.*;            //Date用到了这包
 7 import java.text.*;            //SimpleDateFormat用到这个包
 8 class CalendarDemo
 9 {
10     public static void main(String[] args) 
11     {
12         /*单独获取年份
13         Date d = new Date();
14         SimpleDateFormat sdf = new SimpleDateFormat("yyyy年");
15         sop(sdf.format(d));        //返回的是一个StringBuffer
16         */
17         //由于Date对象中的getYear()方法已经过时,但从JDK1.1之后就被Calendar代替了,这里有一个新的类Calendar,它当中有getInstance静态方法可以获取一个当地当时的Calendar信息
18         Calendar c = Calendar.getInstance();        //这个Calendar就像一个map集合,都有键值对对应,要想获取某个值,只需get(Calender.名称)即可
19         sop(c);
20         sop(c.get(Calendar.YEAR)+"年");        //要加上这个类的Calendar
21         sop(c.get(Calendar.MONTH)+1+"月");        //月份要加1,注意哈        //月份可以用查表发输出大写的月份
22         sop(c.get(Calendar.DAY_OF_MONTH)+"日");        //记住get返回的是一个int类型
23         sop("星期"+(c.get(Calendar.DAY_OF_WEEK)-1));        //星期几,这里的DAY_OF_WEEK是国外的说法,星期天就是1,星期一就是2,所以要减去1,星期天也可以用查表发
24 
25         String[] months = {"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};        //月份可以用查表发输出大写的月份
26         String[] weeks = {"","星期天","星期一","星期二","星期三","星期四","星期五","星期六"};        //前面加一个"",是因为2代表星期1,星期天也可以用查表发
27         sop(months[c.get(Calendar.MONTH)]);
28         sop(weeks[c.get(Calendar.DAY_OF_WEEK)]);
29     }
30     public static void sop(Object o)
31     {
32         System.out.println(o);
33     }
34 }
 1 //java基础视频教程第18天-04(1)-其他对象(Calendar)
 2 /*
 3     本章是上一章的延续,讲解了set,add那个方法,
 4     以及两道作业题目:
 5     计算任意年2月有多少天,(思路:先设置时间set(任一年,2,1)为3月1号,然后减去1天,就可以查看到当年二月有多少天)
 6     计算昨天的这个时候(思路:现获取现在这个时刻,然后减去24小时就是昨天现在这个时刻或者是今天减去1天)
 7     set方法有几种重写格式
 8 */
 9 import java.util.*;
10 import java.text.*;
11 class CalendarDemo1
12 {
13     public static void main(String[] args) 
14     {
15         Calendar c = Calendar.getInstance();
16         /*
17         c.set(2100,0,1);        //这里的0代表1月,记住月份需要加1
18         c.add(Calendar.YEAR,-1000);        //add方法用于改变时间的的,可以加可以减,年月日时分秒都可以改
19         sop(c);
20         sop(c.get(Calendar.YEAR));
21         */
22         //题目1(计算某年的二月有多少天)
23         getMonthNumber(c,2012);
24         //题目2(获取昨天的今天这个时候)
25         getYesterdayNow(c);
26     }
27     public static void sop(Object o)
28     {
29         System.out.println(o); 
30     }
31     public static void getMonthNumber(Calendar c,int year)
32     {
33         c.set(year,2,1);
34         c.add(Calendar.DAY_OF_MONTH,-1);
35         sop(c.get(Calendar.DAY_OF_MONTH));
36     }
37     public static void getYesterdayNow(Calendar c)
38     {
39         c.add(Calendar.DAY_OF_MONTH,-1);
40         String time = c.get(Calendar.YEAR)+"-"+c.get(Calendar.MONTH)+"-"+c.get(Calendar.DAY_OF_MONTH)+" "+c.get(Calendar.HOUR)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND);
41         sop(time);
42     }
43 }
 1 //java基础视频教程第18天-05-其他对象(Math-Random)
 2 /*
 3     本节课主要讲解java.lang包中的Math中的一些方法,这些方法都是静态的
 4     主要讲解了ceil,floor,round,pow,random
 5     public static double ceil(double a)
 6     public static double floor(double a)
 7     public static double pow(double a,double b)
 8     还有java.util包中的Rondom类中nextInt(int)方法
 9 
10 
11     练习:给定一个小数,保留该小数后两位
12 */
13 import java.util.*;
14 class MathDemo 
15 {
16     public static void main(String[] args) 
17     {
18         double a = Math.ceil(3.1415926);    //返回大于或等于参数的最小double整数
19         sop(a);
20         double b = Math.floor(3.1415926);    //返回小于或等于参数的最大double整数
21         sop(b);    
22         long c = Math.round(3.1415926);        //四舍五入,返回的是long类型
23         sop(c);
24         double d = Math.pow(2,3);            //返回2的3次方,返回的是一个double数
25         sop(d);
26 
27         for(int x=0;x<10;x++)
28         {
29             //System.out.println(Math.random());        //返回的是0-1之间的随机数,包含0,不包含1
30             int y = (int)(Math.random()*10+1);            //返回的是doble类型转换为int则就是整数,这里*10+1是为了取到0-10的整数
31             sop(y);
32         }
33 
34         //下面讲解了java.util包中的Random类中的nextInt(int n)
35         for(int z=0;z<10;z++)
36         {
37             Random r = new Random();    
38             sop(r.nextInt(10)+1);        //加1是为了取到10    
39         }
40         
41         getNumber(3.1);
42     }
43     //题目:给定一个小数保留该小数的后两位,此代码有BUG
44     public static void getNumber(double x)    
45     {
46         int y = (int)(x*100);
47         double z = (double)y/100;
48         sop(y);
49         sop(z);
50         
51     }
52     public static void sop(Object o)
53     {
54         System.out.println(o);
55     }
56 }

 

posted @ 2013-05-29 17:34  ysfox  阅读(124)  评论(0)    收藏  举报