java里面的基本数据类型与包装类(值传递与引用传递)

1. 基本数据类型

java里面有八种基本数据类型,分为:

  • 六种数字类型(四个整数型,两个浮点型):byte(8bit)、short(16bit)、int(32bit)、long(64bit)、float(32bit)、double(64bit)
  • 一种字符类型:char(16bit)
  • 还有一种布尔型:boolean(true、false)

而且,注意这里有自动类型转换:byte,short,char—> int —> long—> float —> double
这个自动类型转换,比如说定义一个char字符,可以将其赋值给一个int类型变量,而此时该变量的值为该字符对应的ASCII码值,还有一个应用的地方就是在switch语句中,是以枚举常量或一个整数表达式作为switch的表达式的,其中整数表达式是int或其包装类Integer,由于byte、short、char可以隐式转换为int类型,所以这三个与对应的包装类也可以作为switch的表达式,而long、float、double不能隐式转为int,所以要使用它们时,需要强制转换为int类型

2.包装类

byte → Byte

short → Short

int → Integer

long → Long

float → Float

double → Double

char → Character

boolean→ Boolean

3.基本数据类型与包装类的不同

  1. 基本数据类型的默认值与自身的类型有关,如int默认初始化为0,而包装类默认初始化为null
  2. java里面默认声明的小数是double类型的,如果想定义为float类型,需要指明,如
float f = 3.14f 或 float f = (float)3.14;
  1. 基本数据类型在传递参数的时候是按值传递,而包装类按引用传递
    值传递:相当于是复制过去,两个不同的存储空间
    引用传递:类似于C语言里面的指针,两个都是指向同一个地址的引用变量,在任何一个变量的基础上面进行相关,修改的都是同一个存储空间里面的值,即会影响到另一个变量的值
    这里举一个例子来说明值传递与引用传递的区别(因为包装类型不可变,所以这里先以StringBuilder来进行说明)
public class Test {

  private static void modify(StringBuilder builder,int i){
    builder.append("我是引用传递修改");
    i = 1;
  }

  public static void main(String[] args) {
    StringBuilder builder = new StringBuilder("Hello");
    int i = 0;
    System.out.println("调用传递前的值:" + "builder=" + builder + " i=" + i);
    modify(builder,i );
    System.out.println("调用传递后的值:" + "builder=" + builder + " i=" + i);
  }
}

运行结果:
在这里插入图片描述
可以看到,builder的值改变了而i的值没有改变,这便是值传递与引用传递的区别

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值