BigInteger/BigDeciaml/Calendar/Data/System常用类

一:BigInteger

1.作用
用来操作超过Intgeter类型的数据
2.常用构造方法
BigInteger(String val)
将 BigInteger 的十进制字符串表示形式转换为 BigInteger。
3.常用方法


       BigInteger b1=new BigInteger("100");
        BigInteger b2=new BigInteger("100");
            //public BigInteger add(BigInteger val)
            //对数据进行加法操作
            b1.add(b2);
            //public BigInteger subtract(BigInteger val)
            //对数据进行减法操作
            b1.substract(b2);
            //public BigInteger multiply(BigInteger val)
            //对数据进行乘法操作
            b1.multiply(b2);
            //public BigInteger divide(BigInteger val)
            //对数据进行除法操作
            b1.divide(b2);
            //public BigInteger[] divideAndRemainder(BigInteger val)    
            //返回一个BigInteger数组,数组中的元素:商,余数
            b1.divideAndRemainder(b2);
            //返回BigInteger[1]=商;
                  BigInteger[2]=余数;

二:BigDeciaml

对于浮点类型,计算过程中存在精度损失,使用BigDecimal进行包装后可以解决精度损失的问题
1.构造方法
public BigDecimal(String value)
2.常用方法
使用方法参照BigInteger
常用的成员方法;
public BigDecimal add(BigDecimal augend):加
public BigDecimal subtract(BigDecimal subtrahend):减
public BigDecimal multiply(BigDecimal multiplicand):乘法
public BigDecimal divide(BigDecimal divisor):除
public BigDecimal divide(BigDecimal divisor,int scale,int roundingMode)
参数1:商, 参数2:保留几位小数,参数3:舍入的一种模式:ROUND_HALF_UP

三:Calendar

该类是一个抽象类,不能实例化,
1.创建对象


//public static Calendar getInstance()
Calendar c=getInstance();
//public int get(int field)返回给定日历字段的值

2.常用方法

public abstract void add(int field,int amount)
                //为给定的日历的字段添加或者减去时间偏移量
 使用:
 //需求:5年后的十天前
        c.add(Calendar.YEAR, 5) ;
        c.add(Calendar.DATE, -10) ;
 public final void set(int year,int month,int date)
                //  设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值
 使用:
         c.set(2018,5,20) ;

四:Data

1.构造方法

Date() 
//分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
Date(long date) 
//分配 Date 对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。

2.常用方法
1.常用成员方法

 void setTime(long time) 
         // 设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。                                          
 long getTime() 
         // 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

2.(1).日期的格式化
日期对象——>>”文本格式”

public static void format(Date date);

(2).日期的解析
文本格式—–>>日期对象

public Dtae parse(String source)该方法本身会抛出异常parseException;
//要使用它必须使用中间桥梁,DateForamt该类是一个抽象类
//simpleDateFormat是该类的子类,可以对日期进行解析.构造方法
SimpleDateFormat(String pattern) 
          用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
Ⅱ.格式
年----------"yyyy"--------"MM"
天(月中的)---------"dd";天(年中的)--------"DD"
小时--------"HH"
分钟---------"mm"---------"ss".使用


SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") ;
        //格式化
        //public final String format(Date date)
        String dateStr = sdf.format(d) ;

五:System

1.常用的两个字段
System.in 输入流
System.out 输出流
2.常用方法:

public static void gc();
//运行垃圾回收器,最终调用的是重写之后的finalize();
System.gc();
public static void exit(int status)
//终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。
System.exit(0);
public static long currentTimeMillis():
//返回当前的时间毫秒值
System.currenTimeMillis();

六:高级数组排序

1.冒泡(默认从小到大)
两两进行比较,大的往后放

for(int i=0;i<arr.length-1;i++){
   for(int j=0;j<arr.length-1-i;j++){
     if(arr[j]<arr[j+1]){
     int temp=arr[j];
     arr[j]=arr[j+1];
     arr[j+1]=temp;
     }
   }
}

2.选择(默认从小到大)
数组的0索引依次和后面的进行比较,大的往后放

for(int i=0;i<arr.length-1;i++){
   for(int j=i+1;j<arr.lengt;j++){
     if(arr[i]<arr[j]){
     int temp=arr[j];
     arr[j]=arr[i];
     arr[i]=temp;
     }
   }
}

3.二分查找
1.条件
必须是排好序的数组
2.思路
(1)定义最小(minindex)最大(maxindex)索引
(2)计算出中间索引(midindex)
(3)用中间索引的数值和要查找的进行比较
大了: maxindex=midindex-1
小了:minindex=midindex+1
(4)继续重复(2)(3)
判断(minindex>maxindex)表示没有该元素返回-1

public static int binarySearch1(int[] arr,int start,int end,int value){
         int mid=(start+end)/2;
        if(start>end){
        return -1;}
        if(value==arr[mid])
        return mid;
       if(arr[mid]>value)
       {return binarySearch1(arr,start,mid-1,value);}
       return binarySearch1(arr,mid+1,end,value);

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值