数据和运算符
1.数据
1.1标识符的定义
标识符:在程序中自定义的一些名称。
标识符的命名规范:**标识符由26个英文字母大小写,数字0-9,符号_$组成。**注:
首字母不能为数字
标识符不能为Java关键字和保留字
Java中标识符严格区分大小写
1.2数据类型
数据类型可分为:基本数据类型,引用数据类型。
基本数据类型
数据类型 | 位数 | 默认值 | 取值范围 | 举例说明 |
---|---|---|---|---|
byte | 8 | 0 | -27_27-1 | byte a=10; |
short | 16 | 0 | -215_215-1 | short a=10; |
int | 32 | 0 | -231_231-1 | int a=10; |
long | 64 | 0 | -263_263-1 | long a=10l; |
float | 32 | 0.0 | -231_231-1 | float a=10.0f; |
double | 64 | 0.0 | -263_263-1 | double a=10.0; |
char | 16 | ‘’(空字符) | 0_2^16-1 | char a=‘a’; |
boolean | 8 | false | true,false | boolean a=true; |
引用数据类型
除基本数据类型以外的数据类型都是引用数据类型
例如:
String a="ads";
String b=new String("asd");
Integer c=new Integer(65);
注:所有的引用数据类型的默认值都为
null
值
1.3变量的定义
变量
变量:可以变换的量
定义格式:[修饰符] 数据类型 标识符;
注:当变量作为类的成员使用时,Java才确保给定其默认值。
注:局部变量必须初始化。
//例如:
int shuZhi1=10; //初始化变量
double shuZhi2; //声明变量
shuZhi2=11.2; //给变量赋值
1.4基础数据类型转换
数据类型转换就是指:不同数据类型之间的相互转换
其中又可分为:自动类型转换,强制类型转换
注意:整数值默认为
int
型,小数值默认为double
型,如10,12.1
自动类型转换:表数范围小的可以向表数范围大的进行自动类型转换。
数值型+字符型---> 按照精度进行大小排列
byte-->short(char)-->int-->long-->float-->double
前提条件:
精度低的数据转换成精度高类型的数据
//1.基本的类型转换
//int 转换成 double
int num = 100;
double dou = num;//自动转换
System.out.println("num:"+num);//100
System.out.println("dou:"+dou);//100.0
char ch = 'a';
int i = ch;
System.out.println("ch:"+ch);//a
System.out.println("i:"+i);//97
强制类型转换:表数范围大的数向表数范围小的进行转换。
精度高类型数据转换成 精度低的数据 --> 数据丢失
语法: 目标数据类型 变量名 =(目标数据类型) 源类型;
// 强制转换(需要开发人员手动进行转换)
double money = 100837.567;
int newMoney =(int) money;
System.out.println(money);//
System.out.println(newMoney);//100837
2.运算符
2.1运算符表
优先级 | 运算符 | 结合性 |
---|---|---|
1 | () [] . | 从左到右 |
2 | ! +(正) -(负) ~(非运算) ++ – | 从右到左 |
3 | * / % | 从左到右 |
4 | +(加) -(减) +(字符串连接符) | 从左到右 |
5 | << >> >>> | 从左到右 |
6 | < <= > >= instanceof | 从左到右 |
7 | == != | 从左到右 |
8 | &(按位与) | 从左到右 |
9 | ^(异或) | 从左到右 |
10 | |(按位或) | 从左到右 |
11 | &&(逻辑与) | 从左到右 |
12 | ||(逻辑或) | 从左到右 |
13 | ?: | 从右到左 |
14 | = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= | 从右到左 |
2.2自增自减运算符
注:自增和自减运算符可以放在变量的前面和变量的后面
注:自增和自减运算符号放在变量的前面,如 ++a, 表示先执行运算,再生成值, 放在变量的后面,如: a++,先生成值,再执行运算。
例如:
int a=10;
a++,++a; 等于 a=a+1;
int b;
b=a++; 等于 b=a,a=a+1;
b=++a; 等于 a=a+1,b=a;q
--同理
注意:由于变量缓存机制有一个特殊情况
int num=10;
num=num++;
System.out.println(num); //num为10
//以上相当于
int num=10;
int num1=num; //缓存变量num1
num=num+1;
num=num1;
//所以num=num++无论执行多少遍num的值不变
注意:但++在前就不同了
int num=10;
num=++num;
System.out.println(num); //num为11
//以上相当于
int num=10;
num=num+1;
num=num;
2.3字符串连接符
字符串连接符:当 + 运算符左右两边参与运算的表达式的值有一个为字符串时,那么在程序运行时会对往后的所有值进行字符串转换。
注:其优先级和加号+同等
2.4逻辑运算符
&&,||又称作短路逻辑运算符:
&&(逻辑与) | a&&b | a,b都为true结果则为true,否则结果为false |
---|---|---|
||(逻辑或) | a||b | a,b一边为true结果则为true,两边为false则结果为false |
注意:
&&使用时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
||使用时左边为真,右边不参与运算,如果左边为假,那么右边参与运算。
2.5三元运算符
三元运算符又称条件运算符,是“?”和“:”符号组合,根据条件执行两个语句中的其中一个。
语法:条件表达式?条件为真返回的结果:条件为假返回的结果
例如:c=a>b?a:b;