Tengo una pregunta; No sé si es tonta o no ... pero de todos modos voy a pedir que todos sabemos que cuando decimos String name = "someName";
que sabemos que esto es una cadena agrupada por lo que no se va a poner en el montón / pila, pero ...
si decimos que Integer integer = new Integer(888);
sabemos que esto se va a poner en el montón ... a continuación, Integer otherInteger = 444;
donde se "otherInteger" va a conseguir? lo que la posición de memoria? ¡Gracias!
String name = "somename"; La cadena es inmutable clase y tipo de cuerdas es de referencia o de tipo no primitivo, así punto nombre de referencia a objeto "somename", que se coloca en "pool String-constante-", en el montón. (Sin pila). Entero es clase de contenedor (proporciona el mecanismo para convertir primitiva en objeto y objeto en primitivo). El código entero otherInteger = 444; es un ejemplo de auto-boxing ( https://docs.oracle.com/javase/1.5.0/docs/guide/language/autoboxing.html ) y compilador convierte automáticamente esta línea a entero otherInteger = Integer.valueOf (444) ; . Así, Integer otherInteger = Integer.valueOf (444) vuelven objeto Integer es decir, este se coloca en el montón.