-
包装类(Wrapper Classes):
byte Byte short Short int Integer long Long float Float double Double boolean Boolean char Character
-
原始类型和包装类之间的转换:
-
装箱:
javaInteger integer1 = Integer.valueOf(123); Boolean aBoolean = Boolean.valueOf(true); Double aDouble = Double.valueOf(3.14); character = 'a'; -
自动装箱:
javainteger1 = 3306; -
拆箱:
javaint num = integer1.intValue(); -
自动拆箱:
javanum = integer1;
-
-
原始类型和字符串之间的转换:
-
int 转为 String:
javaString s = Integer.toString(8080); -
String 转为 int:
javaint i = Integer.parseInt("456"); -
String 转为 Float:
javaFloat aFloat = Float.valueOf("3.14");
-
-
Number 类:
- 六个数值型包装类的父类,提供相互转换功能。
-
String 类:
- 用于处理字符串的不可变类。
-
StringBuffer 和 StringBuilder:
StringBuffer:线程安全的可变字符序列。StringBuilder:线程不安全的可变字符序列。
-
Math 类:
- 提供各种数学操作。
- 例如
abs、ceil、floor、pow、random等。
-
Date 类:
- 表示具体时间瞬间,精度为毫秒。
- 方法包括
after、before、compareTo、equals、getTime、format、parse等。
-
SimpleDateFormat:
- 用于以区域敏感的方式格式化和解析日期。
-
JUnit 测试:
- 使用
@Test注解进行单元测试。被测试函数必须是公共的,没有返回类型或参数。
- 使用
-
常见字符串操作摘要:
- 长度、charAt、indexOf、lastIndexOf、contains、isEmpty、startsWith、endsWith、equals、equalsIgnoreCase、toUpperCase、toLowerCase、trim、replace、split、substring。
-
StringBuilder 操作摘要:
- 各种用于操作的方法(append、delete、insert、replace、reverse、setCharAt、setLength、substring)。
-
Math 类函数摘要:
- abs、cbrt、ceil、floor、max、min、pow、round、sqrt、random。
-
Date 类函数摘要:
- after、before、compareTo、equals、format、parse 等。
-
测试注意事项:
- 使用 JUnit 4.12 进行测试。函数必须是公共的,没有返回类型或参数。
-
编码表注意事项:
- 在字符串和字节数组转换过程中,需要考虑编码表的特殊情况。
-
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",方法区