Java基础语法--运算
逻辑运算符,位运算符,条件运算符
案例
public class Demo03 {
public static void main(String[] args) {
// 与 或 非
boolean a = true;
boolean b = false;
boolean c = true;
boolean d = false;
System.out.println(a && b);//逻辑”与“运算:两个变量都为真,结果才为true;
System.out.println(a && c);//逻辑”与“运算:两个变量都为真,结果才为true;
System.out.println(b && d);//逻辑”与“运算:两个变量都为真,结果才为true;
System.out.println("----------------------------------------------");
System.out.println(a || b);//逻辑”或“运算:两个变量有一个为真,结果才为true
System.out.println(a || c);//逻辑”或“运算:两个变量有一个为真,结果才为true
System.out.println(b || d);//逻辑”或“运算:两个变量有一个为真,结果才为true
System.out.println("----------------------------------------------");
System.out.println(!(a && b));//取反:如果是真,则取假,如果是假,则取真;
System.out.println(!(a && c));//取反:如果是真,则取假,如果是假,则取真;
System.out.println(!(b && d));//取反:如果是真,则取假,如果是假,则取真;
}
}
结果

上面的例子更佳的表达方法
public class Demo03 {
public static void main(String[] args) {
// 与 或 非
boolean a = true;
boolean b = false;
boolean c = true;
boolean d = false;
System.out.println(a && b);//逻辑”与“运算:两个变量都为真,结果才为true;
//以下只为了结果输出表达好看的语句写法
System.out.println("a&&b");// 1
System.out.println("a && b");// 2
System.out.println("a && b :");// 3
System.out.println("a && b :"+(a&&b));// 4.运算规则,先运算括号里的。
//以上只为了结果输出表达好看的语句写法
}
}
结果

短路运算
逻辑运算时,当第一个变量匹配不到时,不运算第二个变量;
public class Demo03 {
public static void main(String[] args) {
// 与 或 非
boolean a = true;
boolean b = false;
boolean c = true;
boolean d = false;
System.out.println(a && b);//逻辑”与“运算:两个变量都为真,结果才为true;
//以下只为了结果输出表达好看的语句写法
System.out.println("a&&b");// 1
System.out.println("a && b");// 2
System.out.println("a && b :");// 3
System.out.println("a && b :"+(a&&b));// 4.运算规则,先运算括号里的。
//以上只为了结果输出表达好看的语句写法
System.out.println(a && c);//逻辑”与“运算:两个变量都为真,结果才为true;
System.out.println(b && d);//逻辑”与“运算:两个变量都为真,结果才为true;
System.out.println("----------------------------------------------");
System.out.println(a || b);//逻辑”或“运算:两个变量有一个为真,结果才为true
System.out.println(a || c);//逻辑”或“运算:两个变量有一个为真,结果才为true
System.out.println(b || d);//逻辑”或“运算:两个变量有一个为真,结果才为true
System.out.println("----------------------------------------------");
System.out.println(!(a && b));//取反:如果是真,则取假,如果是假,则取真;
System.out.println(!(a && c));//取反:如果是真,则取假,如果是假,则取真;
System.out.println(!(b && d));//取反:如果是真,则取假,如果是假,则取真;
System.out.println("----------------------------------------------");
//短路运算
//逻辑运算时,当第一个变量匹配不到时,不运算第二个变量;
int e = 5;
boolean f = (e<4)&&(e++<10);//与运算,当第一个常量是false,直接回复为false;不会运算第二个常量
System.out.println(f);
System.out.println(e);//如果运算了第二个常量,自增会让e变成6,结果显示为5标识,自增没有进行运算;
}
}
位运算
案例
public class Demo04 {
public static void main(String[] args) {
/*
位运算符
A = 0011 1100
B = 0000 1101
A&B 与 = 0000 1100 当两个都为0,结果为0,当A为1,B为0,结果为0;
A|B 或 = 0011 1101 当两个都为0,结果为0,当A为1,B为0,结果为1;
A^B 亦或 = 0011 0001 当两个相同,结果都为0,不同则为1;
~B 非,取反 = 1111 0010 b的反结果
2*8 = 16 = 2*2*2*2
左移<<,右移>>
*/
System.out.println(2<<3);
/*
0000 0000 0
0000 0001 1
0000 0010 2
^
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
^
上面的左移可以表示为,二进制数2(0000 0010)左移了3位
*/
System.out.println(1<<1); // = 2
System.out.println(1<<2); // = 4
System.out.println(1<<3); // = 8
System.out.println(1<<4); // = 16
}
}
结果

参考
二进制表

在java语言中,使用左移右移的好处是,计算机运算效率更高。
扩展运算符
案例
public class Demo05 {
public static void main(String[] args) {
int a = 11;
int b = 22;
int c = 2;
a+=b; //a = a+b
System.out.println(a);//输出结果为33
System.out.println(b);
a-=b; //a = a-b
System.out.println(a);//此时a=33,所以结果为11
System.out.println("-------------------------");
a+=c;
System.out.println(a);
System.out.println("--------------------------");
System.out.println(b);
System.out.println(b-a);
}
}
结果

字符串连接符
在之前的案例中
System.out.println("a && b :"+(a&&b));// 4.运算规则,先运算括号里的。
//以上只为了结果输出表达好看的语句写法
/*
上面使用了+就是字符连接符
字符连接符+和string一起时,会把所以变量都转为string
*/
在新案例中
public class Demo05 {
public static void main(String[] args) {
int a = 11;
int b = 22;
int c = 2;
a+=b; //a = a+b
System.out.println(a);//输出结果为33
System.out.println(b);
a-=b; //a = a-b
System.out.println(a);//此时a=33,所以结果为11
System.out.println("-------------------------");
a+=c;
System.out.println(a);
System.out.println("--------------------------");
System.out.println(b);
System.out.println(a+b);
System.out.println("---------------------------");
System.out.println(""+a+b);
System.out.println(a+b+"");
}
}
结果

解析:可以看出来,字符连接符+和string一起时,会把所以变量都转为string。但string在后时,会先运算后打印;
三元运算
x ? y : z
如果x==true,则结果为y,否则结果为z;
案例
public class Demo06 {
public static void main(String[] args) {
//x ? y : z
//如果x==true,则结果为y,否则结果为z;
int score = 80;
String type = score < 60 ?"不及格":"及格";
System.out.println(type);
String type2 = score < 100 ?"不及格":"及格";
System.out.println(type2);
}
}
结果

!!!优先级问题,()是最长用的高优先级
包机制

-
为了更好的组织类,java提供了包机制,用于区别类名的命名空间。
-
包语句的语法格式为:
1 package pkg1[.pkg2[.pkg3...]];
-
一般用公司域名倒置作为包名
-
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用“import”语句可以完成此功能
import package1[.package2...].(classname|*);
JavaDoc
- javadoc命令是用来生产自己的api文档

浙公网安备 33010602011771号