黑马程序员_【总结】_集合框架知识梳理4_(end)

来源:互联网 发布:论坛优化方案 编辑:程序博客网 时间:2024/05/16 05:03
集合框架知识梳理4


---------- android培训 、java培训、期待与您交流! ---------- 

---------------------------------------------------------------------------------------------------------------------------------------------

几个常用类
-----------------------------
1、System 类中的方法和属性都是静态的。
System.in 标准输入默认键盘--System.out标准输出默认控制台
2、获取系统属性信息:Properties getProperties();  【重点】
3、Properties 是Hashtable的子类,也就是Map集合的一个子类对象。
4、Runtime  该类没有构造函数,属于单列模式,《保证对象的唯一》
Runtime r = Runtime.getRuntime();
r.exec(String);可以启动应用程序
r.exec(程序 对应文件);
5、Date  -    SimpleDateFormat 
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  hh:mm:ss");
String time = sdf.format(d);
6、Calendar 类可以获取系统的配置信息。
7、重点掌握,c.add(Calendar.YEAR,4); //给年加4年。 加减亦可。
    c.add(Calendar.MONTH,10); 
//加月的时候,故意放一个大数字,发现自动相加到下一年了。
8、Math.random() 生成随机数。
---------------------------------------------------------------


【12】
System
获取系统所有信息:string PropertyNames()
获取系统指定信息:String alue = System.getProperty("os.name");
设置 自定的兼职进系统信息。
System.setProperty("myKey","myValue");
动态加入值,Java -Dkey = value类名
System:  类中的方法和属性都是静态的。
out   :  标准输出,默认是控制台
in    :  标准是输入,默认是键盘


获取系统属性信息:Properties getProperties();  【重点】


查看API的时候
当一个类没有构造函数的时候,说明该类不能直接创建实例,通常只有静态方法。
class SystemDemo1 {public static void main(String[] args) {Properties prop = System.getProperties();//因为Properties 是Hashtable的子类,也就是Map集合的一个子类对象。//那么可以用过map 的方法取出该集合中的元素。// 该集合中存储的 都是字符串,没有泛型定义。//如何在系统中,自定义一些特有信息呢?System.setProperty("mykey","myvalue");//获取指定系统信息String value = System.getProperty("os.name");System.out.println("value:"+value);//可不可以在jvm启动时,动态加载一些属性信息呢?String v = System.getProperty("haha");System.out.println("v:"+v);//java -Dhaha=qq SystemDemo1    在CMD中运行 ,即可给v赋值。//获取所有系统信息。//for(Object obj : prop.keySet()){//System.out.println(obj);  //obj 就是键//String value = (String)prop.get(obj);// get 键,获取alue//System.out.println(obj+"::::"+value);//}}}
【13】
Runtime   单列设计模式(不能new对象)
该对象 常用 于启动,和结束指定进程
Runtime r = Runtime.getRuntime();
r.exec(String);可以启动应用程序
r.exec(程序 对应文件);

该类中并没有提供构造函数
说明不可以new对象,那么会直接想到,该类中的方法都是静态的
发现该类中还有非静态的方法
说明该类肯定提供了方法获取本来对象,而且该方法是警惕的,
并且返回值是本类类型。             (单列模式有木有。)

由这个特点,可以看出该类使用了单列设计模式完成《保证对象的唯一》

该方法是Static Runtime getRuntime()
class  RuntimeDemo2{public static void main(String[] args) throws Exception{Runtime r = Runtime.getRuntime();//r.exec("D:\\Tool2\\QQ2014\\QQProtect\\Bin\\QQProtect.exe");//r.exec("QQProtect.exe");  //没有配置环境变量,所以失败。Process p =r.exec("D:\\Tool2\\weiyundisk\\Bin\\wydrive.exe");  //process 返回一个进程//为了看到下面语句的作用,先来一个间歇时间Thread.sleep(5000);//5秒p.destroy();//杀掉进程。该方法只能杀掉他启动的线程。  //notepad  记事本     用记事本打开后面的文件。//扩展:如果把记事本 改为 播放器   是可以打开电影的。Process p2 =r.exec("notepad.exe  RuntimeDemo2.java");}}
演示 打开 微云 软件 然后 延迟5秒 又结束该进程
最后Process p2 =r.exec("notepad.exe  RuntimeDemo2.java");
打开 RuntimeDemo2.java  用notepad.exe 软件。
【14】
Date  :    日期。
SimpleDateFormat 在java.text 包中
Date d = new Date(); 这样的格式查看不方便。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  hh:mm:ss");
再调用String time = sdf.format(d);进行格式化。 的上上诉日期格式
class  DateDemo3{public static void main(String[] args) {Date d =new  Date();System.out.println(d);//打印的时间看不懂。 如何有格式的显示?//将模式封装到simpleDateformat对象中//SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日");/*yyyy年MM月dd日 hh:mm:ss//SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  hh:mm:ss");SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 E hh:mm:ss");//调用formation 方法让模式格式化指定对象String time = sdf.format(d);System.out.println("Time:"+time);}}
该类用来操作时间,可以通过上诉方式,获取指定格式的时间显示方式。
【15】
Calendar 
抽象类,不能直接创建对象,可以通过静态方法,得到一个当前的日期对象
Calendar c = Calender.getInstance();
int index1 = c.get(Calender.MONTH);
int index2 = c.get(Calender.DAY_OF_WEEK);

可以直接设置日期
c.set(2014,6,16);
可以对当前日期 进行仍以的前后加减
c.add(Calendar1YEAR,1);  //加一年。
class  CalendarDemo4{public static void main(String[] args) {Calendar c = Calendar.getInstance();//System.out.println("yeat !"+c);//打印c我们发现有很多信息,其中年是以键值对出现的,//那么。就能使用Map的方法获取//而YEAR这个字段必须指定所属。System.out.println("yeat !"+c.get(Calendar.YEAR));//打印一个年月日组合。//【a】使用查表法来指定月份。String [] mons = {"一月","二月","三月","四月",  "五月","六月","七月","八月",  "九月","十月","十一月","十二月"};int index = c.get(Calendar.MONTH);//【b】使用查表法来指定月份。 一定要注意这个七天的顺序:空天123String [] xing = {"","礼拜天","礼拜一","礼拜二","礼拜三","礼拜四","礼拜五","礼拜六"};int index2 = c.get(Calendar.DAY_OF_WEEK);sop(c.get(Calendar.YEAR)+"年");//sop(c.get(Calendar.MONTH)+"月");使用查表法后 同样的道理,星期也可以如此。sop(mons[index]);sop(c.get(Calendar.DAY_OF_MONTH)+"日");//sop("星期"+c.get(Calendar.DAY_OF_WEEK));  // 使用查表法。【b】sop(xing[index2]);//发现月数是当前月数-1  因为Java都是从0 开始//并且,数字显示月份效果不佳。下面继续【a】// 老方法获取年。//上面的例子SimpleDateFormat 格式化了年月日,后来加上了具体世间,还加了星期//那么我们只传入一个年,然后进行格式化,是否等得到年?Date d = new Date ();SimpleDateFormat sdf = new SimpleDateFormat("yyyy");String year = sdf.format(d);System.out.println("yeat !"+year);}public static void sop(Object obj){System.out.println(obj);}}
通过打印://System.out.println("yeat !"+c); 能够获取到系统的配对信息。
【重点:必须掌握】
Calendar    设定时间。
两个练习:
1、获取任一年的二月有多少天。
2、获取昨天的现在这个时刻。
class CalendarDemo5 {public static void main(String[] args) {Calendar c =Calendar.getInstance();//set 写一个年月日。然后打印。//c.set(2012,2,23);//设定时间//推迟时间,必须掌握。c.add(Calendar.YEAR,4); //给年加4年。 加减亦可。c.add(Calendar.MONTH,10); //加月的时候,故意放一个大数字,发现自动相加到下一年了。printlnCalendar(c);}// 上一Demo 中的方法。public static void printlnCalendar(Calendar c ) {//使用查表法来指定月份。 星期几String [] mons = {"一月","二月","三月","四月",  "五月","六月","七月","八月",  "九月","十月","十一月","十二月"};int index = c.get(Calendar.MONTH);String [] xing = {"","礼拜天","礼拜一","礼拜二","礼拜三",                 "礼拜四","礼拜五","礼拜六"};int index2 = c.get(Calendar.DAY_OF_WEEK);sop(c.get(Calendar.YEAR)+"年");//年sop(mons[index]);//月sop(c.get(Calendar.DAY_OF_MONTH)+"日");//日sop(xing[index2]);//礼拜几}public static void sop(Object obj){System.out.println(obj);}}
16】
Math.ceil()    :返回大于指定数据的最小整数
Math.floor()   :返回小于指定数据的最大整数
Math.round     :四舍五入。
Math.pow(2,3)  :计算次幂  2的3次幂
Math.random()  :生成随机数
练习:
给定一个小数,保留该小数的后两位。
class MathDemo7 {public static void main(String[] args) {double m = Math.ceil(12.34);//ceil 返回大于指定数据的最小整数double m1= Math.floor(12.34);//floor 返回小于指定数据的最大整数long l = Math.round(12.34);long l1 = Math.round(12.54);// round 四舍五入。sop(m);sop(m1);sop(l);sop(l1);double d2 = Math.pow(2,3);//  pow  计算次幂  2的3次幂sop(d2);//随机数sop("----------------------------");suiji();}  public static void suiji(){Random r = new Random();for(int i=0 ; i<150 ; i++){//double d = Math.random();//int d = (int)(Math.random()*89+10);int d=r.nextInt(899)+100;//直接生成**以内的数字。  sop(d);}}public static void sop(Object obj){System.out.println(obj);}}
Random r = new Random();
int d = (int)(Math.random()*89+10);
随机数的生成,非常的常用。





---------------------------------------------------------------------------------------------------------------------------------------------
---------- android培训、 java培训、期待与您交流!----------
黑马官网
0 0
原创粉丝点击