发布时间 2023-12-19 08:11:55作者: Cyptals

 

  1. 包装类(Wrapper Classes):

    • byte Byte short Short int Integer long Long float Float double Double boolean Boolean char Character
  2. 原始类型和包装类之间的转换:

    • 装箱:

      java
      Integer integer1 = Integer.valueOf(123); Boolean aBoolean = Boolean.valueOf(true); Double aDouble = Double.valueOf(3.14); character = 'a';
    • 自动装箱:

      java
      integer1 = 3306;
    • 拆箱:

      java
      int num = integer1.intValue();
    • 自动拆箱:

      java
      num = integer1;
  3. 原始类型和字符串之间的转换:

    • int 转为 String:

      java
      String s = Integer.toString(8080);
    • String 转为 int:

      java
      int i = Integer.parseInt("456");
    • String 转为 Float:

      java
      Float aFloat = Float.valueOf("3.14");
  4. Number 类:

    • 六个数值型包装类的父类,提供相互转换功能。
  5. String 类:

    • 用于处理字符串的不可变类。
  6. StringBuffer 和 StringBuilder:

    • StringBuffer:线程安全的可变字符序列。
    • StringBuilder:线程不安全的可变字符序列。
  7. Math 类:

    • 提供各种数学操作。
    • 例如 absceilfloorpowrandom 等。
  8. Date 类:

    • 表示具体时间瞬间,精度为毫秒。
    • 方法包括 afterbeforecompareToequalsgetTimeformatparse 等。
  9. SimpleDateFormat:

    • 用于以区域敏感的方式格式化和解析日期。
  10. JUnit 测试:

    • 使用 @Test 注解进行单元测试。被测试函数必须是公共的,没有返回类型或参数。
  11. 常见字符串操作摘要:

    • 长度、charAt、indexOf、lastIndexOf、contains、isEmpty、startsWith、endsWith、equals、equalsIgnoreCase、toUpperCase、toLowerCase、trim、replace、split、substring。
  12. StringBuilder 操作摘要:

    • 各种用于操作的方法(append、delete、insert、replace、reverse、setCharAt、setLength、substring)。
  13. Math 类函数摘要:

    • abs、cbrt、ceil、floor、max、min、pow、round、sqrt、random。
  14. Date 类函数摘要:

    • after、before、compareTo、equals、format、parse 等。
  15. 测试注意事项:

    • 使用 JUnit 4.12 进行测试。函数必须是公共的,没有返回类型或参数。
  16. 编码表注意事项:

    • 在字符串和字节数组转换过程中,需要考虑编码表的特殊情况。
    • package com.msr.lesson01;

      import org.junit.Test;
      import java.text.DateFormat;
      import java.text.ParseException;
      import java.text.SimpleDateFormat;
      import java.util.Arrays;
      import java.util.Date;

      public class Practice {

      @Test
      public void m1(){
      /*
      Number : 是六个数值型类型的父类,要求子类有相互转换的功能.

      封装类/包装类
      byte Byte
      short Short
      int Integer
      long Long
      float Float
      double Double
      boolean Boolean
      char Character

      通用功能 :
      1.对应的基本数据类型 和 引用数据类型之间的转换
      2.负责 基本数据类型 和 String 之间的转换
      */
      // 1.对应的基本数据类型 和 引用数据类型之间的转换
      // int ---> Integer, 自动完成
      // 手动装箱
      Integer integer1 = Integer.valueOf(3306);// 引用类型.valueOf(基础类型)
      // 自动装箱
      integer1 = 3306;
      print(123);

      // Integer --> int
      // 手动拆箱
      int num = integer1.intValue();// 引用类型.***Value()
      // 自动拆箱
      num = integer1;

      // 2.负责 基本数据类型 和 String 之间的转换
      // *** ---> String
      String s = Integer.toString(8080);// 引用类型.toString(基础类型)

      // String ---> ***
      // static int parseInt​(String s) 默认十进制
      int i = Integer.parseInt("456");// 引用类型.parse***("")

      // static Integer valueOf​(String s)
      Float aFloat = Float.valueOf("3.14");// 引用类型.valueOf("")

      // Integer类 :
      // 十进制 ---> 其他进制
      // static String toBinaryString​(int i)
      // static String toHexString​(int i)
      // static String toOctalString​(int i)
      String s1 = Integer.toBinaryString(3306);
      System.out.println("s1 = " + s1);
      String s2 = Integer.toOctalString(3306);
      System.out.println("s2 = " + s2);
      String s3 = Integer.toHexString(3306);
      System.out.println("s3 = " + s3);

      // static String toString​(int i, int radix)
      System.out.println(Integer.toString(3306,2));
      System.out.println(Integer.toString(3306,8));
      System.out.println(Integer.toString(3306,10));
      System.out.println(Integer.toString(3306,16));

      // 其他进制 ---> 十进制
      // static Integer valueOf​(String s, int radix)
      System.out.println(Integer.valueOf("110011101010", 2));
      System.out.println(Integer.valueOf("6352", 8));
      System.out.println(Integer.valueOf("cea", 16));
      // static int parseInt​(String s, int radix)
      int i1 = Integer.parseInt("110011101010", 2);
      System.out.println("i1 = " + i1);
      System.out.println(Integer.parseInt("cea",16));

      // 数值型的极值 :
      System.out.println(Double.MAX_VALUE);
      System.out.println(Float.MIN_VALUE);
      }

      public static void print(Object o){
      System.out.println("o = " + o);
      }

      @Test
      public void m2(){
      // Integer 带有缓冲区 : -128 ~ 127的数值直接有, 且指向同一个地址. 但是使用new创建, 或者是其他数值时, 依然是在堆内存开辟新空间.
      Integer integer1 = 127;// Integer integer1 = new Integer(127) ;
      Integer integer2 = 127;
      Integer integer3 = new Integer(0);
      Integer integer4 = -129;
      Integer integer5 = -129;
      System.out.println(integer1 == integer2);// true
      System.out.println(integer1 == integer3);// false
      System.out.println(integer4 == integer5);// false

      // 只有七个基本数据类型可以进行计算
      Integer a = 10;
      int num = 11;
      num += a;// a ---> int ; num = num + a
      }
      }

      /**
      * String类
      */
      public class Practice02 {
      @Test
      public void m1(){
      /*
      字符串 :
      可变字符串/字符串缓冲区 : StringBuffer / StringBuilder
      不可变字符串 : String
      */
      // String类表示字符串。
      // Java程序中的所有字符串文字,如“abc”,都是作为此类的实例实现的。
      // 字符串是常量;
      String s1 = "abc";
      String s2 = "abc";
      System.out.println(s1 == s2);// 字符串都是先在方法区创建字符,再把地址赋给变量.同一字符串地址值一致
      String s3 = new String("abc");// 使用new关键字创建时,是在堆内存创建, 将地址值存放在方法区, 再赋给变量(栈内存)
      System.out.println(s1 == s3);
      // 它们的值在创建后不能更改, 但是变量可以指向新字符串
      s1 = "xyz";
      // 字符串缓冲区支持可变字符串。
      // 因为String对象是不可变的,所以它们可以共享。

      s1 = "a";// 1 : 方法区里创建"a"
      s2 = "x" + "y";// 3 : 方法区里"x","y","xy"各一个
      s3 = new String("z");// 2 : 堆内存"z",方法区