Dos formas de inicializar matrices Java que decenas de miles de empleados de Huawei quieren conocer

Este artículo describe dos formas de inicializar una matriz de Java, para ayudarlo a comprender mejor y aprender a usar Java, y los amigos interesados ​​pueden comprender la siguiente
, matriz
: 1. Los elementos de almacenamiento de tipo matriz están unificados, cada uno El espacio ocupado por los elementos en la memoria es el mismo. Conozca la dirección de memoria del primer elemento de la matriz. Siempre que el elemento a buscar conozca el subíndice, el desplazamiento se puede calcular rápidamente agregando el desplazamiento a la dirección de memoria del primer elemento. Puede calcular rápidamente la dirección de memoria del elemento que desea encontrar. El elemento se ubica rápidamente por la dirección de memoria, por lo que la eficiencia de la matriz para encontrar el elemento es mayor.

-2. Agregue y elimine elementos aleatoriamente a la matriz. Al agregar elementos, para asegurarse de que los elementos de la matriz estén en orden en términos de almacenamiento espacial, todos los elementos después de la posición del elemento agregado deben moverse hacia atrás, y lo mismo ocurre con la eliminación de elementos. Todos los elementos posteriores deben avanzar, por lo que la adición y eliminación de elementos en la matriz es muy ineficaz.

-3. Hay dos formas de inicializar una matriz unidimensional:

(1) Inicialización estática;

(2) Inicialización dinámica.

package com.bjpowernode.java_learning;
 
​
 
public class D66_1_ {
    
    
 
 public static void main(String[] args) {
    
    
 
 //静态初始化一个int类型的一维数组
 
 int[] a1 = {
    
    10,22,21};
 
 //取得第一个元素
 
 System.out.println("第一个元素:" + a1[0]);
 
 System.out.println("最后一个元素:" + a1[2]);
 
 System.out.println("最后一个元素:" + a1[a1.length-1]);
 
 //去的个数
 
 System.out.println("数组中的的元素个数为:"+a1.length);
 
 //遍历一维数组
 
 for(int i = 0;i<a1.length;i++) {
    
    
 
  System.out.println(a1[i]);
 
 }
 
 //将第二个元素改为100
 
 a1[1] = 100;
 
 System.out.println("===================");
 
 for(int i= 0;i<a1.length;i++) {
    
    
 
  System.out.println(a1[i]);
 
 }
 
 }}

Lo anterior es el uso de la inicialización estática de una matriz unidimensional, lo siguiente demuestra la inicialización dinámica de una matriz unidimensional

int[] a2 = new int[4];
 
 //引用类型的数组
 
 Object[] objs = new Object[3];
 
 for(int index=0;index<objs.length;index++) {
    
    
 
  Object o = objs[index];
 
  //o.toString();//注意空指针异常
 
  System.out.println(o);//null null null这里就没有出现空指针异常,这是因为pirintln
 
  //这个函数的源码里面对这种空指针做了筛选,可以见源码
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210328162312209.png)

**下面看一下println的源码是如何处理这种空指针异常的**
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210328162336115.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RjajE5OTgwODA1,size_16,color_FFFFFF,t_70)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210328162343530.png)




**二、什么时候使用动态初始化,什么时候使用静态初始化**
**1.无论是动态初始化还是静态初始化,最终的内存分布都是一样的。**

**2.如果在创建数组的时候,知道数组中应该存储什么数据,这个时候当然采用静态初始​化方式。如果在创建数组的时候,无法预测到数组中存储什么数据,只是先开辟空间,​则使用动态初始化方式。**

**以下两种初始化方式都是可以的**
``c
int a3[] = {
    
    12,12,45};
 
int [] a3 = {
    
    12,12,45};

3. Código fuente:
D66_ArryInitialMethods.java

https://github.com/ruigege66/Java/blob/master/D66_ArryInitialMethods.java

Lo anterior son los detalles de los dos métodos de inicialización de matrices de Java. Para obtener más información sobre la inicialización de matrices de Java, edite otros artículos relacionados de Guan Xiao, o agregue wx1411943564 comentarios (csdn) para obtener más información

Supongo que te gusta

Origin blog.csdn.net/dcj19980805/article/details/115282641
Recomendado
Clasificación