环境搭建就不说了。
注释
单行注释 //
多行注释 /* */
文本注释 /** */
由JDK中javadoc工具将程序当中的文档说明提取出来,形成一个网页,给开发人员看的。
一般情况下,类上面加的是文档注释,函数上面加的通常也是文档注释。修饰符改变有可能加多行注释,代码中的某句比较关键或者难懂的话加单行注释,但不要每一行都加。
常量
整数常量
小数常量
字符常量用单引号括起来(一个数字字母或符号)
字符串常量用双引号括起来(一个或多个字符)
null常量
布尔常量
java整数的表现形式
十进制
八进制,0开头
十六进制,0x开头
二进制,负数的二进制表现形式:正数取反加一
移位
>>:/2n最高位用符号位补
<<:>
>>>:无论最高位是什么,都用0补,无符号运算
if 条件判断
if(条件表达式)
{执行语句}
else if(条件表达式)
{执行语句}
else
{执行语句}
if后面只有一句执行语句可以不加{}
三元运算符
好处:可以简化if else代码
弊端:因为是一个 运算符,所以运算完必须有一个结果
switch语句
switch(表达式)
{
case 取值1:
执行语句;
break; //没有break,程序会不判断case继续执行,直到break,因此多个case同个结果可以写在一起
case 取值2:
执行语句;
break;
...
default:
执行语句;
break;
}
被接受的表达类型:byte、short、int、char、string、enum
如果判断的具体数值不多,而且符合byte、short、int、char、string、enum这几种类型,建议使用switch。
对区间判断,对结果为Boolean类型判断,使用if判断,if的使用范围更广。
while循环
和if有差别,if语句只会对条件进行一次判断,不会循环判断。
while(条件表达式) //后面绝对不能加分号,会进入死循环
{
循环体
}
先判断条件,只有条件满足才执行循环体。
do while循环
先执行循环体再判断,无论条件满不满足,循环体至少会执行一次。
do
{循环体}
while(条件表达式); //后面要加分号
for 循环
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{循环体}
for循环初始化表达式定义的变量,只在for循环体里有效。(变量的作用域问题)
如果变量只用于控制循环,for更适用,省内存。
初始化表达式、循环后的操作表达式,可以是多个表达式,用,隔开。
循环条件表达式必须返回Boolean类型。
无限循环的最简单表现形式
for(;;){}
while(true){}
累加思想(计数器思想)
原理:通过变量记录住循环操作后的结果,通过循环的形式进行累加的动作。累加=变量+循环。
语句嵌套、循环嵌套(大圈套小圈)
语句中还有语句、循环中还有循环。
system.out.println()换行
system.out.print()不换行
嵌套循环,外循环控制行数。
流程控制语句
break应用于选择结构和循环结构,默认跳出的是当前循环
break + 标号,跳出标号循环
注意:循环才有标号,如:
w:for(;;){
for(;;){
break w;
}
}
continue应用于循环结构,结束本次循环,执行下一次循环
break + 标号,执行标号循环的下一次循环
注意:1.break和continue语句作用的范围。(不能用在switch和循环外)
2.break和continue单独存在是,下面不可以有任何语句,因为都执行不到。
练习
函数
修饰符 返回值类型 函数名(参数类型 参数变量,参数类型 参数变量)
{
函数体
}
要被主函数调用修饰符必须有static。
return返回值,结束函数。如果没有返回值,返回值类型为void,return;在最后一句可以省略。
1.既然函数是一个独立的功能,那么该功能的运算结果是什么先明确。(确定返回值类型)
2.再明确在定义该功能的过程中是否需要未知的内容参与运算。(确定参数类型和个数)
函数重载
当定义的功能相同,但参与运算的未知内容不同,这时就定义一个函数名称以表示功能,方便阅读,而通过参数列表的不同来区分多个同名函数
重载和返回值类型没关系,所以返回值类型可以不一样,参数列表不一样就算重载。
如果一个函数和另一个函数返回值类型不一样,函数名和参数列表一样,那么这两个函数不允许出现在同一个类里,因为主函数不知道要调用哪个。
数组
元素类型[] 数组名 = new 元素类型[元素长度或数组长度]
数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。
数组是放在堆内存里的,堆内存中的每一个实体都有一个存放地址,相当于是把数组的起始地址存放到数组变量里(栈里)。
数组一被定义就有数据,默认数据由类型决定,0。
栈自动存放,堆垃圾回收。