01-Java的8种基本数据类型 装箱 拆箱

本文深入探讨了Java中八种基本数据类型及其封装类型,包括自动装箱和拆箱的过程。通过具体的面试题目,解释了String是否属于基础类型、short类型在赋值运算中的常见错误、Int与Integer的区别,并介绍了如何将String转换为int类型。

八种基本类型

布尔型:          boolean
字符型:          char
整数型:          byte, short, int, long
浮点数型:        float, double

Java的 8 种基本数据类型

Java的 8 种基本数据类型

装箱和拆箱

自动装箱是 Java 编译器在基本数据类型和对应的对象包装类型之间做的一个转化。 

比如:把 int 转化成 Integer, double 转化成 Double, 等等。 反之就是自动拆箱。

原始类型: boolean, char, byte, short, int, long, float, double
封装类型: Boolean, Character, Byte, Short, Integer, Long, Float, Double

别人详细版解析原理–http://www.cnblogs.com/dolphin0520/p/3780005.html

面试题目

1.String 是基础类型吗?

基本数据类型包括上面八种:
分别是byte、short、int、char、long、float、double和boolean。
所以String不是基本数据类型。

2.short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1+=1;有什么错?

1) 对于 short s1=1;s1=s1+1 来说, 在 s1+1 运算时会自动提升表达式的类型为 int,那么将 int 赋予给 short 类型的变量 s1 会出现类型转换错误。

2) 对于 short s1=1;s1+=1 来说 +=是 java 语言规定的运算符, java 编译器会对它进行特殊处理, 因此可以正确编译。

3.Int 与 Integer 区别

1、Integer是int的包装类,int则是java的一种基本数据类型 
2、Integer变量必须实例化后才能使用,而int变量不需要 
3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 
4、Integer的默认值是null,int的默认值是0 

延伸:
关于Integer和int的比较
1、由于Integer变量实际上是对一个Integer对象的引用,所以两个通过new生成的Integer变量永远是不相等的(因为new生成的是两个对象,其内存地址不同)。

public class function {
    public static void main(String[] args){
        Integer i=new Integer(100);
        Integer j=new Integer(100);
        System.out.println(i==j);
    }
}

结果为在这里插入图片描述

2、Integer变量和int变量比较时,只要两个变量的值是向等的,则结果为true(因为包装类Integer和基本数据类型int比较时,java会自动拆包装为int,然后进行比较,实际上就变为两个int变量的比较)

public class function {
    public static void main(String[] args){
        Integer i=new Integer(100);
        int j=100;
        System.out.println(i==j);
    }
}

结果为在这里插入图片描述
下面链接内容里更具体

具体出处:果冻迪迪←点击看原文

4.String 转出 int 型, 判断能不能转?如何转?

可以转, 得处理异常 Integer.parseInt(s) 主要为 NumberFormatException:1) 当
你输入为字母时, 也就是内容不是数字时, 如 abcd 2) 当你输入为空时 3) 当你输入超出
int 上限时 Long.parseLong("123")转换为 long

本文参考

这里面也有一些面试题目https://blog.youkuaiyun.com/daidaineteasy/article/details/51088269

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值