java 基础(下)
基本运算符
- 算术运算符:+、-、*、/、%(取余)、++(自增)、–(自减)
- 赋值运算符:=
- 关系运算符:>、<、<=、>=、==,!=instanceof
- 逻辑运算符:&&(与,py中的and)、||(或,py中的or)、!(非)
- 位运算符:&、|、!、>>、<<、>>> (是从进制中操作)
- 条件运算符:?
- 扩展赋值运算符:+=、-=、*=、/=
不同类型的使用
首先,=是赋值运算符,a = b即为将b赋值给a,而==是关系运算符,与py大致相同
其次,我们在运行/这个运算符时,会发现以下问题。
public class Demo01 {
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println(a/b);
System.out.println(a/double(b));
}
}
大家运行以上代码,就会发现单单使用a/b,即10/20,会输出0,这个一看就是错误的,为何会出现这种问题?其实是作用范围的问题,我们使用的是int,是整数,所以它只能提取出0。
如何解决? 类型转换!将int转换为double,可以直接在sout中进行转换,看代码第二个结果即为0.5,输出正确!
最后 ,当我们使用整数类型相加时,相加中有long类型,则结果也会变成long类型,有int,则会变成int类型。若是byte和short类型相加,也会变成int类型,请大家自行运算以下代码!
public class Demo01 {
public static void main(String[] args) {
long a = 121212121;
int b = 123;
short c = 12;
byte d = 1;
System.out.println(a+b+c+d);
System.out.println(b+c+d);
System.out.println(c+d);
}
}
自增++ 自减–
首先,请大家运算以下代码。
public class Demo01 {
public static void main(String[] args) {
int a = 3;
int b = a++;
int c = ++a;
System.out.println(a);
System.out.println(b);
System.out.println(c);
}
}
重点:
先看一下运行结果,是5 3 5,为什么b会等于3?我们要先搞清楚什么是自增,自减,a++和++a都为自增加(a = a+1),区别就在于何时赋值,是先赋值还是先自增加,a++是在赋值给b后再执行自增(a = a+1),即执行完 int b = a++后,先给b赋值,再进行自增(a = a + 1),而***++a则是先执行自增,再给b赋值,即执行完 int b = ++a后,先进行自增,再给b赋值***,由此b就为未自增后的a,等于3,c则为自增后的a,等于5。
自减a–和–a类似,不再进行说明。
幂运算
java和其他语言不同的是,幂运算java通常使用工具类进行运算,而不是使用**,^等符号。
double b = Math.pow(2, 3);
//2^3 = 8
逻辑运算符(&& || !)
和py语言类似,不同就在于java是使用&&(与)、||(和)、!(非)
public class Demo01 {
public static void main(String[] args) {
boolean a = true;
boolean b = false;
System.out.println("a && b :"+(a&&b);
System.out.println("a || b :"+(a||b);
System.out.println("!(a && b) :"+!(a&&b);
}
}
请大家运行以上代码
- &&(和)的调性是两真为真,一假为假
- ||(或)的调性是一真为真,两假才为假
- !(非)----两极反转
- + 字符连接符 : sout(" "+a+b),若a=10,b=20,则输出 1020.
短路问题
我们在使用&&的时候,有时候会考虑,当false&&true时,是不是即会执行false,也会执行true,答案是当遇到false时,就发生短路,true就不会执行了,我们编写程序进行验证。
public class Demo01{
public static void main(String[] args) {
int a = 5;
boolean b = (a<6)&&(a++>5);
System.out.println(b);
System.out.println(a);
}
}
如上代码,若a++执行了,则a会输出6,说明未短路,但我们的结果是False 5,说明发生短路,以上推断成立。
位运算 & | ! << >>
这里我用我的笔记来说明
三元运算符 ?
- 与py类似,a+ = b 即为 a=a+b, a- = b,即为a = a-b
- 三元运算符?:x ? y:z,意思就是当x = true,则输出y,否则输出z
//代码说明
public class Demo01{
public static void main(String[] args) {
int score = 80;
String type = score>60 ? "及格": "不及格";
System.out.println(type);
}
}
大家运行会发现输出了“及格”,把分数改为59,则输出不及格,以上推断得证。
包机制
一般是以公司域名的倒置作为包名
比如:com.carlos
如何直接导入包? 我们可以直接在导入程序包时打com.carlos,系统自动会生成一个com包及com下的carlos包。
注意:可能一部分同学会遇到导入com.carlos直接变成了com.carlos包,这是因为你设置问题。按照我以下操作关闭compact matter package(压缩空的中间的包)这个按钮即可。
包常态 : package pkg1[. pkg2[. …;
导入包 :import pkg1[. pkg2[. …;
转载自CSDN-专业IT技术社区
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_65376383/article/details/152510632