Java中的基本数据类型:
1. 基本类型:(8种)
布尔型; boolean true/false
该变量的名字一般以is或has开头
字符型:统一采用Unicode编码 16个位 2个字节
char 赋值方式:
char c1 = 'a'; //字面值
char c2 = '中';
char c3 = '\u4e2d'; //Unicode
char c4 = '\n'; //转义字符
char c5 = 97; //Ascii码赋值
整数类型:1个符号位+(n-1)个数值位
byte 8
short 16
*int 32 //Java中整数默认int类型
long 64
int num1 = 77; //DEC
int num2 = 077; //OTC
int num3 = 0x77; //HEX
int num4 = ob1011; //BIN JDK7.0
浮点类型:1个符号位+幂指位+数值位
float: 1+8+23 F/f
double: 1+11+52 D/d
float num = -0.75F;
double num = -0.75D;
double num2 = 5.75E3; //HEX
2.引用类型;也叫做自定义类型
class Student{}
class Teacher{}
//....
Java当中的运算符
+ - * / %
[+ 当加法遇见字符串的时候 不是要进行算数加法 而是要追加连接]
[* 当心数据边界 如果结果可能超过21亿 那么结尾必须加L 防止溢出]
[/ 整数除以整数结果一定为整数 0.0 Inifinity NaN]
[% 最终结果的符号位取决于参与运算的第一个数字]
+= -= *= /= %=
[自动保持运算符左侧数据类型不发生任何变化!]
++ --
[a.运算 b.取值 i++=>ba ++i=>ab]
> < >= <= == != =
[==判断左右两端是否相等 返回true或false]
[=赋值运算符 要将右侧的值交给左侧变量保存]
&& || & |
[逻辑运算符]
[&& || 逻辑短路运算符 ]
[& | 逻辑非短路运算符]
& | ^ ~ [这组运算符很能体现程序员的价值]
[& 在某些情况下 &可以代替%来求余数 而且更高效]
[x%y y是2的n次方数 那么将直接可以使用 x&(y-1)]
[& 在哈希表这种数据结构当中也有极为重要的作用]
[更高效的得出散列到哪个小组]
[Java当中的各个修饰符 也要利用&来实现]
[按位运算符在权限控制模块当中的应用 & | ~]
[^ 能够在不使用第三块空间的情况下 交换两个变量的值]
int x = 35;
int y = 97;
x = x ^ y;
y = x ^ y;
x = x ^ y;
*:这是一个年糕 !
>> << >>> 位移运算符
[<<相当于* >>相当于/ 移动多少位 相当于*或者/2的多少次方]
[*2 *4 *8 /2 /4 /8]
[<<1 <<2 <<3 >>1 >>2 >>3]
>>> 无符号右移
101111111111111110100111110111100000 >>1
111101111111111111110100111110111100
那得看用的是>>还是>>>
如果使用的是>> 有符号右移 言外之意 移动之后空缺的高位
无论多少个高位 都参照原本的符号位 符号位是几写几
如果使用的是>>> 无符号右移 移动之后空缺的高位 不加判断 全部写0