PHP转Java 学习笔记4(数组)

黑马程序员Java学习视频icon-default.png?t=N7T8https://www.bilibili.com/video/BV1Cv411372m

静态初始化数组

格式(简化):

数据类型[ ] 数组名称 ={元素1 元素2 元素3}

int[ ] ages={1,2,3,4}

double[] scores={99.5,100,50.5}

其他的跟PHP差不多

动态初始化数组

默认赋值

写法:

数据类型[ ] 数组名称 =new 数据类型[长度]

int[ ] age = new int[8]

Java内存与分配

运行一个Java程序,主要看JVM中包含的 方法区 栈 堆

案例:

int a=20; 

int [ ] arr = new int[3]


a是变量,直接放在栈中,a变量中存储的数据就是20这个值。
new int[3]是创建一个数组对象,会在堆内存中开辟区域存储3个整数。
arr是变量,在栈中,arr中存储的是数组对象在堆内存中的地址值。

数组内存执行原理

多个变量指向同一个数组

多个数组变量中存储的是同一个数组对象的地址。
多个变量修改的都是同一个数组对象中的数据。

案例

int[ ] arr1={1,2,3,4}

int[ ] arr2=arr1 


输出的都是同一个值

当 arr2[1] = 11 时,arr1[1] 的值也会变成1

使用数组时常见的一个问题

如果 数组为null,那这个数组变量没有指向数组对象。
可以输出这个变量,但是不能用这个数组变量去访问数据或者访问数组长度,会报空指针异常:NullPointerException。

案例

int[ ] arr1=null

System.out.println(arr1)  :null

但如果 System.out.println(arr1[0])  :会报错.......NullPointerException

Debug工具

IDEA自带的断点调试工具,可以控制代码从断点开始一行一行地执行,然后详看程序执行的情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值