包装类与基本数据类型分析比较

来源:互联网 发布:mac phpstorm debug 编辑:程序博客网 时间:2024/06/14 16:13

Java中基本数据类型有哪些?

八种 int char long short boolean double float byte
注意没有String

String, Integer分别属于什么类型?

Integer, Long, Character, Float, Short, Double, Boolean, Byte 是包装类
基本数据类型生成的变量 int i = 2; 产生的并不是对象
而String s = “22”; 产生的s 是一个对象
Integer num = new Integer(22);
num是一个对象

int 与 Integer 有什么区别?

int 是基本数据类型
Integer 是int的包装类
每种基本数据类型,都对应一种包装类。

提供包装类的原因

  • 基本数据类型不能参与面向对象的开发。
  • 虽然Java语言是面向对象语言,但也不是纯粹的面向对象语言,比如:在处理基本数据类型时,就需要包装类,将基本数据类型转换为对象,再进行处理。
  • (为了在各种类型间转化,通过各种方法的调用。否则,你无法直接通过变量转化)

包装类Integer

Integer是基本数据类型int的包装类。
该类中包含许多对int类型数据的处理方法。

数据类型转换

通常情况下,我们遇到数据类型转换时,会直接进行强转,包装类中提供了强制类型转换的方法。

public float floatValue() {        return (float)value;}  public long longValue() {        return (long)value;}

字符串转换为int型

String str = "123";int num = Integer.parseInt(str);

int型转字符串

int num = 2;String str1 = "" + num; String str2 = Integer.toString(num);

进制转换

包装类提供了int数据,直接转换二进制,十六进制,八进制等方法

String str = Integer.toBinaryString(15);String str2 = Integer.toHexString(15);System.out.println(str);    // 1111System.out.println(str2);   // f

基本的数据计算功能

比如相加,大小比较,求和,除法等。

System.out.println(Integer.divideUnsigned(10, 2));  // 5

自动装箱,自动拆箱?

  • 自动装箱:将基本数据类型封装成对象类型,就可以调用对象的方法
  • 自动拆箱:将对象类型自动转化为基本数据类型
//声明一个Integer对象Integer num = 10;//以上的声明就是用到了自动的装箱:解析为Integer num = new Integer(10);//装箱Integer num = 10;//拆箱int num1 = num;

典型用法: 对象时不能直接进行元素的加减,但是自动拆装箱解决了这个问题

Integer a = 10;Integer b = 10;System.out.println(a + b);