Java03-包装类

1.包装类的概述

1:一般输入多为字符串,需要进行转化,应该利用包装类。
2:泛型需要使用包装类。
3:类的修饰。public final class Integer extends Number implements Comparable<Integer> {} //final
4:有一个内部类IntegerCache,与单例模式的静态内部类都是延时加载,
private static class IntegerCache {
    static {
    	//加载时回创建cache[]
    	//用128+1+127个Integer个对象,初始化cache[]
    }
}

2.基本类型与包装类的对应

基本类型包装类型
byteByte
shortShort
intInteger
longLong
booleanBoolean
charCharacter
floatFloat
doubleDouble

3.包装类的方法

1:字符串转为基本数据类型,使用Xxx parsetXxx(String s);
2:基本类型转为字符串,+""(直接使用+进行拼接);String toString(XXX x(基本数据类型));

4.Integer方法的例子

/**
 * Integer parseInt(String s); 字符串转int
 * Integer parseInt(String s,int radix);将radix进制转化为10进制
 */
public static void run1(){
    int i1 = Integer.parseInt("110");
    int i2 = Integer.parseInt("101",3);

    System.out.println(i1);
    System.out.println(i2);
}
//110
//10
//9 3 1(101) -> 10;4 2 1(101) -> 5;("A",16) -> 10;
/**
 * String toString(int i);int类型转化为String
 * String toString(int i,int radix) 转化为radix进制
 */
public static void run2(){
    String s1 = Integer.toString(11);
    String s2 = Integer.toString(11,2);

    System.out.println(s1);
    System.out.println(s2);
}
//11
//1011
/**
 * String toBinaryString(int i);int转化为二进制的字符串
 * String toOctalString(int i);int转化为八进制的字符串
 * String toHexString(int i);int转化为十六进制的字符串
 */
public static void run3(){
    String s1 = Integer.toBinaryString(2);
    String s2 = Integer.toOctalString(8);
    String s3 = Integer.toHexString(16);

    System.out.println(s1); //10
    System.out.println(s2); //10
    System.out.println(s3); //10
}

5.Integer的构造方法

1:Integer(int value);
2:Integer(String s); int intValue();

6.Integer方法小结

1:字符串转为int。
	Integer(String s),int intValue();
	int Integer.parse(String s);
2:int转化为字符串。
	String s = 3 + "";
	String toString(int i);

7.自动装箱和自动拆箱(1.5之后)

1:自动装箱,基本数据类型转化包装类。
2:自动拆箱,包装类转化为基本数据类型。

8.自动装箱与自动拆箱

1: Integer i = 1;//Integer.valueof(1);
	System.out.println(i); //1
2: i = i + 1;//i.intValue() + 1;
	System.out.println(i);//2

9.自动装箱与自动拆箱练习题

public static void run4(){
    Integer i1 = new Integer(1);
    Integer i2 = new Integer(1);
    System.out.println(i1 == i2); //false
    System.out.println(i1.equals(i2)); //true
    
    Integer a = 500;
    Integer b = 500;
    System.out.println(a == b); //false
    System.out.println(a.equals(b)); //true

    //在byte范围内(-128-127)不会创建对象,而是直接返回常量池已经创建好的对象
    Integer m = 50; //128 false;127 true
    System.out.println(m == n); //true
    System.out.println(m.equals(n)); //true
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值