日历类Calendar.Math 包装类 BigDeciml大数据对象

日历类Calendar

通过调用日历类的静态方法 getInstance得到一个当前此刻日期对象对应的日历对象

//创建日历对象
Calendar c = Calendar.getInstance();
//获取当前日期对象
Date d = c.getTime();
//创建简单的格式化对象来格式化日期对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a");
//格式化日期对象
String date = sdf.format(d);
System.out.println(date);
//获取此刻的年份
int year = c.get(Calendar.YEAR);
System.out.println(year);
//获取当前的月份
int month = c.get(Calendar.MONTH);
System.out.println(month);
//获取当前的一年中的天数
int day = c.get(Calendar.DAY_OF_YEAR);
System.out.println(day);
//获取此刻的日期对象
Date date1 = c.getTime();
//获取当前的时间毫秒值
long time = c.getTimeInMillis();
 //请问701天后的日期是多少
        c.add(Calendar.DAY_OF_YEAR,701);
        long time1 = c.getTimeInMillis();
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a");
        String s = sdf.format(time1);
        System.out.println(s);

Math

Math用于做数学运算。
Math类中的方法全部是静态方法,直接用类名调用即可。
方法:
      方法名                                     
    说明                
      public static int abs(int a)                  获取参数a的绝对值:
      public static double ceil(double a)           向上取整
      public static double floor(double a)          向下取整
      public static double pow(double a, double b)  获取a的b次幂        
      public static long round(double a)            
    四舍五入取整
// 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.得到系统当前时间毫秒值
long time = System.currentTimeMillis();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
System.out.println(sdf.format(time));

// 3.可以做数组的拷贝(了解)
int[] arrs1 = new int[]{10 ,20 ,30 ,40 ,50 ,60 ,70};
int[] arrs2 = new int[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.
        创建对象的方式(最好的方式:)
              public static BigDecimal valueOf(double val) :包装浮点数成为大数据对象。
        方法声明
              public BigDecimal add(BigDecimal value)       加法运算
              public BigDecimal subtract(BigDecimal value)  减法运算 
              public BigDecimal multiply(BigDecimal value)  乘法运算 
              public BigDecimal divide(BigDecimal value)    除法运算
              public double doubleValue():把BigDecimal转换成double类型。
 */
public class BigDecimalDemo {
    public static void main(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("-------------------------");
        double a = 0.1 ;
        double b = 0.2 ;
        double c = a + b ;
        System.out.println(c);

        // 1.把浮点数转换成大数据对象运算
        BigDecimal a1 = BigDecimal.valueOf(a);
        BigDecimal b1 = BigDecimal.valueOf(b);
        //BigDecimal c1 = a1.add(b1);  // 加法
        BigDecimal c1 = a1.divide(b1); // 除法
        System.out.println(c1);

        // 结果可能需要继续使用!!!
        // BigDecimal只是解决精度问题的手段,double数据才是我们的目的!!
        double rs = c1.doubleValue();
        System.out.println(rs);

拓展:

BigDecimal只是解决精度问题的手段,double数据才是我们的目的!!
double rs = c1.doubleValue();
System.out.println(rs);

包装类

Java认为一切皆对象 引用数据类型就是对象了

基本数据类型                    包装类(引用数据类型)
     byte                      Byte
     short                     Short
     int                       Integer(特殊)
     long                      Long

     float                     Float
     double                    Double
     char                      Character(特殊)
     boolean                   Boolean
把字符串类型的数值转换成对应的基本数据类型的值。(真的很有用)
// 2.把字符串类型的数值转换成对应的基本数据类型的值。(真的很有用)
String numStr = "23";
//int numInt = Integer.parseInt(numStr);
int numInt = Integer.valueOf(numStr);
System.out.println(numInt+1);
没啥用
// 1.把基本数据类型的值转成字符串
Integer it = 100 ;
// a.调用toString()方法。
String itStr = it.toString();
System.out.println(itStr+1);
// b.调用Integer.toString(基本数据类型的值)得到字符串。
String itStr1 = Integer.toString(it);
System.out.println(itStr1+1);
// c.直接把基本数据类型+空字符串就得到了字符串。
String itStr2 = it+"";
System.out.println(itStr2+1);

你可能感兴趣的:(笔记,java)