Java中的数据类型

本文详细介绍了Java中的内置数据类型,包括整型(byte、short、int、long)、浮点型(float、double)、字符型(char)和布尔型(boolean)。特别强调了各类型之间的转换和使用注意事项,如整型提升、浮点型精度问题以及char类型的特殊性。此外,还提及了常用的引用类型String的特点和使用方法,如字符串拼接和与其他类型混合运算的情况。
摘要由CSDN通过智能技术生成

Java中的内置数据类型

和C语言一样,Java中每申请一个变量都要指定其特定的数据类型,因为JVM要根据这个类型为变量在内存中申请一定的空间。

Java中的内置类型分为4类8种,下面我们来一一介绍。

目录

Java中的内置数据类型

一、整型数据

1、byte

2、short

3、int 

4、long

二、浮点型数据

1、float

2、double

三、字符型数据

1、char

三、布尔型

1、boolean

一个常用的引用类型:String


 

一、整型数据

1、byte

byte类型是C语言中没有的一种类型,它的大小为一个字节表示的范围也就非常有限,仅为[ -128 , 127 ]。

下面看一个特殊的例子:

a + b 的值应该是30,并没有越界,但是为什么会报错呢?

这是因为计算机在存取数据的时候是以 int 的长度存取的,也就是说在进行向c赋值的时候,为了方便存取,取出的是一个4个字节长度的数字,也就是int类型(这里涉及整型提升),所以会报错。

2、short

short类型为短整型,占有两个字节,一般不推荐使用。

3、int 

在Java语言中,int 型的大小为固定4字节,和操作系统无关,这一点和C语言不同,C语言根据不同的位数操作系统分为2字节和4字节。

4个字节表示的数据范围为[ -2^31 , 2^31-1 ],大概就是-21亿到21亿,这个范围可以用int的包装类中的 Integer.MAX_VALUE和 Integer.MIN_VALUE 来查看。

需要注意的是Java中没有无符号类型的数据,这一点也和C语言有所区别。

4、long

long是长整型变量的标志,一个long类型的变量大小为8个字节,所以他的范围很大,足够应付大多数工程场景使用。

在定义一个long类型的变量时如下:

long num1 = 10L;
long num2 = 10l;

这是代表10是一个long类型的字面常量而不是一个int类型的。

需要注意的是int类型变量可以赋值给long类型,反之不行;这是因为如果long类型赋值给int类型可能会导致数据精度损失,毕竟long类型表示数据范围更大。

二、浮点型数据

1、float

float为单精度浮点型,长度为4个字节,遵循IEEE 754标准,由于表示范围精度都比较小,所以不推荐使用。

变量在定义的时候和long类型类似:

        float a = 123.3F;
        float b = 123.4f;

2、double

双精度浮点型,长度为8个字节,同样遵循IEEE 754标准,表示范围和精度都比较大,工程中更推荐使用。

由于精度的问题,浮点数比较大小容易出现问题。

浮点数的具体情况和C语言类似,这里不在赘述,具体见我的另一篇博客https://blog.csdn.net/qq_49044908/article/details/109781152

三、字符型数据

1、char

Java中的char类型和C语言有很大的不同,首先是长度,Java中占2个字节,其次在C语言中,char类型和int类型可以相互转化,但是Java中只可以做到char转化为int。

可见Java是一种强类型的语言。

char类型还可以表示汉字。如下:

三、布尔型

1、boolean

C语言早期版本中没有布尔型,在后期加入了bool类型其本质上也是int类型,

但是在Java中Boolean和int没有任何关系,它是一种单独的数据类型,不可以和别的任何类型的变量相互赋值。

它只有两个取值,false和true,所占字节大小根据不同的jvm有所不同,可能是1个字节也可能是1个比特位。

 

 

讲完了基本的数据类型,现在我们来看一个常用的引用数据类型String

一个常用的引用类型:String

String类表示一个字符串。

使用方法如下:

        String s1 = "abcd";
        System.out.println(s1);

字符串中的+操作表示拼接

       String s1 = "abcd";
        String s2 = "efg";
        System.out.println(s1+s2);

结果为:

字符串的+操作不仅可以拼接字符串,甚至可以拼接别的数据类型

        String s1 = "abcd";
        int a = 10;
        int b = 20;
        System.out.println(s1+a+b);

当+的左右两侧有一个是字符串的时候就进行拼接,上面的运行结果如下:

可见s1先和a进行拼接,得到一个"abcd10"的字符串,在和b拼接,得到最终的结果"abcd1020"这个字符串。

再看一段代码:

        String s1 = "abcd";
        int a = 10;
        int b = 20;
        System.out.println(a+b+s1);

这里的结果是:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值