整数拓展:进制
二进制0b;八进制0;十进制;十六进制0x
十进制转二进制,将正的十进制除以二,得到商后再除以二,直到商为1或0时,然后各部余数填1,整数填0,然后倒着写出来,最后高位补零
一个正的二进制的数转为负的只需要将该数的二进制码取反然后+1(补码)即可
浮点拓展:浮点数一般都会存在舍入误差 ,所以结果只是大约数,接近但不等于
最好完全避免使用浮点数进行比较
字符拓展:所有字符本质还是数字,如:
char a='林';
system.out.println((int)a);
布尔值拓展:
boolean a=true;
if(a==true){}//if(a){}
代码要精简易读
int s1 =1
int s2 =1
以上这种会在内存中存储2个1的值
string i1 ="hello"
string i2="hello"
这种的,不会在内存中存在两个"hello",只存在一个"hello"
假设"hello"的内存地址为xxx,声明i1变量时,i1的赋值操作实际是让i1变量引用"hello"的内存地址,当再次声明值等于"hello"的i2时,实际也是直接把已经存在的"hello"的内存地址给i2引用(字符串单独划分一个才区会这样引用,数字不会)