作为一个八期小白,学完了学院的课程,为了提高自己的渗透测试能力,也从上周开始了java学习之旅。本来想从面向对象开始写起,感觉编程刚开始学的东西(常量,变量,运算符)都大同小异。今天学到数组,还是感觉挺不同的,便从这里开始了。
希望能写成一个系列,与君共勉吧。也希望能给同样的小白一种参考。(若是理解有问题或者有错,还请大家指出)
概念:一种容器,可以存放多个数据。(由于变量只能存储一个数据产生)
在内存当中创建一个数组,并且向其中赋予一些默认值
动态初始化(指定长度)
格式:数据类型[] 数组名称=new 数据类型[数组长度]
int[] array = new int[5];(数组 包含5个整数)
静态初始化(指定内容)
标准格式:数据类型[] 数组名称=new 数据类型[]{元素1,元素2,...}
int[] arrayA=new int[]{1,2,3}
可以拆分:数据类型[] 数组名称;
数组名称 =new 数据类型[]{元素1,元素2,...}
int[] arrayA;
arrayA = new int[]{1,2,3};
省略格式:数据类型[] 数组名称={元素1,元素2,...}
int[] arrayA={1,2,3}
格式:数组名称[索引值](索引从0开始)
System.out.println(array[0]);(System.out.println是java中的输出函数)
区分
System.out.prontln(array);
返回内存地址哈希值(可以理解为内存地址 十六进制 0x打头 如0x666)
赋值数组元素:
int[] array=new int[3];
array[0]=1;
使用动态初始化数组的时候,其中的元素将会自动拥有一个默认值
整数类型->0
浮点数类型->0.0
字符类型->\u0000
布尔类型->false
引用类型->null
例如
int[] array = new int[3];
System.out.println(array[0]);输出结果->0
java的内存需要划分5个部分,先了解前3个
1.栈(stack):存放方法中的局部变量(如数组)[方法运行在栈中]
2.堆(Heap):存放new出来的东西
3.方法体(Method Area):存储.class相关信息
(至于本地方法栈和寄存器先放一下)
public class Demo01{
public static void main(String[] args){//分配到方法区
int[] array = new int[3];/*int[] array分配到栈中 同时分配内存地址0x666 new int[3]分配到堆中(内存地址中)*/
System.out.println(array);//查找int[] array 查找输出内存地址0x666
System.out.println(array[0]);//查找int[] array 找到0x666 根据0x666在堆中找到默认值0 输出0
}
}
格式:数据类型。length
遍历数组:
public class Demo02{//创建类 可以理解为固定格式 Demo02为类名
public static void main(String[] args){//程序运行的固定语法
int[] array=new int[5];
for(int i=0;i<array.length;i++){
system.out.println(array[i]);
}
}
}
关于java数组的内容就到这里了(写这些文章也主要是代码审计,所以本文写的都是比较偏利用,有些觉得没什么毕要就没写(我jdk都没装) ),所以如果里面有错误或者理解不对的话还请指正。写完深夜了,又变得多愁善感。很多时候问自己为什么要努力,回答都是不知道,只是习惯了前行,停下来会觉得浪费生命不太对罢了。或许有一天能到达山顶,有力量去做一些事情的时候,能够找到这个问题的答案吧。与君共勉。
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.