Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

138
Vistas
¿Dónde se define la propiedad de longitud de la matriz?

Podemos determinar la longitud de un ArrayList<E> usando su método público size() , como

 ArrayList<Integer> arr = new ArrayList(10); int size = arr.size();

De manera similar, podemos determinar la longitud de un objeto Array usando la propiedad de length

 String[] str = new String[10]; int size = str.length;

Mientras que el método size() de ArrayList se define dentro de la clase ArrayList , ¿dónde se define esta propiedad de length de Array ?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Las matrices son objetos especiales en Java, tienen un atributo simple llamado length que es final .

No hay una "definición de clase" de una matriz (no puede encontrarla en ningún archivo .class), son parte del lenguaje en sí.

10.7. Miembros de la matriz

Los miembros de un tipo de matriz son todos los siguientes:

  • La length del campo final public , que contiene el número de componentes de la matriz. la length puede ser positiva o cero.
  • El método public clone , que anula el método del mismo nombre en la clase Object y no arroja excepciones comprobadas. El tipo de retorno del método de clone de un tipo de matriz T[] es T[] .

    Un clon de una matriz multidimensional es poco profundo, lo que quiere decir que crea solo una matriz nueva. Los subarreglos son compartidos.

  • Todos los miembros heredados de la clase Object ; el único método de Object que no se hereda es su método de clone .

Recursos:

  • JLS - Matrices
over 4 years ago · Santiago Trujillo Denunciar

0

Es "especial" básicamente, con su propia instrucción de código de bytes: arraylength . Así que este método:

 public static void main(String[] args) { int x = args.length; }

se compila en un código de bytes como este:

 public static void main(java.lang.String[]); Code: 0: aload_0 1: arraylength 2: istore_1 3: return

Entonces no se accede como si fuera un campo normal. Efectivamente, si intentas conseguirlo como si fuera un campo normal, así, falla:

 // Fails... Field field = args.getClass().getField("length"); System.out.println(field.get(args));

Desafortunadamente, la descripción JLS de cada tipo de matriz que tiene una length de campo final pública es algo engañosa :(

over 4 years ago · Santiago Trujillo Denunciar

0

Está definido en la especificación del lenguaje Java :

Los miembros de un tipo de matriz son todos los siguientes:

  • La length del campo public final , que contiene el número de componentes de la matriz. la length puede ser positiva o cero.

Dado que hay un número ilimitado de tipos de matrices (para cada clase hay un tipo de matriz correspondiente y luego hay matrices multidimensionales), no se pueden implementar en un archivo de clase; la JVM tiene que hacerlo sobre la marcha.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda