(javase)数据类型-整数型

本文详细介绍了Java中整数型数据类型,包括byte、short、int、long的默认值、取值范围以及字面值表示方式。重点讲解了整数型字面值的默认类型、如何指定long类型以及不同进制的表示。同时,通过示例代码展示了类型转换的过程,包括自动类型转换和强制类型转换。文章还探讨了字面值在不超过小容量类型取值范围时可以直接赋值给小容量变量的特殊情况。
摘要由CSDN通过智能技术生成

/*
  关于Java语言当中的整数型:
    数据类型          占用空间大小      默认值      取值范围
--------------------------------------------------------------------
     byte               1                  0         [-128 ~ 127]
     short              2                  0         [-32768 ~ 32767] 
     int                4                  0         [-2147483648 ~ 2147483647] 
     long               8                  0L

1、java语言当中的“整数型字面值”被默认当做int类型来处理。要让这个“整数型字面值”被当做
long类型来处理的话,需要在“整数型字面值”后面添加l\L,建议使用大写的L

2、java语言当中的整数型字面值有三种表示方式:
   第一种方式:十进制【是一种缺省默认方式】常用
   第二种方式:八进制【在编写八进制整数型字面值的时候需要以0开始】
   第三种方式:十六进制【在编写十六进制整数型字面值的时候需要以0x开始】


*/

public class DataTypeTest04
{
    public static void main(String[] args) {
    
      int a = 10;
      int b = 010;//整数型字面值以0开头的,后面那一串数字就是八进制形式
      int c = 0x10;//整数型字面值以0x开头的,后面那一串数字就是十六进制形式

        System.out.println(a);//10
        System.out.println(b);//8
        System.out.println(c);//16
        System.out.println(a + b + c);//34
        
        //123这个整数型字面值是int类型
        //i变量声明的时候也是int类型
        //int类型的123赋值给int类型的变量x,存在类型转换
        int i = 123;
        System.out.println(i);
        
        //456整数型字面值被当做int类型,占用4个字节
        //x变量在声明的时候是long类型,占用8个字节
        //int类型的字面值456赋值给long类型的变量x存在类型转换
        //int类型转换成long类型
        //int类型是小容量
        //long类型是大容量
        //小容量可以自动转换成大容量,称为自动类型转换机制
        long x = 456;
        System.out.println(x);
        
        //2147483647字面值是int类型,占用4个字节
        //y是long类型,占用8个字节,自动类型转换
        long y = 2147483647;
        System.out.println(y);

        /*
        编译错误:过大的整数:2147483648
        2147483648被当做int类型4个字节处理,但是这个字面值超出int类型范围
        long z = 2147483648;
        解决错误:
        2147483648字面值一上来就当做long类型来处理,在字面值后面添加L
        2147483648L是8个字节的long类型
        z是long类型变量,以下程序不存在类型转换
        */
        long z = 2147483648L;
        System.out.println(z);
    }
}
/*
  public class DataTypeTest05
  {
     public static void main(String[] args){
     
      long x = 100L;

      //编译报错,大容量不能直接赋值给小容量
      //int y = x;
      
      //大容量转换成小容量,需要进行强制类型转换
      //强制类型转换需要加“强制类型转换符”
      //加上强制类型转换符之后编译就通过了,但是运行之后可能损失精度。
      //所以强制类型转换谨慎使用,因为损失精度之后可能损失很严重
      int y = (int)x;
      System.out.println(y);

      //分析以下程序是否可以编译通过?
      //依据目前所学内容,以下程序是无法编译通过
      //理由:50是int类型的字面值,b是byte类型的变量,显然是大容量int转换成小容量byte
      //大容量转换成小容量是需要添加强制类型转换符的,以下程序没有添加强转符号,所以编译报错。
      //但是,在实际编译的时候,以下代码编译通过了,这说明:在java语言当中,当一个整数型字面值
      //没有超过byte类型取值范围的话,该字面值可以直接赋值给byte类型的变量。
      byte b = 50;//可以
      byte c = 127;//可以
      byte b1 = 128;//不可以,超过了byte类型的取值范围

      /*
      当一个整数字面值没有超出byte,short,char的取值范围,这个字面值
      可以直接赋值给byte,short,char类型的变量。这种机制SUN允许了,目的
      是为了方便程序员的编程。
      */

//     }
// }
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

拂心L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值