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 int3; System.arraycopy(a,0,b,0,3); //将数组a复制到b

4、对象数组: 举例: //定义一个对象数组,StringBuffer是一个字符串缓存类 StringBuffer a = new StringBuffer2; //给对象赋值 a0 = new StringBuffer("Array0"); a1 = new StringBuffer("Array1"); System.out.println("a0=" + a0 + " a1=" + a1 ); a0.append(" is Modified"); //追加字符串 System.out.println("a0=" + a0);

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

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

6、二维数组的应用 举例:两个矩阵相乘的例子。 //声明并初始化数组 int a = {{8,13},{4,7},{5,2}}; int b = {{3,4,11},{6,1,10}}; int result = new int33; int i,j,k; //通过嵌套循环实现矩阵相乘的运算 for(i=0;i<a.length;i++){ for(j=0;j<b0.length;j++){ resultij = 0; for(k=0;k<b.length;k++){ resultij += aik * bkj; } } } //打印结果 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(resultij + " "); } 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++){ //以下将数组元素ai和alength -1 - i的值互换 temp = ai; ai = alength -1 --i; alength -1 --i = temp; } for(i=0;i<length;i++){ System.out.print(ai + " "); }

例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(ai == 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 (ai > ai+1){

//交换ai与ai+1的值

temp = ai;

ai = ai+1;

ai+1 = temp;

}

}

}

//打印排序后的结果

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

System.out.print(ai + " ");

}

相关推荐
fqbqrr3 小时前
2606C++,C++构的多态
开发语言·c++
biter down4 小时前
从 0 到 1 搭建 Python 接口自动化测试框架(博客系统实战)
开发语言·python
wang09074 小时前
自己动手写一个spring之IOC_2
java·后端·spring
来杯@Java5 小时前
学生选课管理系统(基于springboot+vue前后端分离的项目)计算机毕业设计java
java·spring boot·spring·vue·毕业设计·maven·mybatis
肖永威5 小时前
Python多业务并行计算框架插件化演进:从硬编码到动态注册
python·插件化·并行计算·动态注册
yz_aiks5 小时前
Linux Jar包配置Systemd自启动实战:从排查到配置全流程
linux·python·jar·自启动·systemd
threelab6 小时前
Three.js 物理模拟着色器 | 三维可视化 / AI 提示词
开发语言·前端·javascript·人工智能·3d·着色器
武器大师726 小时前
lv_binding_js 代码解读
开发语言·javascript·ecmascript
不知名的老吴6 小时前
线程的生命周期之线程“插队“
java·开发语言·python