黑马程序员——23, Properties,Runtime,Date类,Math类,

------<ahref="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

/*

Properties是Hashtable的子类,也是Map集合的子类,

其存储的是字符串,没有泛型定义。

Properties的作用是用来获取系统信息

*/

import  java.util.*;
class  Sys
{
         public   static  void   main(String[] args)
         {
                Properties   p=System.getProperties();
                   //获取所有属性信息
                   for(Object  obj:p.keySet())
                   //这里p.keySet()返回的是Object类型的对象
                   {
                     String  s   = (String)p.get(obj);
                     //提取键所对应的值,接着再强制转型
                     soc(obj+"---"+s);
                   }

                   //获取特定信息
                     String  uc= System.getProperty("user.country");
                     soc("user.country="+uc);
                    String   uc2=  System.getProperty("Tashi");
                    soc("Tashi="+uc2);//打印的是Tashi=null
                     /*
                     这里特别提示:
                     搜索系统信息里面没有对应值就会返回null,
                     但是,在DOS命令行中敲入javac编译命令后再准备敲入运行命令时,
                     可以这样写运行命令:Java  -DTashi=45  Sys
                     再按回车键,就可以看见打印的是Tashi=45
                     这种方式是在运行时候设置系统属性。
                     一般格式:  Java  -D<名称>=<值>   <运行文件名称>
                     */

        //设定系统信息
                     System.setProperty("的的的","意义");
                     String  uc3=  System.getProperty("的的的");
                     soc("的的的---"+uc3); 

         }
         public  static void  soc(Object  obj)
    {
             System.out.println(obj);
         }
}

——————分割线——————

/*

Runtime类的介绍:

Runtime类在Java.lang包中。

没有构造函数,所以外部不可以建立其对象,

该类中既有静态又有非静态方法。

本类中有提供方法获取本类对象而且该方法是静态,

返回类型是本类类型。

这也是单例设计模式。

每一个Java应用程序都有一个Runtime类的实例,使得应用程序与其运行环境连接。

应用程序不可以建立自己的Runtime类的实例。

进程就是程序执行的一个实例

*/

class  Sys2
{
         public   static  void   main(String[] args)throws  Exception
         {
                   Runtime  a=Runtime.getRuntime();//静态调用
                   //Runtime.getRuntime()返回的是当前应用程序的Runtime对象
              Process   p=   a.exec("E:\\MyEclipse\\MyEclipse10\\MyEclipse.exe");//此句编译运行成功
                   /*
                   //这里exec方法会抛出一个异常。
                   exec建立一个本机的进程还执行指定的可执行程序,
                   并且返回该子进程相对应的Process子类的实例。
                   实际上,Runtime.getRuntime().exec()就是用来在Java程序里运行外部程序。
                   p.destroy();//这句话是用来结束子进程的。
                   如果p.destroy();这句话存在的话,在编译运行时候由于主线程执行速度很快,
                   执行到这句话的时候,子线程刚刚建立好久结束了,所以我们表面上看是什么都没有显示,什么都没有打开。

                   */

       /*
                     //Process p2=a.exec("notepad.exe  Sys2.java");//此句编译运行成功
                   //用笔记本打开Sys2.java文件
                    我们可以利用这种方式打开某个文件,只需要前面加上相应的程序。
                    还有这句话为什么没有写路径呢?因为虚拟机会按照当初设定环境变
                    量时候的path路径去查找的,而在path路径找到notepad.exe
                    */

         /*
                   Process p3=a.exec("notepad.exe   Sys2.java  Je4.java");
                     这句话运行时候会弹出方框显示没有找到Sys2.java Je4.java文件,
                     并且询问是否建立新文件。
                     很显然这种写法就会让虚拟机把Sys2.java Je4.java当做是一个文件名。
          */                                                      

                      /*
                      //Process  p4=   a.exec("MyEclipse.exe");
                     这句话运行时候会出错,显示找不到系统文件,
                      因为虚拟机会按照当初设定环境变量时候的path路径去查找的,
                      而在path路径并没有找到MyEclipse.exe

                      */
                   System.out.println("HelloWorld!");
         }
}

——————分割线——————

/*

Date类的介绍:

此类也是定义在了Java.util包里面。

表示特定时间,精确到毫秒的。

*/

import java.util.*;
import java.text.*;
class  Sys3
{
         public   static  void  main(String[] args)
         {
                   Date  da=new Date();
                   soc(da);//这是可以直接打印出来的,但是格式看着不舒服
                   SimpleDateFormat    sim= new   SimpleDateFormat("yyyy年MM月dd日E  hh:mm:ss");
       /*
                    SimpleDateFormat类是定义在java.text包中的该类对象可以封装了日期模式,区分大小写。
                    其中,y表示年,M表示月,d表示日,E表示星期,h表示时,m表示分,s表示秒。
                    E已经包含了星期,所以括号里面没有写“星期”这两个字。
                   */
                   String   str       = sim.format(da);
                    //format方法返回的是String类型的被格式化之后的日期
                    soc(str);

         }
         public  static void  soc(Object  obj)
         {
              System.out.println(obj);
         }
}

——————分割线——————

/*

Calendar抽象类的应用:

该类定义在java.util包中,

其中文意思就是日历。

*/

import java.util.*;
class   Sys4
{
         public   static  void   main(String[] args)
         {

                   //练习1:获取任意年份的2月有多少天
                   int x=2015;
                   lx1(x);
                   //练习2:获取昨天现在的时刻
                      lx2();
         }
         public  static void   yx()
         {
              Calendar  ca=Calendar.getInstance();//静态方法调用
                   /*
                   获取此时准确的日历时间,getInstance返回的是一个Calendar
       */
                   soc(ca);//用于打印时间,打印出来的都是一大串关于时间的信息
                   ca.set(2012,1,5);//可以自由设定年月日,但是时分秒这些没有改变
                   /*
                   这里要注意,自由设定时候月份填的是1,但是显示的却是二月
                   */
                   xianshi(ca);
                   ca.add(Calendar.YEAR,-1);
                   //可以自由调节时间,例如这个是单单把年份减少一年
                   xianshi(ca);
         }
         public  static  void  lx1(int  nian)//练习1
         {
              Calendar  ca=Calendar.getInstance();
                    ca.set(nian,2,1);
                    ca.add(Calendar.DAY_OF_MONTH,-1);
                    xianshi(ca);

         }
         public   static void  lx2()//练习2
         {
              Calendar ca=Calendar.getInstance();
               ca.add(Calendar.DAY_OF_MONTH,-1);
        xianshi(ca);
         }

         public  static void   xianshi(Calendar   ca)//显示时间的方法
         {
                 int year  =ca.get(Calendar.YEAR);  //获取年份
                       int month = ca.get(Calendar.MONTH);//获取月份
                       int hao   =  ca.get(Calendar.DAY_OF_MONTH);//获取月份中的几号
                       int   week =  ca.get(Calendar.DAY_OF_WEEK);//获取星期
                            int   hour=ca.get(Calendar.HOUR_OF_DAY);//获取小时
                            int   minute=ca.get(Calendar.MINUTE);//获取分钟
                            int   sceond=ca.get(Calendar.SECOND);//获取秒
              //注意这里获得的是int型的数据!!!  get方法里面不要忘记加Calendar
                            /*
                            由于计算机存储数据都是从角标0开始的,
                            所以,直接用get方法获取的星期和月份都是有偏差的,
                            所以使用查表法修改               

                        */
                             String[] sm={"一月","二月","三月","四月",
                                                "五月","六月","七月","八月",
                                                "九月","十月","十一月","十二月"};
                             String[] sw={"","星期日","星期一","星期二",
                                                "星期三","星期四","星期五","星期六",};
            soc(year+"年"+sm[month]+hao+"号   "+sw[week]+" "+hour+":"+minute+":"+sceond);
         }
         public  static  void  soc(Object  obj)
         {
              System.out.println(obj);
         }
}

————————分割线——————

/*

Math类,定义在java.lang包里面的类

常用来处理一些基本数学运算

里面定义了很多静态方法

*/

import java.util.*;
class   Sys5
{
         public  static void  main(String[] args) //主函数
         {
       MathrandomDemo();

         }
         public  static void  MathrandomDemo()
         {
                   soc("下面是MathrandomDemo---");
                   for(int  x=0;x<20;x++)
                   {
                      double  d=Math.random();//返回的是0到1之间的double型的伪随机数(不包括1)
                      int  d2=(int)(Math.random()*10);
                      //返回的是0到10之间的double型的伪随机数(不包括10),接着强制转成int型数据
                      soc("d="+d);
                      soc("d2="+d2);
                   }
                   Random   m=new Random();
                   for(int  x=0;x<20;x++)
                   {
                     int  i=   m.nextInt(20);//返回一个0到20之间的int型伪随机数(不包括20)
                            soc("i="+i);
                   }
                   //Random类定义在java.util包中

         }
         public  static void  ceilDemo()
         {
                   soc("下面是ceilDemo---");
                   double  dou=Math.ceil(26.14);//返回的是大于指定double型数据的最小整数
                   soc("dou="+dou);//打印的是dou=27.0
                   double   dou2=Math.ceil(-26.14);
                   soc("dou2="+dou2);//打印的是dou=-26.0
         }
         public  static void  floorDemo()
         {
                   soc("下面是floorDemo---");
                   double  dou3=Math.floor(23.21);//返回的是小于指定double型数据的最大整数
                   soc("dou3="+dou3);//打印的是dou3=23.0
                   double  dou4=Math.floor(-23.21);
                   soc("dou4="+dou4);//打印的是dou4=-24.0

         }
         public  static void  roundDemo()
         {
                   soc("下面是roundDemo---");
                   long  lo=Math.round(53.18);//四舍五入
                   soc("lo="+lo);//打印的是lo=53
                   long  lo2=Math.round(-53.18);
                   soc("lo2="+lo2);//打印的是lo2=-53
                   long  lo3=Math.round(53.78);
                   soc("lo3="+lo3);//打印的是lo3=54
                   long  lo4=Math.round(-53.78);
                   soc("lo4="+lo4);//打印的是lo4=-54
         }
         public  static void  powDemo()
         {
            soc("下面是powDemo---");
             double k=Math.pow(2,-3);//返回的是2的-3次方的值,即是0.125
                   soc("k="+k);//打印的是k=0.125
         }
         public  static void  soc(Object  obj)
         {
            System.out.println(obj);
         }
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-04 18:41:54

黑马程序员——23, Properties,Runtime,Date类,Math类,的相关文章

黑马程序员(Java)----API之常用类(Math、Random、System、BigInteger、Date和DateFormat、Calendar)

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 4.9  Math Math 类包含用于执行基本数学运算的方法,如初等指数.对数.平方根和三角函数. 4.9.1 常用变量和方法 成员变量: public static final double PI public static final double E 成员方法: public static int abs(int a):绝对值 public static double ceil(dou

黑马程序员-IO流其他流与File类

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! ------- 1:其他的流 1: DataOutputStream ;多了一些操作基本数据类型的功能 DataInputStream:读取文件. 用DataOutputStream流写进去的数据,就用DataInputStream流来读取. 1 imp

黑马程序员——面向对象(一)概述、类与对象、继承、抽象类、接口、多态、内部类

一.面向对象概述 1.面向对象:是一个很抽象的概念,它相对面向过程而言,是一种程序设计的思想. 2.面向对象的特点: * 符合人们思考习惯的思想 * 可以将复杂的事情简单化 * 将程序员从执行者转换成了指挥者 * 完成需求时:只需要寻找具备所需功能的对象或者创建所需功能的对象即可,简化开发效率并提高对象的复用性. 3.面向对象的三个特征:封装(Encapsulation).继承(Inheritance).多态(Polymorphism). 二.类与对象 (一)类与对象之间的关系 1.类的定义:类

黑马程序员_IOS开发_Objective-C学习笔记_类(对象)

1.面向对象编程基本介绍: 面向对象程序设计(英语:Object-oriented programming,缩写:OOP),指一种程序设计范型,同时也是一种程序开发的方法.对象指的是类的集合,类是对象的模板,它将对象作为程序的基本单元,将程序和数据封装其中,以提高软件的安全性.重用性.灵活性和扩展性. 2.面向对象与面向过程 面向过程就是分析出解决问题所需要的步骤,然后基于这些步骤用代码和函数把这些步骤一步一步实现. 面向对象是把构成问题事务分解成各个对象,然后各个对象分别对相关的程序功能做出处

黑马程序员-Java基础-面向对象—多态、Object类、内部类、异常

第一讲  多态 1.  定义 可以理解为事物存在的多种体现形态. 在java中,当函数的功能内容不确定时,可以将此方法定义为抽象方法,让其子类去实现.当子类对象不同时,调用同一个函数名,会执行不同的函数体,得到不同的结果,从而体现了多态性. 2.  多态的体现形式 父类的引用指向了自己的子类对象:Fu f = new Zi(): 父类的引用也可以接受自己的子类对象: 3.  多态的前提条件 必须是类与类之间有关系,要么继承,要么实现(接口): 函数之间存在覆盖(重写): 4.  多态的好处 大大

黑马程序员-JAVA学习之反射以及Class类的常用方法

--------android培训.java培训.期待与你交流!-------- Class类 Class 类的实例表示正在运行的 Java 应用程序中的类和接口.枚举是一种类,注释是一种接口.每个数组属于被映射为 Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象.基本的 Java 类型(boolean.byte.char.short.int.long.float 和 double)和关键字 void 也表示为 Class 对象. Class 没有公共构造方法

黑马程序员——Java基础--IO流(一)---File类以及其他流对象

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 一.File类 File类是将文件系统中的文件和文件夹封装成了对象.提供了更多的属性和行为可以对这些文件和文件夹进行操作.这些是流对象办不到的,因为流只操作数据.File对象可以作为参数传递给流对象的构造函数.File 类的实例是不可变的:也就是说,一旦创建,File 对象表示的抽象路径名将永不改变. 1.File类中的方法 (1).File类的构造方法以及字段 1 new File(Stri

黑马程序员(Java)----API之常用类(StringBuffer、Integer、Character)

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 4.4 StringBuffer 4.4.1 了解StringBuffer SringBuffer:线程安全的可变字符串.跟String相比,使用StringBuffer做字符串的拼接不会浪费太多资源. 4.4.2 构造方法 public StringBuffer():无参构造方法 public StringBuffer(int capacity):指定容量的字符串缓冲区对象 public S

黑马程序员--Java基础学习笔记【Object类、String类】

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- Object类 在Java类继承结构中,java.lang.Object类位于顶端. 所有类都直接或间接继承Object类. (接口不能继承Object类,接口中隐含定义了Object类的所有公共方法,但是全抽象) Object类型的引用变量可以指向任何类型对象. Object类成员方法 public String toString() { return getClass().getName(