四.Eclipse的使用与数组

 本篇文章是根据视频学的,来源如下所示:

 

教程来源:

java基础到高级_零基础自学Java–尚硅谷–宋红康
教程视频地址:

 java基础到高级_零基础自学Java--尚硅谷--宋红康_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1ny4y1Y7CW

目录

1.HelloWorld程序的编写和执行

2.Eclipse使用的常见问题1

3.Eclipse使用的常见问题2

4.数组的概述

5.一维数组的初始化

6.数组元素的默认初始化值

7.内存结构的简单说明

8.一维数组的内存解析 

9.一维数组的课后练习题1

10.一维数组的课后练习2

11.二维数组的理解和初始化

12.二维数组元素的调用

13.二维数组的长度和遍历

14.二维数组元素默认初始化值 

15.二维数组的内存解析

16.每日一考


1.HelloWorld程序的编写和执行

  • 这里应当注意:main的出现-main-alt+/
package com.atguigu.contact;//类来自于哪个包下面的

public class HelloWorld 
{
	public static void main(String[] args)
	{
	System.out.println("HellloWorld!");
	}

}

2.Eclipse使用的常见问题1

  • 导入工程注意其中的重名的现象.
  • 如何导入一个源文件------复制,粘贴
  • 乱码现象的出现:GBK---UTF-8

3.Eclipse使用的常见问题2

  • 进入一个定义之中,使用ctrl+点击的操作才可以.
  • 快速查找使用ctrl+o结合使用.
  • 添加一个作者 window-Preferences-Java-CodeStyle-CodeTemplate-Comments-Types(双击)
/**
*@Description
*@author sky Email:ASDYangshuo@163.com
*@version
*@date ${date}${time}
*/
  • Method
/**
*@Description
*@author sky
*@date ${date}${time}
*${tags}
*/
  • 效果图
package com.atguigu.contact;
/**
 * 
*@Description 这是我的第一个程序
*@author sky Email:ASDYangshuo@163.com
*@version v1.0
*@date 2021年10月7日上午12:12:04
 */
public class HelloWorld 
{
	/**
	 * 
	*@Description 这是我的第一个项目
	*@author sky
	*@date 2021年10月7日上午12:12:48
	*@param args
	 */
	public static void main(String[] args)
	{
	System.out.println("这是我的第一个项目!");
	}

}

4.数组的概述

/*
 * 一.数组:是多个相同类型数据按一定的顺序排列的集合,并使用一个名字命名,并且通过编号对这些数据进行统一管理.
 * 
 * 二.数组相关的概念
 * >数组名
 * >元素
 * >脚标 下标 索引
 * >数组的长度
 * 
 * 三.数组的特点:
 * 1)数组是有序排列的
 * 2)数组属于引用数据类型变量,数组的元素既可以是基本数据类型也可以是引用数据类型
 * 3)创建数组对象会在内存之中开辟一块连续的空间
 * 4)数组的长度一旦确定,就不能够修改.
 * 
 * 四.数组的分类
 * (1)按照维数:一维数组 二维数组
 * (2)按照数组元素的基本类型:基本数据类型元素的数组 引用数据类型元素的数组
 */

5.一维数组的初始化

  • ctrl + / 是单行注释(博主的没有成功)
  • ctrl + shift + / 是多行注释(博主没有尝试成功)
package com.atguigu.java;
/*
 * 一.数组:是多个相同类型数据按一定的顺序排列的集合,并使用一个名字命名,并且通过编号对这些数据进行统一管理.
 * 
 * 二.数组相关的概念
 * >数组名
 * >元素
 * >脚标 下标 索引
 * >数组的长度
 * 
 * 三.数组的特点:
 * 1)数组是有序排列的
 * 2)数组属于引用数据类型变量,数组的元素既可以是基本数据类型也可以是引用数据类型
 * 3)创建数组对象会在内存之中开辟一块连续的空间
 * 4)数组的长度一旦确定,就不能够修改.
 * 
 * 四.数组的分类
 * (1)按照维数:一维数组 二维数组
 * (2)按照数组元素的基本类型:基本数据类型元素的数组 引用数据类型元素的数组
 * 
 * 五.一维数组的使用
 * (1)一位数组的声明和初始化
 * (2)如何调用数组指定位置的元素
 * (3)如何获取数组的长度
 * (4)如何遍历数组
 * (5)数字元素的默认初始化值
 * (6)数组的内存解析
 */

public class ArrayTest {
        public static void main(String[] args) 
        {
		//(1)一位数组的声明和初始化
        	int num;//声明
        	num = 10;//初始化
        	int id = 1001;//声明与初始化
        	
        	int[] ids;//声明
        	//1.1静态初始化:数组的初始化和数组元素的初始化同时进行
        	ids = new int[]{1001,1002,1003,1004};
        	//1.2动态初始化:数组的初始化和数组元素的初始化分开进行
        	String[] names = new String[5];
        	
        	/*
        	//错误的写法:
        	int[] arr1 = new int[];
        	int[5] arr1 = new int[5];
        	int[] arr3 = new int[3]{1,2,3};
        	*/
        	//数组一旦初始化之后,它的长度就确定了
        	

            //也是正确的写法(后面会提到)
            int[] arr8 = {1,2,3,3,4,4,5};//类型推断
        	//2.如何调用数组指定位置的元素:通过角标调用
        	//数组的角标(或者索引)从0开始,到数组的长度-1结束.
        	names[0] = "杨树";
        	names[1] = "小钱";
        	names[2] = "小候";
        	names[3] = "小杨";
        	names[4] = "小王";//charAt(0);获取小
        	//names[5] = "内存chucuole";数组角标超了范围
        	
        	//3.如何获取数组的长度.属性:length
        	System.out.println(names.length);
        	System.out.println(ids.length);
        	
        	//4.数组的遍历
        	for(int i = 0;i <= names.length-1;i++)
        	{
        		System.out.println(names[i]);       		
        	}

		}
}

6.数组元素的默认初始化值

package com.atguigu.java;
/*
* 五.一维数组的使用
* (1)一维数组的声明和初始化
* (2)如何调用数组指定位置的元素
* (3)如何获取数组的长度
* (4)如何遍历数组
* (5)数字元素的默认初始化值 :见ArrayTest1.java
* >数组元素是整型:0   int short byte
* >数组元素是浮点型:0.0 
* >数组元素是char类型:0或者'\u0000'
* >数组元素是boolean类型:false
* 
* >数组元素是引用数据类型:null不是"null"
* (6)数组的内存解析                :见ArrayTest1.java
*/
public class ArrayTest1 {
public static void main(String[] args) 
{
	//5.数组元素的默认初始化值
	int[] arr = new int[4];
	for(int i = 0;i < arr.length;i++)
	{
		System.out.println(arr[i]);//0000
	}
	System.out.println("**********************");
	
	short[] arr1 = new short[4];
	for(int i = 0;i < arr1.length;i++)
	{
		System.out.println(arr1[i]);//0000
	}
	System.out.println("**********************");
	
	float[] arr2 = new float[4];
	for(int i = 0;i < arr2.length;i++)
	{
		System.out.println(arr2[i]);//0.0 0.0 0.0 0.0
	}
	System.out.println("**********************");
	
	char[] arr3 = new char[4];
	for(int i = 0;i < arr3.length;i++)
	{
		System.out.println("----------" + arr3[i] + "----------");//---------------- --------
	}
	if(arr3[0] == 0)
	{
		System.out.println("你好呀!");//说明arr3[0]是0
	}
	System.out.println("**********************");
	
	boolean[] arr4 = new boolean[4];
	for(int i = 0;i < arr4.length;i++)
	{
		System.out.println("----------" + arr4[i] + "----------");//----------------false--------
	}
	
	//引用数据类型
	String[] arr5 = new String[5];
	System.out.println(arr5[0]);
	if(arr5[0] == null)
	{
		System.out.println("天津的天气不错啊!");
	}
	
}
}

7.内存结构的简单说明

8.一维数组的内存解析 

9.一维数组的课后练习题1

  • 调整格式:source-Foramt(ctrl + shift + F )
package com.atguigu.exer;
/*
 * 升景坊单间短期出租4个月,550元/月(水电煤公摊,网费35元/月),空调、卫生间、厨房齐全。
 * 屋内均是IT行业人士,喜欢安静。所以要求来租者最好是同行或者刚毕业的年轻人,爱干净、安静。
 */
public class ArrayDemo
{
	public static void main(String[] args) {
		
	int[] arr = new int[] { 8, 2, 1, 0, 3 };
	int[] index = new int[] { 2, 0, 3, 2, 4, 0, 1, 3, 2, 3, 3 };
	String tel = "";
	for(int i = 0;i<index.length;i++)
	{
		tel += arr[index[i]];
	}
	System.out.println("联系方式:"+tel);
}
}
  • 输出:联系方式:18013820100

10.一维数组的课后练习2

  • 进行导包处理:ctrl+shift+o或者点击相应的函数位置再或者直接输入进行导包处理
  • shift+enter直接换到下一行,ctrl+shift+enter直接换到上一行
package com.atguigu.exer;

import java.util.Scanner;

//import java.util.Scanner;
/*
 * 2. 从键盘读入学生成绩,找出最高分,
     并输出学生成绩等级。
成绩>=最高分-10 等级为’A’ 
成绩>=最高分-20 等级为’B’
成绩>=最高分-30 等级为’C’ 
其余 等级为’D’
提示:先读入学生人数,根据人数创建int数组,
存放学生成绩。
 */

public class Array {
public static void main(String[] args) {
	//1.使用Scanner,读取学生的个数
	Scanner scanner = new Scanner(System.in);
	System.out.println("请输入学生的人数:");
	int number = scanner.nextInt();
	
	//2.创建数组,存储学生的成绩:动态初始化
	int[] scores = new int[number];
	
	//3.给数组元素进行赋值操作
	System.out.println("请输入成绩");
	for(int i = 0;i < number;i++)
	{
		scores[i] = scanner.nextInt();
	}
	
	//4.获取数组元素之中的最大值:最高分
	int max = scores[0];
	for(int j = 0;j < number;j++)
	{
		if(scores[j] > max)
		{
			max = scores[j];
		}
	}
	//5.根据每个学生的成绩与最高分之间的差值,得到每个学生的等级,并输出等级和成绩
	char level;
	for(int i = 0;i <scores.length;i++)
	{
		if(max - scores[i] <= 10)
		{
			level = 'A';
		}
		else if(max - scores[i] <= 20)
		{
			level = 'B';
		}
		else if(max - scores[i] <= 30)
		{
			level = 'C';
		}
		else
		{
			level = 'D';
		}
		System.out.println("student " + i + " score is "+ scores[i]+" grade is "+ level);
	}
}
}

11.二维数组的理解和初始化

12.二维数组元素的调用

13.二维数组的长度和遍历

package com.atguigu.java;
/*
 * 二维数组的使用
 * 
 * 1.理解
 * 对于二维数组的理解,我们可以看成是一维数组array1又作为另一个一维数组array2的元素而存在。
 * 其实,从数组底层的运行机制来看,其实没有多维数组。
 * 
 * 2. 二维数组的使用
 * (1)二维数组的声明和初始化
 * (2)如何调用数组指定位置的元素
 * (3)如何获取数组的长度
 * (4)如何遍历数组
 * (5)数字元素的默认初始化值(在下一节之中写了)
 * (6)数组的内存解析        (在下一节之中写了)       
 */
public class ArrayTest2 {
public static void main(String[] args) {
	//1.一维数组的声明和初始化
	int[] arr = new int[]{1,2,3};//一维数组
	//静态初始化
	int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};
	//动态初始化
	String[][] arr2 = new String[3][2];//这里可以理解成三行两列
	String[][] arr3 = new String[3][];
	//错误的情况
	//String[][] arr4 = new String[][4];
	//String[4][3] arr4 = new String[][];
	//int[][] arr1 = new int[4][3]{{1,2,3},{4,5},{6,7,8}};
	
	//正确的写法
	int []arr4[] = new int[][]{{1,2,3},{4,5},{6,7,8}};
	int[] arr5[] = {{1,2,3},{4,5},{6,7,8}};//类型推断
	
	//2.如何调用指定位置的数组元素
	System.out.println(arr1[0][1]);//2
	System.out.println(arr2[1][1]);//null
	//System.out.println(arr3[1][0]);//报错:空指针异常如果指定了相应的arr3[1],那么则不会报错
	//改为如下不会报错
	arr3[1] = new String[4];
	System.out.println(arr3[1][0]);
	
	//3.获取数组的长度
	System.out.println(arr4.length);//3 指的第一个一维数组
	System.out.println(arr4[0].length);//3
	System.out.println(arr4[1].length);//4
	
	//4.如何遍历二维数组
	for(int i = 0;i < arr4.length;i++)
	{
		for(int j = 0;j < arr4[i].length;j++)
		{
			System.out.println(arr4[i][j] + " ");
		}
	}

}
}

14.二维数组元素默认初始化值 

package com.atguigu.java;
/*
* 2. 二维数组的使用:二维数组分为外层数组的元素,内层数组的元素
*     int[][] arr = new int[4][3];
*     外层元素:arr[0] arr[1]等
*     内层元素:arr[0][0] arr[1][1]
* (1)二维数组的声明和初始化
* (2)如何调用数组指定位置的元素
* (3)如何获取数组的长度
* (4)如何遍历数组
* (5)数字元素的默认初始化值 (本节内容)
* 针对初始化方式一:比如 int[][] arr = new int[4][3];
* 外层元素初始化值为:地址值
* 内层元素初始化值为:与一维数组元素初始化情况相同
* 针对初始化方式二:比如int[][] arr = new int[4][]
* 外层元素初始化值为:null
* 外层元素初始化值为:不能调用,否则出错
* (6)数组的内存解析               (本节内容)
*/
public class ArrayTest3 {
public static void main(String[] args) {
	
	int[][] arr = new int[4][3];
	System.out.println(arr[0]);//[I@15db9742 表示一维数组的地址值
	System.out.println(arr[0][0]);//0
	System.out.println(arr);//[[I@6d06d69c  表示二维数组的地址值
	
	float[][] arr1 = new float[4][3];
	System.out.println(arr1[0]);//[F@7852e922 表示一维数组的地址值
	System.out.println(arr1[0][0]);//0.0
	System.out.println(arr1);//[[F@4e25154f  表示二维数组的地址值
	
	String[][] arr2 = new String[4][3];
	System.out.println(arr2[0]);//[Ljava.lang.String;@70dea4e 表示一维数组的地址值
	System.out.println(arr2[0][0]);//null
	System.out.println(arr2);//[[Ljava.lang.String;@5c647e05  表示二维数组的地址值
	
	String[][] arr3 = new String[4][];
	System.out.println(arr3[0]);//null 
	//System.out.println(arr3[0][0]);//空指针异常
	System.out.println(arr3);//[[Ljava.lang.String;@33909752  表示二维数组的地址值
}
}

15.二维数组的内存解析

16.每日一考

  • 写出一维数组初始化的两种方式

        答:int[] arr = new int[5];//动态初始化

            String[] arr1 = new String[]{"yang","qian","hou","wang"};//静态初始化

            数组一旦初始化,其长度是确定的,并且长度是不可修改的

  • 写出二维数组初始化的两种方式

        答:int[][] arr = new int[4][3];//动态初始化

            int[][] arr1 = new int[4][];//动态初始化

           int[][] arr = new int[][]{{1,2,3},{4,2,5,6,3,4}};

  • 如何遍历如下的二维数组:int[] arr = new int[][]{{1,2,3},{4,5},{6,7,8}};

        答:for(int i = 0;i < arr.length;i++)

           { for(int j = 0;j < arr[i].length;j++)

               { System.out.println(arr[i][j]);

}                

}

  • 不同类型的一维数组元素的默认初始化值各是多少

        答:int short byte是0;浮点型是0.0;char:0;boolean:false;引用类型:null

  • 一维数组的内存解析:

        String[] strs = new String[5];

         strs[2] = “Tom”;

        strs = new String[3];(过程如下图所示)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值