网站首页 > 精选教程 正文
目录
- 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】 【码云】
- 上一篇: Java 中常用的进制转换
- 下一篇: 在Java中的算术表达式 #表达式求值
猜你喜欢
- 2024-11-17 在Java中的算术表达式 #表达式求值
- 2024-11-17 Java 中常用的进制转换
- 2024-11-17 一张图彻底搞懂Java取整函数ceil、floor、round的区别!建议收藏
- 2024-11-17 为什么HashMap不用取余操作来计算下标?
- 2024-11-17 Java开发高质量代码建议3:用偶判断,不用奇判断
- 2024-11-17 BigInteger实现除法取余
- 2024-11-17 05-java算术运算 (java) 一个视频学会一个编程知识点
- 2024-11-17 大数据必学Java基础(十五):算术运算符
你 发表评论:
欢迎- 04-11Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- 04-11Java中你知道几种从字符串中找指定的字符的数量
- 04-11探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- 04-11Python字符串详解与示例(python字符串的常见操作)
- 04-11java正则-取出指定字符串之间的内容
- 04-11String s1 = new String("abc");这句话创建了几个字符串对象?
- 04-11java判断字符串中是否包含某个字符
- 04-11关于java开发中正确的发牌逻辑编写规范
- 最近发表
-
- Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- Java中你知道几种从字符串中找指定的字符的数量
- 探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- Python字符串详解与示例(python字符串的常见操作)
- java正则-取出指定字符串之间的内容
- String s1 = new String("abc");这句话创建了几个字符串对象?
- java判断字符串中是否包含某个字符
- 关于java开发中正确的发牌逻辑编写规范
- windows、linux如何后台运行jar(并且显示进程名)
- 腾讯大佬私人收藏,GitHub上最受欢迎的100个JAVA库,值得学习
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)