JAVA中用什么来定义布尔型变量_Java基础-基本类型变量和引用类型变量

前言

每个变量占据了一定的内存位置,声明一个变量时,就是在告知编译器这个变量可以存放什么类型(占据多少个字节的内存)。

什么是基本类型变量

一、定义

JAVA语言本身定义的整型、字符型、浮点型和布尔类型是基本类型变量,通俗来说可利用关键字声明的变量就是基本类型变量。对于基本类型变量来说,对应内存所存储的值就是基本类型值。

二、八种基本类型变量

1.整型

byte—占据1个字节 范围:-2^7~2^7-1;

short –占据2个字节 范围:-2^15~2^15-1;

int——占据4个字节 范围:-2^31~2^31-1;计算机默认整型为int类型。

long—-占据8个字节 范围:-2^63~2^63-1;

2.字符型

char 占据2个字节 范围:0~(2^15) - 1;定义该变量时需要用单引号‘’引用,或者用数字,在计算机中是16位无符号整数形式存储,unicode全球统一编码范围为0-65535,65–A,97–a,48–0,特殊符号需要用\转义。

3.浮点型

float 占据4字节 范围:3.4e-45~1.4e38;

double 占据8个字节 范围:4.9e-324~1.8e308;计算机默认浮点型为double类型。

54bea4877adb1759c7913a113be98edb.png

在计算机中,浮点数通常被表示成如下格式: 浮点值 = Ms值 × M值×R^E值

|__Ms(符号位)__|____E(阶位)____|________M(尾数位)________|

Ms是尾数的符号位(sign bit),即浮点数的符号位,安排在最高一位,其中 0 表示数值为正数,而 1 则表示负数;R是阶码的基数,计算机一般规定为2、8或16,是一个不确定的常数;E 是阶码,紧跟在符号位之后,单精度数为 8 位,双精度数为 11 位,都含阶码的一位符号位;M 是尾数,在低位部分,占用n位。

注意:由于计算机存储方式的原因,所以存在精度丢失的情况,数字电路有更加详细的解释。

4.布尔类型

boolean 占据1字节 只有两种值:true/false;所有逻辑条件都是布尔值。

引用类型变量

一、定义

引用类型变量(内存)存储的是一个引用(基址),它指向对象在内存中的位置(对象的存储地址)。对象类型都是引用类型变量。

二、解析

50077569ec222f1cb6532b9c86666d8e.png

注意:字符串不是基本类型变量,字符串“MadJieJie”就相当于构造器new String()那样的实例,大家可以像指针那样理解成为引用类型变量实际上存储的只是地址。

基本类型变量和引用类型变量区别

赋值

将一个变量赋值给另一个变量,则两者拥有相同的值。

byte a = 1;

byte b = 2;

a=b;

e1fb3fc3c1ef50d9f1d2b1abe765364c.png

对于基本类型变量而言,就是将一个变量的实际值赋给另一个变量,实际上就是将变量内存里所有的位上的二进制替换掉。

String object1 = “MadJieJie”;

String object2 = “MadJieJie”;

ee8136e500672201514bf723986af26b.png

object1 = object2; //两者引用值相等之后

c95db296838fe00c0270efdf8713b8d9.png

当两者引用值相等之后,object1的引用就指向了object2对象,那么原来object1的内存是不会造成内存泄漏的,因为object1对象失去了所有的引用,它会被系统当作垃圾回收,这是JAVA的内存回收机制,但请注意,若object1还有其他引用变量指向它就不被回收。

对于引用类型变量而言,就是将一个变量的引用赋给另一个变量,实际上就是替换了对象的基址。

注意:

新手想要判断它们存储的字符串是否一样时,往往使用object1 == object2;返回的布尔值是true还是false呢?

答案显然是false,因为不同对象开辟的地址不一样,Java内存分配机制不可能分配已经使用的地址给予新的对象。

我们可以使用equals()方法来比较它们存储的字符串数据是否相同。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值