java第二章 变量和运算符
Java 基础应用编程—— 变量和运算符
1、Java程序结构
数据类型:确定要存储在内存中的数据的类型。
变量:是存储数据的基本单元
2、变量的概念
变量是指在程序的运行过程中随时可以发生变化的量
变量是程序中数据的临时存放场所
3、数据类型及分类
基本数据类型:4类8种基本数据类型
引用数据类型
整数类型 — byte、short、int默认、long
Java中整型的三种表示形式
十进制整数:0 ~ 9,注:第一位不能是0
十六进制数:0 ~ 9 A ~ F, 注:必须以0x或0X开头
例如: 0X8A 0x12
八进制整数:0 ~ 7,注:必须以0开头
例如: 0123 012
八进制整数:0 ~ 7,注:必须以0开头
浮点数类型 — float 、double
与整数类型相似,Java浮点数类型有固定的表数范围和字段长度,不受平台影响
字符类型 — char
单个字符用 char 类型表示,通常取值可为:
英文字母、数字、转义序列、特殊字符等
Java中的字符占两个字节(16位),因此可用十六进制编码形式表示
Java中的字符类型的值通常用单引号( ‗ ‘ )括起来
• 'A' -> 0x0041
• '中'-> 0x4e2d
• 在编码中: '0'~'9', 'a'~'z', 'A'~'Z'都是连续编码的!
• '0'与'\u0000'不是同一个字符
• 最小值:0, 最大值:65535 = 2^16-1
– 字符字面量使用单引号为定界符号:
• '中' 是整数常量!
转义字符
4、数据类型的转换规则
两种数据类型转换方式:
自动类型转换(隐式类型转换):有多种类型的数据混合运算时,系统首先自动的将所有数据转换成容量最大的那一种数据类型,然后进行计算
自动转换规则
boolean类型不可以转换为其他的数据类型
整型、字符型、浮点型的数据在混合运算中相互转换,转换时遵守以下原则
byte、short、char之间不会相互转换,他们三者在计算时首先会转换为int类型
强制类型转换(显示类型转换)
容量大的数据类型转换为容量小的数据类型时,需要使用强制类型转换,其格式如下:
例如: byte a;
int b;
a = (byte) b;
在强制类型转换过程中,源类型的值可能大于目标类型,因此可能造成精度降低或溢出
5、运算符(操作符)
是一种特殊的符号,用以表示数据的运算、赋值和比较
运算符的种类:
算术运算符: +、﹣、*、/、%、++、 --
赋值运算符:=、+=、﹣=、*=、/=、%=
比较运算符:>、<、>=、 <=、= =、!=、instanceof
逻辑运算符:!、&&、||
位运算符: &、|、^ 、 ~、>>、<<、>>>
条件运算符: ? :
条件运算符很独特,因为它是用三个操作数组成表达式的三元运算符。它可以替代某种类型的 if-else 语句
算术运算符
自增运算: ++, --
• i++, 后++, 先将i的值作为整个表达的值, 然后将i增加1.
• ++i, 先++, 先将i增加1, 然后将i的值作为整个表达的值.
• 如:
– int a = 1; int b=1;
– b = a++;//
• 1 a++表达式的值是1
• 2 执行a=a+1
• 3 执行赋值运算, 将表达式的值1赋值给b, 即b=1
赋值运算符
关系运算符(比较运算符)
逻辑运算符(布尔运算符)
逻辑运算符两端的操作数必须是布尔类型的值
位运算(只对byte、short、char、int、long有效)
左移和右移运算相当于实现整数乘以或除以2的n次方
逻辑与或同按位与或是有一定区别的:
– 相同点是:都能参与逻辑运算,按位与或完全可以代替逻辑与或;
– 区别是:按位与或可以参与位运算,逻辑与或只能参与逻辑运算,逻辑与或可以“短路”,按位与或不能“短路”。
• 短路运算
– 作用运算符:逻辑与&&,逻辑或||
如(1):逻辑表达式:a>b && c>d
假设a>b 为false,c>d为true,那么整个表达式结果为false;
假设a>b 为false,c>d为false,那么整个表达式结果还为false;
可见,a>b的结果已经决定了整个表达式的结果,而后面的c>d并不影响表达式的结果,可以说后半部分被“ 短路”了。
如(2):逻辑表达式: a>b || c>d
假设a>b 为true,那么后半部分表达式将被“短路”;
三元运算符
– 所谓三元运算符,是对三个表达式进行的集中比较,表达式1的结
果为true时,就为第二个表达式,如果为false时,就为第三个表
达式。语法是:
– 表达式1?表达式2:表达式3
– 通过下面代码说明三元运算符。
运算符的优先级
- 表达式通常由多个运算符组成。优先级的规则决定每个运算符在任何给定表达式中的计算顺序
6、表达式
表达式的值和类型
对表达式中操作数进行运算得到的结果称为表达式的值
表达式值的数据类型即为表达式的类型
表达式的运算顺序
应按照运算符的优先级从高到低的顺序进行
优先级相同的运算符按照事先约定的结合方向进行
表达式的结合方向和优先级