常用对象API(基本数据类型对象包装类)

概述

为了方便操作基本数据类性值,将其封装成了对象,在对象中定义了属性和行为丰富了改数据的操作。

用于描述该对象的类就称为基本数据类型对象包装类

类型
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

该包装对象主要用基本类型和字符串之间的转换。

字符串与基本类型转换

基本类型——>字符串

1. 基本类型数值+""
2. 用String类中的静态方法`valueOf`(基本类型数值);
3. 用Integer的静态方法`valueOf()`

字符串——>基本类型

  1. 使用包装类中的静态方法 xxx parseXxx (“xxx类型的字符串”);

    •   int	parseInt("intstring"); //将string转为int
        
        long parseLong("longstring");
        
        boolean parseBoolean("booleanstring");
        
        //只有Character没有parse方法
      
  2. 如果字符串被Integer进行对象的封装

    •   //可使用另一个非静态的方法,
        
        intValue(); //已过时
        
        //将一个Integer对象转成基本数据类型值。
      

进制转换

整数具备不同的进制体现

十进制——>其他进制

  •   toBinaryString() 二进制
      toOctalString()	八进制
      toHexString()	十六进制
      //ex
          Integer.toBinaryString(60); // 111100
    

其他进制——>十进制

  •   parseInt("string",radix);
    

JDK1.5自动装箱拆箱

自动拆装箱java中数据类型分为两种 : 基本数据类型 引用数据类型(对象)

java程序中所有的数据都需要当做对象来处理,针对8种基本数据类型提供了包装类,如下:

int ——> Integer

byte ——> Byte

short ——> Short

long ——> Long

char ——> Character

double ——> Double

float ——> Float

boolean ——> Boolean

jdk1.5以前基本数据类型和包装类之间需要互转:

自动装箱基本数据类型赋值给了引用数据类型**才装箱

自动拆箱引用数据类型基本数据类型**计算的话,自动拆箱

基本———引用 Integer x = new Integer(x);

引用———基本 int num = x.intValue();

1)、Integer x = 1; x = x + 1; 经历了什么过程?装箱 ——> 拆箱——> 装箱;

2)、为了优化,虚拟机为包装类提供了缓冲池,Integer池的大小 —128~127 一个字节的大小;

3)、**String池:**Java为了优化字符串操作 提供了一个缓冲池;

image-20221027172555159

public int compareTo(Ingeger anotherInteger)

Integer a = new Integer("895");
Integer b = new Integer(128);
System.out.println(a.compareTo(b));
//输出:1
/*
以数字方式比较两个 `Integer`对象。 

值0如果这个Integer等于参数Integer ;

小于0的值,如果这个Integer数值小于参数Integer ; 

和大于一个值0 ,如果这Integer在数值上大于该参数Integer (带符号的比较)。*/
int num = 4;
num = num + 5;

Integer i = 4;//i = new Integer(4); 自动装箱,简化书写。
i = i + 6; // i = new Integer(i.intValue() + 6); // i.intValue() 自动拆箱
    public static void main(String[] args)
    {
 
        
        Integer a = new Integer(128);
        Integer b = new Integer(128);
        System.out.println(a==b);
        System.out.println(a.equals(b));

        Integer x = 127;
        Integer y = 127;
         //jdk1.5以后,自动装箱,如果装箱的是一个字节,那么该数据会被共享不会重新开辟空间
        System.out.println(x == y);
        System.out.println(x.equals(y));
    }
//输出:
false
true
true
true

练习

package com.Integer;

/*
* 对一个字符串中的数值进行从小到大的排序
*
* “34 483 43 -95 2 25 866 679“
*
* 思路:
* 1.排序,很熟,但只熟int
* 2.如何获取到这个字符串中需要排序的数值
* 发现字符串中其实都是用空格来对数值进行分割的
* 用空格切割,大串变小串
* 3.数值最终变成小字符串,怎样变成int数值
*
*
* */

import java.util.Arrays;

public class WrapperDemo {

    private static final String SPACE_SEPARATOR = " ";
    public static void main(String[] args) {
        String str = "34 483 43 -95 2 25 866 679";
        System.out.println(str);

        str = sorStringNumber(str);
        System.out.println(str);
    }

    private static String sorStringNumber(String str) {

        //1.将字符串变成字符串数组。
        String[] str_arr = stringToArray(str);

        //2.将字符串数组变成int数组。
        int[] int_arr = toIntArray(str_arr);
        
        //3.将int数组排序
        mySortArray(int_arr);

        //将排序后的int数组变成字符串
        String temp = arrayToString(int_arr);
        return temp;
    }


    private static String arrayToString(int[] int_arr) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < int_arr.length; i++) {
            if (i != int_arr.length-1)
                sb.append(int_arr[i]+SPACE_SEPARATOR);
            else
                sb.append(int_arr[i]);

        }
        return sb.toString();
    }

    private static void mySortArray(int[] int_arr) {
        Arrays.sort(int_arr);
    }

    private static int[] toIntArray(String[] str_arr) {
        int[] int_arr = new int[str_arr.length];
        for (int i = 0; i < str_arr.length ; i++) {
            int_arr[i] = Integer.parseInt(str_arr[i]);
        }

        return int_arr;
    }

    private static String[] stringToArray(String str) {
        String[] str_arr = str.split(SPACE_SEPARATOR);

        return str_arr;
    }
}

t_arr[i] = Integer.parseInt(str_arr[i]);
}

    return int_arr;
}

private static String[] stringToArray(String str) {
    String[] str_arr = str.split(SPACE_SEPARATOR);

    return str_arr;
}

}


















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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值