java语句及数组知识总结 – Ajian

循环结构:

While(条件表达式){执行语句}

do{执行语句}while(条件表达式)

区别在于:不论条件是否满足,do while都会至少执行一次

for(初始化表达式;循环条件表达式;循环的操作表达式){执行语句}

for和while的小区别:

1、 变量有自己的作用域,对于for来讲,如果将控制循环的增量定义在for循环中,只能在语句内有效

2、 可以互换,如果需要定义循环增量,用for更为合适

嵌套循环:

for…for嵌套

打印

*

**

***

****

*****和99乘法表

代码实现:

class ForForTest

{

public static void main(String[] args)

{

for(int x=0;x<5;x++)

{

for(int y=5-x;y<=5;y++)

{

System.out.print("*");

}

System.out.println();

}

System.out.println("———————————");

for(int x=1;x<10;x++)

{

for(int y=1;y<=x;y++)

{

System.out.print(y+"*"+x+"="+x*y+"\t");

}

System.out.println();

}

}

}

流程控制语句:break(switch语句、循环语句(能够用于跳出循环,标号只能用于循环)) continue(只能作用于循环结构,继续循环。特点:结束本次循环,继续下一次循环)

break和continue单独存在时,下面可以有任何语句,因为都执行不到。

函数:

函数就是定义在类中的具有特定功能的一段独立小程序,也称为方法。

函数格式:修饰符返回值类型函数名(参数类型形式参数1,参数类型形式参数2,…)

{

执行语句;

Return返回值;

}

函数特点:

1、 可将功能代码进行封装,便于对该功能进行复用

2、 只有被调用才执行,函数的出现提高了代码的复用性

3、 若无返回值,返回值类型可用关键字void,return若在最后可以省略不写

注意:

1、 函数只能调用函数,不能再函数内部定义函数

2、 定义函数时,函数的结果应该返回给调用者,交由调用者处理

函数的重载(overload):在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。

数组:同一种类型数据的集合,其实数组就是一个容器。数组可以给其中的元素从0开始编号,方便操作这些元素。

格式:

1、 元素类型【】数组名=new 元素类型【元素个数或数组长度】

eg:int【】 arr=new int【5】;

2、 元素类型【】数组名=new 元素类型【】{元素,元素……};

int【】 arr=new int【】{3,5,7};

int【】 arr={3,5,7};

内存结构:

栈内存:用于存储局部变量,当数据使用完,所占空间会自动释放

堆内存:数组和对象,通过new建立的实例都存放在堆内存中

每一个实体都有内存地址值,实体中的变量都有默认初始化值

实体不再被使用,会在不确定的时间被垃圾回收器回收

方法区、本地方法区、寄存器

java基础视频第四天重点总结:

数组的操作:

1、获取数组中的元素,通常用遍历

2、获取数组的元素个数 .length

Eg:随便定义一个数组,获取数组的长度与元素(用到数组,通常都要用到for循环)

class ArrayDemo6

{

public static void main(String[] args)

{

int[] arr={5,8,7,6,4,55,4,88};

System.out.println("length:"+arr.length);

for(int x=0;x<arr.length;x++)

{

System.out.println("arr["+x+"]="+arr[x]+";");

}

}

}

本节重点:将给定数组进行排序两种方式(选择排序和冒泡排序)

最快的排序方式:希尔排序(三层循环加位运算)

选择排序、代码实现:

class SelectSort

{

public static void main(String[] args)

{

int[] arr={8,7,5,4,9,5,88,4,5,454};

printSort(arr);

sort(arr);

printSort(arr);

}

public static void sort(int[] arr)//选择排序

{

for(int x=0;x<arr.length;x++)

{

for(int y=x+1;y<arr.length;y++)

{

if(arr[x]>arr[y])

{

int temp=arr[x];

arr[x]=arr[y];

arr[y]=temp;

}

}

}

}

public static void printSort(int[] arr)//进行打印的程序

{

System.out.print("[");

for(int x=0;x<arr.length;x++)

{

if(x!=arr.length-1)

System.out.print(arr[x]+",");

else

System.out.println(arr[x]+"]");

}

}

public static void bubbleSort(int[] arr)//冒泡排序

{

for(int x=0;x<arr.length-1;x++)

{

for(int y=0;y<arr.length-x-1;y++)//-x让每一次比较的元素减少,-1避免脚标越界

{

if(arr[y]>arr[y+1])

{

int temp=arr[y];

arr[y]=arr[y+1];

arr[y+1]=temp;

}

}

}

}

}

util包中Arrays.Sort()//java中已经定义好的排序方式,开发中使用。

折半查找:能够提高效率

//折半查找

class ArrayTest7

{

public static void main(String[] args)

{

int[] arr={1,5,7,8,9,12,45,78};

int index=arrayTest(arr,7);

System.out.println("index="+index);

}

public static int arrayTest(int[] arr,int key)

{

int min,mid,max;

min=0;

max=arr.length-1;

mid=(min+max)/2;

while(arr[mid]!=key)

{

if(key>arr[mid])

min=mid+1;

else

min=mid-1;

if(min>max)

return -1;

mid=min+max/2;

}

return mid;

}

}

查表法求十六进制:将所有的元素临时存储起来,建立对应关系

每一次&15之后的值作为索引去查建立好的表,就可以找对应的元素,这样比-10+‘A’简单。表可以通过数组的形式建立。

public static void toHex_1(int num)

{

char[] chs={‘0′,’1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9′,’A’,’B’,’C’,’D’,’E’,’F’};

char[] arr=new char[8];

int pos=0;

while(num!=0)

{

int temp=num&15;

arrpos++]=chs[temp];

num=num>>>4;

}

for(int x=pos-1;x>=0;x–)

{

System.out.print(arr[x]+",");

}

}

//万能进制转换

public static void trans(int num,int base,int offset)

{

if(num==0)

{

System.out.println(0);

return ;

}

char[] chs = {‘0′,’1′,’2′,’3’

,’4′,’5′,’6′,’7′

,’8′,’9′,’A’,’B’

,’C’,’D’,’E’,’F’};

char[] arr = new char[32];

int pos = arr.length;

while(num!=0)

{

int temp = num & base;

arr[–pos] = chs[temp];

num = num >>> offset;

}

for(int x=pos; x<arr.length; x++)

{

System.out.print(arr[x]);

}

return ;

}

失败是成功的亲娘,没有失败哪来的成功呢?诺贝尔如果不经历千万次的失败,

java语句及数组知识总结 – Ajian

相关文章:

你感兴趣的文章:

标签云: