java高级篇2——System类、StringBuilder类、包装类

1、System类

  • java.lang.System类提供大量静态方法,可以获取与系统相关的信息或系统级操作。
  • 常用方法
    • public static long currentTimeMillis():返回以毫秒为单位的当前时间
    • public static void arraycopy(object src, int srcPos, Object dest, int destPods, int length):将数组中指定的数据拷贝到另一个数组中。
import java.util.Arrays;

public class StringDemo {
    public static void main(String[] args) {
        //用currentTimeMillis()查看程序效率
        long s = System.currentTimeMillis();  //获取当前时间(毫秒)
        for (int i = 0; i < 9999; i++) {
            System.out.println(i);
        }
        long e = System.currentTimeMillis();//获取执行完for循环后的时间
        System.out.println("运行时间:"+(e-s)+"毫秒");  //运行时间:965毫秒

        //System.arraycopy方法
        int[] src =  {1,2,3,4,5};
        int[] dest = {6,7,8,9,10};
        System.arraycopy(src,0,dest,0,3); //将src数组的前三个元素复制到dest数组的前三个位置
        System.out.println(Arrays.toString(dest));  //[1, 2, 3, 9, 10]  用Arrays.toString方法直接输出数组
    }
}

2、StringBuilder类

  • java.lang.StringBuilder类是字符串缓冲区,可以提高字符串的操作效率(看成一个长度可以变化的字符串),底层也是一个数组,但是没有被final修饰,可以改变长度
  • String类与StringBuilder类的区别
    java高级篇2——System类、StringBuilder类、包装类_第1张图片
  • 构造方法
    • public StringBuilder():构造一个空的StringBuilder容器。
    • public StringBuilder(String str):构造一个StringBuilder容器,并将字符串添加进去。
public class StringBuilderDemo {
    public static void main(String[] args) {
        StringBuilder sb1 = new StringBuilder();
        System.out.println(sb1); // (空白)
        // 使用带参构造
        StringBuilder sb2 = new StringBuilder("itcast");
        System.out.println(sb2); // itcast
    }
}
  • 常用方法
    • public StringBuilder append(…):添加任意类型数据的字符串形式,并返回当前对象自身。
    • public String toString():将当前StringBuilder对象转换为String对象。
//append方法具有多种重载形式,可以接收任意类型的参数。任何数据作为参数都会将对应的字符串内容添加到StringBuilder中。
public class Demo02StringBuilder {
	public static void main(String[] args) {
		//创建对象
		StringBuilder builder = new StringBuilder();
		//public StringBuilder append(任意类型)
		StringBuilder builder2 = builder.append("hello");
		//对比一下
		System.out.println("builder:"+builder); // StringBuilder已经覆盖重写了Object当中的toString方法。
		System.out.println("builder2:"+builder2);
		System.out.println(builder == builder2); //true
	    // 可以添加 任何类型
		builder.append("hello");
		builder.append("world");
		builder.append(true);
		builder.append(100);
		// 在我们开发中,会遇到调用一个方法后,返回一个对象的情况。然后使用返回的对象继续调用方法。
        // 这种时候,我们就可以把代码现在一起,如append方法一样,代码如下
		//链式编程
		builder.append("hello").append("world").append(true).append(100);
		System.out.println("builder:"+builder);
	}
}
//通过toString方法,StringBuilder对象将会转换为不可变的String对象。
public class Demo16StringBuilder {
    public static void main(String[] args) {
        // 链式创建
        StringBuilder sb = new StringBuilder("Hello").append("World").append("Java");
        // 调用方法
        String str = sb.toString();
        System.out.println(str); // HelloWorldJava
    }
}

3、包装类

  • Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要基本类型像对象一样操作,就可以使用基本类型对应的包装类。
    byte ——Byte
    short ——Short
    int —— Integer
    long —— Long
    float ——Float
    double ——Double
    char ——Character
    boolean—— Boolean
  • 装箱与拆箱:基本类型与对应的包装类对象之间,来回转换的过程称为”装箱“与”拆箱“:
    • 装箱:从基本类型转换为对应的包装类对象。
    • 构造方法:Integer(int value)、Integer(String s)s必须为基本类型的字符串
    • 静态方法:static Integer valueOf(int i)、static Integer valueOf(String s)
    • 拆箱:从包装类对象转换为对应的基本类型。
    • 成员方法:int intValue()
// 装箱:基本数值---->包装对象
Integer i = new Integer(4);//使用构造函数函数
Integer i = new Integer("4");
Integer iii = Integer.valueOf(4);//使用包装类中的valueOf方法

// 拆箱:包装对象---->基本数值
int num = i.intValue();
  • 自动装箱与自动拆箱
    • 由于=经常要做基本类型与包装类之间的转换,从Java 5(JDK 1.5)开始,基本类型与包装类的装箱、拆箱动作可以自动完成。
Integer i = 4;//自动装箱。相当于Integer i = Integer.valueOf(4);
i = i + 5;//等号右边:将i对象转成基本数值(自动拆箱) i.intValue() + 5;
//加法运算完成后,再次装箱,把基本数值转成对象。

ArrayList<Integer> list = new ArrayList<>();
list.add(1);//自动装箱
int a = list.get(0); //自动拆箱
  • 基本类型与字符串之间的转换
    • 基本类型转换为String:
      • 基本类型直接与””相连接即可;如:34+""
      • 包装类的静态方法:toString(参数),不是Object类的toString,是重载。static String toString(int i)
      • String类的静态方法valueOf。static String valueOf(int i)
    • String转换为基本类型
      • 使用包装类的静态方法parseXXX(“字符串”)static int parseInt(String s)、static double parseDouble(String s)
public class BasicToStringDemo {
    public static void main(String[] args) {
        //基本类型——>String
        int i1 = 100;
        String s1 = i1 + "";
        String s2 = Integer.toString(i1);
        String s3 = String.valueOf(i1);
        //String——>基本类型
        int i2 = Integer.parseInt(s1);
        //int i3 = Integer.parseInt("a");  //NumberFormatException
    }
}

你可能感兴趣的:(java高级篇,java,api)