1)命名规则
(1)包名均小写
(2)类名、接口名每单词首字母大写
(3)变量、函数名首单词小写,其它次单词首字母大写
(4)常量名均大写
2)常量
(1)2、22、0xc3、‘2’、“22”都是常量(分别为整数常量、字符常量、字符串常量)即程序中不会发生变化的量;可以直接用println函数打印出来。
*注意2和‘2’的不同;println打印出来的都是十进制。
(2)八进制由0开头表示,十六进制由0x开头表示。
(3)负数的二进制:相应正数求反并加1。一般,一个数在计算机中由四个字节来表示。此时,最高位表示数据的正负。最高位为1时,代表负数。故,计算机能够表示的最大数为正负2的31次方。
3)变量
当数据会发生变化,需要对数据进行存储时。
(1)数据类型
整型:byte、short、int、long(1、2、4、8字节)
浮点型:float、double(单精度4、双精度8);
整数默认为int型。
java中小数默认为浮点型,定义float时,小数后面要加f。
(2)数据转换
系统会自动将数据向精度高的数据类型转换(保险的秘书,不敢擅自丢失数据)
byte a =3;
a = a+3;
这段代码是错误的,因为java整数默认为int型,即3占了4个字节,byte只有2个字节,加法运算中自动把a提升为int型,最后运算结果为int型,导致丢失精度错误。
正确的写法为:a = (byte)(a+3);强制转换,具体做法为将前三个字节丢弃。
System.out.println('a'+1);输出为98
System.out.println((char)('a'+1));输出为b
(3)数据运算
除法:a=105/100*100;由左至右,并且整型的运算结果仍为整型,故结果为100。
求余(取模运算)1%-5=1;-1%5=-1;-1%-5=-1
自加自减操作:a=1;b=a++;(效果等同于b=a,a=a+1 ,)结果a=2,b=1。看到++操作时,先把++去掉带入变量进行操作,再在变量后加一。
b=++a,则两者皆为2。(先加1,再把变量带入操作)
(4)字符串连接
字符串用+和任何类型数据相连接,最后都得到字符串。
(5)转义字符
\n换行;\r空格;\t tab;\r回车;\b退格;\斜线
可以用 char a ='\n',a中存储回车的ASCII码
4)运算符
(1)赋值运算
=、+=、-=、*=、/=、%=
注:short x=9;
x+=5;是正确的运算,编译能通过;因为赋值运算有自动转换的过程。
(2)比较运算
==、!=、>、<、<=、>=;结果为true或者false
(3)逻辑运算
用于连接布尔类型的表达式
&(与)、|(或)、^(异或)
&&:和&一样,但是&无论左边是真是假,右边都运算;&&当左边为假时,右边不运算。
||:|两边都参与运算,而||当左边为真是,右边不运算。
单双的运算结果没有变化,但是和计算机底层运算有关。
(4)位运算
即用于二进制运算的符号
<<(左移)、>>(右移)
左移会变大,移多少位相当于将数字乘以2的多少次方。
右移会变小,相当于除法
怎么记:右移是大于号x>>2,即右移操作之后,x会变小,所以x“大于”2
另:>>右移后用原数据的最高位补空位
>>>右移后一律用0补空位
&、|、^、~ :与、或、异或、反码
一个数A与另一个数B异或两次,能得到原数,此原理常被用在加密中。
(5)位运算的实际应用
高效的乘法计算:如2*8相当于把2左移3位。
高效的变量互换:m=m+n; n=m-n;m=m-n;
进阶:m=m^n;n=m^n;m=m^n;( 神奇的疑异或)
移位并和15进行与运算,能够逐个取出4位2进制以便于计算16进制数字。
eg:int num=60;
int temp=num>>>4;
int n2 = temp&15;
System.out.println((n2>9)?n2:(char)(n2-10+'A'));
*取高位的八进制数,判断是否需要转换为字母
(6)if判断语句
避免重复代码,提高可阅读性
(由于工作原因,持续了一个月才完成,惭愧惭愧,引以为戒!)