zoukankan      html  css  js  c++  java
  • java学习笔记--常用类

    一、Math类:针对数学运算进行操作的类

      1、常用的方法

        A:绝对值   public static int abs(int a)
        B:向上取整  public static double ceil(double a)
        C:向下取整 public static double floor(double a)
        D:两个数据中的大值 public static int max(int a, int b)
        E:a的b次幂 public static double double pow(double a ,double b)
        F:随机数 public static double random()
        G:四舍五入 public static int round(float a)
        H:正平方根 public static doule sqrt(double)

    /**
     * 
     * Math类:、
     *       A:绝对值   public static int abs(int a)
        B:向上取整  public static double ceil(double a)
        C:向下取整 public static double floor(double a)
        D:两个数据中的大值 public static int max(int a, int b)
        E:a的b次幂 public static double double pow(double a ,double b)
        F:随机数 public static double random()
        G:四舍五入 public static int round(float a)
        H:正平方根 public static doule sqrt(double)
     */
     
    public class Demo {
        public static void main(String[] args) {
            //取绝对值
            System.out.println(Math.abs(-10));
            //向上取整
            System.out.println(Math.ceil(12.3));//13.0
            System.out.println(Math.ceil(12.66));//13.0
            //向下取整
            System.out.println(Math.floor(12.3));//12.0
            System.out.println(Math.floor(12.66));//12.0
            //求2个数的最大值
            System.out.println(Math.max(3, 4));
            //求2个数的最小值
            System.out.println(Math.min(3, 4));
            //求a的b次幂
            System.out.println(Math.pow(2, 3));//相当于2的3次方
            //产生一个随机随
            System.out.println(Math.random());//随机随范围0.0<=x<1.0
            //四舍五入
            System.out.println(Math.round(3.4));//3
            System.out.println(Math.round(3.5));//4
            //正平方跟
            System.out.println(Math.sqrt(4)); //相当于 Math.pow(4,0.5)
        }
    }
    /**
     *
     * 需求:请设计一个方法,可以实现获取任意范围内的随机数。
     * 
     * 分析:
     *         A:键盘录入两个数据。
     *             int strat;
     *             int end;
     *         B:想办法获取在start到end之间的随机数
     *             我写一个功能实现这个效果,得到一个随机数。(int)
     *         C:输出这个随机数
     */
     
    public class Demo {
        public static void main(String[] args) {
            //键盘输入2个数
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入start:");
            int start = sc.nextInt();
            System.out.println("请输入end:");
            int end = sc.nextInt();
            //在start到end之间产生一个随机数
            for(int x =0;x<100;x++){
             int c = random(start,end);
             //输出随机数
             System.out.println(c);}
        }
    
        //产生随机数的方法
        private static int random(int start, int end) {
            int num = (int) (Math.random()*(end-start+1))+start;
            return num;
        }
    }

    二、Random类:产生随机数的类

    /*
     * Random:产生随机数的类
     * 
     * 构造方法:
     *         public Random():没有给种子,用的是默认种子,是当前时间的毫秒值
     *        public Random(long seed):给出指定的种子
     *
     *        给定种子后,每次得到的随机数是相同的。
     *
     * 成员方法:
     *         public int nextInt():返回的是int范围内的随机数
     *        public int nextInt(int n):返回的是[0,n)范围的内随机数
     */
    public class RandomDemo {
        public static void main(String[] args) {
            // 创建对象
            // Random r = new Random();
            Random r = new Random(1111);
    
            for (int x = 0; x < 10; x++) {
                // int num = r.nextInt();
                int num = r.nextInt(100) + 1;
                System.out.println(num);
            }
        }
    }

    三、System类:System 类包含一些有用的类字段和方法。它不能被实例化。

      

    public class Demo3_System {
    
        /**
         * * A:System类的概述
                * System 类包含一些有用的类字段和方法。它不能被实例化。 
            * B:成员方法
                * public static void gc():运行垃圾回收器
                * public static void exit(int status):终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。
                * public static long currentTimeMillis()获取当前时间的毫秒值从1970年1月1日 00:00:00 开始
                * pubiic static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)复制数组 
            * C:案例演示
                * System类的成员方法使用
         */
        public static void main(String[] args) {
            //demo1();
            //demo2();
            //demo3();
            
            int[] src = {11,22,33,44,55};
            int[] dest = new int[8];
            for (int i = 0; i < dest.length; i++) {
                System.out.println(dest[i]);
            }
            
            System.out.println("--------------------------");
            System.arraycopy(src, 0, dest, 0, src.length);        //将数组内容拷贝
            
            for (int i = 0; i < dest.length; i++) {
                System.out.println(dest[i]);
            }
        }
    
        public static void demo3() {
            long start = System.currentTimeMillis();        //1秒等于1000毫秒
            for(int i = 0; i < 1000; i++) {
                System.out.println("*");
            }
            long end = System.currentTimeMillis();            //获取当前时间的毫秒值
            
            System.out.println(end - start);
        }
    
        public static void demo2() {
            System.exit(1);                            //非0状态是异常终止,退出jvm
            System.out.println("11111111111");
        }
    
        public static void demo1() {
            for(int i = 0; i < 100; i++) {
                new Demo();
                System.gc();                        //运行垃圾回收器,相当于呼喊保洁阿姨
            }
        }
    
    }
    
    class Demo {                                    //在一个源文件中不允许定义两个用public修饰的类
    
        @Override
        public void finalize() {
            System.out.println("垃圾被清扫了");
        }                            
        
    }

    四、BigInteger类:可以让超过Integer范围内的数据进行运算

    /**
         ** A:BigInteger的概述
                * 可以让超过Integer范围内的数据进行运算
            * B:构造方法
                * public BigInteger(String val)
            * C:成员方法
                * public BigInteger add(BigInteger val) 加法
                * public BigInteger subtract(BigInteger val) 减法
                * public BigInteger multiply(BigInteger val) 乘法
                * public BigInteger divide(BigInteger val) 除法
                * public BigInteger[] divideAndRemainder(BigInteger val) 取除法运算后的结果(商)和余数
         */
    public class Demo {
        public static void main(String[] args) {
            BigInteger bi1 = new BigInteger("5");
            BigInteger bi2 = new BigInteger("2");
            
            System.out.println(bi1.add(bi2));//bi1+bi2
            System.out.println(bi1.subtract(bi2));//bi1-bi2
            System.out.println(bi1.multiply(bi2));//bi1*bi2
            System.out.println(bi1.divide(bi2));//bi1/bi2
            BigInteger[] arr = bi1.divideAndRemainder(bi2);//取商和余数
            for(int x=0;x<arr.length;x++){
                System.out.println(arr[x]);// 商:2  余数;1
            }
            
        }
        
    }    

    五、BigDecimal类:不可变的、任意精度的有符号十进制数,可以解决数据丢失问题

    public class Demo5_BigDecimal {
    
        /**
         * * A:BigDecimal的概述
                * 由于在运算的时候,float类型和double很容易丢失精度,演示案例。
                * 所以,为了能精确的表示、计算浮点数,Java提供了BigDecimal
            
                * 不可变的、任意精度的有符号十进制数。
            * B:构造方法
                * public BigDecimal(String val)
            * C:成员方法
                * 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):商,几位小数,如何舍取
     */ * D:案例演示 * BigDecimal类的构造方法和成员方法使用 十进制表示1/3 0.3333333333333333333333333333333333333333
    */ public static void main(String[] args) { //System.out.println(2.0 - 1.1); /*BigDecimal bd1 = new BigDecimal(2.0); //这种方式在开发中不推荐,因为不够精确 BigDecimal bd2 = new BigDecimal(1.1); System.out.println(bd1.subtract(bd2));*/ /*BigDecimal bd1 = new BigDecimal("2.0"); //通过构造中传入字符串的方式,开发时推荐 BigDecimal bd2 = new BigDecimal("1.1"); System.out.println(bd1.subtract(bd2));*/ BigDecimal bd1 = BigDecimal.valueOf(2.0); //这种方式在开发中也是推荐的 BigDecimal bd2 = BigDecimal.valueOf(1.1); System.out.println(bd1.subtract(bd2));
         System.out.println("divide:"
                        + bd1.divide(bd2, 3, BigDecimal.ROUND_HALF_UP)); }

    六、Date类:表示特定的瞬间,精确到毫秒

        构造方法:
           Date():根据当前的默认毫秒值创建日期对象
           Date(long date):根据给定的毫秒值创建日期对象

        成员方法:

          public long getTime():获取时间,以毫秒为单位
          public void setTime(long time):设置时间
      
             从Date得到一个毫秒值
            getTime()
          把一个毫秒值转换为Date
             构造方法
            setTime(long time)

    /**
     * Date类:表示特定的瞬间,精确到毫秒
          构造方法:
           Date():根据当前的默认毫秒值创建日期对象
           Date(long date):根据给定的毫秒值创建日期对象
        成员方法:
          public long getTime():获取时间,以毫秒为单位
          public void setTime(long time):设置时间
      
             从Date得到一个毫秒值
            getTime()
          把一个毫秒值转换为Date
             构造方法
            setTime(long time)
    */
     
    public class Demo {
        public static void main(String[] args) {
            /*Date d = new Date();
            System.out.println(d);//输出当前时间 年月日  小时 :分:秒
        
            Date d = new Date(1000);//输入的毫秒数
            System.out.println(d);//得到的结果是从1970年1月1日 00:00:00秒后加上给定的毫秒数后的时间
            */
            /*Date d = new Date();
            d.setTime(1000);
            System.out.println(d);//和Date(long time)一样
            */
            Date d = new Date();
            System.out.println(d.getTime());//获取从1970年1月1日到当前时间的毫秒数,相当于System.currentTimeMills()
            System.out.println(System.currentTimeMillis());
        }
        
    }    

    七、DateForamt类:可以进行日期和字符串的格式化和解析,但是由于是抽象类,所以使用具体子类SimpleDateFormat。

      SimpleDateFormat的构造方法:
               SimpleDateFormat():默认模式
               SimpleDateFormat(String pattern):给定的模式

                            年 y
                            月 M 
                            日 d
                            时 H
                            分 m
                            秒 s

        DateForamt类的成员方法
               public final String format(Date date):将一个 Date 格式化为日期/时间字符串。
               public Date parse(String source): 将自定义的时间格式字符串转成 英文格式的时间 时间字符串必须与构造函数中的格式一致

    public class Demo {
        
    
        public static void main(String[] args) throws ParseException {
                Date d = new Date();
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
                System.out.println(sdf.format(d));
                
                String str = "2017/12/33 22:90:20";
                Date d2 = sdf.parse(str);
                System.out.println(d2);

           Date d3 = new Date();
        SimpleDateFormat sdf2 = new SimpleDateFormat();//默认格式
        System.out.println(sdf2.format(d3)); }

    结果:2017/04/05 17:00:21
    Tue Jan 02 23:30:20 CST 2018
    17-4-5 下午5:00

     八、Calendar类:是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。

       成员方法
          public static Calendar getInstance() 使用默认时区和语言环境获得一个日历。
          public int get(int field) 返回给定日历字段的值
     
       public void add(int field,int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量
       public final void set(int year,int month,int date)设置日历字段 YEARMONTHDAY_OF_MONTH 的值

    public class Demo {
        
    
        public static void main(String[] args) throws ParseException {
                Calendar c = Calendar.getInstance();// 使用默认时区和语言环境获得一个日历
                System.out.println(c);
                //public int get(int filed)演示
                int a = c.get(Calendar.DAY_OF_MONTH);
                System.out.println(a);
                System.out.println(c.get(Calendar.YEAR));//获取年
                System.out.println(c.get(Calendar.MONTH));//获取月,是从零开始算起
                System.out.println("现在的日期是:"+c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");
                
                //public void add(int field,int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量
                c.add(Calendar.YEAR, -1);//返回一年前
                System.out.println("一年前的今天是:"+c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");
                
                //未来5年的2个月前10天后  即 2023年216号
                c.add(Calendar.YEAR, 5);
                c.add(Calendar.MONTH, -2);
                c.add(Calendar.DAY_OF_MONTH, 10);
                System.out.println("未来的日期是:"+c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DAY_OF_MONTH)+"日");
                
                //public final void set(int year,int month,int date)设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值
                c.set(2008, 8, 8);
                int year = c.get(Calendar.YEAR);
                int mouth = c.get(Calendar.MONTH);
                int date = c.get(Calendar.DATE);
                
                System.out.println("获得的日期是:"+year+"年"+mouth+"月"+date+"日");
                        
                    
        }
        
    }    
  • 相关阅读:
    ABP初始化
    ABP生成错误:必须添加对程序集“netstandard”的引用
    树莓派安装Mysql
    多对多关系的中间表命名
    dapper.net 存储过程
    Rabbitmq发送方消息确认
    Rabbitmq发送消息Message的两种写法
    ThreadLocal原理
    多模块打包为可执行jar问题
    类中属性加载顺序的demo
  • 原文地址:https://www.cnblogs.com/flei/p/6669534.html
Copyright © 2011-2022 走看看