简单讲述我对java中变量的理解


聊一聊java中的常量与变量

首先在讲讲变量之前我想先聊一聊常量的概念,区别于变量,常量是java运行过程中值不发生改变的量,比如整数常量100、10000;小数常量1.0;字符常量’中’、‘a’;字符串常量"java";布尔常量 true、false;最后的空常量null;以及最后的自定义常量。这些常量在java程序编写一旦写上就不可改变。
那什么是变量呢?变量就像一个可以储存数据的容器,不同类型的变量可以储存不同类型数据。数据类型分类基本数据类型和引用数据类型,基本数据类型又可分为整形:byte(字节)、short(短整型)、int(整形)、long(长整型);浮点型:float(单精度)、double(双精度)、布尔型:boolean;字符型:char(字符)。可以简称为四类八种。

基本数据类型

上面一段中讲了基本数据都有哪些种类,接下来具体聊一聊什么是基本数据类型,以及基本数据类型的使用方法。
在说明之前,我先简单说一下计算机中字节的概念。是字节(byte)计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位,一个字节可以表示的数据范围为-128~127。简单说就是储存数据的单位,不同的数据类型有不同的存储空间,byte是1字节、short是2字节、int是4字节、long是8字节,float是4字节、double是8字节、boolean是1字节、字符型是2字节。

整形占用大小(字节)表示范围
byte1字节-128~127
short2字节-32768~32767
int4字节-231~231-1
long8字节-263~263-1
float4字节-e^38 ~e^38 (e表示已10为底)
double8字节-e^38 ~e^38
boolean1字节true和false
char2字节0~65535

变量在程序中如何声明及初始化

先我们先声明一个整形int类型的变量

int i;
i=100;

然后再声明一个浮点型double类型的变量

double d;
d=3.1415926;

在变量声明及初始化过程中切记不要超出所使用变量的范围

基本数据类型的数据转换

1.给定值如果是整数默认就是int类型,如果加上L/l就会变成长整形long

long l=10000000000L;

2.给定值如果是小数默认就是double类型,如果加上F/f就会变成float类型

float f=3.14F

3.隐式类型转换:类型提升(从小到大)
1)byte、short、char的任意操作都会提升为int类型

byte a=1;
int b=1;
//由于a是byte类型在进行加法操作后的结果会变成int类型
int c=a+b;
byte a=1;
byte b=1;
//就算a和b都是byte类型,相加后的结果也是int类型
int c=a+b;

2)整数类型提升为小数类型时精度会丢失

long l=168416548948L;
float f=l;//结果为1.68416543E11

4.强制类型转换
1)大范围的数据类型可以强制转化为小范围数据类型,数据值在不超范围的情况时如下

int a=100;
byte b=a;

2)大范围的数据类型可以强制转化为小范围数据类型,在超范围的情况下会造成数据精度丢失

double b=3.1415926535;
  float f=(float)b;  //f=3.1415927

3)我在举一个神奇的例子

 int a=128;
 //b在进行强制类型转后的结果为-128
 byte b=(byte)a;  //b=-128

在这个例子中我们可以看到在程序编译后的结果为-128;这是因为int类型的数据在内存中占4个字节强转为byte后会变成1个字节。

int a=100;//  可以表示为                 00000000 00000000 00000000 10000000
 byte b=(byte)a;//在强转为byte后                                    10000000 
 //也就是说变成了一个字节 10000000中第一个1代表符号“-”号 然后由于又要代表数据 
 //2进制数10000000 变成十进制数128,故最后出来的结果为-128

这里用到了计算机底层的2进制,不太清楚的小伙伴可以去翻阅一下相关的资料

最后由于我的水平有限,写出来也就这么多,感谢阅读。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值