关键字
Java标识符
大小写字母,数字,_和$,不能以数字开头,不能使用关键字,严格区分大小写。
Java注释:单行注释,多行注释,文档注释;调试程序。常量与变量
常量的分类:整数,小数,布尔,字符(单引号),字符串(双引号),null常量
整数常量:进制。
三个二进制位为一个八进制,四个二进制位为一个十六进制位。
负数:正数二进制取反加1,负数二进制最高位是1.
变量
变量名,数据类型,数据。
强类型语言。
基本数据类型
数值型:整数类型(byte,short,int,long);浮点型(float,double);
字符型(char)
布尔型(boolean)
引用数据类型:类(class);接口(interface);数组([ ])
整数默认:int 小数默认:double
类型提升和强制类型转换(丢失精度),
字符运算:编码表(ASCII)国标码(gb2312)unicode(国际标准编码表)
隐性转换,显性转换
+=在底层自动做强制转换。
b=a++:先把a赋给b,b=a,a=a+1
b=++a:a先自增,然后赋给b,a=b=a+1
成员变量和局部变量的区别:
1
2
3
4
5
6
7
8
9
10
11
121.
成员变量定义在类中,整个类中都可以访问;
局部变量定义在函数,语句,局部代码块中,只在所属的区域有效。
2.
成员变量存在于堆内存的对象中;
局部变量存在于栈内存的方法中;
3.
成员变量随着对象的创建而存在,随着对象的消失而消失;
局部变量随着所属区域的执行而存在,随着所属区域的结束而释放。
4.
成员变量都有默认初始化值;
局部变量没有默认初始化值。
##运算符
逻辑运算符
与,&
或,|
异或,^ 两边结果不同为真,相同为假
非,!
短路,&&左边结果假,右边不计算
||左边结果真,右边不计算
位运算符
转换为二进制计算;
一个数异或另一个数两次,结果还是这个数〈常用于加解密〉;
<< 左移 左移几位就是原数据乘以2的几次方;
>> 右移 右移几位就是原数据除以2的几次方,高位出现的空位,原来高位是什么就用什么补这个空位,保证数据正负不变;
>>> 无符号右移 由移后,无论高位是什么,高位出现的空位都用0来补。
- 三元运算符
1
2
3(条件表达式)?表达式1:表达式2
如果条件为true,运算后的结果是表达式1;
如果条件为false,运算后的结果是表达式2.
流程控制
判断结构
if语句
(1)
1
2
3
4if(条件表达式)
{
执行语句;
}if语句控制的语句为单条语句时,大括号可以省略;如果if语句后没有大括号,if就控制离它最近的那条语句。
(2)
1
2
3
4
5
6
7
8if(条件表达式)
{
执行语句;
}
else
{
执行语句;
}三元运算符就是if else的简写格式;当if else运算符,有一个具体的结果的时候,可以简写为三元运算符。
(3)
多条件判断1
2
3
4
5
6
7
8
9
10
11
12if(条件表达式)
{
执行语句;
}
else if(条件表达式)
{
执行语句;
}
else
{
执行语句;
}局部代码块可以定义局部变量的生命周期。
switch语句
1
2
3
4
5
6
7
8
9
10
11
12
13switch(表达式)//byte,int,short,char
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
……
default:
执行语句;
break;
}if和switch的应用场景
if:
1
2
31.对具体的值进行判断;
2.对区间判断;
3.对运算结果是boolean类型的表达式进行判断。switch:
1
21.对具体的值进行判断;
2.值的个数通常是固定的;对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案都加载进内存,效率相对高一点。
循环结构
while
1
2
3
4while(条件表达式)
{
执行语句;
}do while
1
2
3
4do
{
执行语句;
}while(条件表达式);for
1
for(初始化;表达式;条件)执行语句
break与contunue
break:跳出
1
2break作用的范围:switch语句或者循环语句。
当break语句单独存在时,下面不要定义其他语句,因为执行不到。continue:继续
1
2continue作用的范围:循环结构。
结束本次循环,继续下次循环。如果continue单独存在时,下面不要有任何语句,因为执行不到。
##内存的划分
- 寄存器
- 本地方法区
- 方法区
栈内存
存储的都是局部变量,而且变量所属的作用域一旦结束,该变量自动释放。即栈的生命周期比较短,更新比较快.
堆内存
存储的是数组和对象(其实数组就是对象),凡是new建立的都在堆中.
(1)每一个实体都有首地址;
(2)堆内存中的每一个变量都有默认初始化值,根据类型的不同而不同。整数是0,小数是0.0或0.0f,boolean是false,char是’\u0000’.
##一般函数与构造函数的区别
构造函数:
对象创建时,就会调用与之对应的构造函数,对对象进行初始化;
只调用一次。
一般函数:
对象创建后,需要函数功能时才调用;
可以调用多次。