2023_10_15_DAY_01_JAVA_SE_Java基础知识_中_变量与运算符

发布时间 2023-10-15 16:36:58作者: Kbaor

2023_10_15_DAY_01_JAVA_SE_Java基础知识_中_变量与运算符

标识符、关键字和保留字

  • 标识符
    在Java语言中,通过标识符来表示一些元素的名字,比如变量名、类名、方法名和包名等。Java中的标识符要符合下面的规则:
  1. 标识符必须以字母、下划线(_)、数字或美元($)组成;
  2. 标识符必须由字母、下划线(_)或美元($)开头,不能由数字开头;
  3. 标识符不能是关键字或者保留字;
  4. 标识符中不能有空格;
  5. 标识符没有长度限制。
  6. Java区分大小写,因此area和Area是两个不同的标识符;
  7. 为提高程序的可读性,建议使用有意义的命名标识符,如area,length等。
  • 关键字和保留字
    关键字是对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等;保留字是为Java预留的关键字,虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字,关键字和保留字如下表所示。

变量

变量是指在程序的运行过程中随时可以发生变化的量,作用是:
1.变量是程序中数据的临时存放场所
2.保存程序运行时用户输入的数据
3.特定的运算结果等

  • 变量的声明
    1.声明变量的语法格式如下:
    数据类型 变量名,
    如:
    int age;
    2.如果要同时声明多个相同数据类型的变量,可以如下写:
    数据类型 变量名1,变量名2;
    代码举例如下:
    int number, max;
  • 变量的赋值
    第一次给变量赋值叫"初始化"。使用等号"="来进行赋值,语法如下:
    变量名 = 数据值;
    例如:
    int number;
    number = 1000;

    也可以把变量的声明和初始化合用一个语句实现出来,例如上面两行代码就可以改写成一行代码:
int number = 1000;

常量

在程序中往往会存在变量值不需要变化的情况,比如表示圆周率的变量,比如表示黄金分割点的变量,那么这些值不允许发生改变的变量就叫常量。
在Java中,常量用关键字final来表示(在后面章节会详细讲解),它也是有数据类型的,语法如下:
final 数据类型 常量名 = 初始值;

  1. 常量在声明的时候必须初始化;
  2. 常量在初始化后值不能再更改,否则会引起错误。
final double PI = 3.14;

数据类型

基本数据类型(8个)

数值类型(6个)

  • 整数(4个)
    byte,short,int,long
    Java语言的整型常量默认为int型,声明long型后面需加上l或者L,否则会出错。
  • 小数(2个)
    float,double
    Java浮点型常量默认为double型,如要声明一个常量为float型,则需在数字后面加f或F,
  1. 带小数的数据默认是double型而非float型的;
  2. 定义float型数据需要后面紧跟"f"或"F"来表示,比如float f = 2.1f;
  3. 定义长整型数据,可以后面紧跟"l"或"L"来表示。

字符类型(char)

字符数据类型用于存放单个字符,每个字符占用2个字节(16位二进制)的内存空间。一个字符型数据由单引号括起来,使用"char"关键字来说明数据类型,如下:

char letter = 'a';

字符类型是一个16位无符号整数,Java中字符类型的值是对应字符的编码, 是unicode编码,其中,英文部分的值与ascII编码一致。char是定长编码, 所有的字符都是16位。

  1. 字符型只表示一个字符,不能表示多个字符,比如'abc'是错的;
  2. 字符型只能用单引号(')括起来,用双引号(")括起来的不是字符,而是字符串(String),比如"a"表示的不是char型字符而是String型字符串。

Java还允许使用转义字符来表示特殊字符。转义字符用斜杠""打头,后面跟一个字符。

名称 转义字符 说明
退格键 \b 表示一次退格
Tab键 \t 表示一个Tab空格
换行符 \n 表示换行
回车键 \r 表示回车
斜杠 \\ 表示斜杠
单引号 \' 表示单引号
双引号 \" 表示双引号

布尔类型(boolean)

布尔数据类型由关键字boolean来表示,布尔型数据的值域只有两个值:true和false

  1. true和false都是小写,True、TRUE、False、FALSE都不是布尔型数据的值;
  2. 布尔型数据不能用数字0和1来表示真假,只能用true和false;
  3. 布尔型数据默认值是false。

引用数据类型

接口

数组

数据类型转换

自动数据类型转换

自动数据类型转换也称之为隐式类型转换,我们在数值数据类型中了解到,不同类型的数据会占用不同大小的存储空间,那么数据类型自动转换的原则就是:小空间的数据类型可以自动转换成大空间的数据类型,也就是说低精度的数据可以升级成高精度的数据,反之不行,我们可以理解成高精度的数据转换成低精度的数据会失去数据的精度,所以能这样转换。

强制数据类型转换

强制数据类型转换也称之为显式类型转换,既然有些数据类型不能互相自动进行转换,那么Java提供了强制转换的方法,强制转换的语法就是用圆括号括起你要转换成的目的数据类型:
变量=(目标类型)值;

byte a;
int b;
a = (byte) b;
int i = (int)2.8;
float f = (float)5.2;

温馨提示:

  1. boolean型数据不能和其他基本数据类型进行转换;
  2. char型和int型数据可以互换;
  3. byte、short、char之间不会相互转换,它们三者在计算时首先会转换为int类型;
  4. 在强制类型转换过程中,源类型的值可能大于目标类型,因此可能造成精度降低或溢出,使用时需注意。

运算符

算术运算符和表达式

算术运算是一种常见的运算,主要是对数值型数算术运算是一种常见的运算,主要是对数值型数据进行加减乘除等运算,Java的算术运算符如下表:据进行加减乘除等运算,Java的算术运算符如下表:

运算符 名称 备注
+ 加运算符
- 减运算符
* 乘运算符
/ 除运算符 若是两个整数相除,只保留整数部分
% 取模(取余)运算符 被除数为正数结果都为正,被除数为负数结果都为负
++ 自增 ++变量名:变量在参与其他操作前先将自己加1;变量名++:先用原来的值参与其他操作后,再将自己加1
-- 自减 算法同++
+ 字符串连接 当操作数中只要有一个是String类型,系统会自动将另一个操作数转换成字符串类型,然后进行连接

赋值运算符和表达式

运算符 名称 例子 说明
= 赋值运算符 i=8 8赋值给i
+= 加简捷赋值运算符 i+=8 同i=i+8
-= 减简捷赋值运算符 i-=8 同i=i-8
*= 乘简捷赋值运算符 i*=8 同i=i*8
/= 除简捷赋值运算符 i/=8 同i=i/8
%= 取模简捷赋值运算符 i%=8 同i=i%8

关系运算符和表达式

关系运算又叫比较运算,用来对两个操作数进行大小、等于的关系比较,下表列出了关系运算符。

运算符 名称 例子 说明
> 大于 1>2 false
>= 大于等于 1>=2 false
< 小于 1<2 true
<= 小于等于 1<=2 true
== 等于 1==2 false
!= 不等于 1!=2 true

逻辑运算符和表达式

逻辑运算又叫布尔运算,包括四个运算符,分别是&&、||、!和^,用来进行与、或、非和异或的逻辑运算。逻辑运算的操作数和结果都是布尔类型的值。下表列出了逻辑运算符

运算符 名称 运算规则
&& 与运算符 逻辑与 运算符左右两端的操作数都为true,表达式结果才为true,其它情况表达式结果为false
|| 或运算符 逻辑或 运算符左右两端的操作数都为false,表达式结果才为false,其它情况表达式结果为true
非运算符 逻辑取反 操作数为true,结果为false;操作数为false,结果为true

三目条件运算符

三目条件运算符的语法为:
表达式1 ? 表达式2 : 表达式3
如果表达式1为真,取表达式2的值,否则取表达式3的值

运算符的优先级

表达式通常由多个运算符组成。优先级的规则决定每个运算符在任何给定表达式中的计算顺序。表达式是按照从左到右运算符的优先级来进行运算的,正因为这种优先级的限制,才保证了每个表达式每次运算的结果都一样。
按操作数多少划分
一元操作符 > 二元操作符 > 三元操作符
按运算类型划分
算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符
尽量多的使用括号,括号优先级别最高,使用括号也可保证在不确定优先级的情况下,更好地控制语句的执行顺序。

表达式

关于表达式,有下面几个概念需要介绍。
1.表达式的值:对表达式中操作数进行运算得到的结果称为表达式的值;
2.表达式的类型:表达式值的数据类型即为表达式的类型;
3.表达式的运算顺序:应按照运算符的优先级从高到低的顺序进行,优先级相同的运算符按照事先约定的结合方向进行,具体参考上一小节的介绍。