- java principais pontos fortes:
uma plataforma cruzada, pois um sistema JVM diferente permite jvm javaapp enfrentado por diferentes sistemas operacionais - versões do Java significados:
JavaSE: JAVA Standard Edition: Standard Edition: posicionamento de um computador pessoal, plataforma Java núcleo fornece uma rica API inclui AWT e Swing, além Applet é FLASH, HTML5 substituir; vai aprender
JavaEE: JAVA Enterprise Edition: Empresa versão, servidor de localização, extensão SE, bibliotecas aumento de classe para desenvolvimento do servidor. Como o JDBC, o servlet, o Pedido-a resposta, o JSP
JAVEME: JAVE no micro: Micro Edition, posicionando electrónica de consumo, J2SE contendo parte das classes principais, que se prolongam na SE. Android é substituído - Características e Benefícios do java:
① cross-platform / Portabilidade: Se int é sempre 32
② Segurança: Construindo um ambiente anti-vírus de rede / distribuída, o sistema à prova de violação
③ orientada a objeto: mais de C ++ (compatíveis C) mais profundamente , totalmente opor-orientado.
④ Simplicidade: C + ±, removendo cabeçalho, aritmética ponteiro, estrutura, união, a sobrecarga de operador, classe base virtual, com base em C é fácil de aprender
⑤ alto desempenho: baixo desempenho inicial, jvm pós-optimização adicionado ao JIT (técnicas de compilação tempo), pelo compilador localizada código "pontos quentes" e em cache, melhorando a eficiência de codificação.
⑥ distribuída: projetado para Internet ambientes distribuídos, para lidar com o protocolo TCP / IP, pode ser acessado através de um URL semelhante a recursos de rede e acesso a arquivos locais, o apoio a invocação de método remoto (RMI, Remote Method Invocation), para que o programa pode chamar através do método de rede.
⑦ Multithreading: trazer melhor comportamento interativo e em tempo real. Também tornar-se uma das principais razões para a linguagem de desenvolvimento do lado do serviço.
⑧ robustez: a remoção dos ponteiros, alocação de memória e solte. Ele vem com GC; excelente mecanismo de exceção a falhas no computador evitar e falhas. - java operando mecanismo:
.java arquivo de origem, pelo compilador jdk em arquivos .class, bytecode verificador, intérprete e JIT ser interpretados, aplicativo está sendo executado através do carregador JRE classe de sistema - JVM, JRE, JDK diferença
JVM: máquina virtual java: o bytecode máquina virtual máquina de execução bytecode virtual definido: o conjunto de instruções, conjunto de registos, uma estrutura de pilha, área de memória heap a coleta de lixo. Responsável pela runs intérprete do código java byte, corrida lado interpreta.
JRE: Java Runtime Environment: com JVM, bibliotecas, java executar o arquivo programa must (javaapp apenas executar apenas jre precisa)
o JDK: java Development Kit: contém JRE, bem como o aumento compiladores e depuradores e outros documentos para o desenvolvimento do programa ( desenvolvimento necessário);
o JDK (javac, JAR, a depuração, ferramentas, javap) "o JRE (Java, javaw, as bibliotecas, RT, JAR)" a JVM (JIT) - identificadores conceito e normas, especificações:
Conceito: para nomear: variável, classe, nome método
regras: letras, números, sublinhado _, números
maiúsculas e minúsculas, sem limite de comprimento
pode não ser tão palavras-chave;
Especificações: Nome da classe: capitalizar a primeira letra de cada palavra
nomes de métodos, variáveis: a primeira letra da primeira palavra minúsculas, ea palavra "princípio corcunda" restantes capitalizados - variáveis essência:
é espaço contíguo operável, a posição espacial é determinado, o conteúdo de variável, o nome da variável pode ser acedida por um "espaço de armazenamento", e opera.
Composta por: nome da variável, tipo de variável, o escopo; comprimento após a primeira declaração é atribuído um respectivo espaço de memória, [Inicializar] utilizado; - tipos de variáveis:
tipos básicos, tipos de referência - Variável Categorias:
Variáveis locais variável local: declaradas dentro de um bloco de método dependente declarações processo de desativação ou período de bloco de declaração seguindo o método de bloco de instrução ao vivo deve ser inicializado usando;
membro variáveis membro variável (variáveis de instância): declarar externo ao método interno classe, série o objecto, o objecto seguinte do ciclo, pode padrão de inicialização,
variáveis estáticas variável estática (variáveis de classe): declaração sobre classes internas, modificação estática, a classe escravo, carregamento periódica classe seguimento, descarga, desaparecem, pode ser alterado, todos partilham um objecto de classe. - definições constantes, a classificação:
Definição: um valor fixo (constante simbólica) com uma modificação final, não pode ser alterado uma vez inicializado, (acesso à variável estática não pode ser alterado, e, portanto, tornou-se final com uma vantagem estática e exigem constante de inicialização manual)
Categoria: literal: 1,2, verdadeira, 'b', "Olá"
constante simbólica: A modificação final é definido. definitiva PI dupla = 3,14; - Variáveis e constantes convenção de nomenclatura:
todas as variáveis, métodos, nomes de classes: ver o nome conhecido italianos
variáveis membros de classes: a primeira letra minúscula, princípio corcunda de
variáveis locais: a primeira letra minúscula corcunda princípio
constante: letras maiúsculas e sublinhado combinação: MAX_VALUE
nome da classe: a primeira letra princípios de capital e corcunda: Goodman
nome do método: a primeira letra minúscula e princípios carta hump - A classificação de dados tipo, detalhada
tipos de dados de base (tipo de dados primitivos):
: numérico
tipos inteiros: 1byte byte, curto 2byte, int 4byte, longo 8byte
ponto flutuante tipo: 4byte flutuador, duplo 8byte
personagem: char 2byte
booleana: booleana 1bit
tipos de dados de referência (tipo de dados de referência) :( endereço de destino é registada)
classe: classe 4byte
interfaces: 4byte interface de
matriz: matriz [] 4byte - gama variável número inteiro de cada tipo, formas:
byte 1byte -128-127 (binário oito, mais ou menos metade sub)
2byte Curto -32.768-32.767
4byte int -21 -21 cem milhões de cem milhões de
8byte longo -2 63-2 63- 1 - Quatro tipos decimal inteiro expressões constantes:
Decimal: 99,
octal: começando 0
0 X ou início 0x: hex
binário: 0b ou 0B início - Java inteiro padrão (literalmente) Tipo constante:
int, long tipo literal if podem ser adicionados após a L ou l (int sem exceder o intervalo pode resultar, nenhum erro está na faixa de transição automática) - E a gama de variáveis de ponto flutuante para cada tipo de
flutuador 4byte -3.4E38-3.4E38
Duplo 8byte -3.4E308-3.4E308
flutuador sete mantissa precisamente, é um único comum de casal, duplo flutuante de precisão, e - O tipo padrão de ponto flutuante literal:
Duplo - Cada forma do binário flutuante-literal:
decimal: 3,14
notação científica: 314e2,314E-2
após o valor literal para aumentar o flutuador F ou F, o padrão não é um duplo, ou D pode ser adicionado após o duplo d - Não há números exatos calculados usando classes de erro:
classe java.math.BigDecimal para operações de ponto flutuante, comumente utilizados no campo das finanças.
java.math.BigInteger tipo comumente usado na aritmética inteira. - De ponto flutuante formas de comparação:
por BigDecimal; - BigDecimal métodos comuns:
BigDecimal.valueOf (duplas): utilizados para obter um valor preciso do ponto flutuante
de subtracção (BigDecimal): para subtracção.
multiplicar (BigDecimal): multiplicar
suplemento (BigDecimal): Adicionador
divisão (BigDecimal): divisão
abs (BigDecimal): valor absoluto
compareTo (BigDecimal): comparação, outro é 0, 1 grandemente, uma pequena -1
- 'A' == resultados de "A", por quê?
Os resultados não são comparáveis, o erro do compilador, um é uma cadeia de caracteres. - conjunto de caracteres carvão animal usado, do tamanho do espaço, a gama de
tabela de códigos de caracteres Unicode, 2 bytes, caracteres permitido 0-65536; que codifica a partir de '\ U000' a '\ uFFFF'
U representa Unicode, após a adição de 16 quatro ary. Note-se que 'One' é errado, ele é um caractere inválido - carbonizar manifestação literal do
carvão animal pode hexadecimal caracteres pode ser directamente utilizada para representar. - O caractere comumente caractere de escape \ com
\ b backspace \ u0008
\ n-wrap \ u000A
\ P & lt retorno de carro \ u000D
\ T guia Tab \ u0009
\ "aspas duplas \ u0022
\ 'aspas simples \ u0027
\ barra invertida \ u005c - A natureza da cadeia:
sequência de caracteres: sequência de char - valor constante boolean true / false ocupam espaço na memória?
1 - classificação operador: 8 tipos de
operações aritméticas (mono-, di-)
operador de atribuição
operadores de extensão
operadores relacionais (excepto o tamanho, etc., bem como o mesmo para o Exemplo Comparativo instanceof)
Lógico Operadores
bit a bit
operador condicional
carácter o operador de concatenação - Role%:
modulo, tomar o restante - regra operação operador binário:
inteiro aritmética:
dois inteiro operando literal, a presença de um resultado longo, Long também é
nenhum longa, são int, se o operando é um byte ou curto
operações de ponto flutuante:
Não duplo o resultado é dobrar
tanto para flutuar o resultado é um float.
Modulo aritmética:
número de operações em vírgula flutuante podem, em geral um número inteiro, o resultado é um "remanescente", os mesmos números de referência e operando à esquerda. - Unário regra operação: "+ / -" operador de incremento
I ++: primeiro com incremento
++ I: Após o incremento com
o operador ver um primeiro incremento, o primeiro incremento para a frente. - Operando Tipo operadores relacionais, o tipo de resultado
= não operadores relacionais;
! ==, todos = (básicos e de referência) tipos de dados podem ser usadas, quando um de referência (por exemplo, String) rácio é uma referência para o endereço.
'>,> =, <, <=' Apenas para o tipo numérico (byte / short / int / long , float / double, char) - Operando tipo de operador lógico, o tipo do resultado da operação, e & &&, | e || a diferença, o exclusivo OR ^ é determinado por:
operandos e resultados tipos: valor booleano.
&& é curto-circuito e, uma vez que deixou a primeira condição é falsa diretamente retorna false, e Análise de todos os operadores são obrigados, além & operando é uma operação non-bit quando o boolean.
Retorna verdadeiro || está diretamente em curto-circuito e, uma vez que deixou a primeira condição for verdadeira, | ele julga se todos os operandos necessários, além | operandos booleanos é uma operação non-bit quando o não-
prevenção de curto-circuito comumente ponteiro nulo.
^: Fase dois operandos é falso, diferente de verdade, além disso | quando o operando é uma operação XOR boolean é pouco - '<< 2 3' 'valor de valor, um valor de 3 ~: '12 >> 3
3 0b10100b0101: Resultados de 4
' 3 2 2', 2 3 binário desvio à esquerda de dois, o resultado é 12
'12 / 2/2/2', 3 binário 12 posição 3 tem o movimento para a direita. o resultado é uma forma semelhante, '12 >> 4' é 0 resultado - Cordas operador de concatenação "+" Regra:
enquanto um tipo String quando os dois operandos, o sistema irá automaticamente o outro operando é convertido para uma string e costura. - Precedência de Operadores:
Geral NÃO lógico "lógica" OU
A || B && C cálculo real é: A || (B && C) - conversão automática de tipos de dados:
preste atenção para o intervalo do número de literais, se o padrão for intervalo não mais de 2,1 bilhões int - O conceito de um elenco:
também conhecido como modelagem (descendente): usado para exibir a conversão de um tipo de valor, você pode ter falta de informação pode resultar em precisão reduzida ou estouro.
(Tipo) var
quando a série de ocorrer o tipo de alvo, irá ser truncado para valores diferentes (tipicamente na gama do ciclo)
não pode ser feita entre o fundido e o booleano qualquer tipo numérico. - Java classes e métodos de entrada de teclado comum:
Scanner scanner = new Scanner(System.in);
String name = scanner.nextLine();
int age = scanner.nextInt();
- fluxo livre instruções de controle:
estrutura sequencial, estrutura de selecção, uma estrutura cíclica - A natureza do programa:
variável, selecione declaração, declaração de loop - A configuração básica do algoritmo:
estrutura selecção variável, estrutura sequencial, uma estrutura de suporte comum da estrutura de base cíclica do algoritmo - estrutura de seleção de classificação:
o Se a estrutura de seleção: se uma única estrutura de seleção, if-else estrutura de seleção dupla, if-else if-else múltipla estrutura de seleção
estrutura de seleção Switch. - A obtenção de um número aleatório entre 0-1,
Java.lang.Math.ramdom (); pode gerar um [número aleatório entre 0 e 1). - Se o único ramo se não efetuar gravação subsequente {} código de execução:
executa uma primeira declaração mais tarde. - If-else, por vezes, ser substituído por aquele caminho:
1> 2 "false": "true"; condicional operador ?. - If-else estrutura if-else da ordem de execução mais opções, e preparar recomendações:
a ordem de execução: de cima para baixo, Yuzhen na execução e retorno
para preparar recomendações: condição não em galho subseqüente e condições de primeira ordem intersecção. Camada progressiva, necessidade de resolver a ordem. - mudança de estrutura escolha gramática múltipla, a aplicação do princípio:
switch (表达式) {
case 值1:
语句序列1;
[break];
case 值2:
语句序列2;
[break];
… … … … …
[default:
默认语句;]
}
Dependendo do valor da expressão, que coincide com o caso no início da implementação da etiqueta, tem vindo a implementar para quebrar a declaração ou o fim da instrução. Se o jogo ainda não tem, o processo avança para default (padrão quando presente)
tipos disponíveis no interruptor expressão 50.:
jdk1.5 antes: deve ser um inteiro, exceto longa, ou enumeração, não uma string
após jdk1.7: Maio Cadeia
expressão corrente pode ser: byte, curto, int, carvão animal , enumeração; Stirng (1,7 ou mais)
51. Se o interruptor de multi-ramificado e multi-ramificado é usado para distinguir:
qualquer interruptor pode ser mais ramificada multi-ramificada substituído por se;
mesa julgamento intervalo, quando apenas o suficiente se muitos ramos;
ramos interruptor recomendado limpar quando o valor é clara para fazer o equivalente a julgamento.
52. A estrutura do ciclo de classificação:
Quando Tipo: expressão booleana quando a condição é verdadeira, executa repetidamente um bloco de instruções quando a expressão é falsa apenas para parar o ciclo. Enquanto / para
se digitar: primeira execução de uma sentença, e então determinar a expressão booleana. Se for verdade, executar novamente. Repetidamente, até que a parada expressão booleana é falsa. O tempo-fazer
53. Nota a utilização dos enquanto que os pontos de loop:
início do ciclo isto é, a expressão booleana é determinada. Primeira implementação do primeiro acórdão
declaração deve ser o fim da tendência ciclo de declaração, ou um loop infinito.
54. do-while loop usando os pontos de atenção:
Primeiras declarações são executadas uma vez, e, em seguida, determinar a expressão booleana. Após o julgamento execução
declaração deve ser o fim da tendência ciclo de declaração, ou um loop infinito.
55. para a sintaxe loop, a ordem de execução de instrução:
para (expressão inicial; expressão booleana; factor de iteração) {
corpo do laço;
}
A. Definir o valor inicial da secção de inicialização variável do laço
B. Condições arbitrário expressão booleana julgar porção
C. ciclo (pode ignorar)
D. Iteração controlar o aumento ou diminuição do factor de ciclo variável
B. . . . . .
56. para a diferença entre o ciclo e ao mesmo tempo, DoWhile de:
para loop: Apoio a estrutura geral de interativo, flexível e eficaz, antes da primeira iteração, você precisa executar a inicialização, e então determinar a expressão booleana; em seguida, executar a instrução, após a execução, será realizando fator passo iterativo; (inicialização, e, em seguida, determina, depois de realizar a última iteração),
o tempo: iterações não suportados, o manual iterativa, efectuada após a primeira determinação,
se o tempo-: não suporta iteração, a iteração manualmente, depois de realizar a primeira determinação.
57. Separadores de vírgula usados Java, onde:
uma pluralidade de declarações de variáveis; loop para expressão inicial; expressão booleana; uma pluralidade de iterações de divisão fator; uma pluralidade de interface de; formal e parâmetros reais lista segmentação
58. loop se o ciclo pode estar vazia:
lata, mas usar dois separadas por um ponto e vírgula representa a entrar num ciclo infinito
59. o circuito duplo-internos para a compreensão:
número de linhas de controlo exteriores, controlar o número de colunas interiores
60. Continuar e quebrar distinção
pausa: para controlar os loops de fluxo, forçosamente sair do loop, o loop não executa o resto da frase; Além disso, mudar para quebrar declaração ramo interrompido multi-ramificada. A seguinte declaração não está em andamento
Continuar: usado para terminar um ciclo de processo, o ciclo de pular o resto da frase, o próximo ciclo está ligado, para as demonstrações precisa executar um fator passo iterativo, e enquanto em volta salto direto DoWhile ciclo de cabeçalho.
61. A pausa e continuar o uso de abas:
Desde o java Goto é uma palavra reservada, para sair do ciclo atual requer o uso de uma pausa multi-camada e continuar com abas
uso:
(apenas) antes do loop, adicione "nome de tag:" na forma de uma declaração fora de posição, usando um loop: fazer fora do nome da marca Braek ou nome da marca do formulário continuar.
62. A definição de um bloco de instruções, bloco de instrução aninhada pode declarar uma variável com o mesmo nome fazer:
também conhecida como instrução composta, {} com qualquer número em chaves java frase simples, determina o escopo de variáveis locais, bloco código de programa a ser executado como um todo. E o bloco pode ser aninhados.
não pode.
63. O método definido:
para um segmento de código de conclusão função específica;
para características comportamentais e funcionalidade das classes de objectos e conseguido.
O método é uma classe abstrata e uma características de comportamento do objeto.
É a unidade básica dos java programa, classes e objetos pertencentes ao método.
64. Um método de invocação:
nome método Nome do objecto (lista de argumentos); aqui, o nome do objecto é uma referência a um exemplo endereço real
do lado do processo estático também ser directamente invocado pelo nome de classe. Exemplos de método não-estática tem de ser chamado, não é comum para ver o interior de uma classe de objecto é adicionado como padrão porque não é esse ponteiro indica o objecto actualmente criado.
65. Observa o método utilizado:
argumentos reais, a mesma forma de tipos de dados e métodos devem ser declarados no parâmetro de ordem.
instrução de retorno termina operação ilegal e retornar o tipo necessário de dados. Use um tipo de retorno void fazer quando não há nenhum valor de retorno.
do método Java chamadas passar parâmetros, siga a transferência de valores (uma cópia de todos os dados transmitidos, o tipo de referência de dados é uma cópia do endereço)
do tipo básico de transferência é copiar o valor do valor de dados de
um tipo de referência é passado cópia do valor da aplicação alvo, mas apontando para o mesmo objeto.
66. O método de sobrecarga: sobrecarga definir:
uma classe a ser definida no mesmo nome de método múltipla, mas diferentes parâmetros do método. Quando invocado, o método de correspondência automática correspondentes aos diferentes parâmetros.
67. O método de configuração condições sobrecarregados:
método sobrecarregado, é realmente uma abordagem completamente diferente, mas o nome não apenas o mesmo!
Diferente: tipos de parâmetros formais, o número de parâmetros formais, a ordem dos parâmetros formais
apenas valores de retorno são diferentes, o método não constitui uma carga pesada, ele será relatado anomalia. (Não de acordo com o valor de retorno é determinado com base)
que diferem apenas no nome dos parâmetros formais do método não constitui uma carga pesada. (Sem sentido)
Nota tipo de conversão automática.
68. A chamada de método, quando se trata de sobrecargas do método correspondentes:
por tipo dos parâmetros reais do método chamado, pela primeira vez pelo correspondente tipo de linha original, se não, siga automaticamente convertido para corresponder ao tipo de regra, e segue um pequeno princípios de nível cruz. Se nenhuma exceção.
69. A idéia básica de um algoritmo recursivo, composto por:
chama-se
70. definição recursiva da cabeça: não saber quando chamar o método em si. Se ele não vai acabar em um loop infinito.
71. definição recursiva do corpo: a necessidade real para o método de tratamento específico processamento recursivo, declaração de processos de negócios, ao mesmo tempo demonstrando chamadas recursivas.
Procure n!;
public class TestRecursion{
public static void main(String[] args){
long n = 100;
System.out.printf("%d阶乘的结果:%s%n", n, factorial(n))
}
static long factorial(long n){
if(n==1){//递归头(尽头)
return n;
}else{
return n*factorial(n-1);//递归体 //实际就是 n * (n-1) 这里的n-1就是//需要通过递归求取的
)
}
}
princípio de chamadas:
as vantagens e desvantagens 72. recursiva:
um pouco: o programa é simples e fácil de entender, fácil de entender e depurar, sem ênfase na eficiência, com recursividade.
:( desvantagens demorado e memória) pilha sistema intensivo; o consumo de memória e mais, quando o nível de chamada por um longo tempo, o que é muito mais lento do que o ciclo. Além de resolver qualquer problema com uma utilização recursiva de iterações do loop pode ser resolvido. Quando os requisitos de alto desempenho, com circulação.