日历类Calendar
通过调用日历类的静态方法 getInstance得到一个当前此刻日期对象对应的日历对象
//创建日历对象
Calendarc=Calendar.getInstance();
//获取当前日期对象
Dated=c.getTime();
//创建简单的格式化对象来格式化日期对象
SimpleDateFormatsdf=newSimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a");
//格式化日期对象
Stringdate=sdf.format(d);
System.out.println(date);
//获取此刻的年份
intyear=c.get(Calendar.YEAR);
System.out.println(year);
//获取当前的月份
intmonth=c.get(Calendar.MONTH);
System.out.println(month);
//获取当前的一年中的天数
intday=c.get(Calendar.DAY_OF_YEAR);
System.out.println(day);
//获取此刻的日期对象
Datedate1=c.getTime();
//获取当前的时间毫秒值
longtime=c.getTimeInMillis();
//请问701天后的日期是多少
c.add(Calendar.DAY_OF_YEAR,701);
longtime1=c.getTimeInMillis();
// SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a");
Strings=sdf.format(time1);
System.out.println(s);
Math
Math用于做数学运算。
Math类中的方法全部是静态方法,直接用类名调用即可。
方法:
方法名
说明
publicstaticintabs(inta)获取参数a的绝对值:
publicstaticdoubleceil(doublea)向上取整
publicstaticdoublefloor(doublea)向下取整
publicstaticdoublepow(doublea,doubleb)获取a的b次幂
publicstaticlonground(doublea)
四舍五入取整
// 1.取绝对值:返回正数。
System.out.println(Math.abs(10));
System.out.println(Math.abs(-10.3));
// 2.向上取整: 5
System.out.println(Math.ceil(4.00000001));// 5.0
// 3.向下取整:4
System.out.println(Math.floor(4.99999999));// 4.0
// 4.求指数次方
System.out.println(Math.pow(2,3));// 2^3 = 8.0
// 5.四舍五入 10
System.out.println(Math.round(4.49999));// 4
System.out.println(Math.round(4.500001));// 5
// 1.终止当前虚拟机
//System.exit(0); // 0代表正常终止!!
// 2.得到系统当前时间毫秒值
longtime=System.currentTimeMillis();
SimpleDateFormatsdf=newSimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println(sdf.format(time));
// 3.可以做数组的拷贝(了解)
int[]arrs1=newint[]{10,20,30,40,50,60,70};
int[]arrs2=newint[6];// [ 0 , 0 , 0 , 0 , 0 , 0]
// arrs2 = [0 , 30 , 40 , 50 , 0 , 0 ]
/**
arraycopy(Object src,int srcPos ,Object dest, int destPos, int length)
参数一:原数组
参数二:从哪个索引位置开始赋值
参数三:目标数组
参数四:目标数组的开始索引:
参数五:复制几个
*/
System.arraycopy(arrs1,2,arrs2,1,3);
System.out.println(Arrays.toString(arrs2));
System.out.println("程序结束。。。");
Arrays.toString(arr) 这样打印就能打印出数组的内容
BigDeciml大数据对象
引入:
浮点型运算的时候直接+*/可能会出现数据失真(精度问题)。
BigDecimal可以解决浮点型运算数据失真的问题。
BigDicimal类:
包:java.math.
创建对象的方式(最好的方式:)
publicstaticBigDecimalvalueOf(doubleval) :包装浮点数成为大数据对象。
方法声明
publicBigDecimaladd(BigDecimalvalue)加法运算
publicBigDecimalsubtract(BigDecimalvalue)减法运算
publicBigDecimalmultiply(BigDecimalvalue)乘法运算
publicBigDecimaldivide(BigDecimalvalue)除法运算
publicdoubledoubleValue():把BigDecimal转换成double类型。
*/
publicclassBigDecimalDemo{
publicstaticvoidmain(String[]args) {
// 浮点型运算的时候直接+ * / 可能会出现数据失真(精度问题)。
System.out.println(0.1+0.2);
System.out.println(0.09+0.01);
System.out.println(1.0-0.32);
System.out.println(1.015*100);
System.out.println(1.301/100);
System.out.println("-------------------------");
doublea=0.1;
doubleb=0.2;
doublec=a+b;
System.out.println(c);
// 1.把浮点数转换成大数据对象运算
BigDecimala1=BigDecimal.valueOf(a);
BigDecimalb1=BigDecimal.valueOf(b);
//BigDecimal c1 = a1.add(b1); // 加法
BigDecimalc1=a1.divide(b1);// 除法
System.out.println(c1);
// 结果可能需要继续使用!!!
// BigDecimal只是解决精度问题的手段,double数据才是我们的目的!!
doublers=c1.doubleValue();
System.out.println(rs);
拓展:
BigDecimal只是解决精度问题的手段,double数据才是我们的目的!! double rs = c1.doubleValue(); System.out.println(rs);
包装类
Java认为一切皆对象 引用数据类型就是对象了
基本数据类型包装类(引用数据类型)
byteByte
shortShort
intInteger(特殊)
longLong
floatFloat
doubleDouble
charCharacter(特殊)
booleanBoolean
把字符串类型的数值转换成对应的基本数据类型的值。(真的很有用)
// 2.把字符串类型的数值转换成对应的基本数据类型的值。(真的很有用)
StringnumStr="23";
//int numInt = Integer.parseInt(numStr);
intnumInt=Integer.valueOf(numStr);
System.out.println(numInt+1);
没啥用
// 1.把基本数据类型的值转成字符串
Integerit=100;
// a.调用toString()方法。
StringitStr=it.toString();
System.out.println(itStr+1);
// b.调用Integer.toString(基本数据类型的值)得到字符串。
StringitStr1=Integer.toString(it);
System.out.println(itStr1+1);
// c.直接把基本数据类型+空字符串就得到了字符串。
StringitStr2=it+"";
System.out.println(itStr2+1);