【java基础】基本数据类型的包装类

包装类(如,Integer、Double等)这些类封装了一个相应的基本数据类型数值,并为其提供了一系列操作。

一般基本数据类型分配在栈上,那么要想让它分配在堆上那么就可以用基本类型的包装类。

基本数据类型与之对应的包装类的对应关系表

byte

short

int

long

float

double

char

boolean

Byte

Short

Integer

Long

Float

Double

Character

Boolean

(1)以java.lang.Integer类为例,构造方法(还是那句老话,想弄清楚它的方法还是看api文档或者源码)

public Integer(int value)
public Integer(String s) throws NumberFormatException {
      this.value = parseInt(s, 10);
}

(2)以java.lang.Integer类为例,常见方法

//最小的int型数(-231)
@Native public static final int   MIN_VALUE = 0x80000000;
//最大的int型数(2^31-1)
@Native public static final int   MAX_VALUE = 0x7fffffff;
//返回封装数据的int值
public int intValue() {
    return value;
}
//返回封装数据的double值
public double doubleValue() {
    return (double)value;
}
//返回封装数据的long值
public long longValue() {
    return (long)value;
}
//将字符串类型转为int型数据并返回
public static int parseInt(String s) throws NumberFormatException {
    return parseInt(s,10);
}
//返回Integer对象,其中封装的整型数据为字符串s所表示
public static Integer valueOf(String s) throws NumberFormatException {
    return Integer.valueOf(parseInt(s, 10));
}

(3)以java.lang.Integer类为例,常见方法使用举例(自己动手去写写体会会深一点)

/**
 * 说明:包装类方法使用举例
 *
 * @author huayu
 * @date 2018/8/30 9:47 AM
 */
public class IntegerDemo {
    public static void main(String[] args) {
        Integer integer=new Integer(10);
        int a=integer.intValue();
        double b=integer.doubleValue();
        long c=integer.longValue();
        try {
            int d = Integer.parseInt("12");
            System.out.println("d="+d);
        }catch (NumberFormatException e){
            e.printStackTrace();
            System.out.println("输入数据出错");
        }
        try {
            //double类型非强转这儿肯定会报错
            int d = Integer.parseInt("1.2");
            System.out.println("d="+d);
        }catch (NumberFormatException e){
            //NumberFormatException是运行时异常,可捉可不捉这个在以前的博客讲过异常处理
            e.printStackTrace();
            System.out.println("输入数据出错");
        }
        int  dou=1;
        Integer e=Integer.valueOf(dou);
        System.out.println("a="+a+" b="+b+" c="+c+" e="+e);
        System.out.println(Integer.MAX_VALUE);
        System.out.println(Integer.toBinaryString(2));
    }
}

(4)应用小实验

/**
 * 说明:将字符串转换为double类型的数组(下面的注释为了让大家看的清楚写的过细了)
 * 思路:1、先分解字符串
 *      2、将分解好的字符串转为double类型放入double数组中
 * @author huayu
 * @date 2018/8/30 10:13 AM
 */
public class StringToDoubleArray {
    public static void main(String[] args) {
        //定义一个二维数组
        double[][] doubles;
        //题目是转为double类型,所以字符串中应能在分解后转为double类型
        String str = "1,2;3,4,5;6,7,8";
        //第一次分解按照行分解
        String[] flistSplit = str.split(";");
        //分配第一维空间
        doubles = new double[flistSplit.length][];
        for (int i = 0; i < flistSplit.length; i++) {
//            System.out.println(flistSplit[i]);
            //第二次分解按照列分解
            String[] secondSplit = flistSplit[i].split(",");
            //分配第二维空间
            doubles[i] = new double[secondSplit.length];
            //将原字符串处理结束后转为double类型并放入Double数组
            for (int j = 0; j < secondSplit.length; j++) {
//                System.out.println(secondSplit[j]);
                doubles[i][j] = Double.parseDouble(secondSplit[j]);
            }
        }
        //打印数组看结果
        for (int i = 0; i < doubles.length; i++) {
            for (int j = 0; j < doubles[i].length; j++) {
                System.out.println("i=" + i + " j=" + j + " "+doubles[i][j] + " ");
            }
            System.out.println();
        }
    }
}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小猿备忘录

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值