Notas de Java: cadenas de matriz y contenedores, flujo de expresión y flujo de control, introducción a los primeros pasos, identificadores de tipos de datos

  • 1.1
  •  
    • JDK>JRE>JVM
  • 2 Identificadores y tipos de datos
    • Lenguajes orientados a procesos: C, FORTRAN, COBOL, ALGOL, PASCAL, BASIC
      • Lenguajes orientados a objetos: Simula, Smalltalk, Java, Ruby, etc.
      • Ambos lenguajes: C++, Python
    • estructura de von Neumann

    • Palabras clave de JAVA: no se pueden usar como identificadores
    • JAVA usa Unicode (16 bits) en lugar de ASCII (8 bits)
      • Un identificador es una cadena de letras, números, guiones bajos (_) o signos de dólar ($$) que comienzan con una letra, guión bajo (_) o signo de dólar ($$), distingue entre mayúsculas y minúsculas.
    • tipo de datos JAVA

      • booleano: falso/verdadero 8vo lugar
      • carácter: 16 bits
      • Rango de números de tipo entero
        • Todos los enteros en Java son números con signo. Las constantes enteras son de tipo int. Si desea representar una constante entera larga, debe escribir la letra "L" después del número
      • Rango de datos de tipo flotante
        • Flotante si el valor contiene un punto decimal, una parte exponencial (e) o va seguido de las letras f/F (precisión simple) o d/D (precisión doble)
        • Conversión de tipo: conversión automática de un tipo con una pequeña cantidad de dígitos a un tipo con una gran cantidad de dígitos; de lo contrario, se requiere una conversión obligatoria
    • clases y objetos
      • Modificador de almacenamiento estático: puede ser compartido por todos los objetos de la clase
      • final: una clase modificada con final ya no puede derivar subclases y ha llegado al final de la jerarquía de clases
      • abstract: una clase o método modificado con abstract indica que el componente modificado es abstracto. El método abstracto solo necesita dar la descripción del prototipo, el cuerpo del método está vacío y la clase que contiene el método abstracto debe describirse como una clase abstracta.
      • Referencia de objeto: cree una referencia a él en la memoria y establezca el valor inicial en nulo, lo que indica que no apunta a ningún espacio de memoria.
      • Creación de instancias de objetos: use new para solicitar el espacio de memoria correspondiente, el tamaño del espacio de memoria depende de la definición de la clase, y asigne la primera dirección de la memoria a la referencia creada en este momento
  • 3 Flujo de expresión y control de procesos
    • operando
      • final: definición constante, no se permite modificar después de la definición
        • No use la modificación estática: si asigna un valor fijo directamente al crear una constante, entonces el valor de esta constante es fijo, es decir, los valores en varios objetos también son los mismos. Si se usa una función u objeto al crear una constante, el valor de inicialización de la constante puede ser diferente cada vez que se crea el objeto.
        • Use la modificación estática: antes de crear un objeto, se creará un espacio de almacenamiento para esta variable en la memoria, y si se necesita esta variable estática para crear un objeto más tarde, se compartirá el espacio de almacenamiento de esta variable
      • Bit de signo más alto del código de complemento: el signo de número positivo es 0, el número negativo es 1; las operaciones que involucran números negativos usan código de complemento
        • El código de complemento del número positivo se agrega directamente al bit de signo 0, y el código de complemento del número negativo primero se invierte poco a poco sobre la base del código original, y luego se agrega uno al bit de signo.
  • 4 matrices de cadenas y contenedores
    • formación
      • Definición de matriz unidimensional: tipo arrayName[]; No se asigna memoria al definir, y la longitud no se declara en [], pero la variable de referencia se usa para apuntar a una matriz
        • Tipo[] nombreArray;
      • Crear una matriz: inicialización estática: definir e inicializar elementos al mismo tiempo
        • Inicializar dinámicamente type[] arrayName=new type[arraySize];
          • tipo arrayName[]=nuevo tipo[arraySize];
      • Array de tipo compuesto: type arrayName[]=new type[arraySize];
      • Use toString para recorrer la matriz
      • Definición de matriz bidimensional: type arrayName[][];
        • tipo[][] nombreArray;
      • Inicialización estática de matriz multibit: int[][] intArray={ {2,3}, {1,5}, {3,4}};
        • Inicialización dinámica de matrices de varios bits:

      • Copia de matriz: copia de matriz
      •  
        • copia de
        • copiaDeRango
    • enumeración enum enumeración nombre {lista constante}
      • Un tipo de enumeración puede devolver una matriz unidimensional de la siguiente forma: el nombre del tipo de enumeración.valores();
        • for(Weekday b:Weekday.values()) {System.out.print(b+" ");}
        • cambiar la enumeración usando constantes de enumeración
    • Cadena:
      • String es una cadena de caracteres inmutable. Al asignar memoria, se asigna en cantidades iguales de acuerdo con el número real de caracteres contenidos en el objeto.
        • El método concat (String str) conecta str al final de la cadena actual, y "+" puede realizar la operación de conexión de cadena.
        • Métodos comunes:

        • Los métodos de comparación en la clase String son compareTo(), equals(), equalsIgnoreCase(), regionMatches()
        • public boolean regionMatches(int toffset, String other, int ooffset,int len)或 public boolean regionMatches(boolean ignoreCase, int toffset, String other,int ooffset,int len)
      • StringBuffer es una cadena variable. Al asignar memoria, se agrega un búfer de 16 caracteres además del espacio ocupado por los caracteres.
        • length() para obtener la longitud de la cadena
        • capacidad () devuelve la capacidad del búfer
        • Usa el método append() para implementar la conexión
    • envase
      • Recopilación
        • los elementos establecidos están desordenados y no son repetibles
        • lisr ordenado y repetible

          • LinkedList: Su estructura de datos utiliza una lista enlazada, la ventaja de esta estructura es que la eliminación y la adición son muy eficientes, pero la eficiencia de acceso aleatorio a los elementos es menor que la de la clase ArrayList.
          • ArrayList: Su estructura de datos utiliza una tabla lineal, la ventaja de esta estructura es que es muy conveniente para acceder y consultar, pero es muy ineficiente para agregar y eliminar. S
        • cola determina el orden de acuerdo con las reglas
        • HashSet: no se permiten elementos duplicados en él, y no se puede agregar un elemento duplicado, y la eficiencia de la consulta se optimiza mediante el uso de la función Hash.
        • HashMap: proporciona un mecanismo de almacenamiento de datos de par clave-valor clave-valor, es muy conveniente encontrar el elemento correspondiente a través del valor clave, y a través del mecanismo Hash hash, la búsqueda es muy conveniente.

        • iteratorfor(Iterator it=cursos.iterator();it.hasNext();) {curso=(Curso)it.next();...}
          • boolean hasnext(); //Comprueba si hay más elementos en la secuencia
          • Object next(); //Obtener el siguiente elemento en la secuencia
          • void remove(); //borra el elemento actual en el iterador
        • Todas las clases que se pueden "ordenar" implementan la interfaz Comparable. Solo hay un método public int compareTo(Object obj) en la interfaz Comparable

Supongo que te gusta

Origin blog.csdn.net/qq_56061892/article/details/126224221
Recomendado
Clasificación