基本数据类型封装类
- Java的基本数据类byte short int long char float double boolean
- java给每一个基本数据类型都提供了一个对应的封装类 ,封装类可以对数据进行更多的处理。 封装除char是character和int是Integer
- 其他是首字母大写就是类名
一. 数值型 Integer
- static int
MAX_VALUE 保持 int 类型的最大值的常量可取的值为(2的31次方-1)。 - static int
MIN_VALUE 保持 int 类型的最小值的常量可取的值为 (-2的31次方)。 - static Class
TYPE 表示基本类型 int 的 Class 实例。
@Test
void test04() {
//最大值和最小值
System.out.println("最大值"+Integer.MAX_VALUE);//最大值2147483647
System.out.println("最小值"+Integer.MIN_VALUE);//最小值-2147483648
System.out.println(Integer.TYPE);//int
}
补充:自动装箱,自动拆箱
- 自动装箱:将int类型转为Integer(编译的时候 默认调valueOf)
自动拆箱 :将Integer转为int类型(将封装类转为基本类型)直接赋值
- Integer integer=10;会在编译时变成Integer integer = integer.intValue(10);自动装箱
@Test
void test03() {
//自动装箱
Integer i01=10;
Integer i02=new Integer(20);//手动装
Integer i03=Integer.valueOf(30);//手动装
//拆箱
int num01=i01;
int num02=i01.intValue();//手动拆
}
- 在使用自动装箱时,注意 byte常量池
@Test
void test() {
Integer i01=new Integer(100);
Integer i02=new Integer(100);
System.out.println(i01.equals(i02));//true
System.out.println(i01==i02);//false
Integer i03=-128;
Integer i04=-128;
System.out.println(i03.equals(i04));//true
System.out.println(i03==i04);//true
}
- byte常量池(-128-127),当数值在-128–127时,使用byte常量池的数字对象,当它大于127或小于-128就会离开byte常量池,进行实例化
类型转换:int ----->其他类型的常用方法
- byte
byteValue() 以 byte 类型返回该 Integer 的值。 - short
shortValue() 以 short 类型返回该 Integer 的值。 - long
longValue() 以 long 类型返回该 Integer 的值。 - float
floatValue() 以 float 类型返回该 Integer 的值。 - double
doubleValue() 以 double 类型返回该 Integer 的值。 - int
intValue() 以 int 类型返回该 Integer 的值。 - static String
toBinaryString(int i) 以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
//类型转换
@Test
void test06() {
// 直接将 int类型的数值赋值给Integer类型的变量
Integer integer01=10;
Integer integer = Integer.valueOf(10);
int num=10;//不是对象
System.out.println(integer instanceof Integer);//true
// System.out.println(integer instanceof int);//直接报错
//转换 byte short long float double int
byte byteValue=integer01.byteValue();
System.out.println(byteValue);//10
short shortValue01=integer01.shortValue();
System.out.println(shortValue01);//10
long longValue02=integer01.longValue();
System.out.println(longValue02);//10
float floatValue03=integer01.floatValue();
System.out.println(floatValue03);//10.0
double doubleValue04=integer01.doubleValue();
System.out.println(doubleValue04);//10.0
int intValue05=integer01.intValue();
System.out.println(intValue05);//10
//快速将int转为String,使用+" "的方式
String string = integer01.toString();
System.out.println(string);//10
//toBinaryString得到String类型的结果
String binaryString = Integer.toBinaryString(10);
System.out.println(binaryString);//1010
}
类型转换: 其他类型----->int
- static Integer
valueOf(String s) 返回保持指定的 String 的值的 Integer 对象。 - static int
parseInt(String s) 将字符串参数作为有符号的十进制整数进行分析。 - static int
parseInt(String s, int radix) 使用第二个参数指定的基数,将字符串参数解析为有符号的整数。 - static int
reverse(int i) 返回通过反转指定 int 值的二进制补码表示形式中位的顺序而获得的值。
//类型转换 其他类型转为int类型
@Test
void test07() {
String num="200";
System.out.println("转换前"+num+100);//转换前200100
//valueOf(String s) 返回保持指定的 String 的值的 Integer 对象。
Integer valueOf = Integer.valueOf(num);//得到一个Integer对象
System.out.println("转换后"+(valueOf+100));//转换后300
//parseInt(String s) 将字符串参数作为有符号的十进制整数进行分析。
int parseInt = Integer.parseInt(num);//得到的是int类型
System.out.println(parseInt+200);//400
//parseInt(String s, int radix) 使用第二个参数指定的基数,将字符串参数解析为有符号的整数。
//括号第一个为字符串,第二个为进制
int parseInt2 = Integer.parseInt("1001",8);//513
System.out.println(parseInt2);
//reverse(int i) 返回通过反转指定 int 值的二进制补码表示形式中位的顺序而获得的值。
//十进制:10变为二进制为1010---->00001010 补码11110101
int reverse = Integer.reverse(10);
System.out.println(reverse);//1342177280
}
- int
compareTo(Integer anotherInteger) 在数字上比较两个 Integer 对象。
@Test
void test08() {
Integer integer01=130;//是对象
//compareTo(Integer anotherInteger) 在数字上比较两个 Integer 对象。
//结果是1 0 -1
int compareTo = integer01.compareTo(130);
System.out.println(compareTo);//0
int compareTo01 = integer01.compareTo(80);
System.out.println(compareTo01);//1
int compareTo02 = integer01.compareTo(800);
System.out.println(compareTo02);//-1
}
二.字符型 character
- static char
toLowerCase(char ch) 使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为小写。 - static char
toUpperCase(char ch) 使用来自 UnicodeData 文件的大小写映射信息将字符参数转换为大写。 - String
toString() 返回表示此 Character 值的 String 对象。 - static boolean
isSpace(char ch) 已过时。 用 isWhitespace(char) 取代。 - static boolean
isWhitespace(char ch) 确定指定字符依据 Java 标准是否为空白字符。
@Test
void test() {
//Character
//进行字符串大小的判断
Character ct='a';
System.out.println(Character.isLowerCase('a'));//true
System.out.println(Character.isUpperCase('a'));//flase
Character.isSpace('d');//已经过时的方法,但是目前可以使用
//转换
String string = ct.toString();
System.out.println(string);//a
//判断输入的是一个小写字母
char c1='a';
for(int i=97;i<=122;i++) {
if(c1==i) {
System.out.println("这个字母是小写的");
}
}
三.布尔型 Boolean
- boolean
booleanValue() 将此 Boolean 对象的值作为基本布尔值返回。 - static boolean
parseBoolean(String s) 将字符串参数分析为 boolean 值。
@Test
void test01() {
//自动拆箱
boolean bool=Boolean.TRUE;
//转换
Boolean bool01=new Boolean("true");
System.out.println(bool01);//true
boolean parseBoolean = Boolean.parseBoolean("123");
System.out.println(parseBoolean);
}