网站链接: element-ui dtcms
当前位置: 首页 > 技术博文  > 技术博文

学习java的第六天数组,数据结构,以及错题总结

2021/6/28 19:38:36 人评论

数据结构 数据操作;增删改查 数组 概述 应用数据类型:类,数组 。接口 * 之前变量都是保留单个数据 ,而数组是为了保存多个数据 * 数组在java中是一种数据结构,另外还有一个专门操作数组的类java.util.Arrays * …

数据结构

数据操作;增删改查

数组

    概述

应用数据类型:类,数组 。接口
 * 之前变量都是保留单个数据 ,而数组是为了保存多个数据
 * 数组在java中是一种数据结构,另外还有一个专门操作数组的类java.util.Arrays
 * 
 *  不止在java中,任何语言中数组都是一个最基本的数据结构

特性

数组在内存空间中是连续的,另外数组是一个引用类型,也就意味着最终数据保存在堆内存中
 *  数组还有一个独一无二的编号,从0开始,所以查询效率极高
 *  数组的每个空间大小必须一致
 *  数组一旦确定长度不能更改,除非重新创建数组,也就意味着,数组不能进行添加和删除操作
 *  数组有一个length属性,保存数组中元素的个数
 *  数组:查询更改快,添加删除满

数据声明

 数组声明;
 *  
 *         1静态声明:预先知道数组中保存的每一个数据
 *         数据类型[] 变量名={类型值,类型值....};
 *         数据类型[] 变量名=new 数据类型[]{类型值,类型值..};
 *         
 *         
 *         int i=2;
 *         int[] is={1,2,3,4};  一维数组
 *         int[][] is2={{1,2,3},{2,3,4},..};二维数组
 *         int [] []  []   is3={
 *                     {    {2,3,4,},
 *                         {  3,4,5}     三维数组
 *                     }
 *       }
 *       
  *  2动态说明;预先不知道数组中每个元素是声明的时候,使用动态声明,会用对应的数据类型默认值占位
  *  整数;0,布尔;false,字符;\u0000,小数;0.0,引用;null
  *  数据类型[] 变量名=new 数据类型[长度];
  *  int [] is =new int [10];//10个元素都是0,
  *  int[] [] is2=new int [5] [3];//创建一个二维数组,二维数组中有五个一维数组,并且每个一维数组中有3个元素
  *  

public class 数组01 {
	public static void main(String[] args){
		//静态声明[] 也可以放到变量名后面
		int [] a1={1,2,3,'a'};
		//静态声明
		int [] a2=new int []{1,2,3};
		//动态声明,因为是int类型,所以用四个0占位
		int [] a3=new int[4];
		boolean [] a4={false,false,true,true};
	}

}

数组使用

   获取数据

   语法:数组[小标]

public class 数组02 {
	public static void main(String[] args){
		int [] a1={10,2,348,98};
		//数组中元素的个数
		System.out.println(a1.length);
		System.out.println("第一个元素:" + a1[0]);
		System.out.println("第三个元素:"+a1[1]);
		System.out.println("最后一个元素:"+a1[3]);
		System.out.println("最后一个元素:"+a1[a1.length-1]);
		
		//更改数据
		a1[1]=22;
		System.out.println(a1[1]);
		//常见异常1:下标越界
		//java.lang.ArrayIndexOutOfBoundException: 4
		// System.out.println(a1[4]);
		//设置为null
		a1=null;
		//常见异常2:空指针异常
		//java.lang.NullpointerExeception
		System.out.println(a1[0]);

	}

}

设置数据

语法: 数组[下标]=值

//更改数据
		a1[1]=22;
		System.out.println(a1[1]);

遍历数组

package day_06;
/**
 * 
 * 数组遍历
 * 增强for循环
 *           foreach:
  *                 for(元素数据 变量:数组){
  *                 循环体;
  *                 } 
 * 
 * @author 啊超
 * @Date 2021年6月28日
 */
public class 数组03 {
	public static void main(String[] args){
		int [] a1=new int [5];
		//System.out.println(a1[0]);
		//System.out.println(a1[1]);
		
		a1[3]=1;
		a1[0]=4;
		a1[1]=2;
		for ( int index =0;index<a1.length;index++){
			System.out.println(a1[index]);
		}
		//把数组中每位元素的值,都赋值给这个变量
		for(int a2 :a1){
			System.out.println(a2);
		}
	}
}

常见异常

//常见异常1:下标越界
		//java.lang.ArrayIndexOutOfBoundException: 4
		// System.out.println(a1[4]);
		//设置为null
		a1=null;
		//常见异常2:空指针异常
		//java.lang.NullpointerExeception

数组传递

package day_06;

public class 数组04 {
	public static void main(String[] args){
		
		
	
//因为类型,保存堆内存
//栈内存中保存堆内存的地址,可以找到
//int [] a1={1,2,3};
	//System.out.println(a1);
	
	//基本类型保存值,数值就在栈中存储
	//int i=2;
	//SYstem.out.println(i);
	
	int num =1;
	//传递变量
	  m1(num);
	//传递字面量
	m1(2);
	
	int [] a1={1,2,3};
	//传递变量
	m2(a1);
	m2( new int [] {1,2,3});
}
  public static void  m1(int i){
	  System.out.println(i);
  }
  public static void m2( int [] a1){
	  for (int i :a1){
		  System.out.println(i);
	  }
	  
  }
}
  
  
  

错题收纳

每题5分.
1 数据类型的本质是什么?
    规定占用内存空间的大小,一般用位和字节表示

2 数据类型有哪些?
    基本类型
        数值型
            整型
                byte,short,int,long
            浮点型
                float,double 
        布尔型
            boolean
        字符型
            char
    引用类型
        类,数组,接口

3 变量的分类.
    局部变量 : 在方法内部定义的变量
    静态变量 : 在类体中使用static修饰
    成员变量 : 在类体中没有使用static修饰

4 变量的声明和调用.
    数据类型 变量名 = 值;
    局部变量 : 方法中直接使用变量名调用
    静态变量 : 类名.静态变量名,同类中类名可以省略
    成员变量 : 对象.成员变量名

5 方法的目的是什么?
    有名字的代码段,可以重复使用

6 方法的分类.
    静态方法 : 使用static修饰
    成员方法 : 没有使用static
    构造方法

7 方法的声明和调用.
    [修饰符列表] 返回值类型 方法名 (参数列表) 方法体
    静态方法 : 类名.方法名(参数)
    成员方法 : 对象.方法名(参数)


8 什么是方法.
    一堆代码的集合,可以重复使用,是一个有名字的代码段

9 什么是变量.
    一个有名字的内存空间,方便对空间中数据的操作

10 for循环三要素.
    初始值 终止条件 步长

11 Java中标识符命名规则.
    大小写字母,数字,美元符号,下划线,数字不能开头,不能使用关键字和保留字

12 阅读以下代码,如果调用m1()方法,并传入实参 10 , 按顺序输出结果是多少?
public class A{
    public static void main (String [] args){
        int i = m1(10);
        System.out.println( i );
    }
    public static int m1(int i){                 //11
        i++;                                              //12
        System.out.println( i++ );
        return i--; 
    }
}
13 阅读以下代码,如果调用m1()方法并传入实参 10 , 按顺序输出结果是多少?
public class A{
    static int i = 22;
    public static void main (String [] args){
        m1(10);
        System.out.println( i );                     //10
    }                                                           //22
    public static void m1(int i){
        i++;
        System.out.println( --i );
    }
}
14 i++和++i的区别?
    i++ : 先赋值,后+1
    ++i : 先+1,后赋值

15 什么是Overload?
    方法重载 : 类名相同,参数列表不同,参数列表分为个数和类型不同

16 什么是递归?
    就是在方法体中对当前方法进行调用

17 用递归写一个程序,算出斐波那契数列上,第15位的值.

18 用for写出 1~100的偶数和代码.

19 编写程序,打印1-100的质数
 

相关资讯

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?