















Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
Este documento aborda conceitos importantes da programação em java, como modificadores de acesso, métodos estáticos, classes wrapper, exceções, coleções e interfaces, além de métodos e estados da classe thread. Também discute a criação de classes internas e anônimas.
Tipologia: Notas de estudo
1 / 23
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Resumo da API Java
Esse artigo tem como intuito passar o conhecimento da API Java, de um modo resumido. O alvo principal é servir como um guia de consulta para todos aqueles que utilizam o Java. Espero que esse documento seja tão útil como foi para mim. Introdução Quando dei início ao estudo para minha certificação comecei a fazer um resumo com todos os capítulos necessários que eu precisava conhecer e memorizar. Como não queria ficar toda hora consultando o livro ou o site, fiz esse documento para facilitar. Dediquei uma fase dos estudos totalmente aos simulados, onde esse resumo me ajudou a tirar dúvidas rapidamente. Meu intuito é dividir esse documento com aqueles que queiram estudar sobre Java (seja certificação ou apenas aprendizagem). Ressalto um detalhe a esse resumo reutilizando as palavras do Kuesley Fernandes em seu site (citado quadro Para Saber Mais): “ Algumas referências aqui citadas, poderão também ser encontradas no livro Java 2 Certificação Sun para Programador & Desenvolvedor da Kathy Sierra e Bert Bates por isso, gostaria de deixar bem claro que esse conteúdo não foi plagiado, simplesmente quero compartilhar com outras pessoas a experiência que estou adquirindo, através do estudo dirigido pela obra de Kathy e Bert .” Como a citação acima, destaco que o documento não tem intuito de copiar ou plagiar nenhum autor, e sim, compartilhar e ajudar outras pessoas que gostariam de obter conhecimento sobre o Java.
1. Fundamentos da Linguagem tipo bits fórmula faixa b yte 8 - (2)^7 à 2^7 - 1 - 128 ~ + s hort 16 - (2)^15 à 2^15 - 1 - 32768 a + i nt 32 - (2)^31 à 2^31- 1 - 2147483648 a + l ong 64 - (2)^63 à 2^63- 1 - 9223372036854775808 a + char 16 2^16- 1 65535
Métodos
3. Operadores e atribuições Unary operators are: ++ -- + -! ~ () Arithmetic operators are: * / % + - Shift operators are: << >> >>> Comparison operators are: < <= > >= instanceof == != Bitwise operators are: & ^ | Short-circuit operators are: && || Conditional operators are: ?: Assignment operators are: = "op=" Operador Condicional variable = boolean expression? value to assign if boolean expression is true : value to assign if boolean expression is false. Deslocamento de Bits >> deslocamento de bits à direita com sinal Fórmula: valor desejado dividido por 2 elevados a x (onde x é a quantidade de bits a deslocar) << deslocamento de bits à esquerda com sinal Fórmula: valor desejado multiplicado por 2 elevado a x (onde x é a quantidade de bits a deslocar) >>> deslocamento de bits à direita sem sinal sinal não é mantido, todo numero deslocado com esse sinal (mesmo que seja um número negativo) fica positivo Exceto em um caso particular: Deslocar uma quantidade superior à capacidade do tamanho. Por exemplo, deslocar 35 bits em uma variável do tipo int que comporta 32. O compilador fará divisão entre a 35 quantidade de bits a deslocar e 32 que é a capacidade do tipo em questão e o resto dessa divisão será a quantidade deslocada, nesse caso: 3 byte y = (byte) 8 >> 12; 12 % 8 = 4 (quatro bits a deslocar) Se for um múltiplo de 8 (no caso do tipo byte), por exemplo, 16 ou 32 em um tipo byte, não será deslocado nenhum pois o resto da divisão será 0 Portanto nem sempre o deslocamento de bits com o operador ( >>> ) será positivo. Deslocar 32 bits ou 64 bits em um tipo int que armazena o valor - 300 e terá o mesmo valor - 300.
4. Controle de fluxo, exceções e assertivas Assertions Assertivas - uso incorreto/inapropriado
Habilitar assertion nas classes do sistema: o java - esa o java - enablesystemassertions Como os assertions não estão sempre ligados no sistema, eles não devem ser usados para validar parâmetros de métodos públicos. Uma apropriada exceção de runtime deverá aparecer como:
6. Java.Lang - a classe Math, String e Wrappers Long
System.out.println( 32 / 0 ); // Resultado: java.lang.ArithmeticException System.out.println( 32.0 / 0.0 ); // Resultado: Infinity System.out.println( - 32.0 / 0.0 ); // Resultado: - Infinity System.out.println( 32.0 / - 0.0 ); // Resultado: - Infinity System.out.println( - 32.0 / - 0 ); // Resultado: - Infinity System.out.println( 32.0 / - 0 ); // Resultado: Infinity System.out.println( - 32.0 / - 0.0 ); // Resultado: Infinity Quando o divisor e o dividendo forem números inteiros: Se o divisor for 0, será lançada uma exceção. Quando o divisor é 0.0: SEMPRE HAVERÁ A TROCA DE SINAIS Quando o divisor for 0: NUNCA HAVERÁ A TROCA DE SINAIS, SEMPRE SERÁ MANTIDO O SINAL DO DIVIDENDO. Quando o divisor for diferente de 0 e 0. SEMPRE HAVERÁ JOGO DE SINAL Toda operação envolvendo números inteiro SEMPRE retornará um tipo int. Duas constantes são definidas na classe java.lang.Math:
Short signed numerical Double signed numerical Float signed numerical BigInteger signed numerical BigDecimal signed numerical File system-dependent lexicographic on pathname. String lexicographic Date chronological Map Faz um mapeamento de chave X valor, você tem um objeto chave para um objeto valor. O elemento de um Map é par de chave/valor. HashMap - conjunto Map não-ordenado e não classificado. Permite a existência de chave e valores nulos. Hashtable equivalente à HashMap com a diferença que métodos são sincronizados, e não permitem valores/chaves nulos LinkedHashMap - é uma versão ordenada (ordem de inserção/acesso) da interface Map, registra seu sucessor e predecessor, classe duplamente encadeada. LinkedHashMap extends HashMap e implements Map, Cloneable e Serializable. TreeMap - classe da Framework Collection Java que é classificada e conseqüentemente ordenada Classe Map Conjunto Lista Ordenada Classificada HashMap X não não Hashtable X não não TreeMap X sim sim LinkedHashMap X sim não HashSet X não não TreeSet X sim sim LinkedHashSet X sim não ArrayList X sim não Vector X sim não LinkedList X sim não
Observações: TreeSet implements SortedSet e TreeMap implements SortedMap. TreeSet e TreeMap armazenam elementos na ordem determinada pela interface Comparator ou Comparable. Todas as Tree implementam Cloneable. ListIterator extends Iterator. A interface Enumeration introduzida com o Java 1.0 prove uma maneira simples de se mover através dos elementos de um Vector ou de chaves/valores de uma Hashtable. Existem dois métodos: hasMoreElements e nextElement. A interface Iterator foi introduzida com o framework de coleções no Java 1.2. Existem 3 métodos: hasNext, next e remove. Interface ListIterator introduzida com o Java 1.2 na interface Iterator. A interface ListIterator extends a interface Iterator e declara métodos adicionais que provem capacidade de iterações para frente e para trás. A interface RandomAccess é uma interface de sinalização que não declara nenhum método. Vector e Array List implementam a interface RandomAccess. Figura 1. Hierarquia de interfaces/classes de coleção de dados em Java. Observação: Os nomes identificados na figura acima em itálico são interfaces, os demais são classes.
Classes internas e membros externos Instanciando um objeto interno fora da classe externa Referenciando a classe externa de dentro da classe interna Modificadores aplicados as classes internas comuns: final abstract public private protected static - com uma exceção citada adiante. Strictfp Classe interna local de método
Uma classe de método tem o modificador private por padrão, visto que não pode ser instanciada de nenhum outro local senão o método que encapsula a classe. Não tente instanciar a classe interna antes de criar externa! Os únicos modificadores aplicados a essa classe são: abstract final Nunca os dois ao mesmo tempo!!! Variáveis: Uma classe interna de método não pode referenciar as variáveis locais de método.
Porém, se a variável for final poderá ser referenciada. Classes internas anônimas Compilador só irá conhecer os métodos definidos na classe pai - qualquer tentativa de execução ou chamada de um método não existente, causará um erro de compilação: cannot resolve symbol.
Só variáveis final podem ser referenciada. Se precisar referenciar uma variável local dentro de uma classe anônima use array. Array é final seus elementos não. Classes finais não podem ser anônimas: Nunca podemos ter uma classe anônima a partir de uma classe final, pois uma classe anônima nada mais é do que uma herança de uma outra classe onde a subclasse