JAVA代码基本的格式:
修饰符 class 类名{
程序代码
}
该代码排序就比较“完美型”的,可读性强,整齐美观。
关键点:1.程序代码可分为结构定义语句,功能执行语句。
2.功能执行语句最后都要必须使用分号(;)结束。
3.严格区分大小写。
注意:1.考虑可读性,程序代码整齐美观,层次清晰。
2.一个完整的字符串不能分开写,如果一个字符串太长了,可以将这个字符串分成两个字符串,然后使用加号(+)将这两个字符串连接起来,
JAVA的注释
注释:在JAVA编写程序时,为了使代码易于阅读,通常会在实现功能的同时为代码加一些注释(注释是对程序的某个功能或者某行代码的解释说明,它只在Java源文件中有效,在编译程序时编译器 会忽略这些注释信息,不会将其编译到class字节码文件中去)。
注释分为三种类型:(1)单行注释(2)多行注释(3)文档注释
JAVA中的标识符
在编程过程中,经常需要在程序中定义一些符号来标记一些名称,如,包名、类名、方法名、参数名、变量名等,这些符号被称为标识符。
标识符可以由任意顺序的大小写字母、数字、下划线( )和美元符号($) 组成,但不能以数字开头,不能Java中的关键字。
注意事项:
JAVA中的关键字
关键字是编程语言里事先定义好并赋子了特殊含义的单词,也称作保留字。和其它语言一样,Java中保留了许多关键字,例如,class、public等,下面列举的是Java中所有的关键字。
JAVA的常量、变量
常量
常量就是在程序中固定不变的值,是不能改变的数据。在Java中,常量包括整型常量、浮点数常量、布尔常量、字符常量
final 数据类型 常量名称[=值]
final double PI=3.1415926D //声明double型常量PI且赋值
1.整数常量
2.浮点数常量
3.字符常量
4.字符串常量
5.布尔常量以及null常量
变量
(一)变量的定义
Java是一门强类型的编程语言,它对变量的数据类型有严格的限定在定义变量时必须声明变量的类型,在为变量赋值时必须赋予和变量同一种类型的值,否则程序会报错
一.整数类型的变量
(1)用来存储整数数值,即没有小数部分的值
(2)整数类型分为4种不同的类型,字节型(byte),短整形(short),整型(int)和长整型(long)
注意点:为一个long类型的变量赋值时需要注意一点,所赋值的后面要加上一个字母'' L''说明赋值为long类型。
(3)占用空间指的是不同类型的变量分别占用的内存大小
(4)取值范围是变量存储的值不能超出的范围
二.浮点数类型变量
(1)浮点数类型变量用来存储小数数值.
(2)浮点数类型分为两种: 单精度浮点数 (float) 、双精度浮点数(double).
注意点:在为一个float类型的变量赋值时需要注意一点,所赋值的后面一定要加上字母“F”,而为double类型的变量赋值时,可以在所赋值的后面加上字符“D”也可不加,在程序中也可以为一个浮点数类型变量赋予一个整数数值
(3)在取值范围中,E表示以10为底的指数,E后面的“+”号和“-”号代表正指数和负指数
三.字符类型变量
(1)用于存储一个单一字符,在Java中用char表示
(2)每个char类型的字符变量都会占用2个字节
(3)赋值时,要用英文半角格式的单引号 (") 把字符括起来,如'a'
(4)也可以赋值为0~65535范围内的整数,计算机会自动将这些整数转化为所对应的字符,如数值97对应的字符为'a'
四.布尔类型变量
布尔类型变量用来存储布尔值,在Java中用boolean表示,该类型的变量只有两个值,即true和false
变量的类型转换
当把一种数据类型的值赋给另一种数据类型的变量时,需要进行数据类型转换。
根据转换方式的不同,数据类型转换可分为两种:自动类型转换和强制类型转换。
(1)自动类型转换
1.也叫隐式类型转换,指的是两种数据类型在转换的过程中不要显式地进行声明
2.要实现自动类型转换,必须同时满足两个条件:(1)是两种数据类型彼此兼容(2)是目标类型的取值范围大于源类型的取值范围
(2)强制类型转换
(1)强制类型转换也叫显式类型转换,指的是两种数据类型之间的转换需要进行显式地声明。
(2)当两种类型彼此不兼容,或者目标类型取值范围小于源类型时自动类型转换无法进行,这时就需要进行强制类型转换。
(3)强制类型转换的格式如下所示
目标类型 变量=(目标类型)值
int a=(int)40.2;
二.变量的作用域
三.算术运算符
运算符是一些特殊的符号,主要用于数学函数、一些类型的赋值语句和逻辑比较方面。Java中提供了丰富的运算符,如赋值运算符、算术运算符和比较运算符等。
(一)赋值运算符
赋值运算符以符号“=”表示,它是一个双目运算符(又对两个操作数做处理),其功能是将右边操作数所含的值赋给左边的操作数。
(二)比较运算符
比较运算符用于两个数值或变量进行比较,其结果是一个布尔值,即true和false
注意:比较运算符在使用时需要注意一个问题,不能将比较运算符“==误写成赋值运算符“=”
(三)自增和自减运算符
自增和自减运算符是单目运算符,可以放在变量之前,也可以放在变量之后。自增和自减运算符的作用是使变量的值增1或减1.
a++; ++a a--; --a
符合在前 ++i --i 先计算后使用
符 合在后 i++ i-- 先使用后计算
(四)逻辑运算符
逻辑运算符用于对布尔型的数据进行操作,其结果仍是一个布尔型。
运算符
含义
举例
&
与
a&b
|
或
a|b
~
取反
a~b
^
异或
a^b
<<
左移位
a<
>>
右移位
a>>b
>>>
无符号右移位
a>>>b
使用逻辑运算符的过程,注意以下几点细节:
(五)逻辑的优先级
在对一些比较复杂的表达式进行运算时,要明确表达式中所有运算符参与运算的先后顺序,把这种顺序称作运算符的优先级。
JAVA流程控制语句及方法
(一)选择结构
(1)if语句
if语句是指如果满足某种条件,就进行某种处理,其语法格式如下所示:
if(条件语句){
代码块
}
上述语法格式中,判断条件是一个布尔值,当值为true时,才会执行{}中的语句。
if的语句执行流程图如下:
(2)if..else语句
if...else语句是指如果满足某种条件,就进行某种处理,否则就进行另一种处理,其语法格式如下所示:
if(判断语句){
执行语句1
} else{
执行语句2
}
if...else语句的执行流程图如下:
(3)if...else多分支语句
if...else if ...else语句用于对多个条件进行判断,进行多种不同的处理,其语法格式如下所示:
if(判断语句){
执行语句1
} else if(判断条件2){
执行语句2
}
...
else if(判断条件n){
执行语句n
}else{
执行语句n+1
}
if...else多分支语句的执行流程图如下:
(4)switch条件语句
switch语句也是一种很常见的选择语句。和if条件语句不同,它只能针对某个表达式的值做出判断,从而决定执行哪一段代码。
在switch语句中,使用switch关键字来描述一个表达式,使用case关键字来描述和表达式结果比较的目标值,当表达式的值和某个目标值匹配时,会执行对应case下的语句,switch语句的基本语法结果:
Switch(表达式){
case 常量值1:
语句块1;
break;
....
case 常量值n:
语句块n;
break;
default:
语句块n+1;
break;
}
注意:switch语句中表达式的值必须是整数,字符型,字符串型或枚举类型,常量值1~n的数据类型必须跟表达式的值的类型系统
(二)循环结构
(1)while语句
while语句和if条件语句有点类似,都是根据条件判断来决定是否执行后面的代码,区别在于,while循环语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会执行,直到条件不成立while循环结束。
while循环语句的语法结构如下所示:
while(条件表达式){
语句序列
}
while语句的执行流程图如下:
(2)do...while循环语句
do...while循环语句和while循环语句功能类似,其语法结构如下所示:
do{
语句序列
}while(条件表达式)
do....while语句的执行流程图如下:
(3)for循环语句
for循环语句是最常用的循环语句,一般用在循环次数已知的情况下,其语法格式如下所示:、
for(表达式1;表达式2;表达式3){
语句序列
}
在上述语法格式中,for后面的 () 中包括三部分内容,初始化表达式、循环条件和操作表达式,它们之间用“;”分隔,{}中的执行语句为循环体
for语句的执行流程图如下:
(4)嵌套循环
嵌套循环是指在一个循环语句的循环体中再定义一个循环语句的语法结构。while、do...while、for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套,如最常见的在for循环中嵌套for循环格式如下
for(初始化表达式;循条件;操作表达式) {
...
for(初始化表达式;循环条件; 操作表达式){
执行语句
.....
}
....
}
案例代码:打印一个直角三角形
(5)跳转语句(break、continue)
跳转语句用于实现循环执行过程中程序流程的跳转,在Java中的跳转语句有break语句和continue语句
1.break:用在switch条件语句和循环语句中,它的作用是终止某个case并跳出switch结构。
·2.continue:用在循环语句中,它的作用是终止本次循环,执行下一次循环
方法
(一)方法的定义
在Java中,声明一个方法的具体语法格式如下所示
修饰符 返回值类型 方法名 (参数类型 参数名1,参数类型 参数名2...............){
执行语句
.....
return返回值
}
修饰符:是对访问权限的限定,例如,public、static都是修饰符
返回值类型:用于限定方法返回值的数据类型。
参数类型:用于限定调用方法时传入参数的数据类型。
参数名:是一个变量,用于接收调用方法时传入的数据
return关键字:用于结束方法以及返回方法指定类型的值返回值:被return语句返回的值,该值会返回调用者
数组
(一)数组的定义
数组是指一组数据的集合,数组中的每个元素被称为元素,在数组中可以存放任意类型的元素,但同一个数组中存放的元素类型必须一致。
在Java中,可以使用下列格式定义一个数组,具体示例如下:
int [] x =new int[100]
上述语句就相当于在内存中定义了100个int类型的变量,第一个变量的名称为x[0],第二个变量的名称为x[1],以此类推,第100个变量的名称为x[99],这些变量的初始值都是0。
接下来,通过两张内存图来说明数组在创建过程中的内存分配情况,如下所示:
在初始化数组时还有一种方式叫做静态初始化,就是在定义数组的同时就为数组的每个元素赋值。数组的静态初始化有两种方式:
1.类型 [] 数组名 =new 类型[]{元素,元素,元素........}
2.类型 [] 数组名 ={元素,元素,元素........}
(二)数组的遍历
(1)数组遍历
在操作数组时,经常需要依次访问数组中的每个元素,这种操作叫做数组的遍历
替换数组元素
Arrays.fall(数组名,值)
替换数组部分元素(前改后不改)
Arrays.fall(数组名,前索引,后索引,值)
数组元素排序
Arrays.sort(数组名);
复制数组(空位补零0,溢出去掉)
新数组名=Arrays.copyof(旧数组名,新数组长度);
复制数组部分元素(前在后不在)
新数组名=Arrays.copyofrange(数组名,前索引,后索引)
查询数组元素(先排序再查询)
索引=Arrays.binarysearch(数组名,元素)
查询数组部分元素(先排序再查询,前含后包含(前索引包含搜索范围区间内后索引不包含))
索引=Arrays.binarysearch(数组名,前索引,后索引,元素)
(2)数组排序
在操作数组时,经常需要对数组中的元素进行排序,其中冒泡排序是比较常见的一种算法。冒泡过程中,不断比较数组中相邻的两个元素,较小者向上浮,较大者往下沉,整个过程和水中气泡上升的原理相似。
数组排序的过程如下所示:
(1)从第一个元素开始,将相邻的两个元素依次比较,直到最后两个元素完成比较,如果第一个元素比后一个大,则交换位置。整个过程完成后,数组中最后一个元素就是最大值
(2) 除最后一个元素,将剩余的元素继续进行两两比较,过程与第一
步类似,这样数组中第二大的元素放在了倒数第二个位置
(3) 以此类推,持续对越来越少的元素重复上面的步骤,直到没有任何一个元素需要比较为止。
案例代码:冒泡排序
package 数组;
import java.util.Arrays;
public class 冒泡排序 {
public static void main() {
int[]array= {63,4,1,3,15};
冒泡排序 sotrer=new 冒泡排序();
sotrer.sort(array);
}
public void sort(int []array) {
for(int i=1;i
if(array[j]>array[j-1]) {
int temp=array[j];
array[j]=array[j-1];
array[j-1]=temp;
}
}
}
showArray(array);
}
public void showArray(int[]array) {
for(int i:array) {
System.out.print(">"+i);
}
System.out.println();
}
}
(3)数组最值
在操作数组是,经常需要获取数组中元素的最值
案例代码:获取数中最大的值
二维数组
多维数组可以简单地理解为在数组中嵌套数组,在程序中比较常见的就是二维数组。
二维数组的定义有很多方式,具体如下:
int [][] arr=new int [3][4];
.上面代码定义了个三行四列的二维数组,它的结果如下:
int [][] arr=new int [3][];
上述方式与第一种方式类似,只是数组中每个元素的长度不确定,采用第二种方式常见的数组结构如下:
int [][] arr={{1,2},{3,4,5,6},{7,8,9}}
采用上述方式定义的二维数组有三个元素,这三个元素都是数组,分别是{1,2}、{3,4,5,6}、{7,8,9}。
案例代码:统计公司三个小组中每个小组的总销售额以及整个公司的销售额
package 数组;
public class Exanple32 {
public static void main(String[] args) {
int[][] arr=new int[3][];// 定义一个长度为3的二维数组
arr[0]=new int[] {11,12};// 为数组的元素赋值
arr[1] = new int[] {21,22,23};
arr[2] = new int[] {31,32,33,34};
int sum = 0;// 定义变量记录总销售新
for(int i =0 ;i < arr.length ; i++){
int gropusum = 0;// 定义变量记录小组的销 v拜拜 售额
for(int j = 0 ; j < arr[i].length ; j++){
gropusum = gropusum +arr[i][j];
}
sum=sum+gropusum;
System.out.println("第"+(i+1)+"小组 销售额为"+ gropusum+"万元");
}
System.out.println("总销售额为:" +sum + "万元");
}
}