Resumen de Java notas de cimentación

prefacio

1.JDK, las diferencias y las conexiones entre el JRE, JVM

  1. JDK es el Kit de Desarrollo de Java, JRE es el entorno de ejecución de Java, JVM es Java Virtual Machine
  2. Estas tres relaciones están anidados, JDK incluye el JRE, JRE incluido JVM

A, estática palabra clave

1. Estática es el primero en ser en la clase (mecanismo JVM) cargar
2. Acción:
(1) crear independiente del objeto específico o método dominio variable
(2) no puede crear un objeto, también se puede marcar directamente el método utilizado y el orden atributos definidos
forma un bloque de código estático (3) se utiliza para optimizar el rendimiento del programa
3. Cargando orden
(1) cuando la clase de carga inicial, se llevará a cabo en bloques estáticos, y sólo una vez
4. Estática papel único, el método modificado es independiente de las variables estáticas o cualquier clase de objeto, instancia de clase de objeto de compartir, sólo una copia de la memoria
5. Nota
(1) se carga y se inicializa cuando se utiliza primero la clase, de acuerdo con la asignación requiere rama trasera
(2) variables locales estáticas no están autorizados a modificar
6. Y la diferencia entre las variables ordinarias
estático (1): variables miembro secuencia estática de inicialización se inicializan en el orden definido en
objetos (2) no estáticos son propiedad de objeto sub-creado se inicializa cuando hay múltiples copias de cada objeto tiene cada copia no afecta a
7. tipo estático interno
(1) no se puede utilizar ninguna de las variables miembro no estáticos y métodos de la clase envolvente
(2), cuando la clase actualmente cargada, la clase no es estática cargado en la memoria interna. Sólo las clases internas estáticas pueden llamar a las clases internas estáticas se iniciará la carga y la inicialización, por favor mecanismo garantizará que la JVM sólo puede crear instancias de una vez, JVM proporciona un soporte seguro para subprocesos
8. Estática -import paquete de guía estática
(1) puede ser importado para especificar una clase de recurso estático
(2) no puede utilizar el nombre de la clase de llamar a las variables estáticas de la clase directamente (pero los desarrolladores no lo recomiendo)
9. Estática y última


En segundo lugar, las clases abstractas e interfaces

1, una clase abstracta (abstract)

  1. Las clases abstractas y clases tienen el mismo método de construcción, la estática modificador static
    métodos 1, puede ser no abstractos clase abstracta
    2, constructor de la clase abstracta no puede ser utilizado directamente para crear una instancia de objeto
    3, una clase abstracta no puede final, modificación privado, tipo de acceso público , protegido
    . 4, una clase abstracta estática externa no se puede modificar, pero la clase abstracta interna puede ser declarado estática, de la siguiente
    abstract class A{ static abstract class B{ public abstract void decise(); } }
  2. método abstracto
    1, el método no es un órgano método abstracto
    2, métodos abstractos deben ser modificados con la palabra clave abstracto
    3, método abstracto debe ser pública y protegidos, público predeterminado
    . 4, una clase abstracta es un método debe clase abstracta, un método ordinario en el mayo abstracto categoría
  3. Importancia de
    1 definición de clase abstracta es heredar
    2, el constructor de una clase abstracta no puede ser directamente instanciada para crear objetos involucrados transición hacia arriba, el papel es para acolchar clase llamada
    3, hereda de la clase ordinaria de la clase abstracta debe implementar la superclase abstracto un método, si no se logra, una subclase se define como la necesidad de la clase abstracta

2, la interfaz (interfaz)

  1. El concepto básico de
    un proceso predeterminado de la interfaz tipo abstracto pública

    1. 1 Sin embargo, hay excepciones, como sigue
    2. interface A{default void b(){System.out.println("default方法");}}

    2, las variables miembro y el tipo predeterminado de interfaz es solamente public static final (se pueden omitir) variable de tipo
    3, no puede tener constructor interfaz
    4, métodos de interfaz se designan implícitamente método abstracto pública, y sólo es
    5, Interface puede alcanzar la herencia múltiple, separados por comas

3, la diferencia entre clases abstractas e interfaces

  1. Diseñar
    una clase abstracta para agregar nuevo cabello, puede agregar la aplicación específica (similar al método convencional) directamente en una clase abstracta, subclase sin cambiar la
    2, la interfaz ha cambiado, toda la realización de esta clase de interfaz requiere un cambio correspondiente

  2. punto de diseño
    1, clase abstracta abstracta para toda la clase, incluyendo atributos, comportamientos
    2, la interfaz es un comportamiento abstracto, comportamiento local abstracta


En tercer lugar, la herencia

1. Herencia

  1. La herencia es una subclase hereda las propiedades y el comportamiento de la clase padre, subclase puede acceder directamente a las propiedades privadas de los padres y el comportamiento de África central
  2. Mejorar la capacidad de reutilización de código, por lo que la relación entre las clases y la clase de generación
  3. Sólo es compatible con la herencia simple no soporta la herencia múltiple

2. Las variables miembro

  1. Si la variable no es un miembro del mismo nombre, llamado el padre de la clase de objeto hijo puede ser llamado directamente
  2. Si la variable miembro del mismo nombre, a continuación, acceder al miembro de la clase padre variables que necesitan utilizar súper. Padres nombre de la variable miembro de la clase, esto. Subclase nombre de variable miembro

3. ¿Cómo acceder a las variables miembro privadas clase padre

  1. Las variables no propietarias se puede acceder directamente
  2. El uso de envases métodos de obtener acceso privado a las variables y conjunto

Método 4. Los miembros

  1. Si el método no es un miembro del mismo nombre en la llamada subclase la clase de objeto de los padres se puede llamar directamente, porque el objeto al llamar al método, primero tendrá que encontrar ningún método correspondiente en una subclase, si hay una subclase de la primera clase sobre la aplicación de el método, cuando la subclase no existe en el método correspondiente es la clase padre
  2. Si los miembros del mismo nombre, entonces el método
    1, el mismo nombre de método, tipo de retorno, la lista de parámetros no es lo mismo (primer vistazo a la subclase, subclase, ningún padre que ir a buscar)
    2, el nombre del método y el tipo de retorno, listas de parámetros son los mismos, reescribir método (override)

5. Vuelva a escribir el significado de

  1. Hereda las funciones de la clase de los padres y se puede ampliar como subclase necesaria
  2. Cuando la reescritura además método super super (); Indica llamar al método miembro de la clase padre

6. Nota de reescritura

  1. Debe volver a escribir el nombre del método y lista de parámetros consistentes
  2. Método subclase reemplaza el método clase padre, permiso subclase mayor que o igual a los permisos parentales
  3. Al reemplazar subclase de menos de o igual que el tipo de retorno del valor de retorno del tipo matriz, tipo de excepción subclase tipo de excepción lanzada es igual a menos de la clase padre tirado

7. El método de construcción
1. Si el método principal instancia un objeto de subclase, a continuación, Ir realizar la inicialización del constructor por defecto subclase, la primera vez que se añade un código de constructor por defecto super (), no escribir este también existe, y debe ser de un código
2. el método de la variable miembro tectónica se inicializa, la subclase proceso de inicialización, debe realizar la operación de inicialización de la clase padre, el constructor de la subclase de un defecto añadiendo super (); indica que la llamada al constructor de la clase padre después de que las variables miembro de la clase padre se inicializan antes de que puedan ser utilizados para la subclase

class Father {
        // 父类的无参构造方法。
        public Father(){
            System.out.println("父类构造方法执行");
        }
    }
    class Son extends Father {
        // 子类的无参构造方法。
       public Son(){
           System.out.println("子类构造方法执行了");
       }
    }
    public class ConstructionDemo {
        public static void main(String[] args) {
            // 创建子类对象
            Son s = new Son();

        }
    }
//结果是
//父类构造方法执行
//子类构造方法执行了

8.Super y este uso

  1. 1, super: almacenamiento de identificador de espacio en nombre de la clase padre (se puede entender como una referencia a su padre).
  2. 2, esto: que representa la referencia al objeto actual (el que llama que representa)
  3. 3, super, y esto puede no aparecer en una función constructora, ya que este está obligado a llamar a otros constructores, el constructor será la presencia de otra sentencia super, y debe ser la primera línea en el constructor.

9. polimorfismos heredados


En cuarto lugar, la sobrecarga y la reescritura

  1. De sobrecarga (sobrecarga) reglas

    1. Debe tener una lista diferente de parámetros
    2. Independientemente del valor de retorno
    3. Puede tener diferentes modificadores de acceso
    4. Usted puede lanzar excepciones diferentes
    5. O el método puede suprimirse en una subclase de una clase.
    6. Presente en la clase padre, subclase, y de la misma
  2. significado sobrecargada

    1. Ser considerado como una alternativa si lo demás, incluso menor que si más que escribir el código, paso de parámetros es más clara, es propicio para el desarrollo del equipo
    2. entrada diferente y la salida al mismo tiempo, el general podría utilizar sobrecargada
  3. La reescritura de reglas (anular)

    1. nombre del método, argumentos, valores de retorno de la misma
    2. Método subclase no se puede reducir el acceso al método de la clase padre
    3. Método subclase no puede lanzar más de las excepciones método de la clase padre (pero el método subclase no puede lanzar una excepción)
    4. Existe entre las clases de padres e hijos
    5. Se define como el último método no puede ser reescrito.
  4. Reescribir el significado de

    1. Las subclases de la clase padre a extenderse
  5. La diferencia entre sobrecarga y reescribir
    Override reescritura y la sobrecarga de sobrecarga · 1. Los métodos Java son diferentes manifestaciones de polimorfismo. Anulación de la reescritura es una manifestación de polimorfismo entre la clase padre y la subclase Sobrecarga es un polimorfismo de un rendimiento

    2. Método de sobrecarga se refiere a la misma clase, el mismo método para una pluralidad de nombres, una lista de su argumento. El método de la reescritura refieren a la misma sub-clase y el método de la clase padre, la relación entre las dos clases


método de reescritura toString V.

  1. ¿Por qué debe reemplazar el método toString
    1. método toString () es un método en el que la clase Object, que devuelve una cadena de tipo de datos: nombre de la clase hexagonal + @ + valor hash del
    objeto de referencia 2. impresión directa, toString predeterminado () llama
Student stu = new Student("Jack",18);
    System.out.println(stu);
  1. Cómo reemplazar el método toString
    S, haga clic en Anular, seleccionar método toString () 1. atajo Alt + Shift +
    2. clase de estudiante que S +, haga clic en el método de la prensa Alt + Shift Generar toString ()
public String toString() {
return super.toString();
}

//法1
public String toString() {
return "我的名字是" + name + "年龄是" + age;
}

//法2
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + "]";
}


seis polimórfica

1, el concepto básico

  1. Específico tipo de variable de referencia definido en el programa apuntado por la variable de referencia y una llamada de método emitido cuando la programación no está determinado, sino que está determinada sólo durante la ejecución del programa
  2. El polimorfismo se refiere a la misma acción, con muchas formas diferentes

2, la premisa polimórfica

  1. Heredar o implementar
  2. anulaciones método
  3. objeto de referencia de clase de padres subclase (upcast)

3, llamadas multi-estatales

  1. Cuando se utilizan las llamadas a métodos polimórficos, comprobar primero si existen en el método de la clase padre, si la clase padre no compila errores.

  2. Si no es la clase principal, la subclase se ejecuta para volver a escribir la clase padre (es decir, la transición hacia arriba)

    1. ¿Por qué algunos subclase no anula este método, pero siguen asumiendo, porque a pesar de la subclase no lo escribió, pero que hereda la clase padre este método, pero no existe una clara por escrito, por lo que la llamada real se hereda de los padres subclases métodos de la clase, super (); pero no escribió
class  Father{
    public void fu(){
        System.out.println("Father");
    }
}
class Sun extends Father{
    public void sun(){
        System.out.println("sun");
    }
}
public class Test {
    public static void main(String[] args) {
        Father f=new Sun();
        f.fu();
    }
//运行结果:Father
}

4, dinámico multi-estatal y estática vinculante

  1. La unión se refiere a la clase y llamar a un método en el que el asociado de método (cuerpo del método), es un método para llamar a otro método
  2. La unión estática (enlace anticipado), se compila en la unión, los métodos de Java única final, estática, métodos privados (no heredada) y de la construcción estén obligados estáticamente , usando un tipo de información
  3. Enlace dinámico (finales de unión), de acuerdo con el tipo de objetos en tiempo de ejecución de unión específica, utilizando la información de objeto

5, abatido y upcast

  1. upcastFather father = new Son();
  2. alicaídoSon s =(Son) father;
  3. Por qué debería haber abatido cuando se utilizan las llamadas a métodos polimórficos, comprobar primero si existe el método de la clase padre, si no el error del compilador, que es polimórfico y no puede ser llamado una subclase de la clase padre no tiene forma, si quieres método único llamado subclase, hacer abatido

6, instanceof determina el tipo de datos

  1. Concepto: Vueltas Si la parte variable de los datos de tipo verdadero, falso en caso contrario
  2. Papel: tanto esta subclase hereda el método de la clase padre del mismo nombre, si no determinar, el tipo de datos tenga

Siete, genérico (genérico)

  1. conceptos básicos
    1. Se puede configurar para almacenar cualquier objeto, el objeto se convierte automáticamente en un tipo de colección, por lo que esto se lleva a cabo un objeto a ser encasillado
    2. Sin embargo, si se conserva en la colección, tales como una variedad de objetos, el programa se llevará a cabo en tiempo de ejecución java.lang.ClassCastException inusual, porque de hecho el mismo tipo de colección de almacenamiento de objetos solamente
  2. palabra clave
    1. E (elemento) en el conjunto, porque la colección se almacena en el elemento
    2. T (Tipo) T representa el tipo específico cuando la llama
    3. K (clave 键)
    4. V (valor Valor)
    5. N (Número) Tipo Valor
    6. ? la incertidumbre expresada tipo Java, por lo general se utiliza cuando Salvaje

Ocho, procesos, hilos, multi-roscado

  1. concepto del proceso
    1. Proceso es un programa en ejecución en el sistema, el programa una vez que el proceso se está ejecutando,
    2. El proceso es un sistema de asignación de recursos entidad independiente, cada proceso tiene un espacio de direcciones separada
    3. Si desea acceder a un proceso de recursos a otro proceso, la necesidad de utilizar la comunicación entre procesos
    4. Un proceso puede tener múltiples hilos
  2. Conceptos multithreading
    1. Cada hilo utiliza el espacio de pila proceso al que pertenece
    2. Un hilo es un proceso físico, es un proceso de aplicación de la Road King
    3. Un hilo es un proceso específico de la aplicación de la Road King, cuando un hilo modifica el proceso de los recursos, su hermano hilo puede ver inmediatamente este cambio
  3. multihilo
    1. Multithreading se refiere a la producción de múltiples hilos en un proceso en ejecución
  4. Paralelo y concurrente
    1. Paralelas: una pluralidad de instancias de CPU o máquinas múltiples a cabo simultáneamente para una lógica de procesamiento
    2. Concurrencia: El algoritmo de programación de la CPU, lo que permite a los usuarios realizar simultánea parecía, pero la CPU es el uso de una ley de nivel de los recursos públicos
  5. Habrá un problema
  6. hilo de seguridad: esto significa que la orden de programación del hilo afectará el resultado final
  7. Sincronización: se refiere al control y la programación artificialmente, para garantizar que el acceso multi-roscado a los recursos compartidos llamado hilo de seguridad, para garantizar resultados precisos
  8. punto muerto
Publicado 23 artículos originales · ganado elogios 2 · Vistas 1028

Supongo que te gusta

Origin blog.csdn.net/weixin_46101839/article/details/104484639
Recomendado
Clasificación