第二章:JAVA编程基础

目录

一:Java的基本语法格式

二:Java中的变量与常量

三:Java中的运算符

四:选择结构语句

五:循环结构语句

六:数组


一:Java的基本语法格式

1:语法格式

[修饰符] class 类名{

程序代码

}

2:基本格式注意点

Java中的程序代码分为结构定义语句和功能执行语句,每条功能执行语句的最后用;结束。

  1. Java语言严格区分大小写
  2. 虽没有格式要求书写,但处于可读性应整齐美观,层次清晰。
  3. Java程序中一句连续的字符串不能分开两行写,若要写,需用+连接

3:Java中的注释:

Java中的注释分为三种:

  1. 单行注释:通常用符号“//”表示
  2. 多行注释:以“/*”开始,以“*/”结束
  3. 文档注释:以“/**”开始,以“*/”结束

注意:单行注释可以嵌套,多行注释和文档注释不可以嵌套。

4:应用程序基本结构

Java源程序文件的命名规则:

  1. 一个Java源文件中,只能定义一个public类,且源程序文件名必须与public修饰的类名相同
  2. 从编译角度看,每个源程序文件是一个独立的编译单位,编译成功后源程序文件中每个类对应生成一个字节码(.class)文件
  3. Java运行器执行主类字节码文件。

5:标识符

标识符:用来表示类名、变量名、方法名、类型名、数组名、文件名的有效字符序列。

标识符命名规则:

  1. 由字母、数字、下划线和美元符号组成,长度不受限制
  2. 第一个字符不能为数字
  3. 标识符的字符中不能有空格
  4. 标识符不能是关键字

标识符书写规范:

  1. 包名所有字母一律小写
  2. 类名和接口名每个单词的首字母都大写
  3. 常量名所有字母都大写,单词之间用下划线连接
  4. 变量名和方法名的第一个单词首字母小写
  5. 再程序中,应尽量使用有意义的英文单词定义标识符,使程序便于阅读。

Java是一门强类型的编程语言,它对变量的数据类型有严格的限定。在定义变量赋值时必须和变量为同一类型的值,否则会报错。

6:Java中的关键字

 

关键字是在编程语言中被赋予一些特殊含义的单词。

二:Java中的变量与常量

1:变量

定义:在程序运行期间,随时产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符。这些内存单元称为变量。定义的标识符成为变量名,内存单元中存储的数据就是变量的值

定义格式:数据类型 变量名=变量值

2:变量的数据类型

3:变量的类型转换

3.1:数据类型转换分为:自动类型转换和强制类型转换。

3.2:赋值规则

Java中数据的基本类型(不包括逻辑类型)按精度从“低”到“高”

排列: byte short char int long float double

当把级别低的变量的值赋给级别高的变量时,系统自动完成数据类

型的转换。例如: float x=100;

当把级别高的变量的值赋给级别低的变量时,必须使用显示类型转

换运算。显示转换的格式:(类型名)要转换的值;

例如 int x=(int)34.89;

当把一个int型常量赋值给一个byte和short型变量时,不可以超出

这些变量的取值范围,否则必须进行类型转换运算;例如,常量

128的属于int型常量,超出byte变量的取值范围,如果赋值给

byte型变量,必须进行byte类型转换运算(将导致精度的损失)。

转义字符:

转义字符的使用规定:有些字符是不能通过键盘输入到字符串或程序中的。

(1)\r表示回车符,将光标定位到当前行的开头,不会跳到下一行。
(2)\n表示换行符,换到下一行的开头。
(3)\t表示制表符,将光标移到下一个制表符的位置,就像在文档中用Tab键一样。(4)\b表示退格符号,就像键盘上的Backspace.
以下的字符都有特殊意义,无法直接表示,所以用斜杠加上另外一个字符来表示。
(5)\'表示单引号字符,Java代码中单引号表示字符的开始和结束,如果直接写单引号字符(),程序会认为前两个是一对,会报错,因此需要使用转义(\')。

(6)\"表示双引号字符,Java 代码中双引号表示字符串的开始和结束,包含在字符串中的双引号需要转义,比如"he says,\" thank you\
(7)\\表示反斜杠字符,由于在Java代码中的反斜杠(\)是转义符,因此需要表示字面意义上的\,就需要使用双斜杠()。

4:变量的作用域

定义:变量需要在它的作用范围内才可以被使用,这个范围称为变量作用域。

5:常量

5.1:定义:常量就是在程序中固定不变的值,是不能改变的数据。

5.2:分类:整型常量、浮点型常量、布尔型常量、字符型常量、空常量。

5.3:测试Java几种数值类型的最大值和最小值

Java中的四类八种基本类型不支持面向对象的编程机制(没

有属性和方法),它们的存在只是方便常规数据的处理。而JDK 又提供了一系列包装类,将基本数据类型的值包装成引用数据 类型的对象,这些类型有:Byte、Character、Integer、 Long……其中数值类中提供了常量,规定了该类数据的最大值

和最小值,使用方式为:Byte.MIN_VALUE/Byte.MAX_VALU

Float. MIN_VALUE/Float.MAX_VALU……

5.4:final关键字:如果修饰变量,那么这个关键字就会让变量成为常量。

三:Java中的运算符

1:赋值运算符与赋值表达式

<变量名>=<表达式>

赋值的运算次序是从右向左的,即“右结合”性 。

复合赋值操作符是+=、-=、*=、/=、%=,它们依 次对目标变量进行减法、乘法、除法和求余运算。

2:算术运算符和算术表达式

算术运算符:+、-、*、/、%、++、--

算数混合运算的精度

精度从“低”到“高”的排列顺序—— 由低到高:

byte、short、char、int、long、float、double

精度提升规则:double ← float ← long ← int

运算规则:

⑴ 整数除法会直接去掉结果的小数位,而不是四舍五入地圆整结果。

⑵ 整数求余,其结果的符号与被除数相同

3:关系运算符与关系表达式

关系运算符用于比较两个值之间的大小,结果返回布尔值,结果要分是true,要么是false。

关系运算符:==,!=,>,<,>=,<=

4:逻辑运算符与逻辑表达式

逻辑运算符:“与”(&&,&)、“或”(||,|)、“非”(!),”异或”(^ ) 。

Java的逻辑操作符有:“与”(&&)、“或”(||)、“非” (!)。它们能根据参数的逻辑关系,生成一个布尔值。

注意事项:

(1)逻辑运算符它的左右两边必须是比较表达式。

(2)逻辑运算符的结果是一个布尔类型的。

5:位运算符

位运算是对整数基本数据类型中的单个“比特” (bit)进行操作,是对数据进行按位操作的手段。

Java的位运算符有:取反(~)、与(&)、或(|)、异或(^) 、左移(<<)、右移(>>)、无符号右移(>>>)

四:选择结构语句

1:if语句

if判断语句格式:

if(判断条件){

执行语句

}

执行流程:

2:if···else··语句

语法格式:

if(判断条件){

执行语句1

}else{

执行语句2

}

执行流程:

 

3:if···else if···else语句

语法格式:

if (判断条件1) {

执行语句1

} else if (判断条件2) {

执行语句2

} ... else if (判断条件n) {

执行语句n

} else {

执行语句n+1

}

执行流程:

4:三元运算

格式:判断条件 ? 表达式1 : 表达式2;

三元运算可以代替if···else语句

使用三元运算符时需要注意以下几点:

(1)三元运算符“?”和“:”是一对运算符,不能分开单独使用。

(2)三元运算符的优先级低于关系运算符与算术运算符,但高于赋值运算符。

(3)三元运算符可以进行嵌套,结合方向自右向左

5:switch条件语句

switch 条件语句也是一种很常用的选择语句,和if条件语句不同,它只能针对某个表达式的值做出判断,从而决定程序执行哪一段代码。

语法格式:

switch (表达式){

case 目标值1:

执行语句1

break;

case 目标值2:

执行语句2

break;

......

case 目标值n:

执行语句n

break;

default:

执行语句n+1

break;

}

五:循环结构语句

1:while循环

while循环语句会反复地进行条件判断,只要 条件成立,{}内的执行语句就会执行,直到循环条件不成立,while循环结束。

语法结构:

while(循环条件){

执行语句

...

}

执行流程:

2:do···while循环

语法结构:

do {

执行语句

...

} while(循环条件);

执行流程:

while循环与do···while循环的区别:while不满足条件一次都不执行,do···while循环至少执行一次。

3:for循环

语法结构:

for(初始化表达式; 循环条件; 操作表达式){

执行语句

...

}

语法分析:

第一步,执行初始化表达式 

第二步,执行循环条件,如果判断结果为true,执行第三步,如果判断结果为false,执行第五步

第三步,执行执行语句 

第四步,执行操作表达式,然后重复执行第二步

第五步,退出循环

while、do…while和for循环的区别 :

相同点是:都遵循循环四要素,即初始化循环变量、循环条件、循环体、更新循环变量。

不同点: 

(1)while和do...while适用于循环次数不确定的场景;for适用于循环次数确定的场景。

(2)while和for是先判断循环条件,再执行循环体;do...while是先执行循化体,再判断循环条件。

4:循环嵌套

循环嵌套是指在一个循环语句的循环体中再定义一个循环语句的语法结构。while、do…while、for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套,其中最常见的是在for循环中嵌套for循环。

语法格式:

for(初始化表达式; 循环条件; 操作表达式) {

...

for(初始化表达式; 循环条件; 操作表达式) {

执行语句

... }

... }

5:跳转语句

break语句

当break语句出现在嵌套循环中的内层循环时,它只能跳出内层循环,如果想使用break语句跳出外层循环,则需要在外层循环中使用break 语句。

continue语句

continue语句用在循环语句中,它的作用是终止本次循环,执行下一次循环。

6:函数(方法)

方法是一段可以重复调用的代码。

语法格式:

修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2,...){

执行语句

...

return 返回值; }

语法格式说明:

(1)修饰符:方法的修饰符比较多,例如,对访问权限进行限定的修饰符,static修饰符,final修饰符等,这些修饰符在后面的学习过程中会逐步介绍。

(2)返回值类型:用于限定方法返回值的数据类型。

(3)参数类型:用于限定调用方法时传入参数的数据类型。

(4)参数名:是一个变量,用于接收调用方法时传入的数据。

(5)return关键字:用于返回方法指定类型的值并结束方法。

(6)返回值:被return语句返回的值,该值会返回给调用者

注意:方法中的“参数类型 参数名1,参数类型 参数名2”被称作参数列表,参数列表 用于描述方法在被调用时需要接收的参数,如果方法不需要接收任何参数,则参数列表为空,即()内不写任何内容。方法的返回值类型必须是方法声明的返回值类型,如果方法没有返回值,返回值类型要声明为void,此时,方法中return语句可以省略。

7:方法的重载

方法重载,就是在同一个作用域内,方法名相同但参数个数或者参数类型不同

的方法

一个数组由4个基本元素构成:数组名称、数组元素、元素索引、 数据类型。声明数组的方式: 

数据类型[]数组名;

数组名= new数据类型[长度];

注意:数组中最小的索引是0,最大的索引是“数组的长度-1”。为了方便获得数组的长度,Java提供了一个length属性,在程序中可以通过“数组名.length”的方式获得数组的长度,即元素的个数

六:数组

1:数组的定义

数组是一个容器,可以保存同一数据类型的数据。

数组分为一维数组和二维数组。

在定义数组时只指定数组的长度,由系统自动为元素赋初值的方式称作动态初始化。在初始化数组时还有一种方式叫做静态初始化,就是在定义数组的同时就为数组的每个元素赋值。

数组的静态初始化有以下两种方式: 

类型[] 数组名 = new 类型[]{元素,元素,……};

类型[] 数组名 = {元素,元素,元素,……};

数组的动态初始化方式:

类型[] 数组名 = new 类型{长度};

数组元素的访问:数组的索引,内容图解

数组的索引从0开始;

数组索引的访问:数组名[索引];

注意事项:

  1. 直接输出数组名,默认打印的是数组的地址名。
  2. 数组的索引从0开始,最大取到长度-1.若使用了不存在的索引,就会出现索引越界异常:ArrayIndexOutOfBoundsException。
  3. 若数组没有任何引用了,还去操作数组,那么就会出现空指针异常NullPointerException。

2:数组的常见操作

2.1:数组的遍历

在操作数组时,经常需要依次访问数组中的每个元素,这种操作称作数组的遍历

注意:

由于数组中元素较多,所以常用循环语句完成数组的遍历。在循环遍历数组时,使用数组索引作为循环条件,只要索引没有越界,就可以访问数组元素。

2.2:数值最值的获取

在操作数组时,经常需要获取数组中元素的最值。

2.3:数组的排序

最常见的为冒泡排序

冒泡排序分析:

第1步,从第一个元素开始,将相邻的两个元素依次进行比较,直到最后两个元素完成比较。如果前一个元素比后一个元素大,则交换它们的位置。整个过程完成后,数组中最后一个元素自然就是最大值,这样也就完成了第一轮比较。

第2步,除了最后一个元素,将剩余的元素继续进行两两比较,过程与第一步相似,这样就可以将数组中第二大的元素放在了倒数第二个位置。

第3步,以此类推,持续对越来越少的元素重复上面的步骤,直到没有任何一对元素需要比较为止。

3:多维数组

二维数组就是指维数为2的数组,即数组有两个索引。二维数组的逻辑结构按行列排列,两个索引分别表示行列,通过行列可以准确标识一个元素。

定义方式;

数据类型[][] 数组名 = new数据类型[行的个数][列的个数];

数据类型[][] 数组名 = new int[行的个数][];

数据类型[][] 数组名= {{第0行初始值},{第1行初始值},...,{第n行初始值}};

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱编程de小白

您的打赏是我最大的动力,感谢

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值