1.java中变量按照数据类型类分类:基本数据类型 and 引用数据类型(数组&类&接口) >基本数据类型 整型:byte(8bit) short int(默认类型) long(数值末尾添加l/L) 浮点型:float double(默认类型) 字符型:char(‘ ‘,这里必须用单引号表示字符,js里面则没有具体要求) 布尔值型: boolean(取值为true或者false,和js一样) 2.进制 十进制 二进制 八进制 十六进制 >二进制:计算机底层都是用二进制来存储,运算的 >二进制在底层存储:正数,负数都是以补码的形式存储和计算的(原码,反码,补码) >四种进制间的转换 3.变量的运算 a.自动类型转换:容量小的数据类型自动转换为容量大的数据类型 short s=12; int i = s +2; ps:byte short char 之间做运算,结果为int型!所以,s+2,一定为int类型 b.强制类型转换:是a的逆过程,使用"()"实现强转.
运算符是一种特殊的符号,用以表示数据的运算,赋值和比较等. 算术运算符: + - +- * / % ++ -- ps: 1) /: int i = 12 ; i = i / 5; //i=2 2)%: 最后的符号只跟被模数相同 3)前++: 先+1,后运算 后++:先运算,后+1 4)+: String 字符串与其他数据类型只能做连接运算,且结果为String类型 赋值运算符:
= += -= *= /= %= int i=12; i=i*5; i*=5; // 同上 [特别的] short s=10; s=s+5; //编译会报错,这里生成的s应该为int 型 s=(short)(s+5); // ok s+=5; // s=s+5,但是这里编译不会报错,这种写法不会改变s的数据类型
比较运算符(关系运算符)
== > < >= <= instanceof
ps:== 和=的区别
进行比较运算操作以后,返回一个boolean类型的值
if(i>1&&i<10){} //ok
不能写成if(1<i<10){}
逻辑运算符(运算符的两端是boolean值)
& && | || ^(亦或,相同取零,不同取一) !
ps:区分&和&&的区别,以及|与||的区别
我们使用的时候,选择&&,||
位运算符(两端是数值类型的数据)
<< >> >>> & | ^ ~(取反)
ps:1)这里左移,右移,移动的是二进制的补码,最后结果根据二进制的变化而定,
2)>>,右移,左边以该数的符号位进行补充,右边移除的部分被抛弃
3)>>>也表示右移,但是左边无符号右移
[例子]1.如何转换m=12和n=5的值
2.将60转换为16进制的输出
三元运算符
(条件表达式)?表达式1:表达式2;
1)既然是运算符,一定会返回一个结果,并且结果的数据类型与表达式1,2类型一致
2)表达式1与表达式2的数据类型一致
3)使用三元运算符的,一定可以转换为if-else,反之不一定
例子:获取两个数的较大值;获取三个数的最大值.