总目标:学会JAVA
本周目标:Java的入门知识(6.5——6.12)
今日目标:(6月11日)
- 掌握各种运算符的用法
- 掌握各种表达式的用法
- 掌握表达式与运算符的关系
- 掌握表达式中数据类型的转化技巧
- 掌握递增与递减运算符的使用
运算符
Java语言支持如下运算符
-
算数运算符
符号 名称 作用 + 加号 相加 — 减号 相减 * 乘号 相乘 / 除号 相除 % 模 取余 ++ 递增 变量值加1 - - 递减 变量值减1 -
赋值运算
符号 名称 作用 = 赋值符 赋值 -
关系运算符
符号 名称 作用 > 大于 大于 < 小于 小于 == 等于 等于 != 不等于 不等于 instanceof 测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型 -
逻辑运算符
符号 名称 作用 && 与 A且B,AB串联 || 或 A或者B,AB并联 ! 非 逻辑 非 -
位运算符
-
条件运算符
条件运算符由”?:“组成,其基本形式是a?x:y,即如果a的值非0,则整个表达式的值为x,否则为y。
-
扩展运算符
operator
算数运算符
package operator; //operator运算符
public class Demo01 {
public static void main(String[] args) {
//二元运算符
int a = 10;
int b = 20;
int c = 25;
int d = 25;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);//强转成double才行(a/(double)b);
System.out.println(a%b);
}
}
运行结果
30
-10
200
0
10
数据类型
package operator;
public class Demo02 {
public static void main(String[] args) {
long a = 121212123123l;
int b = 123;
short c = 10;
byte d = 8;
System.out.println(a+b+c+d);//long
System.out.println(b+c+d);//int
System.out.println(c+d);//int
//cast 转换
}
}
运行结果
121212123264
141
18
关系运算符
package operator;
public class Demo03 {
public static void main(String[] args) {
//关键运算符返回的结果:正确,错误 布尔值
int a = 10;
int b = 20;
int c = 21;
//取余——也叫模运算
System.out.println(c%a);//取余 c/a 21/10=2……1
System.out.println(a>b);//false
System.out.println(a<b);//true
System.out.println(a==b);//false
System.out.println(a!=b);
}
}
递增与递减运算符
递增与递减运算符 | 意义 |
---|---|
++ | 递增,变量值加1 |
—— | 递减,变量值减1 |
package operator;
public class Demo04 {
public static void main(String[] args) {
//++自增 --自减 一元运算符
int a = 3;
//执行完这行代码后,先给b赋值,再自增
int b = a++;//a++ = a=a+1 先赋值再加一
System.out.println(a);//4
int c = ++a;//执行完这行代码前,先自增,再给b赋值
System.out.println(a);//5
System.out.println(b);//3
System.out.println(b);//3
System.out.println(c);//5
System.out.println(c);//5
//幂运算 2^3=2*2*2=8
double pow = Math.pow(3,2);
System.out.println(pow);//9.0
System.out.print("a="+a); //输出a
System.out.println(",a++="+(a++)+",a="+a);//输出a++和a
//a=5,a++=5,a=6
System.out.print("b="+b); //输出b
System.out.println(",++b="+(++b)+",b="+b);//输出++b和b
//b=3,++b=4,b=4
}
}
逻辑运算符
逻辑运算符 | 意义 |
---|---|
&& | AND,与 |
|| | OR,或 |
! | !,非,取反 |
package operator;
//逻辑运算符
public class Demo06 {
public static void main(String[] args) {
//与(and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b:"+(a&&b));//逻辑与运算:两个变量都为真,结果才为true
System.out.println("a || b:"+(a||b));//逻辑或运算:两个变量有一个为真,结果才为true
System.out.println("!(a && b):"+!(a && b));//如果为真输出为假;如果为假输出为真
//短路运算:b&&a因为b为假,与就不会再进行运算
//验证短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);//若C++<4执行则c的输出结果就为6
System.out.println(d);//false
System.out.println(c);//5
}
}
运算结果
a && b:false
a || b:true
!(a && b):true
false
5
位运算符
位运算符 | 意义 |
---|---|
& | 逻辑与 |
\ | 逻辑或 |
^ | 逻辑异或 |
~ | 逻辑反 |
>> | 位右移 |
<< | 位左移 |
package operator;
public class Demo07 {
public static void main(String[] args) {
/**
* A = 0011 1100
* B = 0000 1101
——————————————————
* A&B = 0000 1100
* A|B = 0011 1101
* A^B = 0011 0001异或相同为0不同为1
* ~B = 1111 0010
* >> 右移 /2
* << 左移 *2
*
*/
System.out.println(2<<3);
// 2 =0000 0010
//2左移3位 =0001 0000 =16
}
}
学习总结
运算符、表达式和语句是编程的主要部件,能够使系统直接对内存进行操作,进而提高程序的执行能力。今天学习算数运算符的使用,其可对变量和常量进行赋值、单目运算(变量)和算数运算;关系运算符,学习了判断语句和递增、递减的使用;逻辑运算符,加深对条件语句的使用和理解,并通过对运算符优先及的使用了解一些运算错误的产生;位运算符,是直接对内存使用,作用域二进制,可以进行更快速的运算。
-
括号运算符用于处理表达式的优先级。
-
算数表达式的结果是一个数值。
-
Java表达式类型转换的规则
坚持“以不流失数据为前提”的大原则,即可进行不同类型转换,使不同类型的数据、表达式都能继续存储。
1. 占用字节少的类型可转化成占用字节较多的类型。
2. 字符型(char)会转换成int型
3. int类型会转换成float类型
4. 表达式中若某个操作数类型为double,另一个操作数也会转换成double类型
5. 布尔类型(boolean)不能转换成其他类型 -
计算表达式“((123456799)>(976543213))?true:false”的值。
public class conditiondemo6 {
public static void main(String[] args) {
boolean t = ((12345679*9)>(97654321*3))?true:false;
System.out.println("(123456789*9)>(97654321*3):"+t);//false
}
}