黑马程序员_java学习日记_通过一些常见的类学习API的使用

 

----------------------- android培训java培训java学习型技术博客、期待与您交流! ----------------------

 

通过一些常见的类学习API的使用:
我觉得主要记住实现某个功能的相应的类名称即可,使用的时候再查API文档,常见的类System ,Runtime,Date,Clendar,
Math,Random......


System类:该类中的方法和属性都是静态的
字段: in  对应键盘录入
       out 输出到控制台或屏幕

描述系统信息

方法:
    getProperties();方法返回一个Properties对象,Properties是Hashtable的子类,也就是Map集合的一个子类对象。
该集合存储的都是字符串,没有泛型定义。

setproperty("key","value");在系统中自定义一些特有的信息;

getproperty("key")获取指定属性的信息、

Demo:
   package day18;

import java.util.Iterator;
import java.util.Properties;

public class SystemDemo {
 public static void main(String[] args) {

  Properties pro = System.getProperties();
  System.setProperty("hahha", "fegng");
  System.out.println(System.getProperty("hahha"));
  System.out.println(System.getProperty("haha"));
     Iterator itra = pro.keySet().iterator();
     while(itra.hasNext()){
      Object objKey = itra.next();
      System.out.println(objKey+"="+pro.get(objKey));
     }
    
     for(Object obj:pro.keySet()){
      System.out.println(obj+"="+pro.getProperty((String)obj));
     }

 }

}


Runtime类:每个java应用程序都有一个Runtime类实例,使应用程序能够与其运行环境相连接,可以通过getRuntime()方法获取当前运行时。应用程序不能在创建自己的Runtime类实例。

该类并没有提供构造函数,说明不可以new对象。那么会直接想到该类中的方法都是静态的。发现该类中还有非静态方法。说明该类肯定会提供了方法获取本类对象。而且该方法是静态的,并返回值类型是本类类型。油这个特点可以看出该类使用了单利设计模式完成。

Demo:
ackage day18;

public class RuntimeDemo {
 public static void main(String[] args)throws Exception {
  // TODO Auto-generated method stub
     Runtime rt = Runtime.getRuntime();
     Process p = rt.exec("winmine.exe");
     Thread.sleep(1000);
     p.destroy();
     rt.exec("notepad.exe RuntimeDemo.java");
    
 }

}
 

 

Date:日期类,对日期时间进行描述

DateDemo:

package day18;

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateDemo {

 
 public static void main(String[] args) {
  
     Date d= new Date();//根据本地时间产生并初始化该对象
     System.out.println(d);
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日  E hh:mm:ss");//格式化日期的类
    System.out.println(sdf.format(d));
    long l = System.currentTimeMillis();
    Date d1 = new Date(l);
 System.out.print(d1);
 }

}


Calendar类:Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。瞬间可用毫秒值来表示,它是距历元(即格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000,格里高利历)的偏移量。

提供了获取日期时间的方法并可以对日期进行运算;

Demo:package day18;

import java.util.Calendar;

public class CalendarDemo {
 public static void main(String[] args) {
  
Calendar c = Calendar.getInstance();
c.set(2012,2,23);
sop(c);
c.add(c.YEAR, 2);
printCalendar(c);
feb_days(2019);
 }
 public static void printCalendar(Calendar c){
  String [] weeks = {"","星期日","星期一","星期二","星期三","星期四","星期五","星期六"};
  String [] months = {"","一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};
  int year = c.get(c.YEAR);
  
  int month = c.get(c.MONTH);
  int dayOfmonth = c.get(c.DAY_OF_MONTH);
  int dayofWeek = c.get(c.DAY_OF_WEEK);
  sop(year+"年 "+months[month]+" "+dayOfmonth+"日 "+weeks[dayofWeek]);
  
 }
 public static void sop(Object obj){
  System.out.println(obj);
 }
 public static void feb_days(int year){
  Calendar c = Calendar.getInstance();
  c.set(year, 2,1);
  c.add(c.DAY_OF_MONTH, -1);
  System.out.println(c.get(c.DAY_OF_MONTH));
 }
}


Math类:Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数;
字段:static double E 比任何其他值都更接近 e(即自然对数的底数)的 double 值。
      static double PI 比任何其他值都更接近 pi(即圆的周长与直径之比)的 double 值。
方法:
   static double abs(double a)
          返回 double 值的绝对值。

    static double acos(double a)
           返回一个值的反余弦;返回的角度范围在 0.0 到 pi 之间

static double ceil(double a)
          返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数
 
static double floor(double a)
          返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。

static double max(double a, double b)
          返回两个 double 值中较大的一个。
static int min(int a, int b)
          返回两个 int 值中较小的一个。
static double random()
          返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。

static long round(double a)
          返回最接近参数的 long。 四舍五入

public static double pow(double a, double b)返回第一个参数的第二个参数次幂的值。


Demo:


package day18;

import java.util.Random;

public class MathDemo {


 public static void main(String[] args) {
  double d = Math.ceil(13.22);//返回大于该数的最大整数
  sop(d);
  
  double d1= Math.floor(34.22);//返回不大于该数的最小整数
  sop(d1);
  
  long l = Math.round(23.54);//四舍五入
  sop(l);
  
  double d2= Math.pow(2, 3);//返回第一个参数的第二个参数的幂的值
  sop(d2);
  //随机数
  for(int i = 0;i<10;i++){
   sop((int)(Math.random()*10+1));
  }
  //使用Random类
  Random r = new Random();
  for(int i = 0;i<10;i++){
   sop(r.nextInt(10));
  }
 }
public static void sop(Object obj){
 System.out.println(obj);
}
}

练习保留两位小数:

package day18;

public class MathDemo2 {

 
 public static void main(String[] args) {
  System.out.println(getValue(2.3333));//2.33
  System.out.println(getValue(45.233234555));//45.23
 }
     //方法
 public static double getValue(double d){
 String str = String.valueOf(d);//先转换为字符串
 //System.out.println(d);
  int  index  = str.indexOf('.');//取出小数点所在字符串中的位置
  String str2 =str.substring(0, index+3);//取到后两位
 //System.out.println(str2);
 double dd = Double.valueOf(str2);//转换为数值类型
 
  return dd;
 }
}

 

 

----------------------- android培训java培训java学习型技术博客、期待与您交流! ----------------------

详情请查看:http://edu.csdn.net/heima

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值