专栏首页upuptop的专栏【趣学程序】java常用类(二)

【趣学程序】java常用类(二)

java中的常用类(二)

Math类

Math类的声明: publicfinalclassMathextendsObjectMath类是与数学计算有关的类,里面的方法都是静态方法,直接使用类名来调用即可。

常用方法

以下X表示double,float,int, long

  • abs(X x):求绝对值
  • max(X x1,X x2):求最大值
  • min(X x1,X x2):求最小值
  • public static double random():返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。和使用new java.util.Random一样
  • Math.PI:π的值;
    public class MathDemo {


        public static void main(String[] args) {

            //- abs(X x):求绝对值

            //        - max(X x1,X x2):求最大值

            //        - min(X x1,X x2):求最小值

            //        - public static double random():返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。和使用new java.util.Random一样

            //        - Math.PI:π的值;


            int abs = Math.abs(-10);

            System.out.println(abs);


            int max = Math.max(19, 20);

            System.out.println(max);



            int min = Math.min(100, 90);

            System.out.println(min);


            double random = Math.random();

            //输出随随机值为0.0到1.0之间,[0,1)

            System.out.println(random);


            //    输出1到10之间的整数随机数

            int randomNum = (int) (Math.random() * 10 + 1);

            System.out.println(randomNum);


            //    输出π的值

            System.out.println(Math.PI);


        }


    }

Random类

负责生成伪随机数,该类主要用于输出随机数字。

常用方法:

  • Random() 创建一个新的随机数生成器。
  • int nextInt() 返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。
  • int nextInt(int n) 返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值n(不包括)之间均匀分布的 int 值。
    public class RandomDemo {

        public static void main(String[] args) {

            //在进行随机时,随机算法的起源数字称为种子数(seed),

            //在种子数的基础上进行一定的变换,从而产生需要的随机数字。

            Random random1 = new Random(12);

            Random random2 = new Random(12);


            for (int i = 0; i < 10; i++) {

                //相同种子数的Random对象,相同次数生成的随机数字是完全相同的。

                System.out.println(random1.nextInt() == random2.nextInt());

                //上面的输出语句,会输出10个true

            }



            Random random3 = new Random();

            Random random4 = new Random();


            for (int i = 0; i < 10; i++) {

                //没有种子,随机

                System.out.println(random3.nextInt() == random4.nextInt());

            }

            Random random5 = new Random(1);

            Random random6 = new Random();


            for (int i = 0; i < 10; i++) {

                //种子不同,随机

                System.out.println(random5.nextInt() == random6.nextInt());

            }



            System.out.println("======================分割线======================");


            //    生成一个1-10的整数随机数

            Random random = new Random();

            for (int i = 0; i < 100; i++) {

                int i1 = random.nextInt(10);

                System.out.println(i1);

            }


        }

    }

UUID

UUID类:用唯一标识符 (UUID) 的类。UUID 表示一个 128 位的值。UUID(Universally Unique Identifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。按照开放软件基金会(OSF)制定的标准计算,用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。由以下几部分的组合:当前日期和时间(UUID的第一个部分与时间有关,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同), 时钟序列,全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得),UUID的唯一缺陷在于生成的结果串会比较长。标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxx (8-4-4-4-12),其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字;

用途:UUID用于标志一个唯一值,例如:防止文件名重复,数据库主键防止重复等,可以保证全网唯一。

    public class Demo27 {

        public static void main(String[] args) {

            UUID u = UUID.randomUUID();

            String s = u.toString();

            System.out.println(s);//此时是随机生成的,肯定每次都不一样,全网唯一!


            u = new UUID(1222222222, 12);//根据构造方法来

            s = u.toString();

            System.out.println(s);//这一个的UUID是固定的。

        }

    }

我的总结:UUID(用来标示文件名等(免得文件上传因为名字可能一样而被覆盖),!)

Date

类的声明:java.util.Datejava中的日期类,不过大部分的方法已过时,不推荐使用,但是你使用过时的方法也不会报错。

构造方法:

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

SimpleDateFormat

类的声明:java.text.SimpleDateFormat

SimpleDateFormat 是一个与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。

常用方法

  • SimpleDateFormat(String pattern) 用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat。
  • public final String format(Date date)将一个 Date 格式化为日期/时间字符串。
  • public Date parse(String source) throws ParseException:把字符串source表示的时间按source的格式转成Date对象。

练习:String与Date的相互转化

    /*


    按某种时间格式来输出指定的String类型时间

    date2String

    format


    把某种时间格式的String时间转成Date类型时间

    string2Date

    parse


    */


    import java.text.SimpleDateFormat;

    import java.util.Date;


    public class Demo28 {

        public static void main(String[] args) throws Exception {


            Date d = new Date();

            System.out.println(d);//获取当前时间


            //格式化

            SimpleDateFormat  sd = new SimpleDateFormat("yyyy-M-d HH:mm:ss E");


            String s = sd.format(d);//这个方法继承于SimpleDateFormat的父类DateFormat类!

            System.out.println(s);


            //反格式化

            d = sd.parse(s);

            System.out.println(d);

        }

    }

Calendar

推荐使用处理日期和时间的类Calendar; 是抽象类,不能实例化,通过 staticCalendargetInstance() 获得一个Calendar对象。

常用常量

  • YEAR 表示年的字段数字。
  • MONTH 表示月份字段数字,月份范围是[0,11]。
  • DATE 表示一个月中的某天。
  • DAYOFMONTH 表示一个月中的某天。
  • DAYOFWEEK 表示一个星期中的某天。
  • HOUROFDAY / HOUR 表示第几小时
  • MINUTE 表示第几分钟
  • SECOND 表示第几秒

常用的方法

  • Date getTime() 返回一个表示此 Calendar 时间值的 Date 对象。
  • void set(int year, int month, int date, int hour, int minute, int second) 设置字段 YEAR、MONTH、DAYOFMONTH、HOUR、MINUTE 和 SECOND 的值。
  • abstract void add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量。

注意若 amount为负数,则减去一天, 若 amount为正数 ,则加上一天

使用例子

    import java.util.Calendar;

    import java.util.Date;


    public class Demo29 {

        public static void main(String[] args) {

            Calendar c = Calendar.getInstance();

            System.out.println(c);


            Date d = c.getTime();

            System.out.println(d);


            /**

             * void set(int year, int month, int date, int hour, int minute, int second)

             * 设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。

             */


            c.set(2015, 07, 15, 12, 24, 55);

            d = c.getTime();

            System.out.println(d);


            c.add(Calendar.DAY_OF_MONTH, 3);

            d = c.getTime();

            System.out.println(d);

        }

    }

“查询距今最近三天内的记录”,这里的‘三天内’是什么时间段?将当前日期时间转换为 只获取当天的00:00:00 如: 2011-08-08 12:12:12 转化为 2011-08-08 00:00:00、

    import java.text.SimpleDateFormat;

    import java.util.Calendar;

    import java.util.Date;


    public class Demo30 {

        public static void main(String[] args) {


            Calendar c = Calendar.getInstance();

            Date d = c.getTime();

            System.out.println(d);


            SimpleDateFormat sd = new SimpleDateFormat("yyyy-M-d HH:mm:ss E");


            String s = sd.format(d);

            System.out.println(s);


            c.set(2015, 8, 23, 13, 24, 15);

            d = c.getTime();

            System.out.println(sd.format(d));

            c.add(Calendar.DAY_OF_MONTH, -3);

            d = c.getTime();

            System.out.println(sd.format(d));

        }

    }


    输出:

    Thu Jul 04 08:56:51 CST 2013

    2013-7-4 08:56:51 星期四

    2015-9-23 13:24:15 星期三

    2015-9-20 13:24:15 星期日

System

System 类包含一些与系统相关的类字段和方法。它不能被实例化,类中所有属性和方法都是static,可直接被System调用。

常用方法:

  • static void exit(int status) 终止虚拟机的运行.对于发生了异常情况而想终止虚拟机的运行,传递一个非0数值,对于正常情况下退出系统传递0值; 该方法实际调用的是Runtime.getRuntime().exit(int status);
  • static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 数组拷贝
  • static long currentTimeMillis() 返回以毫秒为单位的当前时间。
  • String getenv(String name) 获得指定的环境变量;
  • static void gc() 运行垃圾回收器。实际上调用了 Runtime中的gc()方法;
  • Runtime.getRuntime().exec("notepad ") 运行cmd中的命令
  • static Properties getProperties() 取得当前的系统属性。
  • static String getProperty(String key) 取得指定键指示的系统属性。
  • static String getProperty(String key, String def) 获取用指定键描述的系统属性,def表示默认信息。
    public class Demo32 {

        public static void main(String[] args) {

            Properties p = System.getProperties();

            System.out.println(p);


            System.out.println(System.getenv());

        }

    }

本文分享自微信公众号 - 趣学程序(quxuechengxu),作者:upuptop

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-08-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【趣学程序】java基础知识(一)

    可以简单的理解为Java程序为了加强阅读行自定义的名称,如类名、方法名、变量名。仅仅是个名字而已。对于这样一个名字不像我们人类一样可以随意起名,程序有一定的命名...

    趣学程序-shaofeer
  • 【趣学程序】java常用类(一)

    String表示字符串,所谓字符串,就是一连串的字符,是java中最常用的类之一。 String是不可变类,一旦String对象被创建,包含在对象中的字符序列(...

    趣学程序-shaofeer
  • 【趣学程序】java中的方法

    趣学程序-shaofeer
  • JAVA入门学习五

    Scanner的概述:一个简单的文本扫描器,可以使用正则表达式解析原始类型和字符串,以默认空格作为分割。 Scanner的构造方法原理:

    WeiyiGeek
  • Java语言

    Java分为3个体系,为JavaSE,JavaEE,JavaME,是一种面向对象的程序设计语言,记住Oracle公司收购了 Sum公司,然后Oracle公司就负...

    达达前端
  • java中如何获取一个正整数的位数?

    用户1697231
  • Java集合:整体结构

    用户2140019
  • Java集合:整体结构

    用户2140019
  • Java基础-12(01)总结Scanner,String

    1:Scanner的使用(了解) (1)在JDK5以后出现的用于键盘录入数据的类。 (2)构造方法: A:讲解了System.in这个东西。 它其实是标...

    Java帮帮
  • 知识点——Java常用API

    为了解决String字符串操作导致的内存冗余,提高效率,Java中提供了StringBuffer和StringBuilder来操作字符串,并且提供了很多方法,便...

    用户7073689

扫码关注云+社区

领取腾讯云代金券