变量&运算符
变量
什么是变量?
在程序运行过程中,可以在某个范围内发生改变的值
什么是标识符?
作为标识包、类、方法、变量的一串字符
表示符的组成规则:
- 由字符、下划线_、美元符$组成
- 这里的字符包含英文大小写字母,中文字符,数字字符。
- 符号只有两个 _ 和 $
常见命名的规则:
- 变量或者方法
- 第一个单词的首字母小写,其他单词的首字母大写 age name userAddress maxAge
- 类
- 每个单词的首字母都大写 HelloWorld TestDemo
- 包(其实就是文件夹,用于对类进行管理)
- 全部小写,多级包用.隔开
- 公司域名的反写
- 常量命名:全部大写,单词之间用_隔开 MAX_AGE
数据类型
包含基础数据类型和引用数据类型
基础数据类型的分类:
| 四类 | 八种 | 字节数 | 数据表示范围 |
|---|---|---|---|
| 整形 | byte | 1 | -128~127 |
| 整形 | short | 2 | -32768~32767 |
| 整形 | int(默认) | 4 | 2^31~2 ^ 31 - 1 |
| 整形 | long | 8 | -2 ^63 ~~ 2 ^ 63 - 1 |
| 浮点型 | float | 4 | -3.403E38 ~~ 3.403E38 |
| 浮点型 | double(默认) | 8 | -1.798E308 ~~ 1.798E308 |
| 字符型 | char | 2 | 表示一个字符 'a' '中' 0 ~~ 65535 |
| 布尔型 | Boolean | 1 | 只有两个值 true和false |
定义long类型在数值后加L 1000000L
定义float类型在数值后加f或者F
声明和使用
// 变量的定义
// 数据类型 变量名 = 字面量;
// byte
byte num1 = 10;
System.out.println(num1);
// short
short num2 = 10000;
num2 = 20000;
System.out.println(num2);
// int
int num3 = 1400000000;
System.out.println(num3);
// long
long num4 = 8000000000L;
System.out.println(num4);
// float
float num5 = 3.1415F;
System.out.println(num5);
// double
double num6 = 654.5656;
System.out.println(num6);
// char
char c = 'a';
System.out.println(c);
// boolean
boolean b1 = false;
System.out.println(b1);
变量没有赋值是不能使用的
类型转换
自动(隐式)类型转换
由范围小的数据类型转换成范围大的数据类型
整形赋值给浮点型也会出现精度损失
byte、short、char在进行运算时,类型会提升为int进行运算。
强制(显示)类型转换
由范围大的数据类型转换成范围小的数据类型(会出现精度损失)
boolean具有特殊含义,不能进行强制类型转换
对于char/byte/short来说,如果右侧没有超出范围,那么编译器就会自动补一个强制类型转换
运算符
赋值运算符
=、+=、-=、*=、/=、%=
自增自减运算符 ++、--
int a = 4;
int b = a++ + ++a;
a,b分别是几?
int a = 4;
int b = ++a + a++;
a,b分别是几?
// int a = 4;
// // int b = x + y;
// // x = a++; x = 4 a = 5
// // y = ++a; y = 6 a = 6
// // int b = 4 + 6;
// int b = a++ + ++a;
// System.out.println(a);
// System.out.println(b);
int a = 4;
// int b = x + y;
// x = ++a; x = 5 a = 5
// y = a++; y = 5 a = 6
// int b = 5 + 5
int b = ++a + a++;
System.out.println(a);
System.out.println(b);
算术运算符
+、-、*、/、%
关系运算符
<、>、==、>=、<=
逻辑运算符
&、|、!、^
短路效果
&& 、||
三元运算符
a>b?a:b