Classes de sistema comumente usadas em Java

A classe raiz de nível superior do Java é Object

Object é o ancestral de todas as classes e define os estados e comportamentos básicos de todos os objetos. Ao definir uma classe, mesmo se a classe pai não for especificada, Java a definirá automaticamente como uma subclasse de Object.

Pacote de núcleo Java

Existem 12 pacotes Java principais, entre os quais:
(1) o pacote java.lang encapsula as classes básicas de todos os aplicativos de programação;
(2) o pacote java.util fornece classes de utilitário e classes de coleção, como definição e uso de recursos do sistema, data Função classes, coleções e outras ferramentas;
(3) O pacote java.applet fornece todas as classes necessárias para a execução do Applet, principalmente as classes de comunicação para acessar o conteúdo do Applet;
(4) O pacote java.rmi fornece as classes necessárias para a chamada de método remoto do programa.

Classe de sistema em Java

A classe System é uma classe final. No pacote java.io, todos os métodos são chamados com variáveis ​​de classe e é impossível instanciar a classe System. A classe System é usada principalmente para fornecer configurações de acesso para entrada / saída padrão e informações do ambiente do sistema. As propriedades da classe System são as seguintes:
(1) public static final InputStream in: entrada padrão;
(2) public static final OutputStream out: saída padrão;
(3) public static final PrintStream err: saída de erro padrão.

Classe String em Java

No método String,
(1) o método toLowerCase () é convertido para minúsculas;
(2) O método valueOf () é para obter o valor correspondente;
(3) O método charAt () é para extrair o caractere no especificado posição na string;
(4) append () é um método de StringBuffer (não na classe String).

Classe StringBuffer em Java

Os métodos para obter e definir o comprimento e a capacidade de um objeto StringBuffer são length (), capacity (), setLength () e os métodos de chamada são os seguintes:
(1) sl.length (): retorna o número de caracteres em sl; (caracteres ingleses e chineses são um comprimento de string)
(2) sl.capacity (): retorna a capacidade de sl, ou seja, a quantidade de espaço de memória, geralmente maior que o comprimento;
(3) sl.setLength ( int newLength): altera o número de caracteres em sl, se se newLength for maior que o número original, os caracteres recém-adicionados ficarão vazios (""); pelo contrário, os últimos caracteres da string serão excluídos.
exemplo:

StringBuffer buf1=new StringBuffer(20);
System.out.println(buf1.length()+","+buf1.capacity());

resultado:

0,20

A distinção entre String, StringBuffer e StringBuilder

1. Distinção de definição :
String: Constante de string .
StringBuffer e StringBuilder são variáveis ​​de buffer de caracteres .

2. Distinção de segurança de thread:
Os métodos e funções em StringBuffer e StringBuilder são completamente equivalentes, mas a maioria dos métodos em StringBuffer são decorados com a palavra-chave synchronized, portanto, são thread-safe , enquanto StringBuilder não tem essa modificação e pode ser considerado como Thread não é seguro .

3. Velocidade de execução:
As características "variáveis" de StringBuilder e StringBuffer são resumidas da seguinte forma:
(1) Os métodos append, insert e delete estão basicamente chamando System.arraycopy () para atingir o objetivo
(2) substring (int, int ) O método) é atingir o objetivo renovando String (valor, início, fim-início). Portanto, basicamente não há diferença entre StringBuilder e String ao executar operações de substring.
Em geral, a comparação dos três em termos de velocidade de execução: StringBuilder> StringBuffer> String.
4. Cenários de uso:
(1) Cenários usando a classe String: A classe String pode ser usada em cenários onde a string não muda com frequência, como a declaração de constantes e uma pequena quantidade de operações de variáveis.

(2) Cenários usando a classe StringBuffer: em operações frequentes de string (como emenda, substituição, exclusão, etc.) e execução em um ambiente multi-threaded, você pode considerar o uso de StringBuffer, como análise XML, análise de parâmetro HTTP e encapsulamento.

(3) Cenários usando a classe StringBuilder: em operações frequentes de string (como emenda, substituição e exclusão, etc.) e executando em um ambiente de thread único, você pode considerar o uso de StringBuilder, como montagem de instruções SQL, empacotamento JSON, etc. .
5. Distinguir:
(1) Objetos String do tipo String são imutáveis. Uma vez que o objeto String é criado, a série de caracteres contida neste objeto não pode ser alterada até que o objeto seja destruído;
(2) StringBuilder e StringBuffer O tipo de string é variável , a diferença é que o tipo StringBuffer é thread-safe, enquanto StringBuilder não é thread-safe;
(3) Se for um ambiente multithread envolvendo a inserção e exclusão de variáveis ​​compartilhadas, StringBuffer é a primeira escolha. Se for uma operação não multithread e houver um grande número de operações de emenda, inserção e exclusão de strings, StringBuilder é a primeira escolha. Afinal, a classe String implementa o splicing de string criando variáveis ​​temporárias, que consomem memória e não são eficientes.Como dizer que StringBuilder implementa a operação final por meio de JNI.

A conexão de string na classe String usa "+", enquanto a conexão em StringBuffer usa o método append ().
StringBuffer não pode ser convertido diretamente em objeto de classe String, você deve chamar o método toString () para transformar um objeto StringBuffer em objeto de classe String.

A diferença entre objeto de criação de string e novo objeto de criação

Entre aspas duplas estão constantes de string (string) e entre aspas simples estão constantes de caracteres (char).

String s1="bc";
String s2="bc";
创建了一个对象

Java usa um conjunto de strings para gerenciar strings e a JVM cria um buffer pool de string na memória quando o programa Java está em execução. Para operações de variáveis ​​Java, a memória é dividida principalmente em duas partes: pilha e heap. A pilha é usada para armazenar tipos básicos ou tipos embutidos, principalmente char, byte, short, int, long, float, double, boolean e referências de objeto. Os dados podem ser compartilhados. A velocidade só perde para os registradores e é mais rápida que a pilha. O heap é o espaço de memória usado para armazenar objetos e o pool de buffer de string é o espaço de heap. O heap pode armazenar objetos implícitos (como constantes de string) ou objetos de exibição (como criar objetos com new). Neste exemplo, ao usar String s1 = "bc" para criar um objeto, a JVM primeiro determina se há um objeto com um valor de "bc" no buffer pool e, se não, constrói um para que s1 se refira a o objeto. Quando s2 é criado, a JVM encontra um objeto com o mesmo valor no buffer pool, então s2 se refere ao objeto "bc" referenciado por s1.

String s3="bc";
String s4=new String(s3);
创建了两个对象

Neste exemplo, o operador new é usado para criar um objeto, que chamará o construtor da classe String para criar um novo objeto, que representa uma sequência de strings igual ao parâmetro. Em outras palavras, a string recém-criada é uma cópia da string de parâmetro. Portanto, dois objetos são criados: um é criado no pool de buffer de string na forma de constantes de string; o outro é criado no heap pelo novo operador.

Classe Matcher em Java (Matcher)

(1) O método boolean matcher.find () é usado para encontrar a próxima string de correspondência de padrão;
(2) O método int matcher.start () é usado para retornar um valor inteiro de índice inicial da string correspondente;
(3) int matcher.end (O) método é usado para retornar um valor inteiro do índice de terminação da string correspondente;
(4) O método booleano estático Match () é usado para comparar a string de entrada com a string padrão.

Acho que você gosta

Origin blog.csdn.net/zhanlong11/article/details/114417367
Recomendado
Clasificación