• java中的常用类(二)


    java中的常用类(二)

    Math类

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

    常用方法

    以下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.Date
    java中的日期类,不过大部分的方法已过时,不推荐使用,但是你使用过时的方法也不会报错。

    构造方法:

    • 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;
    是抽象类,不能实例化,通过static Calendar getInstance() 获得一个Calendar对象。

    常用常量

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

    常用的方法

    • Date getTime() 返回一个表示此 Calendar 时间值的 Date 对象。
    • void set(int year, int month, int date, int hour, int minute, int second) 设置字段 YEAR、MONTH、DAY_OF_MONTH、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());
    	}
    }
    
    
  • 相关阅读:
    Coursera机器学习week11 单元测试
    关于 TypeReference 的解释
    getModifiers 方法解释。
    instanceof isInstance isAssignableFrom 比较
    elasticsearch 基础 语法总结
    kibana 启动 关闭 和进程查找
    MD5 SHA1 SHA256 SHA512 SHA1WithRSA 的区别
    spring boot 项目 热启动
    java zip 压缩文件
    Packet for query is too large (1660 > 1024). You can change this value on the server by setting the max_allowed_packet' variable.
  • 原文地址:https://www.cnblogs.com/shaofeer/p/11349241.html
Copyright © 2020-2023  润新知