适合有编程基础的人看的《韩顺平零基础30天学java》笔记(P155~P171)

写在最前边:

研究生一枚,为后端实习和未来工作打基础。无意间发现韩顺平老师的课程,细心细致,讲课和吴恩达老师一样,都是保姆式讲解,各种基础知识都会补充,爱了。
韩顺平老师课程地址:https://www.bilibili.com/video/BV1fh411y7R8?spm_id_from=333.999.0.0
阅读提醒:本笔试适合有编程语言基础的伙伴阅读,因为本兔兔是本专业的,有c、c++、python 、sql基础,笔记中特别的基础的内容就没有记录。完全零基础的小伙伴建议跟着韩老师的课程自己记录。

Java 基础

第二阶段 java编程

第六章 数组、排序和查找

一、数组

属于引用类型,且存放的是同一类型的元素,这些元素的类型可以是基本类型也可以是引用类型。

1、创建数组的方式

1、动态分配方式
格式:数据类型 数组名[] = new 数据类型[大小]

//2种小方式也都可以
int a[] = new int[5];= new int[]{1,2,3,4,5}; 
int[] a = new int[5];= new int[]{1,2,3,4,5}; 
2、动态分配方式

格式:
数据类型 数组名[] ;//声明数组
数组名 = new 数据类型[大小]; //需要操作数组时再分配空间

//两种小方式也都可以
//声明数组,内存中并没有分配空间
int[] a;
int a[];
//使用前再分配空间。不分配空间会报错指针指向为空
a = new int[5]; 

3、静态初始化
格式:
数据类型 数组名[] = {元素 , 元素 ,…};
适用于事先知道数组元素且数组规模不大

int a[] = {1,2,3};
int[] a = {1,2,3};

注意:
1、数组创建后,如果没有人为赋值,java会有默认赋值。

int[] 、short[] 、byte[] 、long[] 、 -->0
float[]、double[]、-->0.0
char[] -->\u0000
boolean[] -->false
String[] -->null

2、数组赋值机制

数组默认使用引用传递,用=赋值是赋值的数组地址。
int[] a1 = {1,2,3}
int[] a2 = a1;
a2 = [0];
–>a1[0] = 0;
因为数组名就是保存了数组地址,数组名之间的赋值操作就是指向通用语地址空间,所以a2的操作也会改变这块内存的值。
注:1、基本数据类型赋值方式是 值传递,操作的是不同的内存空间,所以赋值以后各自的操作不影响对方
2、若另一个有数据的数组变量赋值为另一个数组变量,那么就代表要 销毁 这个数组
在这里插入图片描述

3、数组元素拷贝到一个新的数组空间

在这里插入图片描述

对数组的操作

1、数组反转
在这里插入图片描述
方法一
原地操作,将数组从头至中 ,依次进行首尾交换
方法二
开辟一个性的数组空间,将原数组从后往前,逆序复制给新数组,然后令原数组指向新数组的地址空间,这样便销毁了原数组指向的内存空间。
2、数组扩容
在这里插入图片描述
方法:开辟更大的新数组空间,原数组指向新数组,销毁原数组空间。
但是这样很慢,后续 链表 其实是更好的选择
在这里插入图片描述 在这里插入图片描述在这里插入图片描述
2、数组缩减*

方法:开辟更小的新数组空间,原数组指向新数组,销毁原数组空间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值