Java 变量和运算符

一、标识符

1、标识符的概念和命名

(1)、概念

  • Java 对各种变量方法等要素命名时使用的字符序列称为标识符

  • 凡是自己可以起名字的地方都叫标识符

(2)、标识符规则

  • 由26个英文字母大小写,0-9 ,_或 $ 组成

  • 数字不可以开头。

  • 不可以使用关键字和保留字,但能包含关键字和保留字。

  • Java中严格区分大小写,长度无限制。

  • 标识符不能包含空格。

2、关键字和保留字

(1)、关键字的定义和特点

定义:被Java语言赋予了特殊含义,用做专门用途的字符串(单词)

特点:关键字中所有字母都为小写

image-20210206111935832

image-20210206111944391

(2)、保留字的定义和特点

Java保留字:现有Java版本尚未使用,但以后版本可能会作为关键字使用。自己命名标识符时要避免使用这些保留字
byValue、cast、future、 generic、 inner、 operator、 outer、 rest、 var 、 goto 、const

二、变量

1、 概念

内存中的一块数据存储空间的表示

2、 三要素

image-20210206112020715

3、声明和使用步骤

(1)、声明变量

  • 语法:<数据类型> <变量名称>

  • 例如:int var;

(2)、变量的赋值

  • 语法:<变量名称> = <值>

  • 例如:var = 10;

(3)、变量的使用

  • 语法: System.out.println(变量名);

  • 例如:System.out.println(var);

4、使用特点

①同一个作用域,变量不可以重名

作用域:变量的作用范围(根据变量的定义位置来确定变量的作用域)

②变量必须先声明、赋值最后再使用

③变量的值可以更新,但必须在同一个类型范围内

④变量具备内存的"易失性"的特点

三、进制【选学】

(1)、 进制的分类

  • **二进制:**0,1 ,满2进1.以0b或0B开头。

  • **十进制:**0-9 ,满10进1.

  • **八进制:**0-7 ,满8进1. 以数字0开头表示。

  • **十六进制:**0-9及A-F,满16进1. 以0x或0X开头表示。此处的A-F不区分大小写。

如:0x21AF +1= 0X21B0

(2)、 进制的转换

进制的基本转换

  • 十进制 二进制互转

    • 二进制转成十进制 乘以2的幂数

    • 十进制转成二进制 除以2取余数

  • 二进制 八进制互转

  • 二进制 十六进制互转

  • 十进制 八进制互转

  • 十进制 十六进制互转

四、数据类型

1、 分类

对于每一种数据都定义了明确的具体数据类型,在内存中分配了不同大小的内存空间。

image-20210206112112393

2、 整型

  • Java各整数类型有固定的表数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性。

  • java的整型常量默认为 int 型,声明long型常量须后加’l’或’L’

  • java程序中变量常声明为int型,除非不足以表示大数,才使用long

image-20210206112119879

3、 浮点型

  • 与整数类型类似,Java 浮点类型也有固定的表数范围和字段长度,不受具体OS的影响。

  • Java 的浮点型常量默认为double型声明float型常量,须后加’f’或’F’。

  • 浮点型常量有两种表示形式:

    • 十进制数形式:如:5.12 512.0f .512 (必须有小数点)

    • 科学计数法形式:如:5.12e2 512E2 100E-2

    • 通常情况下,应该使用double型,因为它比float型更精确。

image-20210206112127054

4、 字符型

  • char 型数据用来表示通常意义上"字符"(2字节)

  • 字符型常量的三种表现形式:

    • 字符常量是用单引号(’ ')括起来的单个字符,涵盖世界上所有书面语的字符。例如:char c1 = ‘a’; char c2 = ‘中’; char c3 = ‘9’;

    • Java中还允许使用转义字符’\'来将其后的字符转变为特殊字符型常量。例如:char c3 = ‘\n’; // '\n’表示换行符

    • 直接使用 Unicode 值来表示字符型常量:’\uXXXX’。其中,XXXX代表一个十六进制整数。如:\u000a 表示 \n。

  • char类型是可以进行运算的。因为它都对应有Unicode码。

5、 布尔型

  • boolean 类型适于逻辑运算,一般用于程序流程控制:

    • if条件控制语句;

    • while循环控制语句;

    • do-while循环控制语句;

    • for循环控制语句;

  • boolean类型数据只允许取值true和false,无null。

    • 不可以0或非 0 的整数替代false和true,这点和C语言不同。

    • Java虚拟机中没有任何供boolean值专用的字节码指令,java语言表达所操作的boolean值,在编译之后都使用java虚拟机中的int数据类型来代替:true用1表示,false用0表示《java虚拟机规范 8版》

6、数据类型转换

1、基本数据类型之间的转换

注意:boolean除外

大小关系:

image-20210206112216161

①自动类型转换

规则:小------>大

语法:double d = 1;

②强转类型转换

规则:大------>小

语法:int i = (int)1.5;

特点:

①自动提升的原则。表达式的最终结果的类型为 操作数中最大的类型!

②强转符号只针对于最近的操作数有效,一般使用小括号提升优先级

2、String类型和基本类型之间的转换

①基本类型------>String类型

规则:直接拼接空字符串即可

语法:

char c = ‘中’;

String s = c+"";

②String类型------>基本类型

规则:除char之外,其他的都是通过 包装类型.parseXX的方法

语法:

除char之外:

String s = “12345”;

int i = Integer.parseInt(s);

char:

String s = “asfgh”;

char c = s.charAt(1);//提取单个字符

char[] ch = s.toCharArray();//将整个字符串转换成字符数组

五、运算符

1、 常见运算符

算术运算符

关系运算符

逻辑运算符

赋值运算符

三目运算符

2、运算符详细介绍

1、算术运算符

基本算术运算符

+ - * / %

注意:/左右两边都是整型,结果取整

自增、自减运算符

++ –

特点:

①属于一元运算符

i++、–i

②可以作为独立的语句或作为表达式使用

作为独立的语句使用:

i++;等价于++i;效果上等价于 i=i+1;

作为表达式使用:

int j = i++; 先赋值后自增// int temp = i++; i++; j = temp;

int j = ++i; 先自增后赋值 ///

③自增、自减运算符,底层做了优化,所以效率较高,其次 不用手动的类型转换

int i = 10;

i*=1.523;//√

System.out.println(i);//15

2、关系运算符

> < >= <= == !=

3、逻辑运算符

名称 语法 特点

&& / & 与 条件1&& 条件2 两个条件都成立,结果为true

|| / | 或 条件1|| 条件2 只要有一个条件成立,结果为true

! 非 !条件 如果条件成立,结果为false,否则为true

&&和&的区别:

&& 如果第一个条件不成立,则不再执行第二个条件,效率较高

& 不管第一个条件是否成立,都要执行第二个条件,效率较低

||和|的区别:

|| 如果第一个条件成立,则不再执行第二个条件,效率较高

| 不管第一个条件是否成立,都要执行第二个条件,效率较低

4、赋值运算符

1、基本赋值运算符

=

2、复合赋值运算符

+= 、-= 、*=等

特点:

1、运算顺序从右往左

2、赋值运算符的左边只能是变量,右边可以是变量、常量、表达式、方法调用

3、复合赋值运算符具备以下特点

①i+=3;效果上等价于 i=i+3;但效率比i=i+3;较高

②编译器内部做了优化,不用我们手动的类型转换了

③复合赋值的变量必须提前进行初始化

5、三目运算符

说明

条件?操作数1 :操作数2

特点:

1、如果条件成立,结果为操作数1,否则为操作数2!

2、两个操作数的类型要求一致或兼容

6、运算符优先级

. *()* {} ; ,
R—>L ++ – ~ !(data type)
L—>R * / %
L—>R + -
L—>R << >> >>>
L—>R < > <= >= instanceof
L—>R == !=
L—>R &
L—>R ^
L—>R |
L—>R &&
L—>R ||
L—>R ? :
R—>L = *= /= %=
+= -= <<= >>=
>>>= &= ^= |=

猜你喜欢

转载自blog.csdn.net/qq_24434251/article/details/113716974