Java基本数据类型

Java的数据类型和C语言的数据类型有相通之处,但是也有不少的差异

数据类型

Java的数据类型可以分为两种,一种是基本数据类型,一种为引用类型;这篇博客讲的是基本数据类型。讲述数据类型都会涉及到什么数据类型操控多少字节数的问题,Java的数据类型基本上都是规定死的,与操作系统没有直接的关系,更不存在64位、32位操作系统下字节数会不一样的情况这和C语言就出现了一个明显的差别。

整型

基本使用格式:
int 变量名 = 初始值;
int类型占用4个字节,其数值范围-2^31 ~ 2^31 - 1(-21亿 ~ 21亿);
注意事项:
1、int表示变量的类型是一个整数;
2、变量名是变量的标识,后续都是用过这个名字来使用变量
3、Java中 = 表示赋值(和数学不一样),意思是给变量设置一个初始值
4、初始值操作是可选的,但是建议创建变量的时候都显示初始化
5、最后不要忘记分好,否则回编译失败
6、//表示注释,注释作为戴拿的解释说明部分,不参与编译运行

System.out.println(Integer.MAX_VALUE);
System.out.println(Integer.MIN_VALUE);

在这里插入图片描述
在上述代码中,Integetr是Java标准库中的一个已经实现好的类,Integer类也可以说是int类型的“包装类”。

长整型

基本格式:
long 变量名 = 初始值;
long类型所占字节数为8个字节,其范围为-2^63 ~ 2^63 - 1 ;
长整型long的使用格式与int类型基本一致,Java中为了区分long和int,在使用long类型的使用会在初始值后加上L,小写大写都可,但还是推荐使用大写为好,以便区分。

System.out.println(Long.MAX_VALUE);
System.out.println(Long.MIN_VALUE);

在这里插入图片描述

短整型

基本格式:
short 变量名 = 初始值;
在这里短整型不做过多介绍,其余int的使用方法是一致的,主要还是短整型使用的并不多,无须赘述。

byte类型

基本使用格式:
byte 变量名 = 初始值;
byte类型所占空间不大,就一个字节,其的范围是-128 ~ +127;相比short类型来说,byte所使用的的频率要较高一些,因为在学习计算机网络这一方面的知识的时候,传输数据都是以字节为单位传输的;

浮点型

同样是与C语言进行比较,Java浮点型和C语言浮点型是一样的

单精度浮点型

基本格式:
float 变量名 = 初始值;
float类型在Java中占四个字节,同样遵守IEEE 754 标准, 和C语言类似,由于表示的数据精度范围较小,一般在工程上用到浮点数都优先考虑double,不太推荐float;

float num = 1.51f;
System.out.println(num);  

在这里插入图片描述

双精度浮点型

double——8字节
在大部分编程语言中,整数除以整数,结果仍为整数(小数点后面会被舍弃,而不是四舍五入)
代码中不应该用’=='来判断两个浮点数是否相等;正确的做法,针对两个要比较的数字进行做差;看到的差值,是否小于预期的误差范围;如果小于误差,就可以近似认为相等;

double a = 1.1;
double b = 1.1;
System.out.println("a * b = " + a * b);
if(a * b - 1.21 < 0.000001 && a * b - 1.21 > - 0.000001)
    System.out.println("a*b与1.21相等");
else
    System.out.println("a*b与1.21不相等");

在这里插入图片描述浮点数的最小值是一个大于零的数值

System.out.println(Double.MAX_VALUE);
System.out.println(Double.MIN_VALUE);

在这里插入图片描述

字符类型

字符类型

基本格式:
char 变量名 = 初始值;
Java中的char类型变量所占的字节数为2个字节,这是和C语言相差较大的地方,其次char类型的变量不允许和整数进行混淆,不像C语言当中一样可以根据ASCLL中的数据所代表的的十进制来进行整数运算。
注意事项:
1、Java中使用 单引号 + 单个字母 的形式表示字符字面值
2、计算机中的字符本质上是一个整数,在C语言中使用ASCLL表示字符,而Java中使用Unicode表示字符,因此一个字符占用两个字节,表示字符种类更多,包括中文

数值提升

int a = 10;
long b = 20;
int c = a + (int)b;
long d = a + b;
System.out.println(c);
System.out.println(d);

我们都知道隐式类型转换,即低字节可以隐式赋值给高字节数,而高字节向低字节数赋值时就要进行强制类型转换了;
在上述例子中可以看到,当a+b赋值给c的时候,long类型的b要强制转换为int类型,而赋值给d的时候却不用;
当一个int类型和long类型运算的时候,系统会将int类型的数值提升为long类型后在进行运算,最后得到的数值就是long类型的了;
在实际使用的时候,不建议采用强制类型转换,因为这就意味着出现因为类型问题而导致代码出错的情况会有程序员自己承担后果!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值