La pregunta es básicamente autoexplicativa. No he podido encontrar una API para matrices (aparte de esta Arrays, pero esto solo define un conjunto de funciones estáticas de ayuda para tratar las matrices reales). Si no hay clase para él, esto parece sugerir que una matriz no puede ser Object
.¿Es una matriz un tipo primitivo o un objeto (o algo completamente diferente)?
Sin embargo, el hecho de que un array tiene campos públicos como length
y métodos que se pueden invocar como .equals()
y .clone()
parecen sugerir (muy fuerte) todo lo contrario.
¿Cuál es la explicación de la presentación impar y el comportamiento de las matrices primitivas?
Como nota, traté de utilizar la característica Eclipse "Implementación abierta" en el método .clone()
de una matriz en este momento, con la esperanza de que podría ver dónde y cómo se definió este método (ya que dijo int [] datos sobrescritos del objeto), pero en realidad causó toda mi Eclipse para congelar y accidente ...
¡Excelente respuesta! Ahora entiendo por qué no pude encontrar ninguna API ni nada. Es muy interesante que la JVM crea estas clases en tiempo de ejecución. Sin embargo, una última pregunta: si una matriz es miembro de una clase como cualquier otro objeto, ¿cómo funciona la inicialización? Si lo que dices es exacto y [] es solo parte del nombre de la clase, ¿por qué no se declaran utilizando un constructor, es decir, nuevo int [] (2) frente a nuevo int [2]? – asteri
la sintaxis 'int [2]' era de C, que Java intentó estar cerca. – irreputable
es más probable que exista un código especial en el jvm para manejar la inicialización de la matriz, que es bastante diferente a la instanciación de objetos estándar. – Matt