String案例演示,BigDecimal,Date类,Calendar类,SimpleDateFormat类,System类

String案例演示,BigDecimal,Date类,Calendar类,SimpleDateFormat类,System类,总结

需求:

已知String str = “this is a text”;

  1. 将str中得单词单独或取出来
  2. 将str中得text替换为practice
  3. 在text前面插入一个easy
  4. 将每个单词得首字母改为大写

在这里插入图片描述

可变字符串

  1. StringBuffer:可变长字符串,JDK1.0提供,运行速率慢,线程安全,多线程
  2. StringBuilder:可变长字符串,JDK5.0提供,运行效率快,线程不安全,单线程

在这里插入图片描述

验证StringBuilder效率高于String

在这里插入图片描述

BigDecimal

思考:

public class TestBigDecimal {
    public static void main(String[] args) {

        double d1 = 1.0;
        double d2 = 0.9;
        System.out.println(d1-d2);
    }
}

double存储的是近似值,精度不高

BigDecimal

位置:java.math包中。

作用:精确计算浮点数。

创建方式:bigDecimal bd = new BigDecimla(“1.0”);

方法:

BigDecimal add(BigDecimal bd) 加

BigDecimal subtract(BigDecimal bd) 减

BigDecimal multiply(BigDecimal bd) 乘

BigDecimal divide(BigDecimal bd) 除

除法:divide(BigDecimal bd,int scal,RoundingMode mode)

参数scal:指定精确小数点后几位。

参数mode:

指定小数部分的取舍模式,通常采用四舍五入的模式

取值为BigDecimal.ROUND_HALF_UP

package Third;

import java.math.BigDecimal;

public class TestBigDecimal {
    public static void main(String[] args) {

        double d1 = 1.0;
        double d2 = 0.9;
        System.out.println(d1-d2);

        //面试题
        double result = (1.4-0.5)/0.9;
        System.out.println(result);
        //double存储的是近似值,精度不高

        //BigDecimal,大的浮点数精确计算
        BigDecimal bd1 = new BigDecimal("1.0");
        BigDecimal bd2= new BigDecimal("0.9");
        //subtract 减法
        BigDecimal r1 = bd1.subtract(bd2);
        System.out.println(r1);

        //加法
        BigDecimal r2 = bd1.add(bd2);
        System.out.println(r2);

        //乘法
        BigDecimal r3 = bd1.multiply(bd2);
        System.out.println(r3);

        //除法
        BigDecimal r4 = new BigDecimal("1.4")
                .subtract(new BigDecimal("0.5"))
                .divide(new BigDecimal("0.9"));
        System.out.println(r4);

        BigDecimal r5 = new BigDecimal("10").divide(new BigDecimal("3"),2,BigDecimal.ROUND_UP);
        System.out.println(r5);
        //除不尽会报错,在divide方法后加入保留几位小数即可
        //BigDecimal.ROUND_UP 采用四舍五入

    }
}

Date

Date表示特定的瞬间,精确到毫秒。Date类中的大部分方法都已经被Calendar类中的方法所取代。

时间单位

1秒 = 1000毫秒

1毫秒 = 1000微秒

1微秒 = 1000纳秒

在这里插入图片描述

Calendar

在这里插入图片描述

Calendar提供了获取或设置各种日历字段的方法。

构造方法

protected Calendar():由于修饰符是protected,所以无法直接创建该对象。

在这里插入图片描述

在这里插入图片描述

SimpleDateFormat

SimpleDateFormat是一个以与语言环境有关的方式来格式化和解析日期的具体类

进行格式化(日期->文本),解析(文本->日期)。

常用的时间模式字母

在这里插入图片描述

在这里插入图片描述

System类

System系统类,主要用于获取系统的属性数据和其他操作,构造方法私有的。静态的,不用创建对象,直接用System. 使用方法。(也就是说其他不是私有的类,都要先创建对象才能 . 使用咯???)

在这里插入图片描述

package Third;

import java.util.Arrays;

public class SystemDemo {
    public static void main(String[] args) {
        //arraycopy:数组的复制
        //src:原数组
        //srcPos:从哪个位置开始复制 0
        //dest:目标数组
        //destPos:目标数组的位置
        //length:复制的长度
        int[] arr = {20, 18, 15, 8, 35, 26, 45, 90};
        int[] dest = new int[8];
        System.arraycopy(arr, 4, dest, 0, 4);
        //复制目标数组arr,从第4个开始复制,复制到目标数组的 0(下标),复制长度4(个)

        for (int i = 0; i < dest.length; i++) {
            System.out.println(dest[i]);
        }
        //Arrays.copyOf()与System.arraycopy();后者是本地方法,效率更高

        System.out.println(System.currentTimeMillis());
        System.out.println("========================");

        long start = System.currentTimeMillis();
        int result = 0;
        for (int i = -999999999; i < 999999999; i++) {
            for (int j = -999999999; j < 999999999; j++) {
                result = i + j;
            }
        }
        //2.获取毫秒数
        System.out.println(result);
        long end = System.currentTimeMillis();
        System.out.println("用时:" + (end - start));
        //1970到走完这段代码的毫秒 - 1970到开始这段代码的毫秒
        System.out.println("========================");

        //垃圾回收
        new Student("aaa",19);
        new Student("bbb",19);
        Student s3 = new Student("ccc",19);

        System.gc();//System.gc();告诉垃圾回收器回收

        //4.退出jvm
        System.exit(0);
        System.out.println("程序结束了");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值