美文网首页
2020-06-03变量以及变量类型

2020-06-03变量以及变量类型

作者: testerPM | 来源:发表于2020-06-08 21:02 被阅读0次

变量概念如下:

image.png

变量定义语法:
变量类型 变量名=变量值

代码示例如下:

image.png

上图代码中tomAge也可以写成Tom_Age或者TomAage,从语法上是没有问题的,但是从代码规范来说,这是不符合编程规范,变量名通常用小写字母单词开头小驼峰命名。

数据类型划分

  1. 基本数据类型(四类八种)
  2. 引用数据类型

基本数据类型

image.png

上图缺省值指的是没有赋值时给的默认值,代码示例如下:
定义一个静态的全局变量age,没有给初始值,打印结果默认是 0


image.png

注意:

  1. 为什么age要加static,因为静态方法不能调用非静态变量,静态方法只能调用静态变量
    如下图报错


    image.png

2.为什么定义全局变量age,而不是在main方法里定义一个局部变量-》因为局部变量必须初始化,否则会报错


image.png

3.所有的静态方法里面不能定义static静态的局部变量,否则编译会报错


image.png

整型

代码示例1如下:


        byte a = 127;// byte 类型 取值范围-128到127
        byte b = 128;

eclipse ->byte b=128;这行代码会报错,报错信息如下

Type mismatch: cannot convert from int to byte

意思是:不能将int类型转换成 byte类型
因为:Java中数字默认类型是int类型,所以128默认的是int类型,将一个int类型赋值个byte类型-》转换失败,这是因为128超出了byte的取值范围(超出范围是不可以强转的)

代码示例2如下:

          int c = 2147483647;// int 类型取值范围 最大是2147483647
        int d = 2147483648;// 此处会报错,因为超出范围
        long e = 2147483648;// 此处会报错,取值虽然没有超出long的范围,但是默认的是int类型,所以如果想用long接收,需要加L
        long f = 2147483648L;// long类型接收超出int范围的int类型的数据,需要加L
        long g = 100;// 此处没有报错,因为默认的是int类型,而100又没有超出int范围所以不会报错(隐式转型即向上转型)(注意:这里100是long类型)

上面int d = 2147483648;long e = 2147483648;这两句代码会报错,报错信息都是下面的信息

The literal 2147483648 of type int is out of range 

原因:
1.虽然定义的是long类型,但是Java程序默认的是int类型,所以想要接收一个超出int范围的数据,需要加L(小写大写都可以,但是一般都大写),如果没有超出int范围,可以用long类型接收(隐式转型即向上转型)

 2. 定义一个long 类型变量,暂时只是放在栈内存中,而2147483648这样的数值,Java默认的是int类型,所以堆内存中给2147483648数值开辟空间是以int类型,所以数值超出int范围,会报错,如果加L,开辟空间时就是以long类型开辟空间

向下转型: 数据没有超出范围可以向下转,否则可能会数据溢出

   long a=100;
   int b=a;//long类型不能直接赋值给int类型(虽然100没有超出int范围,但是也不能直接赋值,需要向下转型)
   int c=(int) a;//long转成int(大转小,叫向下转型)

如下图代码 214748364000超出了int取值范围,如果进行向下转型,导致数据溢出

            long e = 214748364000L;
        int m = (int) e;
        System.out.println(m);//打印结果是:-800

字符

单字符用 char ,且用单引号
字符串用string ,且用双引号
不能把string 类型赋值给char,会报错

char c="aa";//此处会报错
Type mismatch: cannot convert from String to char
意思是不能string类型转成char类型

浮点型

Java中浮点型数据默认的是double类型,如果需要用float类型接收,需要加f(大写小写都可以)
下图点击Add cast to float 会自动加上强转代码


image.png

上图代码如下:


float f = 3.4;// 此处会报错,因为默认的是double类型,需要向下转型或者加f
        double f2 = 3.4;// 此处正确,因为默认的是double
        float f3 = 3.4F;// f大写小写都可以
        float f4 = (float) f;// 此处进行强转

同样的浮点型超出float范围,如果向向转型即转成float,也会溢出,如下打印结果就是Infinity,没有超出范围,打印的结果就是对的

        double f5 = 5000000000000000546666666666666666666666663435333333333333333333.856666666666666666666;
        float f6 = (float) f5;
        System.out.println(f6);//输出Infinity

总结

数据类型强转-> 转换规则:
       从低位类型到高位类型自动转换-》隐式转换
       1.char ->int :转成ASCII码
       2.byte->short->int->long
        基本数据类型->字符串(特殊)
        
     从高位类型到地位类型需要强制类型转换
       float a=(float)10.5;

相关文章

  • 2020-06-03变量以及变量类型

    变量概念如下: 变量定义语法:变量类型 变量名=变量值 代码示例如下: 上图代码中tomAge也可以写成Tom_...

  • 变量以及类型

    定义一个变量 变量命名规则 变量名称由字母、下划线和数字组成,且数字不能开头。变量名是区分大小写的。 变量命名一般...

  • JavaScript 变量类型

    变量类型 JavaScript 中的变量类型分为值类型(又称为简单类型、基本数据类型)以及引用类型。 【值类型】:...

  • Python变量以及类型

    变量的定义 在程序中,有时我们需要对2个数据进行求和,那么该怎样做呢? 大家类比一下现实生活中,比如去超市买东西,...

  • 前文

    栈内存: 存放变量(基本数据类型)以及引用(引用数据类型),当方法调用完成后,变量以及引用会被销毁变量中直接存放值...

  • Python学习笔记

    [Toc] 1注释 2变量以及类型 age=18在交互模式直接输入变量名称即可查看age 1变量类型 Number...

  • Java变量类型 Java进阶必看

    Java中有三种变量类型:类变量、成员变量、局部变量 变量的格式:type 变量名 = 值以及值之后的冒号 1.类...

  • Java变量类型 Java进阶必看

    Java中有三种变量类型:类变量、成员变量、局部变量 变量的格式:type 变量名 = 值以及值之后的冒号 1.类...

  • C语言数据类型

    C数据类型 在C语言中,数据类型指的是声明不同类型的变量和函数;变量的类型决定了变量存储占用的空间,以及如何解释存...

  • C-数据类型

    类型和描述 数据类型:是用于声明不同类型的变量或函数的一个广泛的系统。变量的类型决定了变量存储占用的空间,以及如何...

网友评论

      本文标题:2020-06-03变量以及变量类型

      本文链接:https://www.haomeiwen.com/subject/qypvzhtx.html