Java小记——常用类

目录

Math类

成员变量

成员方法

Random类

System类

BigDecimal类

构造方法

成员方法

BigInteger类

构造方法

成员方法

Date类

构造方法

成员方法

@Deprecated 注解

SimpleDateFormat类

构造方法

日期 Date-----日期字符串 String互转

Calendar类

get()方法

set()方法

add()方法


Math类

Math 类包含用于执行基本数学运算的方法

成员变量

final double E :自然底数

final double PI:圆周率

double pi = Math.PI;
System.out.println(pi);

成员方法

public static int abs ( int a)       取绝对值

System.out.println(Math.abs(-10));

public static double ceil ( double a)     向上取整

System.out.println(Math.ceil(3.14));   //打印4.0

public static double floor ( double a)    向下取整

System.out.println(Math.floor(3.14)); //3.0

public static int max ( int a, int b)    获取最大值

int max = Math.max(90,500);
System.out.println(max); //500

public static int min ( int a, int b)     获取最小值

double min = Math.min(60, 3.5);  //有小数用double
System.out.println(min); //3.5

public static double pow ( double a, double b)    获取a的b次幂

System.out.println(Math.pow(2, 4)); //16.0

public static double random ()   获取随机数 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0

int a = (int)Math.random();  // [0,1)

public static int round ( float a)   四舍五入

System.out.println(Math.round(3.69)); //4

public static double sqrt ( double a)   获取正平方根

System.out.println(Math.sqrt(4));  //2.0

Random类

构造方法

一.Random()             没有给定种子,使用的是默认的(当前系统的毫秒值)

Random random = new Random();

成员方法

1. nextInt()  没有参数 表示的随机数范围 是int类型的范围

2. nextInt(int n)//可以指定一个随机数范围 

int num = random.nextInt(100); //0-99

3.nextLong()

4.nextDouble()

5.nextBoolean() //true or false

6.nextBytes(byte[] bytes)  生成随机字节并将其置于用户提供的空的 byte 数组中。 

byte[] bytes = new byte[10];

random.nextBytes(bytes);

System.out.println(Arrays.toString(bytes));

二.Random(long seed)         给定一个long类型的种子,给定以后每一次生成的随机数是相同的

Random random = new Random(1);

给定种子,随机数不变,种子不同,随机数不同

System类

1. public static final InputStream in“标准”输入流。此流已打开并准备提供输入数据。通常,此流对应于键盘输入

InputStream in = System.in;

Scanner scanner = new Scanner(in);

Scanner scanner = new Scanner(System.in);

2.  public static final PrintStream out“标准”输出流。此流已打开并准备接受输出数据。通常,此流对应于显示器输出

PrintStream out = System.out;

out.println(1);

System.out.println(1);

3.System.err.println() //显示错误信息,标红

4.exit(int status)    0是正常退出,非0是异常退出

System.exit(0); //正常退出

5.currentTimeMillis()   //获取当前时间的毫秒值

System.currentTimeMillis();

例:循环5000次用的时间

public class MyTest {
    public static void main(String[] args) {
        long start = System.currentTimeMillis();
        for (int i = 0; i < 5000; i++) {
            System.out.println(i);
        }
        long end = System.currentTimeMillis();

        System.out.println("耗时:" + (end - start) + "毫秒");
    }
}

6. gc()  //调用垃圾回收器

System.gc();

int[] arr = new int[3];

//置为null 有利于垃圾回收器的及早回收

arr = null;

BigDecimal类

由于在运算的时候,float类型和double很容易丢失精度,如果我们有更高精度的要求,double就不满足了。BigDecimal 这个类可以满足我们对精度要求。

构造方法

BigDecimal(String val)  //可以传int  double类型,一般用String类传

BigDecimal a = new BigDecimal("3.25585858585474747474");

BigDecimal b = new BigDecimal("3.2558585858547474747499999");

成员方法

add(BigDecimal augend)  //加

subtract (BigDecimal subtrahend)  //减

multiply(BigDecimal multiplicand)  //乘

BigDecimal multiply = a.multiply(b);
String s = multiply.toString();
System.out.println(s);

divide(BigDecimal divisor)   //除

能整除

BigDecimal c = new BigDecimal("10");

BigDecimal d = new BigDecimal("2");

BigDecimal devide = c.devide(d);

System.out.println(devide.toString()); //打印5

divide(BigDecimal divisor,int scale,int roundingMode)   //scale 小数点后面保留几位

不能整除

BigDecimal c = new BigDecimal("10");

BigDecimal d = new BigDecimal("3");

BigDecimal devide = c.devide(d,30,ROUND_HALF_UP); //保留小数点后30位

System.out.println(devide.toString()); //3.3333333333333333333333333333333

注意:

BigDecimal a =new BigDecimal(0.1);

System.out.println(a); //打印0.1000000000000000055511151231257827021181583404541015625

0.1无法准确地表示为 double

写入 newBigDecimal(“0.1”) 将创建一个 BigDecimal,它正好等于预期的 0.1。因此,比较而言, 通常建议优先使用String构造方法。

BigInteger类

BigInteger  用于超过long类型范围的

构造方法

BigInteger(String val)

成员方法

add(BigInteger val)  //加

subtract(BigInteger val)   //减

multiply(BigInteger val)    //乘

divide(BigInteger val)    //除

BigInteger[] divideAndRemainder(BigInteger val)   //取除数和余数

public class MyTest {
    public static void main(String[] args) {
        BigInteger bi1=new BigInteger("100");
        BigInteger bi2=new BigInteger("2");

        System.out.println(bi1.add(bi2));   //+
        System.out.println(bi1.subtract(bi2));   //-
        System.out.println(bi1.multiply(bi2));   //*
        System.out.println(bi1.divide(bi2));    //(除)

        BigInteger[] arr=bi1.divideAndRemainder(bi2);    //取除数和余数
        for(int i=0;i<arr.length;i++){
            System.out.println(arr[i]);
        }

    }
}

结果

102
98
200
50
50
0

Date类

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

构造方法

1. Date()

Date date = new Date();

System.out.println(date.toString());  //Sun May 08 09:03:59 CST 2022

2. Date(long date)    //把一个long类型的毫秒值转换成一个日期对象

从1970 年 1 月 1 日 00:00:00开始增加毫秒

Date date= new Date(1000 * 60 * 60 * 24);  //增加一天
System.out.println(date); //Fri Jan 02 08:00:00 CST 1970 

成员方法

1.getYear()

Date date = new Date();
int year = date.getYear();
System.out.println(year);

2.getMonth()

3.getDay()

4.getTime()  //获取从历元年1970 年 1 月 1 日 00:00:00 到现在所间隔的毫秒值

Date date = new Date();

long time = date.getTime();

@Deprecated 注解

@Deprecated //标示这个类过时
public class MyUtils {
    @Deprecated //标示,此方法过时
    public static int add(int a, int b) {
        return a + b;
    }
}

SimpleDateFormat类

格式化日期

构造方法

1. SimpleDateFormat()

Date date = new Date();

SimpleDateFormat s = new SimpleDateFormat(); 空参构造,没有指定格式,按照的是默认格式

String dateStr = s.format(date);

System.out.println(dateStr); //22-5-8 上午9:25

2. SimpleDateFormat(String pattern)

  • y 年

  • M 月

  • d 天

  • H 时

  • m 分

  • s 秒

  • E  星期

SimpleDateFormat s = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E");

String dateStr = s.format(date);

System.out.println(dateStr);

日期 Date-----日期字符串 String互转

1.日期 Date-----日期字符串 String

Date date = new Date();
SimpleDateFormat s = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒 E");
String dateStr = s.format(date);

2.日期字符串 String----日期 Date

String dateStr = "2000-10-10 14:30:30";
//注意格式 和日期字符串的格式要对应,否则就解析失败。
SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date date = simpleDateFormat.parse(dateStr);

System.out.println(date1);

Calendar类

是一个抽象类

static Calendar getInstance ()   使用默认时区和语言环境获得一个日历。

Calendar instance = Calendar.getInstance();
System.out.println(instance);

//java.util.GregorianCalendar[time=1651976698368,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar
         * .ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=29,lastRule=null],firstDayOfWeek=1,
         * minimalDaysInFirstWeek=1,ERA=1,YEAR=2022,MONTH=4,WEEK_OF_YEAR=20,WEEK_OF_MONTH=2,DAY_OF_MONTH=8,DAY_OF_YEAR=128,DAY_OF_WEEK=1,
         * DAY_OF_WEEK_IN_MONTH=2,AM_PM=0,HOUR=10,HOUR_OF_DAY=10,MINUTE=24,SECOND=58,MILLISECOND=368,ZONE_OFFSET=28800000,DST_OFFSET=0]

get()方法

int year = instance.get(Calendar.YEAR);
int month = instance.get(Calendar.MONTH);
int day = instance.get(Calendar.DAY_OF_MONTH);
int hour = instance.get(Calendar.HOUR_OF_DAY);
int minute = instance.get(Calendar.MINUTE);
int second = instance.get(Calendar.SECOND);
int week = instance.get(Calendar.DAY_OF_WEEK);

System.out.println(year);
System.out.println(month);
System.out.println(day);

System.out.println(hour);
System.out.println(minute);
System.out.println(second);
System.out.println(week);  //星期天为1

set()方法

Calendar instance = Calendar.getInstance();
//设置年月日,时分秒
instance.set(2000, 9, 2, 14, 20, 30);

int year = instance.get(Calendar.YEAR);

System.out.println(year);
//可以单个设置
instance.set(Calendar.YEAR, 2005);

int year2 = instance.get(Calendar.YEAR);

System.out.println(year2);

add()方法

Calendar instance = Calendar.getInstance();
//把当前的年份,加上3年
instance.add(Calendar.YEAR, 3);
int year = instance.get(Calendar.YEAR);
System.out.println(year);

//如果你要减去时间量,传入负数值
instance.add(Calendar.DAY_OF_MONTH, -5);

int day = instance.get(Calendar.DAY_OF_MONTH);
System.out.println(day);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jmh-Ethereal

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值