基础知识整理
-
注释comment
单行注释://
多行注释/* * /
文档注释:// * */
文档注释内容可以被JDK提供的工具javadoc所解析,生成一套以网页文件形式体现的该程序的说明文档。 -
程序编写-编译-运行的过程
1)编写的java代码保存在以.java结尾的源文件
2)编译: javac 源文件名.java
3)运行: java 类名
注:声明的public的类名必须与源文件名相同。 -
标识符命名规范
包名:多单词组成时所有字母都小写;
类名、接口名:多单词组成,所有单词首字母大写;
变量名、方法名:多单词组成,第一个单词首字母小写,其余单词首字母大写;
常量名:所有字母大写,多单词时每个单词用下划线连接。 -
数据类型
基本数据类型:byte、short、int、long、flaot、double、char、boolean
引用数据类型:类(class)、接口(interface)、数组(array)
整型常量默认值为int
浮点型常量默认值为double -
基本数据类型间的运算规则
1)自动类型提升
byte/char/short<int<long<float<double
注:当byte、char、short三种类型的变量做运算时,结果都为int。
2)强制类型转换
语法:(想转换的类型)变量名;
boolean类型不可以转换为其它的数据类型。 -
String属于引用数据类型,可与8种基本数据类型做连接运算,运算结果依然是String类型。
-
进制表示
二进制以‘0b’或‘0B’开头;
八进制以数字‘0’;
十六进制以‘0x’或‘0X’开头。 -
运算符
1) % 结果的符号与被模数符号相同
2) ++a,先自加,后运算。
a++,先运算,后自加。
自增不会改变变量本身的数据类型。
3) 赋值运算符,不会改变变量本身的数据类型。
4) 比较运算符结果是boolean类型。 -
逻辑运算符
1)^逻辑异或,相同为假,相异为真 。
2)&与&&区别
两者运算结果相同
当符号左边为true时,二者都会执行符号右边的运算。
当符号左边是false时,&继续执行符号右边的运算;&&不再执行符号右边的运算。
3)|与||区别
两者运算结果相同
当符号左边为false时,二者都会执行右边的运算。
当符号左边是true时,|继续执行符号右边的运算;||不再执行符号右边的运算。
注:推荐使用&&和||。
4)
"<<"左移,空位补0,被移除的高位丢弃,空缺位补0。左移相当于*2。
“>>”右移,最高位是0,右移后空缺位补0;
最高位是1,右移后空缺位补1;右移相当于/2。
“>>>”被移位二进制最高位无论是0或者1,空缺位都补0。
&按位与,|按位或,^按位异或。 -
三元运算符
(条件表达式)?表达式1:表达式2;
凡三元运算符都可以改成if…else,反之不可以。
若即可用三元又可以if…else,则优先选用三元(效率更高)。 -
**if…else **
1)if…else结构是“多选一”时,最后的else是可选的,根据需要可以省略;
2)当多个条件是“互斥”关系时,条件判断语句及执行语句间顺序无所谓;
3)当多个条件是“包含”关系时, “小上大下 / 子上父下”。 -
switch
语法: switch(表达式):
case 常量1:
执行表达式1;
break;
case 常量2:
执行表达式2;
break;
case 常量3:
执行表达式3;
break;
default:
执行表达式n;
break;
1)switch结构中表达式只能是如下6种数据类型之一:byte、short、char、int、枚举类型、String类型。
2)case之后,只能声明常量,不能声明范围。
3)break是可选的。
4)default是可选的,位置是灵活的。
5)凡是可以使用switch…case的结构都可以转换为if…else,反之不成立。
6)分支结构时,即可用switch…case(同时,switch中表达式的值情况不太多),又可以使用if…else,优先使用switch…case。 -
循环
1)for和while可相互转换,while循环中不要忘记迭代条件。
2)do … while至少执行一次循环体。
3)开发中多使用while和for,很少使用do…while。
4)结束循环的两种方式:
(1)循环条件部分返回false;
(2)在循环体中执行break;
5)外层循环控制 行数,内层循环控制列数。
6)while语法:
(1)初始化部分
while ((2)循环条件){
(3)循环体部分;
(4)迭代部分;
}
7)do…while语法:
(1)初始化部分;
do{
(3)循环体部分;
(4)迭代部分;
}while((2)循环条件部分); -
break、countinue
break:break默认终止本层循环, 只能用在switch…case和循环中;
coutinue:countinue默认终止本次循环,继续执行下一次循环;只能用在循环中。
break,countinue之后不能有其他语句。
label标号:标号语句必须紧接在循环的头部,标号语句不能用在非循环语句的前面。
break label:终止指定的那一层循环;
countinue label 终止指定的本次循环,继续执行下一次循环。