Java基础语法——运算符|包机制
Java基础语法——运算符|包机制
创建打包
其实就是创建一个文件夹
运算符(operator)
java语言支持如下运算符
- 算数运算符:+ - * / % ++ --
- 赋值运算符:=
- 关系运算符:< > <= >= == !=
- 逻辑运算符:&& || !
- 位运算符:& | ^ ~ >> << >>>(了解!!!)
- 条件运算符:?:
- 扩展赋值运算符:+= -= *= /=
二元运算符
public class Demo01 {
public static void main(String[] args) {
//二元运算符
//ctrl +D:复制当前行到下一行
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/(double)b);
}
}
public class Demo02 {
public static void main(String[] args) {
long a = 1231123123123123L;
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
}
}
注:
- 当有两个数据都是int的时候,结果为小数,则需要先将一个int转换一个double;
- 当有多个操作数时,有long就为long,其它返回的是int,有一个double就为double;
++ -- 自增 自减
++:自增
--:自减
在代码中a++:先输出后加1;a--:先输出后减1;++a:先加一后输出;--a:先减一后输出;
public class Demo04 {
public static void main(String[] args) {
//++ -- 自增 自减
int a= 3;
int b = a++;//执行完这行代码后,先给b赋值,再自增 //a++ a= a + 1
System.out.println(a);
int c = ++a;//执行完这行代码后,先给自增,再b赋值
System.out.println(a);
System.out.println(b);
System.out.println(c);
//幂运算 2^3 2*2*2=8 很多运算,我们会使用一些工具来操作
double pow =Math.pow(2,3);
System.out.println(pow);
}
}
比较运算符
public class Demo03 {
public static void main(String[] args) {
//关系运算符返回的结果: 正确 错误 --->boolean值
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);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a>=b);
System.out.println(a<=b);
System.out.println(a!=b);
}
逻辑运算符
短路运算:
在使用逻辑运算符的时候,要是有能一下就知道结果的,就将放在前面,这样逻辑运算就不会执行后半部分代码,而是去执行下一步,从而达成短路效果。
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)));//如果是真,则变为假,如果是假则变为真
//短路运算
int c = 5;
boolean d = (c<4)&&(c++>4);
System.out.println(c);
System.out.println(d);
}
}
位运算
左移:*2
右移:/2
public class Demo06 {
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*8 = 16 2*2*2*2
<<:左移 *2
>>:右移 /2
在二进制中:
0000 0000 0
0000 0001 1
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
左移一位相当于乘以2,右移一位相当于除以2;
*/
}
}
扩展赋值运算符(偷懒用的)
public class Demo07 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a+=b; // a = a + b
a-=b; // a = a - b
System.out.println(a);
//字符串连接符 + , string 当加号前面出现string字符串,此时加号为连接符
System.out.println(" "+a+b);
//string字符串要放到前面才会进行连接,否则就是加法运算
System.out.println(a+b+" ");
}
}
三元运算
比较常用;这样写比较简单,代码读起来也简单明了。
//三元运算符
public class Demo08 {
public static void main(String[] args) {
// x ? y : z
// 如果x==true,则结果为y,否则结果为z
int score = 80 ;
String type = score <60 ?"不及格":"及格";
System.out.println(type);
}
}
优先级
我们学过代码的都知道,程序在运行中都会有优先级的问题;一般为了清楚,我们使用最高优先级的(),来确保我们对代码优先级清楚明了。
包机制
包:本质就是文件夹
包语句的语法格式:
package pkg1[. pkg2 [. pkg3...]];
注:
-
一般利用公司域名倒置作为包名
-
为了能使用某一个包的成员,我们需要在Java程序中明确导入该报。使用improt语句可完成此功能
import package1[. package2...].(classname/*) //后面跟文件名,或者跟*表示该包下的所有文件