Java带你去看流浪世界!(五)

一、数组

数据存储:
1.为了能够在内存中临时存储运行数据,学习了变量(可变的量,是程序在运行中单一数据的存储方式)。
2.为了能更复杂的存储数据,我们需要学习数组!
3.大多数程序员做的操作就是:日常CRUD

1. 理解数组的作用

数组(数据的组合):它是一组相同数据类型的组合。 (缺点:只能存储相同数据类型、长度不可变)
例如:存储多个成绩、存储多个人的姓名
在内存中是一连串的内存空间表示,它是有序的。

2. 掌握数组的定义

变量的三要素:变量的数据类型 变量名 变量值
类比变量,数组有四要素

  1. 数组元素的数据类型
    相同数据类型的数据。
    数值类型:byte short int long float double
    非数值类型:char boolean String
  2. 数组名(标识符)
    和变量名的规范一致。
  3. 数组的元素
    数组中存储的一个个变量。
  4. 数组的下标(索引)
    数组是有序的,每一个元素都有一个固定的数组下标(序号)。 下标也是从0开始的。
    编程中的序号:大多数场景下,都是从0开始计数(前期好多人的噩梦)

3. 掌握数组的基本使用

  1. 先声明 -> 分配空间 ->赋值
    double[] scores;
    scores = new double[5];
    scores[0] = 12;
  2. 声明并分配空间 -> 赋值
    String[] names = new String[3];
    names[0] = “xxx”;
  3. (前期比较常用)声明并直接赋值
    char[] alpha = {‘a’,‘b’,‘c’}; // 它不能分成两条语句定义
    boolean[] flags = new boolean[]{true,false,false};
数组的定义注意事项
  1. 数组只能存储相同数据类型的数据。
  2. 数组的长度一经指定无法改变。
  3. 数组的元素有默认值。
    不同类型的数组元素有不同的默认值。
    byte short int long默认值:0
    float double 默认值:0.0
    boolean 默认值:false
    char 默认值:\u0000 空格
    String(引用数据类型) 默认值:null 表示空 表示没有引用地址

4. 掌握数组的常用操作

数组的遍历: 将某个内容的所有值元素全部取出来的过程。
遍历方式1: 将循环变量i作为数组的下标值,可以通过此值来获取对应的元素。
// 使用普通循环来遍历 一般使用for

	for(int i = 0; i < 数组的长度; i++){
		数组名[i]
	}

**遍历方式2:**增强for循环(foreach) 将数组中的每一个元素值都存储到临时变量中用来使用··

	for(数组元素类型  数组元素名 : 要遍历的数组名 ){
		数组元素名
	}
	for(double score  :  scores){
		score
	}

5. 引用数据类型初识(面向对象阶段还会做第二次深入)

关于内存分配上的一个基本区别。
1.Java的程序在运行的时候,数据是按照不同的场景进行不同区域的存储的。
2.JVM有内存划分。(《深入JVM虚拟机》- 周志明 有一定基础之后看)
  根据《Java虚拟机规范》的规定,运行时数据区通常包括这几个部分:程序计数器(Program Counter
Register)、Java栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method
Area)、堆(Heap)。
img
Java栈(stack)一般用于存放基本数据类型值。
Java堆(heap)一般用于存放引用数据类型值。

当在Java中存储一个基本数据类型和引用数据类型(数组)时有什么区别?(第一阶段了解即可)
1.掌握基本的加载过程,掌握基本的引用数据类型名词来源即可。
2.Java堆(heap)一般用于存放引用数据类型值。
当在Java中存储一个基本数据类型和引用数据类型(数组)时有什么区别?(第一阶段了解即可)
1.掌握基本的加载过程,掌握基本的引用数据类型名词来源即可。
在这里插入图片描述

二、数组

1. 掌握Arrays数组工具类常用操作

java.util包。
API(Application Program Interface) 应用程序接口。

常用API
  1. 比较两个数组的元素是否完全一致: boolean equals(数组1,数组2);
  2. 将数组的所有元素转换为字符串: String toString(数组);
  3. 将数组的元素进行升序排序: void sort(数组);
  4. 将数组的元素全部填充为某个值: void fill(数组,填充的值);
  5. 将数组的元素复制到一个指定长度的新数组中: 对应的数组类型 copyOf(老数组,指定长度);
  6. 二分查找,查找指定元素在数组中的索引/下标(数组必须已经进行升序排序):int binarySearch(数组,查找的值);
  7. (了解)List asList(T… x); 可以将指定元素 封装成 集合。
    在这里插入图片描述

2. 掌握冒泡排序的使用(难点、重点)

掌握冒泡排序的原理

相邻元素作比较,两两比较小靠前。(升序)
代码:外层循环n-1 内层循环n-1-i

public class Demo1 {
	public static void main(String[] args) {
		// 定义一个数列
		int[] arr = {9,5,10,3,1};
		for(int i = 0; i < arr.length - 1; i++) {
			for(int j = 0; j < arr.length - 1 - i; j++) {
				// 相邻元素做比较
				if(arr[j] > arr[j+1]) {
					// 数组元素移位  小靠前
					int temp = arr[j];
					arr[j] = arr[j+1];
					arr[j+1] = temp;
				}
			}
		}		
		System.out.println(Arrays.toString(arr));
	}
}

在这里插入图片描述
二位数组的写法:

//一维数组长度为3,二维数组长度为2  缺陷:必须等分
int[] [] arr = new int[3][2];
//二维长度不固定
int[][] arr1 =new int[3][];
arr1[0] = new int[2];
arr1[1] = new int[3];
arr1[2] = new int[1];

二位数组空间图:
在这里插入图片描述

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
未来社区的建设背景和需求分析指出,随着智能经济、大数据、人工智能、物联网、区块链、云计算等技术的发展,社区服务正朝着数字化、智能化转型。社区服务渠道由分散向统一融合转变,服务内容由通用庞杂向个性化、服务导向转变。未来社区将构建数字化生态,实现数据在线、组织在线、服务在线、产品智能和决策智能,赋能企业创新,同时注重人才培养和科研平台建设。 规划设计方面,未来社区将基于居民需求,打造以服务为中心的社区管理模式。通过统一的服务平台和应用,实现服务内容的整合和优化,提供灵活多样的服务方式,如推送式、订阅式、热点式等。社区将构建数据与应用的良性循环,提高服务效率,同时注重生态优美、绿色低碳、社会和谐,以实现幸福民生和产业发展。 建设运营上,未来社区强调科学规划、以人为本,创新引领、重点突破,统筹推进、整体提升。通过实施院落+社团自治工程,转变政府职能,深化社区自治法制化、信息化,解决社区治理中的重点问题。目标是培养有活力的社会组织,提高社区居民参与度和满意度,实现社区治理服务的制度机制创新。 未来社区的数字化解决方案包括信息发布系统、服务系统和管理系统。信息发布系统涵盖公共服务类和社会化服务类信息,提供政策宣传、家政服务、健康医疗咨询等功能。服务系统功能需求包括办事指南、公共服务、社区工作参与互动等,旨在提高社区服务能力。管理系统功能需求则涉及院落管理、社团管理、社工队伍管理等,以实现社区治理的现代化。 最后,未来社区建设注重整合政府、社会组织、企业等多方资源,以提高社区服务的效率和质量。通过建立社区管理服务综合信息平台,提供社区公共服务、社区社会组织管理服务和社区便民服务,实现管理精简、高效、透明,服务快速、便捷。同时,通过培育和发展社区协会、社团等组织,激发社会化组织活力,为居民提供综合性的咨询和服务,促进社区的和谐发展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值