共计 2739 个字符,预计需要花费 7 分钟才能阅读完成。
目录
- 1. 运算符
- 1.1 算数运算符
- 1.2 字符和字符串 + 操作
- 1.2.1 字符 + 操作
- 1.2.2 字符串 + 操作
- 1.3 赋值运算
- 1.4 自增和自减
- 1.5 关系运算符
- 1.5 逻辑运算符
- 1.6 三元运算符
- 2. 类型转换
- 2.1 主动类型转换
- 2.2 强制类型转换
1. 运算符
1.1 算数运算符
这些符号和小学学的运算符一样,并没有什么高大之初,上过学的根本都会,内容如下:
符号 | 作用 |
---|---|
+ | 加 |
– | 减 |
* | 乘同以往符号不同,然而性能统一 |
/ | 除 |
% | 取余 |
在 java 程序中,不同的是除法,整数相除为整数,混合除法取最大类型,示例:
public static void main(String[] args) {
int a = 5;
int b = 2;
double x = 2.0;
// 后果为 2
System.out.println(a / b);
// 后果为 2.5
System.out.println(a / x);
}
1.2 字符和字符串 + 操作
1.2.1 字符 + 操作
char 根底类型参加的是算数运算,采纳十进制的底层运行算。在这里大家必定很纳闷 char 示意的为单个字符并非字符,是如何加入运算的呢。那大家就须要理解一下 ASCALL 码,它将每个字符和一个数值产生对应,这样就实现了算数运算。常见的字符十进制数:
字符 | 十进制数 |
---|---|
0 | 48 |
A | 65 |
a | 97 |
在这里会遇到类型主动晋升问题,前面详解,示例如下:
public static void main(String[] args) {
char x = 'A';
char y = 'a';
// 显示的为 162
System.out.println(x + y);
}
1.2.2 字符串 + 操作
当表达式中呈现字符串时,+ 示意为字符串连接符否则为算数运算符,从左向右顺次计算,能算则算。示例如下:
public static void main(String[] args) {
// 后果为 3LessAnn
System.out.println(1 + 2 + "LessAnn");
// 后果为 1LessAnn2
System.out.println(1 + "LessAnn" + 2);
}
1.3 赋值运算
赋值运算符用的是 =,这和咱们生存中的 = 是有肯定差异的。生存中会把计算结果返回到 = 左边,在程序当中,会把 = 左边计算结果赋值给 = 右边。示例如下:
public class AssignmentTest {public static void main(String[] args) {
// 申明变量
int a;
// 为变量赋值
a = 1 + 2;
// 输入后果为 3
System.out.println(a);
}
}
以上为简略的赋值语句格局,在程序当中还有一些简化的赋值格局,如下 (a=1):
符号 | 阐明 | 示例 |
---|---|---|
+= | 本身与数相加后赋值给本人 | a+=1, 后果为 2 |
-= | 本身与数相减后赋值给本人 | a-=1, 后果为 1 |
*= | 本身与数相乘后赋值给本人 | a*=5, 后果为 5 |
/= | 本身与数相除后赋值给本人 | a/=2, 后果为 2 |
%= | 本身与数取余后赋值给本人 | a%=5, 后果为 2 |
1.4 自增和自减
一种简化的变量操作(a=1)
符号 | 阐明 | 示例 |
---|---|---|
++ | 变量自增 1 | a++, 后果为 2 |
– | 变量自减 1 | a–, 后果为 0 |
此符号须要留神的是,能够放在变量的左右两边,对变量自身来说没有区别,都是使变量加减 1,然而对与整个表达式存在区别。符号在右侧示意先用变量后再自加减,在左侧示意先自加减再应用。示例如下:
public class AutoincreateTest {public static void main(String[] args) {
int a = 1, b = 5;
// 后果为 4
System.out.println(++a + a++);
// 后果为 8
System.out.println(b-- + --b);
// 后果为 3
System.out.println(a);
// 后果为 3
System.out.println(b);
}
}
1.5 关系运算符
小学常识,只是符号不同,符号如下:
符号 | 阐明 |
---|---|
\== | 等于 |
!= | 不等于 |
\> | 大于 |
\>= | 大于等于 |
< | 小于 |
<= | 小于等于 |
所有的比拟后果之都为 boolean 值(true,false),须要留神的是等于为 == 并非 =,= 是赋值符号。
1.5 逻辑运算符
符号 | 作用 | 阐明 |
---|---|---|
& | 逻辑与 | a&b,a 和 b 都是 true,后果为 true,否则为 false |
| | 逻辑或 | a|b,a 和 b 都是 false,后果为 false,否则为 true |
^ | 逻辑异或 | a^b,a 和 b 后果不同为 true,雷同为 false |
! | 逻辑非 | !a,后果和 a 的后果正好相同 |
&& | 短路与 | a&&b,a 为 true 并且 b 为 true 则后果为 true,a 为 false 则 b 不会执行间接返回 false |
|| | 短路或 | a||b,a 为 false 并且 b 为 false 后果为 false,a 为 true 则 b 不会执行间接返回 true |
在这里须要留神的是短路与或,这是比拟非凡的逻辑运算符。示例如下:
public class LogicTest {public static void main(String[] args) {
int a = 1;
int b = 2;
// false
System.out.println(a++ > 5 && b++ > 1);
// 2
System.out.println(a);
// 2
System.out.println(b);
}
}
1.6 三元运算符
三元运算符语法:
关系表达式 ? 表达式 1 : 表达式 2;
关系表达式返回为 boolean 值,为 true 执行表达式 1,false 执行表达式 2。
示例:
public class TernaryTest {public static void main(String[] args) {
// B
System.out.println(1 > 2 ? 'A' : 'B');
// 成立
System.out.println(1 < 2 ? "成立" : "不成立");
}
}
2. 类型转换
在程序中必定会存在类型混合操作,这时就呈现输入类型问题,上面将分类解释。
2.1 主动类型转换
在程序中类型小的能够间接赋值给大类型,示例如下:
public class TypeConversion {public static void main(String[] args) {
byte a = 1;
short b = 2;
int y = a;
System.out.println(y);
System.out.println(a + b);
}
}
在这里须要留神的是,byte,short 和 char 在运行过程中会主动转换成 int 类型,所有在程序中很少应用这些类型。
2.2 强制类型转换
强制类型转换是把大类型转换成小类型。
语法:类型 1 变量 1 =(类型 1)变量 2;
示例如下:
public class TypeTest {public static void main(String[] args) {
int x = 1;
// 这样间接赋值会出错
// byte y = x;
// 后面须要增加转换类型
byte y = (byte) x;
}
}
本章完结,用于集体学习和小白入门,大佬勿喷!
源码【GitHub】【码云】