包装类和常用类

155 阅读7分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

一、包装类和常用类

1.1 常用类(聚合函数)

1.1.1 Math

概念: 是一个数学类,这个类中封装了很多用来做数学计算的方法。当我们需要使用到数学计算的时候,要能够想到这个类。这个类中有很多封装好的数学公式,而且,都是静态方法,方便调用。

1.1.2 常用静态类

属性描述
PI圆周率3.14159265358979323846
E自然对象2.7182818284590452354

1.1.3 常用方法

方法参数描述
absint/long/float/double计算一个数字的绝对值
max(int,int)/(long,long)/(float,float)/(double,double)计算两个数的最大值
min(int,int)/(long,long)/(float,float)/(double,double)计算两个数的最小值
roundfloat/double计算一个数的四舍五入
floorfloat/double计算一个数的向下取整
ceilfloat/double计算一个数的向上取整
pow(double,double)计算一个数的指定次幂
sqrtdouble计算一个数的平方根
random-获取(0,1)范围内的浮点型随机数

1.1.4实例代码

 package com.laity.basicSyntax.day6.aCommonClasses;
 
 /**
  * @author : Laity
  * @Project: JavaLaity
  * @Package com.laity.basicSyntax.day6.aCommonClasses
  * @date Date : 2021年12月04日 0:23
  * @Description: 常用类Math的使用
  */
 public class MathUsage {
     public static void main(String[] args) {
         mathRandom();
         //
     }
 
     /**
      * 关于Math类常用的属性和方法
      */
     public static void MathMethod() {
         // 1.关于Math的属性
         System.out.println(Math.PI);
         System.out.println(Math.E);
 
         // 2.常用方法
         // 2.1 求绝对值
         System.out.println(Math.abs(-10));
         int[] array = {1, 2, 3, 4, 5};
         // 2.2 求最大值
         System.out.println(Math.max(array[1], array[3]));
         // 2.3 求最小值
         System.out.println(Math.min(array[1], array[3]));
         // 2.4 四舍五入
         System.out.println(Math.round(3.1));
         // 2.5 向上取整
         Math.ceil(3.14);   // 找到第一个比3.14大的整数
         // 2.6 向下取整
         Math.floor(3.14);  // 找到第一个比3.14小的整数
         // 2.7 指定次幂
         System.out.println(Math.pow(3, 3));
         // 2.8 计算平方根
         System.out.println(Math.sqrt(2));  // 根号几
         // 2.9 计算一个数的3次方根
         System.out.println(Math.pow(27, 1.0 / 3.0));
         // 3.0 随机数 0-1 ---> float
         System.out.println(Math.random());
     }
 
     public static void mathRandom() {
         for (int i = 0; i < 10; i++) {
             System.out.println(Math.random());
         }
         // 生成0-100 的整型随机数
         for (int i = 0; i < 10; i++) {
             System.out.println((int) (Math.random() * 100));
         }
         // 拓展需求 50-100
         for (int i = 0; i < 10; i++) {
             System.out.println((int)(Math.random() * 50 + 50));
         }
     }
 }

1.2 常用类Random

1.2.1 概念

是一个专门负责产生随机数的类。在java中,random类在 java.util 包中。在使用之前,需要先导包。

  • 其实,随机数的产生,是一个由固定的随机数算法的。带入一个随机数种子,能够生成一个随机数列表。但是由于算法是固定的,因此会有一个“BUG”:比如
  • 随机数的种子相同,则生成的随机数列也是完全相同。

1.2.2 常用方法

方法参数描述
Random通过将系统时间作为随机数种子,实例化一个Random对象
Randomint通过一个指定的随机数种子,实例化一个Random对象
nexIntint生成一个[0, bounds) 范围内的整型随机数
nextInt生成一个int范围内的随机数
nextFloat生成一个[0,1) 范围内的float类型的随机数
nextDouble生成一个[0,1) 范围内的double类型的随机数
nextBoolean随机生成一个boolean类型数值

1.2.3 代码实例

 package com.laity.basicSyntax.day6.bRandom;
 
 import java.util.Random;
 
 /**
  * @author : Laity
  * @Project: JavaLaity
  * @Package com.laity.basicSyntax.day6.bRandom
  * @date Date : 2021年12月04日 0:57
  * @Description: Random关键字
  */
 public class RandomUsage {
     public static void main(String[] args) {
         randomSeed();
     }
 
     /**
      * 带有种子的随机数
      */
     private static void randomSeed(){
         // 1. 通过一个随机数种子,实例化一个Random对象
         Random random = new Random(1);
         // 2. 生成10个100范围内的随机数
         for (int i = 0; i < 10; i++) {
             System.out.print(random.nextInt(100)+",");
         }
         System.out.println();
         for (int i = 0; i < 10; i++) {
             System.out.print(random.nextInt(100)+",");
         }
     }
     /**
      * random 普通方法
      * nanotime 系统时间 以nanotime为种子
      */
     private static void randomBasic(){
         // 1. 实例化一个对象
         Random random = new Random();
         // 2. 使用Random中的方法,生成随机数
         // random.nextInt();              // 生成int范围内的随机数[-2^31, 2^31-1]
         // random.nextInt(3);       // 生成 [0, bound) 范围内的随机数
         // random.nextBoolean();          // 随机生成一个boolean类型数值
         // random.nextDouble();           // 生成一个[0,1) 范围内的double类型的随机数
         // random.nextFloat();            // 生成一个[0,1) 范围内的float类型的随机数
         // 3. 需求:生成20个[0, 100) 范围内的随机数
         for (int i = 0; i < 20; i++) {
             System.out.println(random.nextInt(100));
         }
         // 4. 需求:生成20个[50, 100) 范围内的随机数
         System.out.println(random.nextInt(50) + 50);
     }
 }

1.3 常用类BigInteger、BigDecimal

1.3.1 概念

这两个类都是用来表示数字的类,BigInteger表示整型数字,、BigDecimal表示浮点型数字。这两个类,可以用来描述非常、非常、非常大的数字。例如

整数,long是最大的表示范围,但是即便是long型,也有它表示不了的情况。、BigInteger就是可以表示任意大小的数字。

BigInteger:表示整型数字,不限范围。

BigDecimal:表示浮点型,不限范围,不限小数点后面的数字。

1.3.2 常用方法

 package com.laity.basicSyntax.day6.cBigIntegerClasses;
 
 import java.math.BigInteger;
 
 /**
  * @author : Laity
  * @Project: JavaLaity
  * @Package com.laity.basicSyntax.day6.cBigIntegerClasses
  * @date Date : 2021年12月04日 1:45
  * @Description: BigInteger 与 BigDecimal的使用
  */
 public class BigIntegerUsage {
     public static void main(String[] args) {
         // 实例化一个BigInteger对象:描述相当大的数字
         BigInteger biginteger = new BigInteger("1111111111111111111111111111111111111111111111111111111111111111111111");
         BigInteger biginteger1 = new BigInteger("2222222222222222222222222222222222222222222222222222222222222222222222");
         System.out.println(biginteger);
         System.out.println(biginteger1);
         // 四则运算
         System.out.println(biginteger1.add(biginteger));  // 加
         System.out.println(biginteger1.subtract(biginteger));  // 减法
         System.out.println(biginteger1.multiply(biginteger));  // 乘法
         System.out.println(biginteger1.divide(biginteger));   // 除法
         // 除法 保留商和余数,商存在结果的数组的第0位,余数存在结果的数组的第一位
         BigInteger[] bigIntegers = biginteger1.divideAndRemainder(biginteger);
         System.out.println(bigIntegers[0]);
         System.out.println(bigIntegers[1]);
     }
 }
 // 将BigInteger转型成为其他的基本数据类型的数据
 // 也可以转字符串  toString()
 
 // BigDecimal 是一样的

1.4 常用类Date

1.4.1 概念

是一个用来描述时间、日期的类。在java.util包中!!!

1.4.2 常用方法

 package com.laity.basicSyntax.day6.dDateClasses;
 
 import java.util.Date;
 
 /**
  * @author : Laity
  * @Project: JavaLaity
  * @Package com.laity.basicSyntax.day6.dDateClasses
  * @date Date : 2021年12月04日 2:03
  * @Description: Date
  */
 public class DateUsage {
     public static void main(String[] args) {
         // 1.实例化一个Date对象
         Date date = new Date();
         System.out.println(date);  // 获取当前时间 :Sat Dec 04 02:06:37 CST 2021
         System.out.println(date.getTime());  // 获取时间戳  1970-1-1 00:00:00:000 时间开始计算 到现在的毫秒
         System.out.println(date.getTime()/1000/60/60/24/365);  // 51年
         System.out.println(date.getDate());  // 获取日期
         System.out.println(date.getClass());
         // 设置时间戳
         date.setTime(123123114L);
         System.out.println(date);
         // 比较两个时间
         Date date1 = new Date(2132341413123L);
         System.out.println(date1);
         // date在date1之前 true
         System.out.println(date.before(date1));
     }
 }

1.5 常用类SimpleDateFormat

1.5.1 概念

是一个用来格式化时间的类。使用这个类,一般有两种操作

  • 将一个Date对象,转变成指定格式的时间字符串。
  • 将一个指定格式的字符串,转变成Date对象。

1.5.2 常用时间格式

在时间格式中,有几个常见的时间占位符。

占位符描述
y表示年。常用yyyy 表示长年份。 yy表示短年份。
M表示月。常用MM表示两个占位符,如果月份不够两位,往前补0.
d表示日。常用dd 表示两个占位符,如果日期不够两位,往前补0.
H表示时。24小时制,常用HH表示两个占位符,如果不够两位,补0.
h表示时。12小时制,常用hh 表示两个占位符,如果不够两位,补0.
m表示分。常用mm表示两个占位符,如果不够两位,补0
s表示秒。常用 ss 表示两个占位符,如果不够两位,补0.
S表示毫秒。常用SSS 表示三个占位符,如果毫秒不够三位,往前补0.

1.5.3 常用方法

 package com.laity.basicSyntax.day6.dDateClasses;
 
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
 /**
  * @author : Laity
  * @Project: JavaLaity
  * @Package com.laity.basicSyntax.day6.dDateClasses
  * @date Date : 2021年12月04日 2:31
  * @Description: SimpleDateFormat 格式化时间类
  */
 public class SimpleDateFormatUsage {
     public static void main(String[] args) {
         stringToDate();
     }
 
     /**
      * 将日期对象,格式化为指定格式的字符串
      */
     public static void dateToString(){
         Date date = new Date();
         // 格式化的字符串
         String format = "yyyy年MM月dd日 HH:mm:ss";
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
         // System.out.println(simpleDateFormat);
         String s = simpleDateFormat.format(date);
         System.out.println(s);
     }
 
     /**
      * 将一个指定格式的字符串,转变为一个日期对象
      */
     public static void stringToDate(){
         Date date = new Date();
         String format = "2021年12月04日 02:43:55";
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
         Date parse = SimpleDateFormat.parse(format);
         System.out.println(parse);
     }
 }

包装类文章链接