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,反之不一定
例子:获取两个数的较大值;获取三个数的最大值.