一: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);
}