目录
变量
-
数据类型
-
变量名
-
变量值
使用变量
1、声明变量的数据类型和变量名(包含数字、字母、下划线、$,不能包含空格、运算符,不能用关键字命名,不能以数字开头),大小写可以混用,首单词应该小写,后续单词的首字母大写。
userId、studentName (驼峰式命名法)
2、给内存空间赋值,该值就是变量值。
Java 的数据类型
-
基本数据类型
byte、int、short、long、float、double、char、boolean
数值类型(整数、小数)
byte 1 个字节 (8位)
int 4 个字节(32位)
short 2 个字节(16位)
long 8 个字节(64位)
float 4 个字节(32位) 单精度浮点型
double 8 个字节(64位)双精度浮点型
非数值类型(文本)
char 字符 2 个字节(16位)
boolean 1/8 个字节、判断逻辑是否成立 true 1/false 0
-
引用数据类型
数据类型转换
-
自动转换
Java 可以自动对某些数据类型进行自动转换。
规则:只能由低字节向高字节进行转换,反之则不行。
byte->short->int->long->float->double
-
强制类型转换
Java 无法自动转换的数据类型,开发者可以通过强制手段进行转换。
一般来讲强制类型转换可能会造成精度损失。
double num = 10.0;
int num2 = (int)num;
运算符
-
赋值运算符
数据类型 变量名 = 数值/变量;
//1、创建变量用来记录张三的体重
double weight1 = 70.5;
//2、创建变量表示李四的体重
double weight2 = 60.5;
System.out.println("交换之前:张三的体重是"+weight1+",李四的体重是"+weight2);
System.out.println("进行交换");
double temp = weight1;
weight1 = weight2;
weight2 = temp;
System.out.println("交换之后:张三的体重是"+weight1+",李四的体重是"+weight2);
-
算术运算符
-
基本算术运算符
+、-、*、/、%、++、--
变量1 + 变量2
变量1 - 变量2
变量1 * 变量2
变量1 / 变量2
变量1 % 变量2
变量++、++变量
变量--、--变量
变量++:先操作,再运算。
++变量:先运算,再操作。
-
复合算术运算符
+=、-=、*=、/=、%=
变量1 += 变量2:先求出变量1和变量2之和,再把计算结果赋值给变量1,变量1 = 变量1 + 变量2
-
-
关系运算符
==、!=、>、<、>=、<=
-
逻辑运算符
逻辑运算符只能用于 boolean 类型的数据运算,判断 boolean 数据之间的逻辑关系,与、或、非。
&(与)、|(或)、!(非)、&&(短路与)、||(短路或)
参与逻辑运算符的变量都是 boolean 的
变量1 & 变量2:只有当变量 1 和变量 2 都为 true,结果为 true,否则为 false。
变量1 | 变量2:变量 1 和变量 2 只要有一个为 true,结果为 true,否则为 false。
!变量1:若变量 1 为 true,结果为 false,若变量 1 为 false,结果为 true。
变量1 && 变量2:只有当变量 1 和变量 2 都为 true,结果为 true,否则为 false。
变量1 || 变量2:变量 1 和变量 2 只要有一个为 true,结果为 true,否则为 false。
int num1 = 10;
int num2 = 11;
System.out.println((++num1==num2)||(num1++==num2));
System.out.println(num1);
int num1 = 10;
int num2 = 11;
System.out.println((++num1==num2)|(num1++==num2));
System.out.println(num1);
int num1 = 10;
int num2 = 11;
System.out.println((num1++==num2)&(++num1==num2));
System.out.println(num1);
int num1 = 10;
int num2 = 11;
System.out.println((num1++==num2)&&(++num1==num2));
System.out.println(num1);
条件运算符
三元运算符、三目运算符、三元表达式
根据不同的条件给同一个变量赋不同的值,变量 = 条件?值1:值2.
位运算符
-
十进制和二进制的转换
十进制转二进制:目标数除以2,若能除尽,该位记做0,若除不尽,该位记做1,再对商继续除以2,以此类推,直到商为0,然后把每一位的结果反序组合就是对应的二进制。
10:1010
17:10001
二进制转十进制:从目标数的最后侧起,本位的数值乘以本位的权重,权重就是2的第几位的位数减一次方,将每一位的值进行相加,得到的结果就是对应的十进制。
位运算符:&(按位与)、|(按位或)、^(按位异或)、<<(左移)、>>(右移)
变量1 & 变量2:先把变量 1 和变量 2 转为二进制,每一位的数字一一对应,进行比较判断,若都为 1,则该位记做 1,否则记做 0。
变量1 | 变量2:先把变量 1 和变量 2 转为二进制,每一位的数字一一对应,进行比较判断,只要有一个为 1,则该位记做 1,否则记做 0。
变量1 ^ 变量2:先把变量 1 和变量 2 转为二进制,每一位的数字一一对应,进行比较判断,相同记做 0,不同记做 1。
变量1 << 变量2:变量1乘以2的变量2次方
2 << 3 : 2 * 8 = 16
变量1 >> 变量2:变量1除以2的变量2次方
2 >> 3:2/8 = 0
运算符的优先级
! > 算术运算符 > 关系运算符 > 逻辑运算符( && > || )