标示符,注释,常量和变量,运算符,语句,函数,数组
java常量的分类:整数,小数,布尔,字符,字符串,null
java整数有三种表现形式:进制越大,表现形式越短
十进制: 0-9,满10进1
八进制:0-7,满8进1,用0开头表示, 3个二进制位表示1位
十六进制:0-9,A-F,满16进1,用0x开头表示, 4个二进制位表示1位
二进制和十进制之间的转换:原理对进制数进行除2运算
二进制转十进制:二进制乘以2的过程
其他进制转换:先转换为2进制,再进行转换
负数的二进制表现形式 :负数的二进制最高位是1,取反得来的
6= 110 0000—0000 0000—0000 0000—0000 0000—0110
-6:6的二进制取反 + 001
1111—1111 1111—1111 1111—1111 1111—1001
+ 0000—0000 0000—0000 0000—0000 0000—0001
1111—1111 1111—1111 1111—1111 1111—1010 = —6
将不确定的数据进行存储,需要在内存中开辟一个空间:通过明确数据类型,变量名称,数据来完成。一个中文2个字节 char = ‘你’;
类型转换
% 取模 :取余数, 左边小于右边结果是左边,左边等于右边结果是0,右边是1结果是0,如果有负数只看左边
转义字符:通过\ 来转变后面字母或者符号的含义。
\n:换行。
\b:退格。相当于backspace。
\r:按下回车键。window系统,回车符是由两个字符来表示\r\n.
\t:制表符。相当于tab键。
shors = 3;
s= s+2;//编译失败,因为s会被提示为int类型,运算后的结果还是int类型,无法赋值给short类型
s+=2;//编译通过,因为+=运算符在给s赋值,自动完成了强制操作
用于连接boolean类型的表达式
& (与): 只要两边的boolean表达式结果,有一个为false。那么结果就是false。只有两边都为true,结果为true。
true & true = true;
true & false = false;
false & true = false;
false & false = false;
| (或): 两边只要有一个为true,结果为true。只有两边都有false,结果为false。
true | true = true;
true | false = true;
false | true = true;
false | false = false;
^ (异或):就是和|有点不一样。两边相同结果是false。两边不同结果是true。
true ^ true = false;
true ^ false = true;
false ^ true = true;
false ^ false = false;
&和&&的特点:
&:无论左边是true是false。右边都运算。
&&:当左边为false时,右边不运算。
|和||的区别:
|:两边都参与运算。
||:当左边为true。右边不运算。
位运算符 : 运算效率最高
<<:其实就是乘以2的移动的位数次幂。 3<<2=123<<1=6
3*22=12 3*21=6
>>:就是除以2的移动的位数次幂 6>>2=1 6>>1=3
6/22=1 6/21=3
<< :左移后,用0补空位
>>:最高位补什么由原有数据的最高位值而定。
如果最高位是0,右移后,用0补空位
如果最高位是1,右移后,用1补空位
>>>:无论最高位是什么,右移后,都用0补
&(与) :6&3=2
110 1:true
& 011 0:false
010
|(或): 6|5= 7
110
| 101
111 =7
^ (异或):一个数异或同一数两次,结果还是那个数 ;可用于加密解密
7^4 : 111 7^4^4 =7
^ 100
011
^ 100
111
实例:
1、以最高效的方式计算2*8: sop(2<<3);
2、对两个整型变量的值进行互换(不使用第三方变量)
int n=3,m=8;
第一种:n= n+m;
m=n-m; //局限性:如果n与m的值非常大,容易超出int范围
n=n-m;
第二种 :n=n^m
m=n^m //m=n^m^m
n=n^m //n=n^(n^m)
3、获取一个整数的十六进制表现形式。
//获取一个数的最低4位,通过&15;
int n1 = num & 15; n1:表示num的最低4位
sop(n1>9?(char)(n1-10+’A’):n1);
//要获取下一组四位,将右移4位。
int temp = num >>> 4;
//对temp的值进行最低四位的获取。
int n2 = temp & 15; // n2:表示num的下一组4位
sop(n2>9?(char)(n2-10+’A’):n1);
// 0-9'A' 'B' 'C' 'D' 'E' 'F'
65 66 67
被选中的表达式只支持 byte,short,int,char 枚举
if与switch何时使用:
while(true),for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环
通过变量记录住每次变化的结果,通过循环的形式,进行累加动作
通过变量记录状态的变化,也通过循环完成
嵌套循环原理:大圈套小圈。
不是规律的规律:
尖朝上,可以改变条件。让条件随着外循环变化。
尖朝下,可以初始化值,让初始化随着外循环变化。
break语句:应用范围:选择结构和循环结构
continue:应用于循环结构
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数不同或参数类型不同即可
重载特点:与返回值类型无关,只看参数列表
重载好处:方便阅读,优化了程序设计。