【java语言基础③】Java编程基础——Java中的变量、运算符

发布时间:2024年01月24日

Java中的变量

1.什么是变量

变量:在程序运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在内存单元中,每个内存单元都用一个标识符标识,这些用于标识内存单元的标识符就称为变量,内存单元中存储的数据就是变量的值。

2.变量的数据类型分类

在Java中,变量的数据类型分为两种,即基本数据类型和引用数据类型。Java中的所有数据类型如下。

在这里插入图片描述

  • 整型类型变量:用来存储整数数值,即没有小数部分的值。整数类型分为4种不同的类型,分别是字节型(byte)、短整型(short)、整型(int)和长整型(long),4种类型所占存储空间的大小以及取值范围(变量存储的值不能超出的范围)如下表所示。

    类型占用空间取值范围
    byte8位(1个字节)-27 ~ 27-1
    short16位(2个字节)-215 ~ 215-1
    int32位(4个字节)-231 ~ 231-1
    long64位(8个字节)-263 ~ 263-1

    注意:在为一个long类型的变量赋值时,所赋值的后面要加上字母L(或小写l),说明赋值为long类型。如果赋的值未超出int类型的取值范围,则可以省略字母L(或小写l)。

  • 浮点数类型变量:“浮点数类型变量”用于存储小数数值。double类型所表示的浮点数比float类型更精确,两种浮点数所占存储空间的大小以及取值范围(变量存储的值不能超出的范围)如表所示。

    类型名占用空间取值范围
    float32位(4个字节)1.4E-45 ~ 3.4E+38,-3.4E+38 ~ -1.4E-45
    double64位(8个字节)4.9E-324 ~ 1.7E+308, -1.7E+308 ~ -4.9E-324

    float类型变量值后面必须要加上F或f,double类型变量值后面可以加上D或d,也可以不加。也可以为一个浮点数类型变量赋予一个整数数值,JVM会自动将整数数值转换为浮点类型的值。

  • 字符类型变量:在Java中,字符型变量用char表示,用于存储一个单一字符。Java中每个char类型的字符变量都会占用2个字节。在给char类型的变量赋值时,需要用一对英文半角格式的单引号(’ ‘)把字符括起来,如’a’。

  • 布尔类型变量:在Java中,使用boolean定义布尔型变量,布尔型变量只有true和false两个值。

3.变量的类型转换
  1. 自动类型转换:自动类型转换也叫隐式类型转换,指的是两种数据类型在转换的过程中不需要显式地进行声明,由编译器自动完成。自动类型转换必须同时满足以下两个条件:

    (1)两种数据类型彼此兼容。

    (2)目标类型的取值范围大于源类型的取值范围。

    自动类型转换主要有以下几种情况:

    (1)整数类型之间可以实现转换。

    例如,byte类型的数据可以赋值给short、int、long类型的变量;short、char类型的数据可以赋值给int、long类型的变量;int类型的数据可以赋值给long类型的变量。

    (2)整数类型转换为float类型。

    例如,byte、char、short、int类型的数据可以赋值给float类型的变量。

    (3)其他类型转换为double类型。

    例如,byte、char、short、int、long、float类型的数据可以赋值给double类型的变量。

  2. 强制类型转换:强制类型转换也叫显式类型转换,指的是两种数据类型之间的转换需要进行显式地声明。当两种类型彼此不兼容,或者目标类型取值范围小于源类型时,自动类型转换无法进行,这时就需要进行强制类型转换。

    注意:在对变量进行强制类型转换时,如果将取值范围较大的数据类型强制转换为取值范

    围较小的数据类型,如将一个int类型的数转为byte类型,极容易造成数据精度的丢失。

表达式类型自动提升:所谓表达式是指由变量和运算符组成的一个算式。变量在表达式中进行运算时,可能发生自动类型转换,这就是表达式数据类型的自动提升。例如,一个byte类型的变量在运算期间类型会自动提升为int类型。

4.变量的作用域

变量需要在它的作用范围内才可以被使用,这个作用范围称为变量的作用域。

如果大家觉得变量的作用域不好区分,可以简记为一个变量的作用域通常是他所在的一个大括号的内部

Java中的运算符

  • 算数运算符及用法

    运算符运算范例结果
    +正号+33
    -负号b=4;-b-4
    +5+510
    -6-42
    *3*412
    /5/51
运算符运算范例结果
%取模(即算术中的求余数)7%52
++自增(前)a=2;b=++a;a=3;b=3;
++自增(后)a=2;b=a++;a=3;b=2;
自减(前)a=2;b=–a;a=1;b=1;
自减(后)a=2;b=a–;a=1;b=2;

(1)在进行自增(++)和自减(–)运算时,如果运算符++或–放在操作数的前面,则先进行自增或自减运算,再进行其他运算。反之,如果运算符放在操作数的后面,则先进行其他运算再进行自增或自减运算。

(2)在进行除法运算时,当除数和被除数都为整数时,得到的结果也是一个整数。如果除法运算有小数参与,得到的结果会是一个小数。

(3)在进行取模(%)运算时,运算结果的正负取决于被模数(%左边的数)的符号,与模数(%右边的数)的符号无关。

  • 赋值运算符:赋值运算符的作用就是将常量、变量或表达式的值赋给某一个变量。Java中的赋值运算符及用法具体如下表所示。

    运算符运算范例结果
    =赋值a=3;b=2;a=3;b=2;
    +=加等于a=3;b=2;a+=b;a=5;b=2;
    -=减等于a=3;b=2;a-=b;a=1;b=2;
    *=乘等于a=3;b=2;a*=b;a=6;b=2;
    /=除等于a=3;b=2;a/=b;a=1;b=2;
    %=模等于a=3;b=2;a%=b;a=1;b=2;

    (1)在Java中可以通过一条赋值语句对多个变量进行赋值,具体示例如下。

    int  x, y, z; 
    x = y = z = 5;// 为三个变量同时赋值
    

    (2)除了“=”,其他的都是特殊的赋值运算符,以“+=”为例,x += 3就相当于x = x + 3,表达式首先会进行加法运算x+3,再将运算结果赋值给变量x。-=、*=、/=、%=赋值运算符都可以此类推。

  • 比较运算符:比较运算符用于对两个数值或变量进行比较,比较运算结果是一个布尔值,即true或false。Java中的比较运算符及用法具体如下表所示。

    运算符运算范例结果
    ==等于4 == 4false
    !=不等于4 != 3true
    <小于4 < 3false
    >大于4 > 3true
    <=小于或等于4 <= 3false
    >=大于或等于4 >= 3true
  • 逻辑运算符:逻辑运算符用于对布尔型的数据进行操作,其结果仍是一个布尔值。主要包括& 、|、 ^ 、!、&&、||。

1.运算符中的优先级

复杂的表达式进行运算时,要明确表达式中所有运算符参与运算的先后顺序,通常把这种顺序称作运算符的优先级。运算符的优先级如下表所示。

优先级运算符
1. [] ()
2++ – ~ ! (数据类型)
3* / %
4+ -
5<< >> >>>
6< > <= >=
7== !=
优先级运算符
8&
9^
10|
11&&
12||
13?:
14= *= /= %= += -= <<= >>= >>>= &= ^= |=

如果以上分享对您有帮助,欢迎关注公众号获取更多资料:
在这里插入图片描述

文章来源:https://blog.csdn.net/weixin_73582152/article/details/135833447
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。