数据类型与运算符

数据类型与运算符

int 和 String 之间的相互转换

Int转为String

1、最简单的方法是使用“+”操作,对于"+"具体的行为和两侧操作数类型有关,两侧操作数都是数字这是简单的相加;两侧有String类型则是拼接。
代码示例:

int num = 10;
String str1 = num + "";
得到的结果为:str1=10

2、使用方法
代码示例:

String str2 = String.valueOf(num);
得到结果为:str2=10

这里valueOf是一个方法,从属于String类
总结数据类型和包装类:Java数据类型和包装类

String转为Int

使用包装类的所属方法,如:
代码示例:

String str = "100";
int num = Integer.parseInt(str);

得到的结果为num=100;
这里parseInt为Integer包装类的一个所属方法。
要说明的是,在String转为int的时候,String类型的值也应为数字,否则格式不一样,在运行时会发生抛出异常。

打印输出

Java打印输出类似于c语言,基本语法如下:

System.out.println(msg);       // 输出一个字符串, 带换行
System.out.print(msg);        // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出
System.out.format(format, msg);   // 完全等同于 printf

赋值语句

“=”

int a = 10;
a = 20;

算数运算符

基本四则“+ - * /”和求余运算符“%”
1)int / int结果还是int,需要使用double来计算
2)0不能作为除数
3)%表示取余,且负数求余是负数,c语言的“%”只能针对整数求余,不能是小数,而Java求余也能是小数

增量运算符+= -= *= /= %=
自增/自减运算符++ –

前置++和后置++的主要区别在于表达式的返回值,如果不取返回值,则两者是等价的效果。
如果取表达式返回值,则前置++自增的返回值是自增之后的值,后置++自增的返回值是自增之前的值。

在表达式中针对一个变量的值进行多次修改,运行的结果是未定义行为,如:
int ret=(++a)+(++a)

关系运算符
关系运算符主要有六个:
== != < > <= >=

int a = 10;
int b = 20;
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);
关系运算符的返回值类型都是boolean类型

逻辑运算符(重点)

逻辑运算符主要有三个:
&& || !
注意: 逻辑运算符的操作数(操作数往往是关系运算符的结果)和返回值都是 boolean.
1)逻辑与&&
规则:两个操作数都为true,结果为true,否则结果为false
对于逻辑与来说,如果序左侧表达式为false,右侧表达式不再求值
2)逻辑或||
规则:两个操作数结构都为false,结果为false,否则为true。
对于逻辑或来说,如果左侧表达式为true,右侧表达式不再求值
3)逻辑非!
规则:操作数的结果为true,结果为false,操作数的结果为false,结果为true(!为单目运算符,只有一个操作数)

&和|(不推荐使用)
&和|操作数为Boolean类型时,也表示逻辑运算,但是与&&和||相比,它们不支持短路求值,程序可能会出现抛出异常。

位运算符

Java中最小的操作数我二进制不是字节
位运算符主要有四个:&(按位与) |(按位或) ~(按位取反)^(按位异或)。
位操作表示按二进制运算。计算机都是用二进制来表示数据的,按位运算就是按照二进制的每一位一次进行计算。
1)按位与&
如果两个二进制位都是1,则结果为1,否则结果为0.
按位运算需要先把操作数转化为二进制。
2)按位或 |
如果两个数的结果为0则结果为0,否则结果为1.
注:当&和|的操作数为整数(int short long byte)时,表示按位运算,当操作数为Boolean类型时,表示逻辑运算。
3)按位取反~
如果该位为0,则转为1,如果该位为1,则转为0

位移运算

位移运算符有三个:<< >> >>>
都是按照二进制来运算

  1. 左移<<:最左侧不要了,最右侧补0.

  2. 右移>>:最右侧不要了,最左侧补符号位(正数补0,负数补1)

3)无符号右移>>>:最右侧不要了,最左侧补0.

注意:

  1. 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方.
  2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方.
  3. 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代
    替.
  4. 移动负数位或者移位位数过大都没有意义

条件运算符

条件运算符只有一个:
表达式1 ? 表达式2 : 表达式3
当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值; 当 表达式1 的值为 false 时, 整个表达式的
值为 表达式3 的值.
也是 Java 中唯一的一个 三目运算符, 是条件判断语句的简化写法

// 求两个整数的最大值
int a = 10;
int b = 20;
int max = a > b ? a : b;

总结:1. % 操作在 Java 中也能针对 double 来计算.
2. 需要区分清楚 前置自增 和 后置自增之间的区别.
3. 由于 Java 是强类型语言, 因此对于类型检查较严格, 因此像 && 之类的运算操作数必须是 boolean.
4. 要区分清楚 & 和 | 什么时候是表示按位运算, 什么时候表示逻辑运算.
整体来看, Java 的运算符的基本规则和 C 语言基本一致.

三级标题

四级标题
五级标题
六级标题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值