简单介绍字符串类型
在Java中使用String类定义字符串类型
字符串:双引号引起的若干个字符
在字符串中,使用+时,代表拼接
字符串拼接时整体都是字符串
public static void main(String[] args) {
String str = "hello";//字符串:双引号引起的若干个字符
String str2 = "world";
System.out.println(str+str2);//代表拼接
int a = 10;
int b = 20;
System.out.println("a="+a+"b="+b);
System.out.println("test:"+a+b);//字符串拼接时整体都是字符串
System.out.println("test:"+(a+b));
System.out.println(a+b+"test2");//在字符串中,使用+时,代表拼接
}
int 转成 String
public static void main(String[] args) {
int num1 = 10;
String ret1 = num1+"";
System.out.println(ret1);
String ret2 = String.valueOf(num1);
System.out.println(ret2);
}
String 转成 int
public static void main(String[] args) {
String str = "123";
int ret = Integer.valueOf(str);
System.out.println(ret);
}
运算符
算术运算符
基本四则运算符:加减乘除模(+ - * / %)、增量运算符 (+= -= *= %=)、自增/自减运算符(++ --)
0不能做被除数
public static void main(String[] args) {
System.out.println(5/2);//2
System.out.println(5/(float)2);//2.5
System.out.println((float)5/2);//2.5
System.out.println((float)(5/2));//2.0
//System.out.println(4/0);0不能作被除数
}
在取余时0未定义,输出NaN
public static void main(String[] args) {
System.out.println(10%3);
System.out.println(10%-3);
System.out.println(-10%3);
System.out.println(-10%-3);
System.out.println("====================");
System.out.println(11.5%10);
//System.out.println(11.5%0); 未定义 NaN
}
增量运算符操作完成后,会将操纵的结果赋值给左操作数。帮助我们进行自动的类型转换。
public static void main(String[] args) {
short a = 10;
a +=20;//帮助我们进行自动的类型转换
//a = a+20;
System.out.println(a);
}
public static void main(String[] args) {
int a = 10;
//int b = ++a; 11
//int b = a++; 10
System.out.println(a);
}
注意:
- 如果单独使用,【前置++】和【后置++】没有任何区别
- 如果混合使用,【前置++】先+1,然后使用变量+1之后的值,【后置++】先使用变量原来的值,表达式结束时给变量+1
关系运算符
关系运算符主要有六个: == != < > <= >= ,其计算结果是 boolean类型,显示true 或者 false
public static void main(String[] args) {
int a = 10;
int b = 20;
// 注意:在Java中 = 表示赋值,要与数学中的含义区分
// 在Java中 == 表示相等
System.out.println(a == b); // false
System.out.println(a != b); // true
System.out.println(a < b); // true
System.out.println(a > b); // false
System.out.println(a <= b); // true
System.out.println(a >= b); // false
// if (3 < a < 5) {
//
// }
}
注意:在Java中 = 表示赋值,要与数学中的含义区分,在Java中 == 表示相等。
逻辑运算符
逻辑运算符主要有三个: && || ! ,运算结果都是 boolean类型。
- 逻辑与 &&:两个表达式都为真,结果才是真,只要有一个是假,结果就是假。
- 逻辑 ||:左右表达式至少有一个位真,则结果为真。
- 逻辑非 !:真变假,假变真。
注意:
- 对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式.
- 对于 ||, 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式.
- & 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算. 但与 && || 相比, 它们不支持短路求值
位运算符
![](https://img-blog.csdnimg.cn/01412ac2bd3344139f8e2ccf02b20394.png)
移位运算
- 左移 <<: 最左侧位不要了, 最右侧补 0.
- 右移 >>: 最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)
- 无符号右移 >>>: 最右侧位不要了, 最左侧补 0
注意:
1. 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方.
2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.
3. 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替.
4. 移动负数位或者移位位数过大都没有意义.