目录
本章重点说一下JAVA最基础的语法和操作符
2.1.1 打印语句
Java的打印语句:
System.out.println("Hello Java!")
2.1.2 赋值
Java的赋值操作和C、C++相同,使用操作符(=);
🌰举个栗子::
a = 4; //将4赋值给a变量
2.1.3 算术操作符
1、基本的操作符包括加号(+)、减号(-)、除号(/)、乘号(*)以及取模操作符(%)。
注意:整数除法会直接去掉结果的小数位,而不是四舍五入!!
2、Java使用一种简化符号同时进行运算和赋值操作:
🌰举个栗子:要将x加4并将结果赋回给x,可以写作:x+=4。
3、自增(++)和自减(–)
注意:这里分为前缀和后缀!!
-
前缀递增和前缀递减(如++a或–a),会先执行运算,再生成值
-
后缀递增和后缀递减(如a++或a–),会先生成值,再执行运算
📒笔者有话说:两者在实际运用中并没有什么太大的区别!!注意在循环中使用哪一个都会得到一样的结果!!但是究其内在,前缀表达式的效率会高于后缀表达式!!例如:你需要一个文件+1,前缀表达式会先+1然后直接传给你;后缀表达式会先复制一个副本,再将副本+1,然后把副本传给你。对比显而易见。
2.1.4 关系操作符
关系操作符:比较两个变量之间的关系,生成一个boolean值(true or false)
操作符 | 含义 |
---|---|
> | 大于 |
>= | 大于或等于 |
< | 小于 |
<= | 小于或等于 |
== | 等于 |
!= | 不等 |
=和!=比较的是对象的引用
🌰举个栗子::
Integer n1 = new Integer(10);
Integer n2 = new Integer(10);
System.out.println(n1 == n2); //答案为false
System.out.println(n1 != n2); //答案为true
❓那么如果要比较两个对象的实际内容是否相同该如何操作?
答:对!就是equals()方法!
2.1.5 逻辑操作符
我们通过一个表格来学习这部分的知识,这部分需要读者结合代码来慢慢理解。
关键字 | 简介 | 具体含义 |
---|---|---|
& && | 长路与 短路与 | 相同点:两边都为真时为真;任意一个为假结果为假; 不同点:长路与两侧都会被运算;短路与如果第一个为假则结果为假 |
| || | 长路或 短路或 | 相同点:两边都为假时为假;任意一个为真结果为真; 不同点:长路与两侧都会被运算;短路与如果第一个为真则结果为真 |
! | 取反 | 真变假;假变真 |
^ | 异或 | 不同时返回真;相同时返回假 |
2.1.6 位操作符
这部分在实际运用中并不常见,所以我给出每一个操作符的操作,其他的不再赘述。
注意:可能后面学到计算机组成原理这门课的时候就会有运用到啦!
关键字 | 简介 |
---|---|
Integer.to.BinaryString() | 一个整数的二进制表达 |
| | 位或 |
& | 位与 |
^ | 异或 |
~ | 取非 |
<< >> | 左移 右移 |
>>> | 带符号右移与无符号右移 |
1、Integer.to.BinaryString()
int i = 5;
String b =(Integer.toBinaryString(i));
答案:b为101
2、| 位或
🌰栗子::5|6?
答:5的二进制为101;6的二进制为110;所以答案为111,转为十进制为7.
3、& 位与
🌰栗子::5&6?
答:5的二进制为101;6的二进制为110;所以答案为100,转为十进制为4.
4、^ 异或
🌰栗子::5^6?
答:5的二进制为101;6的二进制为110;所以答案为011,转为十进制为3.
2.1.7 三元操作符
三元操作符又称为条件操作符;其表达式采取下述格式:
boolean-exp ? value0 :value1(boolean-exp为布尔表达式)
结果:如果表达式为真 返回value0
如果表达式为假 返回value1
🌰举个栗子:
int i = 5;
int j = 6;
int k = i<j ? 99:88;
//相当于
if(i<j){
k=99;
}else{
k=88;
}
2.1.8 字符串操作符
这个操作符(+)顾名思义就是用来连接不同的字符串!
记住,如果表达式以一个字符串开头,那么后续所有的操作数都应该是字符串类型。
🌰举个栗子:
System.out.println(a+b+c);
2.1.9 类型转换操作符
要想执行类型转换,需要将希望获得的数据类型放在圆括号里,放在需要转换的值的左边
🌰举个栗子:
int i = 200;
long lng = (long)i ;
long lng2 = (long)200;
从例子中可以看到,既可以对数值进行数值转换,又可以对变量进行数值转换;但是这里可能会引入“多余”的转换!!例如int值到long值的转换编译器是可以自动转换的。(也就是说,低等级的数值向高等级的数值转换时不需要执行操作符)
所以,类型转换可以分为自动类型转换和强制类型转换两种~~下面我们来做个比较
-
自动类型转换
转换类型:从低级到高级(byte,short,char—> int —> long—> float —> double )
-
强制类型转换
转换类型:从高级到低级