¿Qué es exactamente una instancia en Java?

¿Cuál es la diferencia entre un objeto, instancia y referencia? Dicen que tienen que crear una instancia para su aplicación? Qué significa eso?

Un objeto y una instancia son la misma cosa .

Personalmente prefiero usar la palabra “instancia” cuando me refiero a un objeto específico de un tipo específico, por ejemplo “una instancia de tipo Foo”. Pero cuando hablo de objetos en general, diría “objetos” en lugar de “instancias”.

Una referencia se refiere a un objeto específico o bien puede ser una referencia nula.


Dicen que tienen que crear una instancia para su aplicación. Qué significa eso?

Probablemente signifiquen que tienes que escribir algo como esto:

Foo foo = new Foo(); 

Si no está seguro de qué tipo debe crear una instancia, debe contactar a los desarrolladores de la aplicación y solicitar un ejemplo más completo.

“instancia a una aplicación” no significa nada.

“objeto” e “instancia” son la misma cosa. Hay una “clase” que define la estructura e instancias de esa clase (obtenida con new ClassName() ). Por ejemplo, está la clase Car , y hay ejemplos con diferentes propiedades como kilometraje, velocidad máxima, potencia de caballo, marca, etc.

La referencia es, en el contexto de Java, una variable * – es algo que apunta a un objeto / instancia. Por ejemplo, String s = null;s es una referencia, que actualmente no hace referencia a ninguna instancia, pero puede hacer referencia a una instancia de la clase String .

* Jon Skeet hizo una nota sobre la diferencia entre una variable y una referencia. Mira su comentario. Es una distinción importante acerca de cómo funciona Java cuando se invoca un método – pass-by-value.

El valor de s es una referencia. Es muy importante distinguir entre variables y valores, y objetos y referencias.

Creo que Object = Instance. La referencia es un “enlace” a un Objeto.

 Car c = new Car(); 

La variable c almacena una referencia a un objeto de tipo Car.

Cuando usa la palabra clave new por ejemplo JFrame j = new JFrame(); está creando una instancia de la clase JFrame .

El new operador instancia una clase asignando memoria para un nuevo objeto y devolviendo una referencia a esa memoria.
Nota: La frase “instanciar una clase” significa lo mismo que “crear un objeto”. Cuando creas un objeto, estás creando una “instancia” de una clase, por lo tanto, “instanciando” una clase.

Echa un vistazo aquí
Creando objetos


Los tipos del lenguaje de progtwigción Java se dividen en dos categorías: primitive types y tipos de reference .
Los tipos de reference son tipos de class , tipos de interface y tipos de array .
También hay un tipo null especial.
Un objeto es una instancia creada dinámicamente de un tipo de class o una array creada dinámicamente.
Los valores de un tipo de referencia son referencias a objetos.

Referir Tipos, Valores y Variables para más información

 Computer c= new Computer() 

Aquí se crea un objeto a partir de la clase de Computer . Una referencia llamada c le permite al progtwigdor acceder al objeto.

La diferencia principal es cuando dices ClassName obj = null; solo estás creando un objeto para esa clase. No es una instancia de esa clase.

Esta afirmación solo asignará memoria para las variables estáticas estáticas, no para las variables miembro normales.

Pero cuando dices ClassName obj = new ClassName (); estás creando una instancia de la clase. Este staement asignará la memoria a todas las variables miembro.

básicamente objeto e instancia son las dos palabras usadas indistintamente. Una clase es una plantilla para un objeto y un objeto es una instancia de una clase.

“creando una instancia de una clase” qué tal “, estás tomando una clase y haciendo una nueva variable de esa clase que cambiará dependiendo de una entrada que cambie”

Clase en la biblioteca llamada Nacho

variable Libre para contener la “instancia” que cambiará

Nacho Libre = new Nacho (Variable, Scanner Input, o lo que sea que vaya aquí, este es el lugar que acepta los cambios y luego pone el valor en “Libre” en el lado izquierdo del signo igual (ya sabes “Nacho Libre = new Nacho ( Scanner.in) “Nacho Libre” está a la izquierda de = (eso no es hablar de tecnología, esa es mi manera de explicarlo)

Creo que es mejor que decir “instancia de tipo” o “instancia de clase”. Realmente el punto es que solo necesita ser detallado más … “instancia de tipo o clase” no es lo suficientemente bueno para el principiante … wow, es como un trabalenguas y tu cerebro no puede enfocarse en trabalenguas muy bien … esa palabra de “instancia” es muy molesta y el simple sonido me vuelve loco … mendiga más detalles … mendiga que se descomponga mejor. Tuve que googlear lo que significaba “instancia” solo para orientarme … intente decir “instancia de clase” a su abuela … ¡ay!

El significado literal de instancia es “un ejemplo o única ocurrencia de algo”. que está muy cerca de la terminología Instancia en Java.

Java sigue la carga dinámica, que no es como el lenguaje C, donde todo el código se copia en la RAM en tiempo de ejecución. Permite capturar esto con un ejemplo.

  class A { int x=0; public static void main(String [] args) { int y=0; y=y+1; x=x+1; } } 

Vamos a comstackr y ejecutar este código.

paso 1: javac A.class (se genera el archivo .class que es un código byte)

paso 2: java A (archivo .class se convierte en código ejecutable)

Durante el paso 2, el método principal y los elementos estáticos se cargan en la RAM para su ejecución. En el escenario anterior, no hay problema hasta la línea y = y + 1. Pero siempre que se ejecute x = x + 1, se lanzará el error de tiempo de ejecución ya que la JVM no sabe qué es la x que se declara fuera del método principal (no estática).

Entonces, si de alguna manera el contenido del archivo .class está disponible en la memoria para que la CPU se ejecute, no hay más problemas.

Esto se hace creando el Objeto y la palabra clave NEW realiza este Trabajo.

El concepto de reservar memoria en la RAM para el contenido del disco duro (aquí archivo .class) en tiempo de ejecución se llama Instancia

El objeto también se llama la instancia de la clase.

Los objetos , que también se llaman instancias , son elementos independientes de un progtwig con características y datos relacionados. En su mayor parte, utiliza la clase simplemente para crear instancias y luego trabajar con esas instancias.

-Definición tomada del libro “Sams Teach Yourself Java en 21 días”.

Supongamos que tiene 2 clases, Clase principal de clase pública y Clase de clase pública_2 y desea crear una instancia de Clase 2 en Clase principal.

Esta es una forma muy simple y básica de hacerlo:

 public MainClass() /*******this is the constructor of MainClass*******/ { Class_2 nameyouwant = new Class_2(); } 

¡Espero que esto ayude!