Fundamentos de Java (seis)

principio de aplicación HashMap 1. En pocas palabras

  

      Cada vez que un nuevo HashMap, En primer lugar se inicializar una matriz de tabla. mesa de entrada es un elemento de matriz nodos;  
      Proceso de guardar los datos de la siguiente manera: en primer lugar determinar si la clave es nula, si es nulo, a continuación, una llamada directa método putForNullKey. Si el valor de clave hash primera calculada vacío, entonces el índice de bit en la búsqueda mesa de matriz de acuerdo con el valor hash es establecer, si la matriz tiene un elemento de la tabla en esta posición, comparando si existe la misma clave, si hay cobertura del original el valor de clave, o los elementos almacenados en la primera cadena (primer elemento en el extremo de la cadena de salvado), si no, se almacenan directamente
2. Descripción del principio de aplicación HashSet
     HashSet HashMap se lleva a cabo sobre la base de, el funcionamiento es muy simple, como HashMap se hace un "paquete", y sólo la clave utilizada para lograr un HashMap
    tecla Set se almacena en el mapa corresponde a los valores establecidos, mapa el valor de un valor [maniquí] valor virtual: Object (id = 78)
3. Matriz y la lista de conversión
  Array -> Lista:
        

 

      

 

  Lista -> array:

   

4.Queue: estructura lineal FIFO
  1) oferta () add (): Adición, si desea añadir un nuevo elemento a una cola llena, lo que producirá una excepción no se controla, el primero se devuelve falso
  2) peek () elemento (): devuelve la cabecera de la cola sin necesidad de retirar, cuando la cola está vacía, el ex nulo de retorno, que lanzar una excepción NoSuchElementException
  3) poll () remove () : la eliminación de la cabeza y la espalda; cuando la cola está vacía, el ex nulo de retorno, que produce una excepción NoSuchElementException
5.ListIterator y Iterator
  .ListIterator: .Add (); hasPrevious () y el método anterior () puede ser implementado inversa (orden de avance) de recorrido; índice puede localizar la posición actual, nextIndex () y previousIndex () pueden ser implementados; modificar el objeto se puede lograr, set () métodos pueden ser implementados;
   Iterador: No agregue; recorrido inverso no, no puede ser localizado, y sólo el recorrido, no puede ser modificada;
6. paralelo y concurrente
    Concurrencia: se refiere a dos o más eventos ocurren en el mismo periodo a.
    Paralelo: Se refiere a dos o más eventos se producen al mismo tiempo (simultáneamente).
7. Pase los tres propiedades
 1) un átomo de: en el curso de realizar una o más operaciones, o la totalidad de ejecución completada no se interrumpa ningún factor, o no lleva a cabo, para asegurar la consistencia de los datos, el hilo de seguridad
  2) Visibilidad: Cuando varios subprocesos tienen acceso a la misma variable, un hilo cambia el valor de las variables, otros hilos pueden ver inmediatamente
 3) el pedido: secuencia de la ejecución del programa de código se ejecutará con el fin, en circunstancias normales, ya que el procesador para mejorar la eficiencia, la reordenación de código, se ejecuta la secuencia de código y la secuencia puede ser diferente, pero como resultado
8 hilos demonio  
      . Tema nuevo () setDaemon (true);
      Servicios especializados en otros hilos, como hilos definidos por el usuario han terminado, hilo principal también terminó, la parada de JVM en marcha, detener la ejecución de un hilo daemon
      También conocido como "proceso de servicio" "hilo Wizard", "hilos de fondo" significa que el programa se está ejecutando para proporcionar un hilo conductor en el fondo, este hilo no pertenecen a una parte integral del programa. hablar Popular, cualquier hilo es un entero daemon JVM todos los hilos no demonio "niñera." 
9. Crear un modo de hilo
  1) se extiende Thread 类
      Definir una subclase, anular el método run - "la creación de una instancia de la subclase -" llamada a start (), iniciar el hilo
     
  2) implementa Ejecutable 接口
      Definir una subclase, anular el método run - "Creación de una instancia de la subclase, así como un ejemplo de un objetivo al crear el objeto del hilo de rosca -" llamada a start (), hilo abierto
    

 

 3) Crear un hilo a través de Callable y Futuro

    Crear clase de implementación de interfaz invocable, y el método implementa la llamada (), el método call () como un hilo de ejecución, y los valores de retorno.
    Callable crear una instancia de la clase de implementación, utilizando envases Callable FutureTask objeto de clase, que objeto encapsula el objeto FutureTask Callable
Valor de retorno llamada al método ().
   Uso FutureTask objeto Thread como un objeto de destino para crear e iniciar un nuevo hilo.
   método Call FutureTask objeto get () para obtener el valor de retorno después del final de la ejecución sub-hilo.
10.Runnable Callable
    1) Ejecutable: realizar el método se método run (); Ninguno Valor de retorno; excepción interna digirió
    2) Callable: realizar el método es el método de llamada (); existe Valor de retorno; puede ser lanzado
11.sleep () wait ()
   

 

 12. ¿Qué es un callejón sin salida

    Se refiere a un punto muerto debido a los múltiples procesos que compiten por los recursos causados ​​por (espera el uno al otro), la ausencia de una fuerza externa, estos procesos no será capaz de seguir adelante
    Cuatro requisitos forman un punto muerto (indispensable):
              condiciones mutuamente excluyentes: un recurso sólo puede ser utilizado por un proceso, si otros procesa las solicitudes de este recurso, tenemos que esperar 
              Solicitud para mantener condiciones: el proceso se ha mantenido durante al menos un recurso, pero propuso una nueva solicitud de recursos, el recurso ha sido ocupada por otro proceso, este proceso solicitante vez que se bloquea, pero los recursos que tienen disponibles para mantener el asimiento
              condición Inalienable: recursos obtenidos en el proceso antes no se utiliza la terminación, no pueden ser llevadas a la fuerza por otros procedimientos, que sólo puede ser obtenido por el procedimiento de los recursos sí mismos para liberar (sólo liberación activo)
              Loop condición de espera: la relación entre una pluralidad de extremo a extremo para formar un proceso de bucle para esperar a recursos 
13.synchronized volátil

 14.synchronized ReentrantLock

 

 

 



  

 



 

Supongo que te gusta

Origin www.cnblogs.com/dxjx/p/12454690.html
Recomendado
Clasificación