System类和String类

System类和String类

System类

java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在System类的API文档中常用的方法有:

  1. public static long currentTimeMillis():返回以毫秒为单位的当前时间
  2. public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):将数组中指定的数据拷贝到另一个数组中。

练习:
验证一个for循环打印数字1-9999所需要的时间和数组的拷贝

package com.review;

import java.util.Arrays;

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

        long start=System.currentTimeMillis();
        for (int i = 1; i <10000 ; i++) {
            //System.out.println(i);
        }
        long end=System.currentTimeMillis();
        //System.out.println(end-start);

        //拷贝数组
        int [] arr1=new int[]{1,2,3,4,5};

        int [] arr2=new int[]{6,7,8,9,10};

        System.arraycopy(arr1,0,arr2,0,3);
        System.out.println(Arrays.toString(arr2));

    }
}

String类,StringBuilder类和StringBuffer类

String类

String类是一个final类,被final修饰的类不能被继承,因此也没有子类。

public final class String
    implements java.io.Serializable, Comparable<String>, CharSequence 

由于String类的对象内容不可改变,所以每当进行字符串拼接时,总是会在内存中创建一个新的对象。例如:

package com.review;
public class StringDemo {
    public static void main(String[] args) {
        /*String s="abc";
        String s1="ab";
        String s2="c";
        System.out.println(s==(s1+s2));*///false
        String s="abc";
        String s1="ab";
        String s2=new String("c");
        System.out.println(s==(s1+s2));//false
    }
}

由此可知,如果对字符串进行拼接操作,每次拼接,都创建一个新的String对象,既耗时,又浪费空间。为了解决这一个问题,可以使用java.lang.StringBuilder类。

StringBuilder类

java.lang.StringBuilder又称为可变字符序列,它是一个类似于String的字符串缓冲区,通过某些方法调用可以改变序列的长度和内容。StringBuilder不是线程同步的,因此不安全。
StringBuilder类是个字符串缓冲区,即它是一个容器,容器中可以装很多字符串。并且能够对其中的字符串进行各种操作。
它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新的内容。StringBuilder会自动维护数组的扩容。

StringBuilder常用的两个方法

  1. public StringBuilder append(任意类型):添加任意类型数据的字符串形式,并返回当前对象自身
  2. public String toString():将当前的StringBuilder对象转为String对象

StringBuffer类

StringBuffer类用法与StringBuilder类相同,只不过StringBuffer是线程安全的。在不考虑线程安全的情况下,我们优先使用StringBuilder类,效率更高。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值