aprendizaje entero

En primer lugar, la diferencia entre el entero y int

1, Integer es un int clase contenedora, int es un java tipos de datos básicos
se pueden utilizar después de 2, Integer variables a ser instanciados, pero no requiere la variable int
3, objeto entero es en realidad hace referencia, cuando un nuevo Integer, realmente genera un puntero al objeto; y int se almacena directamente valor de datos
4, integer predeterminado es nulo, el valor predeterminado int es 0
5, es del tipo int valores hashCode Integer almacenado.;

Dos, java desempaquetado automático y autoboxing

1, autoboxing
hecho autoboxing tipo de datos básico a tipos de datos de referencia (objetos)
2, automática desempaquetar
automática de desembalar el tipo de datos de referencia es en realidad convertidos a tipo de datos primaria

-128到127是byte的取值范围,如果在这个取值范围内,自动装箱就不会创建对象,而是从常量池中获取,如果超过了byte取值范围就会创建新对象

Tres, interruptor de cadena de enteros

//方法一:Integer类的静态方法toString()
Integer a = 2;
String str = Integer.toString(a)

//方法二:Integer类的成员方法toString()
Integer a = 2;
String str = a.toString();

//方法三:String类的静态方法valueOf()
Integer a = 2;
String str = String.valueOf(a);

1, por el método toString (), que puede ser un número entero (incluyendo 0) en una cadena, pero entero Si se informará excepción de puntero null, null.
2, String.valueOf (Object obj) puede ser un número entero (incluyendo 0) en una cadena, pero si es nulo, Integer, se convertirá en "nulo".
3, cuando la nula entero es el caso, esperamos cuerdas es nulo, el método anterior fue incapaz de hacer la ley. Una forma puede escribir su propia:

public static String toString(Object obj) {
        return (obj == null) ? null : obj.toString();
    }
   另外,Apache提供的ObjectUtils.identityToString(Object obj)也可以实现。但是ObjectUtils.toString(Object obj)不行,该方法会把null转化为“ ”。

Cuatro, cadena gire Entero

Cuando queremos String en entero, cadena debe ser no vacío para el juicio, o es probable que reportar una excepción de puntero nulo.

String str = "...";
Integer i = null;
if(str!=null){
     i = Integer.valueOf(str);
}

Cinco. Mecanismo de caché de enteros

Esta es una clase de clases interna entero, entero diseñado para el almacenamiento en caché mecanismo de mango:  
Aquí Insertar imagen Descripción
  Como se puede ver, la clase es una clase interna privada, los desarrolladores se inicializan y no se pueden cambiar. Por el momento, se crea el bloque estático de clase de código en la carga de clases del ciclo entero objeto de caché, y crear una tabla de referencia del índice, utilice las tablas de índice necesitan un acceso rápido a. Alcance mínimo valor del tampón es -128, 127 es el valor predeterminado máxima (parámetro para especificar la máquina virtual puede ser utilizado, la máquina virtual sin los parámetros por defecto). valor del objeto de la caché y una posición de desplazamiento, donde la tabla de índice 127 que es.
Aquí Insertar imagen Descripción
  Y luego ver método valueOf (int): Dentro del alcance de la caché, el objeto de caché se vería en la necesidad tabla de índices para la construcción de un valor de objeto entera retomada directamente, o constructo se devuelve un nuevo objeto. En el desarrollo de la necesidad de construir objeto Integer, se recomienda utilizar un método de fábrica estática, menos nuevo para ahorrar dinero.

Publicado 72 artículos originales · ganado elogios 6 · visitas 664

Supongo que te gusta

Origin blog.csdn.net/weixin_45706762/article/details/104902149
Recomendado
Clasificación