Java中常见类的使用

版权声明:转载请注明出处 : https://blog.csdn.net/coder_what/article/details/89437221

Copyright©Stonee

平时码代码的时候,会调用一些常用的类,如:String,StringBuffer,StringBuilder,Math,io,util,Random,System,Date,Calender等

1. Math类

Math类再lang包下,所以使用时不用导包。同时,Math类中的方法和字段全为静态,所以Math类中的构造方法时private的
点击查看官方文档

package math;
public class Demo1 {    
    public static void main(String [] args){ 
    
        System.out.println(Math.PI);       
        System.out.println(Math.E);       
    
        System.out.println(Math.abs(-10));  //取绝对值        
        System.out.println(Math.ceil(12.34));   //取13        
        System.out.println(Math.floor(12.34));  //取12        
        System.out.println(Math.max(20,30));    //去最大值   
        System.out.println(Math.round(12.3f));  //四舍五入  
        System.out.println(Math.pow(2,3));      //8 
        
        System.out.println(Math.random());      //0-1之间的随机数
        //底层调用的是random的nextdouble方法
        
        System.out.println(Math.sqrt(4));       //开平方    
    }
}

2. Random类

Random类是util包,使用时需要导包
该类的一个实例用于生成伪随机数流。该类使用一个48位种子,该种子使用一个线性全等公式进行修改。
点击查看官方文档

package Random;
import java.util.Random;
public class Demo1 {    
    public static void main(String [] args){       
    
        Random r = new Random();        //使用的随时间变化的种子,所以随机数不固定     
        System.out.println(r.nextInt());       
        System.out.println(r.nextInt());        
        System.out.println(r.nextInt(100));//范围为0-99      
        
        Random r1 = new Random(1000);       
        //种子固定,生成的随机数也固定       
        System.out.println(r1.nextInt());        
        System.out.println(r1.nextInt());
    }
}

3. System类

位于lang包下,不需要导包。构造方法为private,修饰符为final,不能继承,不能实例化
点击查看官方文档

  • 字段:
static PrintStreamerr       //The "standard" error output stream.
static InputStreamin        //The "standard" input stream.
static PrintStreamout       //The "standard" output stream.
  • 常用方法
package Otherclass;
public class Demo3_System {    
    public static void main(String[] args) {        
    
        long start = System.currentTimeMillis();    //获取从1970到现在的时间差毫秒       
        long end = System.currentTimeMillis();        
        for (int i = 0; i< 1000; i++){        }       
        System.out.println(end - start);    //计算上面for运行时间       
        
        new Demo();        
        System.gc();    //object类中有个finalize方法会回收垃圾。cg会调用此方法  
        
        System.exit(0);     //非0状态异常终止,退出jvm        
        
        int [] src = {1,2,3,4,5};        
        int [] des = new int[10];       
        System.arraycopy(src,0,des,0,src.length);   //将一个数组拷贝到另一个数组    
    }
}
class Demo {  
    @Override   
    public void finalize() {        //    finalize已经被弃用        
    System.out.println("垃圾被清扫了");    
    }
}

4. 大数类

点击查看官方文档
BigInteger
BigDecimal :

    BigDecimal a = new BigDecimal("2.0");   //此处用字符串更精确也可调用value方法,但本质一样
    BigDecimal b = new BigDecimal("1.0");
    System.out.println("a.subtract(b)");    //0.9

5. Date,DateFormat和Calendar类

Date存在于sql和util包,常用util,但是Date有被Calendar代替的趋势
DateFormat常用于字符串和日期的转换
Calendar是静态类,构造方法私有无法被实例化

  • Date
    Date d1 = new Date();
    System.out.println(d1);
    Date d2 = new Date(0);
    System.out.println(d2);     //因为电脑时间是在东8区,所以是8点
    
    System.out.println(d1.getTime());   //获得毫秒值
    System.out.println(System.currentTimeMillis());
    
    d2.setTime(1000);   //设置毫秒值,改变时间对象
    System.out.println(d2);
  • DateFormat

因为DateFormat为抽象类,所以我们常用它的派生类SimpleDateFormat来代替它

    //DateFormat df = new DateFormat();   //抽象类,不能实例化,需要SimpleDateFormat继承
    
    DateFormat df = DateFormat.getDateInstance();   //返回一个DateFormat对象
    
    Date d = new Date();    //获取时间
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");  //创建日期格式化对象
    System.out.println(sdf.format(d));  //将日期对象转换为格式化字符串
    
    //将时间字符串转换为日期对象
    String tim = "2000年08月08日 8:8:8";
    SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 H:m:s");
    Date da = sdf1.parse(tim);  //此处需要抛出或者捕获异常
    System.out.println(da);
  • Calender
    //Calendar c = new Calendar();   //无法实例化
    Calendar c = Calendar.getInstance();//父类引用指向子类对象
  //System.out.println(c);
  
  c.add(Calendar.MONTH,-1);
  c.set(Calendar.YEAR,2000);
  c.set(2000,1,18);   //修改
  
  System.out.println(c.get(Calendar.YEAR));
  System.out.println(c.get(Calendar.MONTH));  //从0开始计数
  System.out.println(c.get(Calendar.DAY_OF_WEEK));    //从周日开始计数

猜你喜欢

转载自blog.csdn.net/coder_what/article/details/89437221