programacion metodos genericos generica arreglos java

generica - metodos genericos java



Es una matriz un objeto en Java (8)

Bien, ¡pregúntale a Java!

public class HelloWorld { public static void main(String[] args) { System.out.println(args instanceof Object); int[] someIntegers = new int[] {42}; System.out.println(someIntegers instanceof Object); } }

Salida:

true true

En java podemos declarar una matriz como

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

¿Esto significa que la matriz en sí misma es un objeto? Porque en C ++ una matriz es solo un puntero y no tiene ningún método.


Cada matriz en java es un objeto ex int [] a = new int [2]; Tan nuevo se usa para crear un objeto y como es un objeto, podemos verificar el nombre de clase simplemente usando a.getClass (). GetName ();


Sí, es un objeto en Java.

También tenga en cuenta que cuando hace array.length no está invocando ningún método sino simplemente accediendo al campo de length la matriz. Hay muchos métodos estáticos en la clase Arrays .


Sí.

La sección de especificación del lenguaje Java 4.3.1 comienza con:

Un objeto es una instancia de clase o una matriz.


Sí; la especificación de lenguaje Java writes :

En el lenguaje de programación Java, las matrices son objetos (§4.3.1), se crean dinámicamente y pueden asignarse a variables de tipo Objeto (§4.3.2). Todos los métodos de clase Object pueden invocarse en una matriz.


Sería importante observar que las matrices en Java tienen sus propios códigos de bytes que no comparten con los objetos. Ciertamente son Objetos, pero se manejan de forma ligeramente diferente en el nivel bajo.


Solo quiero agregar que las matrices tienen una representación en la API de reflexión - java.lang.reflect.Array .


Yo diría que la respuesta es sí, aunque podría agregar que, estrictamente hablando, una matriz también es un objeto en C ++. De §1.8 [intro.object] del estándar actual (FDIS):

Un objeto es una región de almacenamiento.