JAVA 知识点总结5

17、表达式语句

表达式语句就是由一个表达式加一个分号构成的语句。 例如常见的赋值语句:i=i+1;而i=i+1只是一个表达式。

18、空语句

空语句就是只有一个分号构成的语句。例如: ;

19、复合语句

复合语句又叫块,由{}将一些语句括起来就构成一个复合语句。 例如:{ a=b+c; t=a*100; }

20、数组

(1)定义:是用来存储一组或多组相同类型数据的数据类型。 (2)数据类型:可以是基本数据类型(例如:数字型、字符型、布尔型),也可以是复合数据类型(例如:数组、类、字符串和接口)。 ※数组本身就是一种复合数据类型,因此,数组的元素也可以是数组,这样就构成了二维数组和多维数组。 (3)数组作为复合数据类型,与基本数据类型最大的区别: 数组是通过引用来控制的,而基本数据类型是通过值来控制的。

1、一维数组的声明 格式: 类型 数组名[ ]; 或 类型[ ] 数组名; 举例:int a[ ]; String[ ] b;

数组的初始化有两种方法 :一种是直接初始化,另一种是动态初始化。 ( 1)、直接初始化 格式: 类型 数组名【】={值1,值2,..... ,值n} ; 举例: int a【】={1,2,3}; int b【】=; b={1,2,3} (2)、动态初始化 格式: a、声明时初始化: 类型 数组名【】=new 类型【数组长度】; b、声明后初始化: 类型 数组名【】; 数组名 = new 类型【数组长度】;

2、访问数组元素 数组元素是通过数组名和下标来访问。未被初始化的数组,不能进行访问。 格式 :数组名[下标] Java中,数组的下标从 0 开始,直到 < 数组长度-1 >结束。 获得数组的长度,通过 length 属性来获得。

3、数组的复制 方法: System.arraycopy(源数组,源数组起始位置,目标数组,目标数组起始位置,长度); ★注:不管是要复制的数组,还是被复制的数组,都必须先初始化。 举例: int a[ ] = {1,2,3}, b[ ] = new int[3]; System.arraycopy(a,0,b,0,3); //将数组a复制到b

4、对象数组: 举例: //定义一个对象数组,StringBuffer是一个字符串缓存类 StringBuffer a[ ] = new StringBuffer[2]; //给对象赋值 a[0] = new StringBuffer("Array[0]"); a[1] = new StringBuffer("Array[1]"); System.out.println("a[0]=" + a[0] + " a[1]=" + a[1] ); a[0].append(" is Modified"); //追加字符串 System.out.println("a[0]=" + a[0]);

5、二维数组和多维数组 前面提到过,数组的元素也可以是数组,如果一个数组的每一个元素都是一个一维数组,这样就构成一个二维数组。

定义格式: 类型 数组名[ ][ ]; 或 类型[ ][ ] 数组名; 举例: int a[ ][ ]; double[ ][ ] b; 这几种定义不合法:int a[2][ ]; int b[ ][2]; int c[2][2]; ****二维数组的初始化:二维数组的初始化也有直接和动态初始化两种方式。 直接初始化格式: 类型 数组名【】【】={{值1,值2,..... ,值n} ,{值1,值2,..... ,值n}....}; 举例:int a[ ][ ] = {{1,2,3},{4,5,6},{7,8,9}}; 动态初始化格式: 类型 数组名=new 类型[长度1][长度2]; 长度1表示行,长度2表示列。 举例:int a[][]=new[3][5]; 类型 数组名=new 类型[长度1][]; 数组名[0]=new 类型[长度20]; 数组名[1]=new 类型[长度21]; ...... 数组名[长度1-1]=new 类型[长度2n]; 举例:int a[][]; a=new int[3][]; a[0]=new int[5]; a[1]=new int[8]; a[2]=new int[6];

6、二维数组的应用 举例:两个矩阵相乘的例子。 //声明并初始化数组 int a[ ][ ] = {{8,13},{4,7},{5,2}}; int b[ ][ ] = {{3,4,11},{6,1,10}}; int result[ ][ ] = new int[3][3]; int i,j,k; //通过嵌套循环实现矩阵相乘的运算 for(i=0;i<a.length;i++){ for(j=0;j<b[0].length;j++){ result[i][j] = 0; for(k=0;k<b.length;k++){ result[i][j] += a[i][k] * b[k][j]; } } } //打印结果 System.out.println("The result of a * b is : "); for(i=0;i<result.length;i++){ for(j=0;j<result [i].length;j++){ System.out.print(result[i][j] + " "); } System.out.println( ); //换行 }

7、一维数组的应用 例1:将整数序列{3,15,28,11,34,78,95,27,18}首末颠倒过来。 int a[ ] = {3,15,28,11,34,78,95,27,18}; int i, length, temp; length = a.length; for(i=0;i<(length/2);i++){ //以下将数组元素a[i]和a[length -1 - i]的值互换 temp = a[i]; a[i] = a[length -1 --i]; a[length -1 --i] = temp; } for(i=0;i<length;i++){ System.out.print(a[i] + " "); }

例2:从数据:32 25 78 69 13 97 86 38 62 9 中找到数据97所在的位置。

『用顺序查找(线性查找)方法编写程序』。 //声明并初始化数组 int a[ ] = {32,25,78,69,13,97,86,38,62,9}; int index = -1,i; //逐个元素与97相比较,找到则退出循环,否则继续 for(i=0;i<a.length;i++){ if(a[i] == 97){ index = i; break; } } if(index == -1){ //表示该数不存在 System.out.println(" 97这个数不存在!"); }else{ System.out.println("97这个数的下标是: " + index); }

例3:将数据:37 28 51 13 64为例,用『冒泡法』进行升序排列。

下面编写程序代码:(冒泡法)

int a[ ] = {37,28,51,13,64};

int i, j, n, temp;

n = a.length;

for(j=1;j < n ;j++ ){ //共执行 n-1 轮

for(i=0;i< n -- j; i++){ //第j轮

if (a[i] > a[i+1]){

//交换a[i]与a[i+1]的值

temp = a[i];

a[i] = a[i+1];

a[i+1] = temp;

}

}

}

//打印排序后的结果

for(i=0;i < n;i++){

System.out.print(a[i] + " ");

}

相关推荐
冰冰菜的扣jio2 小时前
InnoDB对于MVCC的实现
java·数据库·sql
Macbethad2 小时前
SpringMVC RESTful API开发技术报告
java·spring boot·后端
05大叔2 小时前
SpringMVCDay01
java·开发语言
AC赳赳老秦2 小时前
农业智能化:DeepSeek赋能土壤与气象数据分析,精准预测病虫害,守护丰收希望
java·前端·mongodb·elasticsearch·html·memcache·deepseek
代码游侠2 小时前
复习——网络测试工具
linux·开发语言·网络·笔记·学习·测试工具
纟 冬2 小时前
Flutter & OpenHarmony 运动App运动提醒组件开发
android·java·flutter
Felven2 小时前
C. Contrast Value
c语言·开发语言·算法
natide2 小时前
表示/嵌入差异-1-欧几里得距离(Euclidean Distance)-L2 距离(L2 distance)-欧式距离的标准化
人工智能·pytorch·python·深度学习·算法·自然语言处理
雪花desu2 小时前
【Hot100-Java简单】:两数之和 (Two Sum) —— 从暴力枚举到哈希表的思维跃迁
java·数据结构·算法·leetcode·哈希表