上一篇我们说道基本数据类型的浮点数了,在这篇我们会介绍char类型,string类型,以及运算符;
1.char类型 :为两个字节,其取值范围从0-65535,当char类型和int型变量进行运算时会自动提升为int型,
那摩char数据类型能存储汉字吗? 是可以存储汉字的,因为其为Unicode编码,共占用2个字节。
运算符:
算数运算符: + - * / % ++ --
:注意事项:
a:+号在java中有三种作用,代表正号,做加法运算,字符串的连接符
b:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型
c:/获取的是除法操作的商,%获取的是除法操作的余数
%运算符
当左边的绝对值小于右边绝对值时,结果是左边
当左边的绝对值等于右边或是右边的倍数时,结果是0
当左边的绝对值大于右边绝对值时,结果是余数
%运算符结果的符号只和左边有关系,与右边无关
任何一个正整数%2结果不是0就是1可以用来当作切换条件
其他的没有好说的我们就来说一说自增和自减吧,
++,--运算符的作用
自加(++)自减(--)运算
++:自加。对原有的数据进行+1
--:自减。对原有的数据进行-1
使用环境:
单独使用:
放在操作数的前面和后面效果一样。(这种用法是我们比较常见的)
参与运算使用:
放在操作数的前面,先自增或者自减,然后再参与运算。
放在操作数的后面,先参与运算,再自增或者自减。
好了,光说不练假把式,看几个题吧!
第二个:
这是为什么呢?他们做的操作不一样吗???
这是因为在做自增或者是自减的时候系统会帮我们做一下强制转化,所以说不会有精度损失的报错!
扩展的赋值运算符:+=,-=,*=,/=,%=
这个和++ 是一样的,系统为我们自动加上了强制转换;
关系运算符有哪些(比较运算符,条件运算符)
==,!=,>,>=,<,<=
注意事项:
无论你的操作是简单还是复杂,结果是boolean类型。
"=="不能写成"="。
逻辑运算符
& | ^ ! 结果都为boolen型
true &false =====false
true |false ======true
true ^false ======true
&& ||也是逻辑运算符,是短路运算符。
位运算符 & | ^ ~ >> << >>>
需要特别说明的是
位异或运算符的特点
^的特点:一个数据对另一个数据位异或两次,该数本身不变。
面试题
请自己实现两个变量的交换(不用第三方)
下面还有两个结论:
<<:左移 左边最高位丢弃,右边补齐0
>>:右移 最高位是0,左边补齐0;最高为是1,左边补齐1
>>>:无符号右移 无论最高位是0还是1,左边补齐0
向左移动几位就是乘以2的几次幂,向右移动几位就是除以2的几次幂
面试题:
最有效率的写出2*8的计算过程: