zoukankan      html  css  js  c++  java
  • 【JAVA基础】数据类型

    基本数据类型:

      整数型:byte(-128-127)、  short 、int(-21亿-21亿)、 long(19位数字)

      浮点型   float double

      字符型   char 

      布尔型   boolean

    引用数据类型:

      类、数组、接口、字符串、Lambda

    注意事项:

    1、字符串不是基本数据类型

    2、浮点数默认类型是double,如果一定使用float类型,需要加一个后缀F

    3. 整数型默认类型为int,如果一定使用long类型,需要加一个后缀L

    4.float 类型取值范围比long类型还大

    数据类型转换:当数据类型不一样时,会发生数据类型转换

    1) 自动类型转换(隐式)

    特点:代码不需要做特殊处理,自动完成

    规则:数据范围从小到大

    public class Demo01Datatype{
    	public static void main(String[] args)
    	{
    		/*左边是long类型,右边默认是int类型,左右不一样
    		   一个等号代表赋值,将右边的int常量赋值给左边的long类型变量存储
    		   int-->long ,符合了数据范围从小变化
    		   这行代码发生了数据类型自动转换
    		*/
    		long num1=100;
    		System.out.println(num1);//100
    		
    		/*左边是double类型,右边是float类型,左右不一致*
    		 float-->double,符合从小到大的规则
    		 自动类型转换
    		*/
    		double num2= 3.5F;
    		System.out.println(num2);//3.5
    		
    		/*左边是float类型,右边是int类型,左右不一致*
    		 int-->float,符合从小到大的规则
    		 自动类型转换
    		*/
    		float num3= 100L;
    		System.out.println(num3);//100.0
    		
    	}
    	
    }
    

     2)强制类型转换

       特点:代码需要特殊的格式处理,不能自动完成。从大到小

     格式: 范围小的类型  范围小的变量名= (范围小的类型) 原本范围大的数据;  比如 int num=(int) 200L;

    /*
    左边是int类型,右边是long类型,不一样,
    long--->int, 大到小,不会发生自动类型转换
    格式: 范围小的数据类型 范围小的变量名=(范围小的数据类型)  范围大的数据
    */
    
    public class Demo02Datatype{
    	public static void main(String[] args){
    		int num= (int)100L;
    		System.out.println(num);
    	}
    }
    

     类型转换的注意事项:

    1。强制类型转换一般不推荐使用户,因为可能发生精度损失、数据溢出

    2.byte/char/short 这三种类型的数据都可以发生数学运算,例如‘+’

    3.byte/short/char 这三种数据类型在运算时,都会被首先提升为int类型,然后在计算

    4. boolean 类型不能发生数据类型转换

    public class Demo02Datatype{
    	public static void main(String[] args){
    		int num1= (int)6000000000L;
    		System.out.println(num1); //1705032704 发生数据溢出,因为60亿大于int类型最大范围
    		
    		
    		int num2= (int)3.14F;
    		System.out.println(num2); //3,发生了精度损失
    		
    		char num3='A';
    		short num4= 34;
    		int num5= num3+num4;
    		System.out.println(num5); //99 , char和short 类型在运算时默认会提升为int类型
    	}
    }
    

      

    在给变量进行赋值的时候,如果右侧的表达式当中全都是常量,没有任何变量,
    那么编译器javac将会直接将若干个常量表达式计算得到结果。
    short result = 5 + 8; // 等号右边全都是常量,没有任何变量参与运算
    编译之后,得到的.class字节码文件当中相当于【直接就是】:
    short result = 13;

  • 相关阅读:
    BZOJ1212 [HNOI2004]L语言
    BZOJ1202 [HNOI2005]狡猾的商人
    BZOJ1295 [SCOI2009]最长距离
    BZOJ1266 [AHOI2006]上学路线
    BZOJ1297 [SCOI2009]迷路
    php declare (ticks = N)
    使用 trait 时报PHP Parse error: syntax error, unexpected 'use' (T_USE) 这个错误
    yii2 and short_open_tag
    Nginx负载均衡配置实例详解
    Could not fetch https://api.github.com/repos/RobinHerbots/jquery
  • 原文地址:https://www.cnblogs.com/paulwinflo/p/12710176.html
Copyright © 2011-2022 走看看