黑马程序员——学习日记之部分类概述

                                                                  ------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一、System类简述:
1、System 类包含一些有用的类字段和方法。它不能被实例化。
2、out对应标准输出流(显示器),int属性对应的是键盘。
3、System类中的一些方法:
(1) public static long currentTimeMillis():获取当前时间。可以用于计算程序运行时间只要将开始时间和结束时间相减即可。
(2) public static Properties getProperties():获取系统属性集。
(3) public static String getProperty(String key)获取指定键指示的系统属性。 
(4) public static void exit(int status)终止当前正在运行的 Java 虚拟机。
二、Runtime类的简述:
1、每个java应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。 
2、应用程序不能创建自己的 Runtime 类实例。 
3、Runtime类中的一些方法:
(1)public static Runtime getRuntime()返回与当前java应用程序相关的运行时对象。
(2)public Process exec(String command)在单独的进程中执行指定的字符串命令。             
(3)public abstract void destroy()杀掉子进程。强制终止此 Process 对象表示的子进程。
三、Date/DateFormat类:
1、Date是日期类,可以精确到毫秒。
(1) 构造方法
Date()
Date(long time)
(2)成员方法
getTime()
setTime(long time)
(3)日期和毫秒值的相互转换

[java]  view plain copy
  1. //将毫秒值转成 指定的日期的格式   xxxx年xx月xx日   hh:mm:ss  
  2. /* 
  3. 1 获取当前的时间 用System.currentTimeMillis返回的long类型的 
  4. 2 创建date类的对象并把long类型传入到构造函数当中 
  5. 3 获取时间格式器有两种模式的方法 
  6. 4 调用formart方法即可 
  7.  
  8. */  
  9. import java.util.*;  
  10. import java.text.*;  
  11. class Demo12  
  12. {  
  13.     public static void main(String[] args)  
  14.     {  
  15.         //获取当前的毫秒值  
  16.         long l=System.currentTimeMillis();  
  17.         //创建Date类的对象并把当前的毫秒值传入  
  18.             Date d=new Date(l);  
  19.             //时间格式器  
  20.         DateFormat dateformat=DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.MEDIUM);  
  21.         //得到自己想要的格式  
  22.         String s=dateformat.format(d);  
  23.         //打印  
  24.         System.out.println(s);  
  25.       
  26.     }  
  27. }  
2、DateFormat针对日期进行格式化和针对字符串进行解析的类,但是是抽象类,所以使用其子类SimpleDateFormat
(1)SimpleDateFormat(String pattern) 给定模式
yyyy-MM-dd HH:mm:ss
(2)日期和字符串的转换
a:Date -- String
format()  
b:String -- Date
parse()
(3)代码体现
[java]  view plain copy
  1. //"2012/3/17"转成日期对象。  
  2. /* 
  3. 思路: 
  4. 1 上种这种模式已经超出了DateFormat中的四种模式 又因为它是抽象的 只能找自定义模式了 它的一个子类 SimpleDateFormat可以自定义模式 
  5. 2 创建SimpleDateFormat类的对象。调用parse方法 
  6. 3 打印Date对象。 
  7.  
  8. */  
  9. import java.text.*;  
  10. import java.util.*;  
  11. class Demo13  
  12. {  
  13.     public static void main(String[] args)throws Exception  
  14.     {  
  15.         //自定义一个字符串  
  16.     String str="2012/3/17";  
  17.     //创建SimpleDateFormat类的对象,并把格式传入  
  18.     SimpleDateFormat sdf=new SimpleDateFormat("MM/dd/yyyy");  
  19.     Date d =sdf.parse(str);  
  20.     //打印  
  21.     System.out.println(d);  
  22.   
  23.       
  24.     }  
  25. }  

小练习

[java]  view plain copy
  1. //"2013-4-25"到"2013年7月29日"到底有多少天?  
  2. /* 
  3. 思路: 
  4. 1 既然是算有多少天 就是把他们的时间毫秒值进行想减就行了 
  5. 2首先对第一个时间进行解析它属于时间格式器里的SHORT模式 第二个它属于MEDIUM模式 
  6. 3 用parse方法对时间进行解析 
  7. 4 在获取他们的毫秒值 
  8. 5 进行想减即可 
  9. */  
  10. import java.text.*;  
  11. import java.util.*;  
  12. class Demo14  
  13. {  
  14.     public static void main(String[] args)throws Exception  
  15.     {  
  16.         //把这两种的日期都用字符串表示  
  17.         String style="2013-4-25";  
  18.         String style1="2013年7月29日";  
  19.         //两种日期对应两种不同日期的格式  
  20.     DateFormat dateformat=DateFormat.getDateInstance(DateFormat.MEDIUM);  
  21.     DateFormat dateformat1=DateFormat.getDateInstance(DateFormat.LONG);  
  22.     //对日期进行解析  
  23.     Date d1=dateformat.parse(style);  
  24.     Date d2=dateformat1.parse(style1);  
  25.     //得到这两种日期的毫秒值  
  26.     long l1=d1.getTime();  
  27.     long l2=d2.getTime();  
  28.     //把这两个毫秒值进行想减并转换成天  
  29.     long day=Math.abs(l1-l2)/1000/60/60/24;  
  30.     int day1=(int)day;  
  31.     //打印  
  32.     System.out.println(day1);  
  33.       
  34.     }  
  35. }  

三、Calendar类
1、日历类,封装了所有的日历字段值,通过统一的方法根据传入不同的日历字段可以获取值。
2、如何得到一个日历对象呢?
Calendar rightNow = Calendar.getInstance();获取当前的时间日历对象
本质返回的是子类对象
3、成员方法
(1) public int get(int field) 根据日历字段得到对应的值
(2) public abstract void add(int field,int amount)根据日历字段和一个正负数确定是添加还是减去对应日历字段的值                         
(3) public final void set(int year,int month,int date)设置日历对象的年月日
4、代码体现

[java]  view plain copy
  1. //获取给定年份的2月有多少天?【面试题】  
  2. /* 
  3. 1 根据getInstance方法(是获取当前的时间)可以获取Calendar 对象 
  4. 2 在进行设置set年份和月份 
  5. 3 在根据add方法进行对3月份往前推一天就是二月份的天数了 
  6.  
  7.  
  8.  
  9. */  
  10. import java.util.*;  
  11. class Demo15  
  12. {  
  13.     public static void main(String[] args)  
  14.     {  
  15.         //得到日历对象  
  16.         Calendar c=Calendar.getInstance();  
  17.         //进行设置  
  18.         c.set(2012,2,1);  
  19.         //设置日期的偏移量  
  20.         c.add(Calendar.DAY_OF_MONTH,-1);  
  21.         //得到年  
  22.         int year=c.get(Calendar.YEAR);  
  23.         //的到月  
  24.         int month=c.get(Calendar.MONTH)+1;  
  25.         //得到天  
  26.         int day=c.get(Calendar.DAY_OF_MONTH);  
  27.         //得到星期  
  28.         String week=getValue(c.get(Calendar.DAY_OF_WEEK));  
  29.         //打印出日期  
  30.         System.out.println(year+"   "+month+"    "+day+"    "+week);  
  31.     }  
  32.     public static String getValue(int in)  
  33.     {  
  34.         //对传入的值进行判断  
  35.         if (in<1||in>7)  
  36.         {  
  37.             throw new RuntimeException("类型转换异常");  
  38.         }  
  39.         //定义一个数组  
  40.     String[] wee={"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};  
  41.     return wee[in];  
  42.       
  43.     }  
  44. }  
四、Math类
1、Math的简述:Math类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。 
2、Math的常用方法:
public static int abs(int a)返回的是int的绝对值。
public static double ceil(double a)返回大于参数的最小整数。
public static double floor(double a)返回小于参数的最大整数。
public static int max(int a,int b)返回两个int中的最大的一个。
public static double pow(double a,double b)a的b次方。
public static int round(float a)返回四舍五入的整数。
public static double sqrt(double a)a的正平方根。
五、Random类
1、用于产生随机数的类
2、构造方法:
(1) Random() 默认种子,每次产生的随机数不同
(2) Random(long seed) 指定种子,每次种子相同,随机数就相同
3、成员方法:
(1) int nextInt() 返回int范围内的随机数
(2) int nextInt(int n) 返回[0,n)范围内的随机数
六、BigInteger类
1、针对大整数的运算
2、构造方法  
(1) BigInteger(String s)
3、成员方法
(1)public BigInteger add(BigInteger val) 加
(2)public BigInteger subtract(BigInteger val) 减
(3)public BigInteger multiply(BigInteger val) 乘
(4)public BigInteger divide(BigInteger val) 除
   (5)public BigInteger[] divideAndRemainder(BigInteger val)商和余数
4、代码体现
[java]  view plain copy
  1. // 求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×...×999×1000  
  2. import java.math.BigInteger;  
  3. class Demo16 {  
  4.   public static void main(String args[])  
  5.   {  
  6.       //创建一个值为1的BigInteger类的对象  
  7.           BigInteger sum= new BigInteger("1");  
  8.           //定义一个变量  
  9.           int count = 0;  
  10.             
  11.           for(int x = 2 ; x <=1000 ; x++)  
  12.           {  
  13.               //结果进行循环相乘  
  14.                   sum= sum.multiply(new BigInteger(i+""));  
  15.           }  
  16.           //转变成字符串  
  17.           String str = sum.toString();  
  18.             
  19.           //的到的结果进行遍历  
  20.           for(int i = 0 ; i <str.length(); i++)  
  21.           {  
  22.               //判断是否与零相同  
  23.                  if(str.charAt(i) == '0')  
  24.           {  
  25.               //有一个零进行相加  
  26.                   count++;  
  27.                     
  28.           }   
  29.           }  
  30.           //打印结果  
  31.           System.out.println(count);  
  32.   }  
  33. }  

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值