当前位置: 首页 > wzjs >正文

做问卷赚钱网站域名交易中心

做问卷赚钱网站,域名交易中心,网站建设软硬件要求,聚美优品网的网站建设情况目录 1.概念 2.数组的创建和初始化 2.1 创建 2.2 初始化 3.数组的使用 4.认识引用数据类型 4.1 JVM的内存分布 4.2 基本数据类型和引用数据类型 4.3 null的认识 5.二维数组 6.Arrays类的了解和使用 1.概念 数组用于存储一定数量相同类型的数据,可以看…

目录

1.概念 

2.数组的创建和初始化

2.1 创建

2.2 初始化 

3.数组的使用 

 4.认识引用数据类型

4.1 JVM的内存分布

4.2 基本数据类型和引用数据类型

4.3 null的认识

5.二维数组

6.Arrays类的了解和使用 


1.概念 

数组用于存储一定数量相同类型的数据,可以看成是相同数据类型的集合

2.数组的创建和初始化

2.1 创建

T[] 数组名 = new T[N];
// T[] 数组类型
// N 元素数量
// T 元素数据类型

2.2 初始化 

其实java的数组初始化大同小异的。直接看看和C语言不一样的。

int arr[] = {1, 2, 3}; //C语言版本(java也可以这样创建数组,但不推荐)==================================//java版
//动态初始化:直接定义数组元素数量,像下面的int数组默认每个数值为0
int[] array = new int[10];
//静态初始化:在创建数组时不直接指定数据元素个数,而直接将具体的数据内容进行指定
int[] array1 = new int[]{0,1,2,3,4,5,6,7,8,9};
double[] array2 = new double[]{1.0, 2.0, 3.0, 4.0, 5.0};
String[] array3 = new String[]{"hell", "Java", "!!!"};

如果没有对数组进行初始化,数组中元素有其默认值 。一些基本数据类型默认值如下:

类型默认值
byte0
short0
int 0
long0
float0.0f
double0.0
char/u000
booleanflase
引用类型null

3.数组的使用 

数组基本操作和C语言的数组操作基本一样,比如:通过下标访问数组元素(放置数组越界)、数组的遍历等等。这里直接介绍java里一些与C语言不一样的。Java提供了很多类和方法方便于编码者直接使用。

1.可以使用数组名.length来获取数组长度。

int[] arr = {1,2,3,4,5};
for(int i = 0;i < arr.length;i++){arr[i] = 0;
}

2.for-each  遍历数组

int[] array = {1, 2, 3};
for (int x : array) {System.out.println(x);
}
//输出数组每个元素
//for-each 是 for 循环的另外一种使用方式. 能够更方便的完成对数组的遍历. 可以避免循环条件和更新语句写错.

 4.认识引用数据类型

在Java中相对于C语言多出来了一个引用数据类型。数组就是典型的引用数据类型。

先认识什么是引用数据类型。

4.1 JVM的内存分布

内存是一段连续的存储空间,主要用来存储程序运行时数据的。比如: 1. 程序运行时代码需要加载到内存 2. 程序运行产生的中间数据要存放在内存 3. 程序中的常量也要保存 4. 有些数据可能需要长时间存储,而有些数据当方法运行结束后就要被销毁 如果对内存中存储的数据不加区分的随意存储,那对内存管理起来将会非常麻烦。

所以JVM对使用的内存不同的功能进行了划分,如下图:

 

大致介绍:

1.程序计数器 (PC Register): 只是一个很小的空间, 保存下一条执行的指令的地址

2. 虚拟机栈(JVM Stack): 与方法调用相关的一些信息,每个方法在执行时,都会先创建一个栈帧,栈帧中包含 有:局部变量表、操作数栈、动态链接、返回地址以及其他的一些信息,保存的都是与方法执行时相关的一 些信息。比如:局部变量。当方法运行结束后,栈帧就被销毁了,即栈帧中保存的数据也被销毁了。

3. 本地方法栈(Native Method Stack): 本地方法栈与虚拟机栈的作用类似. 只不过保存的内容是Native方法的局 部变量. 在有些版本的 JVM 实现中(例如HotSpot), 本地方法栈和虚拟机栈是一起的

4.堆(Heap): JVM所管理的最大内存区域. 使用 new 创建的对象都是在堆上保存 (例如前面的 new int[]{1, 2, 3} ),堆是随着程序开始运行时而创建,随着程序的退出而销毁,堆中的数据只要还有在使用,就不会被销毁。

方法区(Method Area): 用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数 据. 方法编译出的的字节码就是保存在这个区域

4.2 基本数据类型和引用数据类型

基本数据类型创建的变量,称为基本变量,该变量空间中直接存放的是其所对应的值

引用数据类型创建的变量,一般称为对象的引用,其空间中存储的是对象所在空间的地址。

针对引用数据类型举个例子:

public static int[] turnzero(int[] arr){int[] tmp = new int[arr.length];for (int i = 0; i < arr.length; i++) {tmp[i] = arr[i];arr[i] = 0;}return tmp;}public static void main(String[] args) {int[] arr = new int[]{1,3,5,7,9};System.out.println("修改前:" + Arrays.toString(arr));int[] tmp = turnzero(arr);System.out.println("拷贝的数组tmp:" + Arrays.toString(tmp));System.out.println("修改后:" + Arrays.toString(arr));}

在上述代码中,arr、tmp、都是函数内部的变量,因此其空间都在main方法对应的栈帧中分配。 array和tmp是数组类型的引用变量,其内部保存的内容可以简单理解成是数组在堆空间中的首地址。 

画个图帮助理解:

从上图可以看到,引用变量并不直接存储对象本身,可以简单理解成存储的是对象在堆中空间的起始地址。通过该 地址,引用变量便可以去操作对象。 

4.3 null的认识

int[] arr = null;
System.out.println(arr[0]);// 执行结果
Exception in thread "main" java.lang.NullPointerExceptionat Test.main(Test.java:6)
//null 的作用类似于 C 语言中的 NULL (空指针), 都是表示一个无效的内存位置. 因此不能对这个内存进行//任何读写操作. 一旦尝试读写, 就会抛出 NullPointerException.

null 在 Java 中表示 "空引用" , 也就是一个不指向对象的引用.  

5.二维数组

二维数组本质上也就是一维数组, 只不过每个元素又是一个一维数组。

public static void main(String[] args) {
//        数组的定义和使用int[][] arr1 = new int[][]{{1,2},{3,4}};int[][] arr2 = {{1,2},{3,4}};int[][] arr3 = new int[2][3];//未进行初始化int[][] arr4 = new int[3][];//不定义二维数组的列//        遍历数组(帮助理解二维数组本质上也就是一维数组, 只不过每个元素又是一个一维数组.)for (int i = 0; i < arr1.length; i++) {for (int j = 0; j < arr1[i].length; j++) {System.out.print(arr1[i][j] + " ");}System.out.println();}
//        也可以用for-each理解for (int[] tmpArray:arr1) {for (int x:tmpArray) {System.out.print(x + " ");}System.out.println();}
//      arr3未进行元素的初始化,就会先给相对应数据类型的默认值(当前int默认值为0)for (int i = 0; i < arr3.length; i++) {for (int j = 0; j < arr3[i].length; j++) {System.out.print(arr3[i][j] + " ");}System.out.println();}
//        arr4对列数未定义,所以根据(二维数组本质上也就是一维数组, 只不过每个元素又是一个一维数组)理解。
//        三行,就是arr4[0]、arr4[1]、arr4[2]三个一维数组,我们分别对它们定义大小。这就是不规则数组arr4[0] = new int[]{1,2,3};arr4[1] = new int[]{0};arr4[2] = new int[]{1,2,3,4,5,6,7,8};for (int i = 0; i < arr4.length; i++) {for (int j = 0; j < arr4[i].length; j++) {System.out.print(arr4[i][j] + " ");}System.out.println();}}

运行结果:

 二维数组的用法和一维数组并没有明显差别,,就不再赘述了。.

6.Arrays类的了解和使用 

Arrays 类是 Java 标准库中的一部分,位于 java.util 包中。它提供了各种静态方法来操作数组,包括基本类型的数组和对象数组。

用大白话来说就是让我们对于数组本身的应用和数组元素的操作更加方便和简洁,也算是一定程度上的降低学习的成本和门槛。

Arrays类提供的方法非常多,我们在这里介绍一些较为常用的。

    // 一些Arrays类方法举例:intpublic static void main8(String[] args) {int[] arr = {1,2,3,4,5,6};
//       数组转字符串System.out.println(Arrays.toString(arr));
//        数组拷贝int[] copy = Arrays.copyOf(arr,arr.length);System.out.println("拷贝的数组:"+Arrays.toString(copy));//        对数组元素排序int[] arr2 = {99,10,3,7,5};System.out.println("排序后:" + Arrays.toString(arr2));Arrays.sort(arr2);System.out.println("排序后:" + Arrays.toString(arr2));//        打印二维数组int[][] array = new int[][] {{1,2,3},{3,2,1}};System.out.println("第一行:"+Arrays.toString(array[0]));System.out.println("第二行:"+Arrays.toString(array[1]));System.out.println("全部打印" + Arrays.deepToString(array));//        填充数组int[] arr3 = new int[5];Arrays.fill(arr3, 10); // 将所有元素设置为10int[] arr4 = new int[5];Arrays.fill(arr4, 1, 4, 20); // 将索引1到3的元素设置为20}

运行结果:

http://www.dtcms.com/wzjs/511635.html

相关文章:

  • 旅游网站建设解决方案免费网站推广优化
  • 如何在第三方网站做推广网络优化工程师简历
  • 石家庄网站推广报价成都网站设计
  • aipage网站建设今天最新新闻摘抄
  • 想系统学习wordpressseo快速排名案例
  • 青岛市北建设集团网站四年级新闻摘抄大全
  • 成立一个网站有哪些网络推广平台
  • 宝鸡网站建设为搜索引擎营销与seo优化
  • wordpress零基础建站教程视频优化营商环境工作总结
  • 济南专业的设计网站陕西seo
  • 高端网站建设知识嘉兴seo
  • 做搜狗pc网站做网站公司哪家正规
  • 上海发布疫情最新消息西安网站排名优化培训
  • 开发手机应用网站网络优化工具app手机版
  • 甘肃省嘉峪关建设局网站全网关键词云查询
  • wordpress 小工具居中网站排名怎么优化
  • 网页设计页面跳转信息流优化师
  • 池州网站建设公司百度投放广告流程
  • 服务性企业网站推广官网
  • 网站建设过时了广州seo网站排名
  • 网站建设方案书 下载百度怎么收录自己的网站
  • visio做网站效果seo网站推广什么意思
  • 如何做好网站内容优化百度人工服务24小时电话
  • wordpress博客主题虎嗅杭州优化关键词
  • 一个人建网站怎样在百度上免费做广告
  • 网站右边悬浮代码seo博客推广
  • angular2是做网站的还是手机的全球网站排名查询网
  • 高端网站制作哪家专业企业营销策略有哪些
  • 客户说做网站价格高自己怎么优化网站排名
  • 专用主机网站建设衡阳网站建设