常见对象---基本类型包装类

基本类型包装类

目标:

  1. 理解基本包装类,自动装箱与自动拆箱;
  2. 基本类型和字符串之间的相互转换
    字符串转换为int类型:Integer的静态方法 static int parseInt(String str)
    int类型转换为字符串类型:String的静态方法 static valueOf(Object obj)

1. 基本类型包装类概述

为了对基本数据类型进行更多的操作,Java提供基本包装类。在java.lang 包下。

基本类型与包装类型的对应
byte -------- Byte
int -------- Integer
short -------- Short
long -------- Long
float -------- Float
double -------- Double
char -------- Character
boolean -------- Boolean

2. Integer类

Integer类是int类型的包装类,提供了多个方法,能在 int 类型和 String 类型之间互相转换。
有两个静态成员变量:
Integer.MAX_VALUE
Integer.MIN_VALUE

2.1 构造方法

Integer(int value) 将指定的 int 类型转换为Integer类型
Integer(String s) 将指定的String 类型转换为Integer类型,要注意字符串必须是数字组成

2.2 常用方法
(1) int类型和String类型的相互转换

String toString() 返回一个表示该 Integer 值的 String 对象。
static String toString(int i) 返回一个表示指定整数的 String 对象。
int intValue() 以 int 类型返回该 Integer 的值。
static int parseInt(String s) 将字符串参数作为有符号的十进制整数进行解析。

int ------> String

int 类型转换为 String 类型

int number = 100

//方式1: 字符串拼接
String s1 = "" + number;

//方式2:String类的静态方法static valueOf(Int i),最推荐
String s2 = String.valueOf(number);

//方式3:Integer作为桥梁,int -- Integer ---String
String s3 = new Integer(number).toString();

//方式4:Integer的静态方法static String toString(int i) 
String s4 = Integer.toString(number);

String ------> int

String类型转换为int类型

String s = "100";

//方式1:Integer作为桥梁,String -- Integer ---int
int x = new Integer(s).intValue();

//方式2 Integer的静态方法static int parseInt(String s),最推荐
int y = Integer.parseInt(s);
(2) 进制转换

十进制到其他进制:
static String toBinaryString(int i) int转为二进制无符号整数形式
static String toOctalString(int i) int转为八进制无符号整数形式
static String toHexString(int i) int转为十六进制无符号整数形式
static String toString(int i, int radix) int转为指定进制的无符号整数形式

其他进制到十进制:
static int parseInt(String s, int radix) 指定进制转为十进制有符号整数形式
注意:进制的范围是2~36

(3) 自动装箱和自动拆箱

装箱:基本类型转换为包装类型
拆箱:包装类型转换为基本类型
JDK5以后的新特性,基本类型和包装类型之间可以自动互相转换。
要注意避免出现空指针异常

示例:

Integer ii == 100;
if(ii != null){
ii+= 200 ;
System.out.println("ii:" + ii);
}

等价于:

Integer ii == Integer.valueOf(100);  //自动装箱,int-->Integer
ii = Integer.value(ii.intValue()+200); //运算时自动拆箱,Integer-->int,运算完之后再装箱
System.out.println((new StringBulider("ii:")).append(ii).toString());

数据缓冲池 面试题

package cn.itcast;

public class demo {
    public static void main(String[] args) {
        Integer i1 = new Integer(127);
        Integer i2 = new Integer(127);
        System.out.println(i1 == i2);  //地址值不同,返回flase
        System.out.println(i1.equals(i2)); //内容相同,返回true
        System.out.println("----------------------");

        Integer i3 = new Integer(128);  //地址值不同,返回flase
        Integer i4 = new Integer(128);  //内容相同,返回true
        System.out.println(i3 == i4);
        System.out.println(i3.equals(i4));
        System.out.println("----------------------");

        Integer i5 = 128;
        Integer i6 = 128;
        System.out.println(i5 == i6);      //地址值不同,返回flase
        System.out.println(i5.equals(i6));  //内容相同,返回true
        System.out.println("----------------------");

        Integer i7 = 127;
        Integer i8 = 127;
        System.out.println(i7 == i8);  //缓冲池-128~127,127直接从里面取,是相同的地址,返回true
        System.out.println(i7.equals(i8));  //内容相同,返回true
        System.out.println("----------------------");

    }
}

输出结果:
		false
		true
		----------------------
		false
		true
		----------------------
		false
		true
		----------------------
		true
		true
		----------------------

要注意i5、i6和i7、i8的区别,Integer的数据直接赋值,相当于调用valueOf(int i)方法,而如果是-128~127范围内的数据,直接从常量池里面拿。如果不是这个范围,再new。

3. Character类

Character类是char类型的包装类,提供了几种方法,来判断字符的类别(小写字母、数字等),将字符进行大小写转换。

3.1 构造方法

Character (char value)

3.2 常用方法

public static boolean isUpperCase(char ch) 判断是否为大写
public static boolean islowerCase(char ch) 判断是否为小写
public static boolean isDigit(char ch) 判断是否为数字
public static char toUpperCase(char ch) 将字符转换为大写
public static char toLowerCase(char ch) 将字符转换为小写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值