-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
一:数据类型的转换:包括强制转换和隐式转换(这个要除去boolean类型)
隐式转换是窄类型转换成宽类型,这个是安全的。
1:byte short char在表达式中会自动提升为int 类型。
2:在表达式中,由最高类型,其他类型都会自动提升到这个类型。
强制转换是宽类型转换为窄类型,但是这样可能会丢失精度。
面试题:
byteb1 = 4;(其实这个里面是隐式转换。)
byteb2 = 6;
byte b3 = b1 + b2;// 编译错误
byte b4 = b1 +12;// 编译错误 (这个在运算过程中会自动转换成int类型计算)
byte b5 = 10 + 22;//这个是ok的
还有要注意的是浮点数和long类型。
byte v1 = 3;
short v2 = 4;
int v3 =5;
long v4 = 6;
这个四个要进行运算的话要用long类型接收。
float v5 =12.0f;
如果这五个要运算的话,必须得用float接收。
虽然float类型只占4个字节,long占8个字节,但是浮点类型数据所能表示的范围要大于整型数据范围。所以必须要用float类型接收。
二:字符和字符串运算:
字符串运算一般都是字符串的链接运算,对于表达式中如果有算是运算和字符串运算,一般都是从左往右,进行到字符串运算的时候都是链接运算。
三:算术运算符
+ - * / % ++ --
简单的注意事项自己知道就行。
不过要注意的是整数除0 运行时会报异常
浮点除0,这个不会报异常,会打印Infinity (无穷大)
整数%0,运行也是报异常。
浮点%0 是打印 NaN
++ -- 自增自减运算符这个自己要注意是先自增(减)还是先取值。
四:赋值运算符
=、+=、-=、*=、/=、%=
这里要注意的是这些运算符都是带强制转换的。
byteb1 = 10;
b1 =b1 +10;这个编译错误。(上面提过)
b1 += 10;(这个带强制转换)Ok的。
五:关系运算符
==、!=、>、<、>=、<=
这里其实就要注意关系运算符就是会产生一个boolean类型的值。
六:逻辑运算符
与 或 非 && || !
按位与 按位或 & |
逻辑&&/||按位&/|区别:逻辑&&/||具有短路行为;但是他们的结果还是一样的。
七:位运算符
<< 、>>、>>>、 &、|、^、~ 左移 右移 无符号右移 与 或 异或 取反 这里要注意的是,位运算符进行运算,不改变原来的值,会产生一个新的值,原值不会改变。
八:三元运算符
这个只要平时自己看清就行,要注意式子的整体结构分析就好。
九:Scanner 键盘录入
(前面要导包)这个只要知道
接收int型 是int a = sc.nextInt();
接收字符串类型 是 String s = sc.next();
变量交换的方法:
A:中间变量的方法
B:利用异或^的方法(三次异或运算)
Int x =10;
Int y = 20;
X = x^y;
Y =x^y;
x = x ^y;
C:加法方式
a = a + b;
b = a–b;
a = a–b;
D: 一句话搞定
a = (a+b) - (b=a)