java面试_基本数据类型

9 篇文章 0 订阅
本文主要探讨Java中的基本数据类型、==与equals的区别、自动装箱与拆箱、Integer对象比较、字符串String的行为以及强制类型转换。在Java中,==比较基本类型时比较值,对于引用类型比较的是对象地址。equals方法用于比较对象内容,可以被重写。基本数据类型包括byte、char等,它们的封装类支持自动装箱和拆箱。Integer对象的ValueOf方法在特定范围内会复用对象。字符串传递时,常量池中的String可以通过==比较,而new创建的String对象通过equals比较。强制类型转换需要注意精度损失。
摘要由CSDN通过智能技术生成

1. == 和equals
==比较的是地址,基本数据类型因为储存在栈中,所以相同值比较出来的结果为true,引用类型因为引用在栈中,对象在堆中,所以比较出来的结果为false。对引用类型来说,==比较的是两个引用是否指向同一对象。
Equals比较的是两个引用数据的内容,equals方法是可以重写的。而基本数据类型不存在equals这个说法。


2.基本数据类型
Java基本数据类型包括
byte 、char、short、int、long、double、float、boolean 
3.基本数据类型的封装类型
每个 基本数据类型都会有对应的封装类,java提供了数据类型的自动拆箱和自动装箱
拆箱:将封装类型转换为基本类型
装箱:基本类型转换成封装类型
4.自动拆箱,自动装箱
拆箱:将封装类型转换为基本类型
装箱:基本类型转换成封装类型
new Integer(2).equals(2)过程:先将2自动装箱成为封装类型,然后比较值

5.几种方法
  Valueof,返回的是Integer类型,128—127直接返回引用,否则返回新的对象
  Intvalue 返回的是int类型 
  parseInt 返回的是int类型
6.几种常见的比较
1. Integer.valueOf(129) == Integer.valueOf(129) false 129 返回的是新的对象
2. new Integer(23).equals(23) true  存在自动装箱
3.Integer.valueOf(127) == Integer.valueOf(127) true 129 返回的是同一个对象的引用

7.传值和传引用
1.基本数据类型传的是值,所以传过去的值改变不影响原来的变量
2.引用数据类型传的是地址,所以传过去的值改变直接改变原来的变量(指针改变)
3.String比较特殊,传递的是值
8.String
String a = “a” + “b” 实例化了三个string对象,因为String是不可变的 final类型的
String a = “a”
String b = “a” 则a == b为true 因为出现过的string会放在常量池中,他们指向常量池的同一个地址

String a = new String(“a”);
String b = new String(“b”);
则a == b为false 因为这是两个对象
9.强制类型转换
基本数据类型从小到大排序为:
Boolean, byte,char,short,int,long,float,double
Java中有隐式数据转换,即占用空间少的可以往大的上边转换
强制类型转换:需要手动转换,不转换就报错,会损失精度

Short没有加减法,因为加减法是int的,需要强制转换为short。

默认浮点类型为double,所以double类型可以不加d,而float类型必须加f

默认整数类型为int,long类型可以不加l,那是强制转换为int类型,当超过int 的取值范围,则必须加l。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值