0
点赞
收藏
分享

微信扫一扫

Java学习_Day 02(学习内容:尚硅谷常用类JAVA零基础P461-P470)

云卷云舒xj 2022-04-23 阅读 59
java

P461 String与char[]之间的转换

    /*
    String与char[]之间的转换
     */
    @Test
    public void test2(){
        String str1 = "abc123";
        char[] charArray = str1.toCharArray();
        for (int i = 0; i < charArray.length; i++) {
            System.out.println(charArray[i]);
        }
        char[] arr = new char[]{'h','e','l','l','o'};
        String str2 = new String(arr);
        System.out.println(str2);
    }

P462 String与byte[]之间的转换

    @Test
    public void Test3() throws UnsupportedEncodingException {
        String str1 = "abc123中国";
        byte[] bytes = str1.getBytes(); //使用默认编码Utf-8
        System.out.println(Arrays.toString(bytes));
        byte[] gbks = str1.getBytes("gbk"); //使用gbk字符集进行编码
        System.out.println(Arrays.toString(gbks));
        System.out.println("*****************************");
        String str2 = new String(bytes);
        System.out.println(str2);
        String str3 = new String(gbks);
        System.out.println(str3); //乱码,编码集与解码集不同
        String str4 = new String(gbks, "gbk");
        // ctrl+P
        System.out.println(str4);
    }

P463 解决一个拼接问题

    @Test
    public void test4(){
        String s1 = "javaEEhadoop";
        String s2 = "javaEE";
        String s3 = s2 + "hadoop";
        System.out.println(s1 == s3);

        final String s4 = "javaEE"; //常量,在常量池中
        String s5 = s4 + "hadoop";
        System.out.println(s1 == s5);
    }

P464 面试中String算法的考察说明

P465 StringBuffer和StringBuilder的介绍

    /*
    String、StringBuilder和StringBuffer的异同
    String: 不可变的字符序列  final
    StringBuffer: 可变的字符序列;线程安全的但效率偏低
    StringBuilder: 可变的字符序列;jdk5.0新增的,非线程安全但效率高
    都是char型数组存储
     */
    @Test
    public void test1(){
        StringBuffer sb1 = new StringBuffer("abc");
        sb1.setCharAt(0,'m');
        System.out.println(sb1);
    }
}

P466 StringBuffer的源码分析

    /*
    String str = new String();// char[] value = new char[0];
    String str1 = new String("abc");// char[] value = new char[]{'a','b','c'};
    StringBuffer sb1 = new StringBuffer(); // char[] value = new char[16]
    sb1.append('a') // value[0] = 'a';
    sb1.append('b') // value[1] = 'b';
    ctrl + F12
    StringBuffer sb2 = new StringBuffer("abc"); // char[] value = new char["abc".length() + 16]
    问题1:System.out.println(sb2.length());
    问题2:如果要添加的数据底层数组盛不下了,那就需要扩充底层的数组
    默认情况下,底层扩容为原来容量的2倍+2,同时将原有数组中的元素复制到新的数组中
    建议大家使用StringBuffer(int capacity)
     */

P467 StringBuffer的常用方法

    /*
    StringBuffer和StringBuilder常用方法
    增删改查  append\delete\setCharAt\replace\chaAt
    插  insert
    长度  length
    遍历 for charAt() toString
     */
    @Test
    public void Test2(){
        StringBuffer s1 = new StringBuffer("abc");
        s1.append(1);
        s1.append("1");
        System.out.println(s1);
//        s1.delete(2,4);
//        s1.replace(2,4,"Hello");
        // ctrl + P提示
//        s1.insert(2,false);
//        s1.reverse();
        String s2 = s1.substring(1, 3);
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s1.length());
    }

P468 String、StringBuffer、StringBuilder的效率对比

    // StringBuilder > StringBuffer > String

P469 System类获取时间戳的方法

    @Test
    public void test1(){
        long time = System.currentTimeMillis();
        // 1970/1/1 00:00到现在的毫秒时间差 --> 时间戳
        System.out.println(time);
    }

P470 Java中两个Data类的使用

package com.commonClass;

import org.junit.Test;

import java.util.Date;

/**
 * JDK8之前的日期时间API
 */
public class DataTimeTest {
    /*
    java.util.Date / java.sql.Date对应数据库的日期 
    1. 两个构造器的使用
    2. 两个方法的使用
    toString-->显示当前年月日时分秒
    getTime-->获取当前date对象的毫秒数
     */
    @Test
    public void test2(){
        // 创建一个对应当前时间的Data对象
        Date date1 = new Date();
        System.out.println(date1.toString());
        System.out.println(date1.getTime());
        // 创建一个指定毫秒数的Data对象
        Date date2 = new Date(1650619488253L);
        System.out.println(date2.toString());
    }
}
举报

相关推荐

0 条评论