Sumário. Capítulo 1 Fundamentos da programação Java 3 PARTE I A LINGUAGEM JAVA 1
|
|
|
- João Henrique Arruda César
- 9 Há anos
- Visualizações:
Transcrição
1 Sumário PARTE I A LINGUAGEM JAVA 1 Capítulo 1 Fundamentos da programação Java 3 ASPECTOS BÁSICOS DA COMPUTAÇÃO 4 Os componentes de hardware de um computador 4 Bits, bytes e binário 6 O sistema operacional 6 O PROGRAMA 7 LINGUAGENS DE PROGRAMAÇÃO 8 A LINGUAGEM JAVA 9 Origem da linguagem Java 10 Contribuição da linguagem Java para a Internet 11 Applets Java 11 Segurança 12 Portabilidade 12 O segredo da linguagem Java: o bytecode 12 A evolução de Java 13 AS PRINCIPAIS CARACTERÍSTICAS DA PROGRAMAÇÃO ORIENTADA A OBJETOS 14 Encapsulamento 15 Polimorfismo 16 Herança 16 O JAVA DEVELOPMENT KIT 17 UM PRIMEIRO PROGRAMA SIMPLES 18 Inserindo o programa 18 Compilando o programa 19 Executando o programa 19 Primeiro exemplo de programa linha a linha 19 TRATANDO ERROS DE SINTAXE 22 UM SEGUNDO PROGRAMA SIMPLES 23
2 x Sumário OUTRO TIPO DE DADO 25 DUAS INSTRUÇÕES DE CONTROLE 28 A instrução if 28 O laço for 30 CRIE BLOCOS DE CÓDIGO 32 PONTO E VÍRGULA E POSICIONAMENTO 33 PRÁTICAS DE RECUO 34 AS PALAVRAS-CHAVE JAVA 36 IDENTIFICADORES EM JAVA 37 AS BIBLIOTECAS DE CLASSES JAVA 38 EXERCÍCIOS 39 Capítulo 2 Introdução aos tipos de dados e operadores 42 POR QUE OS TIPOS DE DADOS SÃO IMPORTANTES 42 TIPOS PRIMITIVOS DA LINGUAGEM JAVA 43 Inteiros 43 Tipos de ponto flutuante 45 Caracteres 46 O tipo booleano 47 LITERAIS 49 Literais hexadecimais, octais e binários 50 Sequências de escape de caracteres 51 Literais de strings 51 UM EXAME MAIS DETALHADO DAS VARIÁVEIS 52 Inicializando uma variável 53 Inicialização dinâmica 53 ESCOPO E O TEMPO DE VIDA DAS VARIÁVEIS 54 OPERADORES 57 OPERADORES ARITMÉTICOS 57 Incremento e decremento 58 OPERADORES RELACIONAIS E LÓGICOS 59 OPERADORES LÓGICOS DE CURTO-CIRCUITO 61 O OPERADOR DE ATRIBUIÇÃO 63 ATRIBUIÇÕES ABREVIADAS 63 CONVERSÃO DE TIPOS EM ATRIBUIÇÕES 64 USANDO UMA COERÇÃO 65 PRECEDÊNCIA DE OPERADORES 67 EXPRESSÕES 69 Conversão de tipos em expressões 69 Espaçamento e parênteses 71 EXERCÍCIOS 72
3 Sumário xi Capítulo 3 Instruções de controle de programa 75 CARACTERES DE ENTRADA DO TECLADO 76 A INSTRUÇÃO if 77 Ifs ANINHADOS 79 A ESCADA if-else-if 80 A INSTRUÇÃO switch 81 INSTRUÇÕES switch ANINHADAS 84 O LAÇO for 88 ALGUMAS VARIAÇÕES DO LAÇO for 89 Partes ausentes 90 O laço infinito 91 Laços sem corpo 91 DECLARANDO VARIÁVEIS DE CONTROLE DE LAÇO DENTRO DA INSTRUÇÃO for 92 O LAÇO for MELHORADO 93 O LAÇO while 93 O LAÇO do-while 95 USE break PARA SAIR DE UM LAÇO 100 USE break COMO UMA FORMA DE goto 102 USE continue 106 LAÇOS ANINHADOS 111 EXERCÍCIOS 112 Capítulo 4 Introdução a classes, objetos e métodos 116 FUNDAMENTOS DAS CLASSES 116 Forma geral de uma classe 117 Definindo uma classe 118 COMO OS OBJETOS SÃO CRIADOS 121 AS VARIÁVEIS DE REFERÊNCIA E A ATRIBUIÇÃO 121 MÉTODOS 123 Adicionando um método à classe Vehicle 123 RETORNANDO DE UM MÉTODO 125 RETORNANDO UM VALOR 126 USANDO PARÂMETROS 128 Adicionando um método parametrizado a Vehicle 130 CONSTRUTORES 138 CONSTRUTORES PARAMETRIZADOS 139 Adicionando um construtor à classe Vehicle 140 O OPERADOR new REVISITADO 142 COLETA DE LIXO E FINALIZADORES 142 O método finalize( ) 143 A PALAVRA-CHAVE this 146 EXERCÍCIOS 148
4 xii Sumário Capítulo 5 Mais tipos de dados e operadores 152 ARRAYS 152 Arrays unidimensionais 153 ARRAYS MULTIDIMENSIONAIS 158 Arrays bidimensionais 158 Arrays irregulares 159 Arrays de três ou mais dimensões 161 Inicializando arrays multidimensionais 161 SINTAXE ALTERNATIVA PARA A DECLARAÇÃO DE ARRAYS 163 ATRIBUINDO REFERÊNCIAS DE ARRAYS 163 USANDO O MEMBRO length 165 O LAÇO for DE ESTILO FOR-EACH 173 Iterando por arrays multidimensionais 176 Aplicando o laço for melhorado 177 STRINGS 178 Construindo strings 178 Operando com strings 179 Arrays de strings 181 Strings não podem ser alterados 182 Usando um string para controlar uma instrução switch 183 USANDO ARGUMENTOS DE LINHA DE COMANDO 184 OS OPERADORES BITWISE 186 Os operadores bitwise AND, OR, XOR e NOT 186 Os operadores de deslocamento 191 Atribuições abreviadas bitwise 193 O OPERADOR? 197 EXERCÍCIOS 198 Capítulo 6 Verificação minuciosa dos métodos e classes 202 CONTROLANDO O ACESSO A MEMBROS DE CLASSES 202 Modificadores de acesso da linguagem Java 203 PASSE OBJETOS PARA OS MÉTODOS 208 COMO OS ARGUMENTOS SÃO PASSADOS 209 RETORNANDO OBJETOS 212 SOBRECARGA DE MÉTODOS 214 SOBRECARREGANDO CONSTRUTORES 219 RECURSÃO 225 ENTENDENDO static 229 Variáveis estáticas 230 Métodos estáticos 232 Blocos estáticos 233
5 Sumário xiii INTRODUÇÃO ÀS CLASSES ANINHADAS E INTERNAS 237 VARARGS: ARGUMENTOS EM QUANTIDADE VARIÁVEL 241 Aspectos básicos dos varargs 242 Sobrecarregando métodos varargs 244 Varargs e ambiguidade 246 EXERCÍCIOS 247 Capítulo 7 Herança 253 ASPECTOS BÁSICOS DE HERANÇA 253 ACESSO A MEMBROS E HERANÇA 256 CONSTRUTORES E HERANÇA 259 USANDO super PARA CHAMAR CONSTRUTORES DA SUPERCLASSE 261 USANDO super PARA ACESSAR MEMBROS DA SUPERCLASSE 265 CRIANDO UMA HIERARQUIA DE VÁRIOS NÍVEIS 269 QUANDO OS CONSTRUTORES SÃO EXECUTADOS? 272 REFERÊNCIAS DA SUPERCLASSE E OBJETOS DA SUBCLASSE 273 SOBREPOSIÇÃO DE MÉTODOS 278 MÉTODOS SOBREPOSTOS DÃO SUPORTE AO POLIMORFISMO 281 POR QUE SOBREPOR MÉTODOS? 283 Aplicando a sobreposição de métodos a TwoDShape 283 USANDO CLASSES ABSTRATAS 287 USANDO final 292 A palavra-chave final impede a sobreposição 292 A palavra-chave final impede a herança 292 Usando final com membros de dados 293 A CLASSE Object 294 EXERCÍCIOS 295 Capítulo 8 Interfaces 298 ASPECTOS BÁSICOS DA INTERFACE 298 CRIANDO UMA INTERFACE 299 IMPLEMENTANDO UMA INTERFACE 300 USANDO REFERÊNCIAS DE INTERFACES 304 IMPLEMENTANDO VÁRIAS INTERFACES 306 CONSTANTES EM INTERFACES 314 INTERFACES PODEM SER ESTENDIDAS 316 INTERFACES ANINHADAS 317 CONSIDERAÇÕES FINAIS SOBRE AS INTERFACES 318 EXERCÍCIOS 318
6 xiv Sumário Capítulo 9 Pacotes 321 ASPECTOS BÁSICOS DOS PACOTES 321 Definindo um pacote 322 Encontrando pacotes e CLASSPATH 323 Exemplo breve de pacote 323 PACOTES E O ACESSO A MEMBROS 325 Exemplo de acesso a pacote 326 Entendendo os membros protegidos 328 IMPORTANDO PACOTES 330 Importando pacotes Java padrão 331 IMPORTAÇÃO ESTÁTICA 335 EXERCÍCIOS 338 Capítulo 10 Tratamento de exceções 341 HIERARQUIA DE EXCEÇÕES 342 FUNDAMENTOS DO TRATAMENTO DE EXCEÇÕES 342 Usando try e catch 343 Exemplo de exceção simples 343 CONSEQUÊNCIAS DE UMA EXCEÇÃO NÃO CAPTURADA 346 EXCEÇÕES PERMITEM QUE VOCÊ TRATE ERROS NORMALMENTE 347 USANDO VÁRIAS CLÁUSULAS CATCH 349 CAPTURANDO EXCEÇÕES DE SUBCLASSES 350 BLOCOS try PODEM SER ANINHADOS 351 LANÇANDO UMA EXCEÇÃO 353 Relançando uma exceção 354 EXAME MAIS DETALHADO DE Throwable 355 USANDO finally 357 USANDO throws 359 EXCEÇÕES INTERNAS DA LINGUAGEM JAVA 360 NOVOS RECURSOS DE EXCEÇÕES ADICIONADOS PELO JDK7 363 CRIANDO SUBCLASSES DE EXCEÇÕES 364 EXERCÍCIOS 371 Capítulo 11 Usando I/O 376 I/O JAVA É BASEADO EM FLUXOS 377 FLUXOS DE BYTES E FLUXOS DE CARACTERES 377 CLASSES DE FLUXOS DE BYTES 377 CLASSES DE FLUXOS DE CARACTERES 378 FLUXOS PREDEFINIDOS 379 USANDO OS FLUXOS DE BYTES 380
7 Sumário xv Lendo a entrada do console 381 Gravando a saída no console 382 LENDO E GRAVANDO ARQUIVOS USANDO FLUXOS DE BYTES 383 Obtendo entradas de um arquivo 384 Gravando em um arquivo 387 FECHANDO AUTOMATICAMENTE UM ARQUIVO 389 LENDO E GRAVANDO DADOS BINÁRIOS 392 ARQUIVOS DE ACESSO ALEATÓRIO 397 USANDO OS FLUXOS BASEADOS EM CARACTERES DA LINGUAGEM JAVA 400 Entrada do console com o uso de fluxos de caracteres 400 Saída no console com o uso de fluxos de caracteres 404 I/O DE ARQUIVO COM O USO DE FLUXOS DE CARACTERES 405 Usando um FileWriter 405 Usando um FileReader 406 File 408 Obtendo as propriedades de um arquivo 408 Obtendo uma listagem de diretório 410 Usando FilenameFilter 411 A alternativa listfiles( ) 412 Vários métodos utilitários de File 412 USANDO OS ENCAPSULADORES DE TIPOS DA LINGUAGEM JAVA PARA CONVERTER STRINGS NUMÉRICOS 414 EXERCÍCIOS 423 Capítulo 12 Programação com várias threads 428 FUNDAMENTOS DO USO DE VÁRIAS THREADS 428 A CLASSE Thread E A INTERFACE Runnable 429 CRIANDO UMA THREAD 430 Algumas melhorias simples 433 CRIANDO VÁRIAS THREADS 438 DETERMINANDO QUANDO UMA THREAD TERMINA 440 PRIORIDADES DAS THREADS 443 SINCRONIZAÇÃO 444 USANDO MÉTODOS SINCRONIZADOS 445 A INSTRUÇÃO synchronized 448 COMUNICAÇÃO ENTRE THREADS COM O USO DE notify( ), wait( ) E notifyall( ) 451 Exemplo que usa wait( ) e notify( ) 451 SUSPENDENDO, RETOMANDO E ENCERRANDO THREADS 457 EXERCÍCIOS 462
8 xvi Sumário Capítulo 13 Enumerações, autoboxing e anotações 467 ENUMERAÇÕES 467 Fundamentos da enumeração 468 AS ENUMERAÇÕES JAVA SÃO TIPOS DE CLASSE 471 MÉTODOS values( ) E valueof( ) 471 CONSTRUTORES, MÉTODOS, VARIÁVEIS DE INSTÂNCIA E ENUMERAÇÕES 472 Duas restrições importantes 474 ENUMERAÇÕES HERDAM Enum 474 AUTOBOXING 482 Encapsuladores de tipos 482 Fundamentos do autoboxing 484 Autoboxing e os métodos 485 Autoboxing/unboxing ocorre em expressões 486 Advertência 488 ANOTAÇÕES (METADADOS) 489 Criando e usando uma anotação 489 Anotações internas 490 EXERCÍCIOS 492 Capítulo 14 Tipos genéricos 496 FUNDAMENTOS DOS TIPOS GENÉRICOS 497 Exemplo simples de genérico 497 Genéricos só funcionam com objetos 501 Tipos genéricos diferem de acordo com seus argumentos de tipo 501 Classe genérica com dois parâmetros de tipo 501 A forma geral de uma classe genérica 503 TIPOS LIMITADOS 504 USANDO ARGUMENTOS CURINGAS 507 CURINGAS LIMITADOS 510 MÉTODOS GENÉRICOS 513 CONSTRUTORES GENÉRICOS 515 HIERARQUIAS DE CLASSES GENÉRICAS 516 INTERFACES GENÉRICAS 519 TIPOS BRUTOS E CÓDIGO LEGADO 526 INFERÊNCIA DE TIPOS COM O OPERADOR LOSANGO 529 ERASURE 531 ERROS DE AMBIGUIDADE 531 ALGUMAS RESTRIÇÕES DOS GENÉRICOS 532 Parâmetros de tipos não podem ser instanciados 532 Restrições aos membros estáticos 533 Restrições aos arrays genéricos 533
9 Sumário xvii Restrições a exceções genéricas 534 EXERCÍCIOS 534 Capítulo 15 Applets e as outras palavras-chave Java 539 ASPECTOS BÁSICOS DOS APPLETS 539 ESQUELETO DE APPLET COMPLETO 543 INICIALIZAÇÃO E ENCERRAMENTO DO APPLET 544 ASPECTO-CHAVE DA ARQUITETURA DE UM APPLET 544 SOLICITANDO ATUALIZAÇÃO 545 USANDO A JANELA DE STATUS 550 PASSANDO PARÂMETROS PARA APPLETS 551 AS OUTRAS PALAVRAS-CHAVE JAVA 553 Modificador volatile 554 Modificador transient 554 instanceof 554 strictfp 554 assert 555 Métodos nativos 555 EXERCÍCIOS 557 Capítulo 16 Introdução ao projeto orientado a objetos 559 UM SOFTWARE ELEGANTE E POR QUE ISSO IMPORTA 560 Propriedades de um software elegante 561 MÉTODOS ELEGANTES 563 Convenções de nomenclatura 563 Coesão dos métodos 564 Objetos bem-formados 566 Documentação interna 567 Documentação externa 568 CLASSES ELEGANTES 571 A coesão das classes e o padrão Expert 571 Evitando duplicação 573 Interface completa 575 Projete pensando em mudanças 576 Lei de Demeter 579 HERANÇA VERSUS DELEGAÇÃO 581 Diagramas de classes UML 581 Possibilidade de reutilização do código 584 O relacionamento É-um 585 Comportamento semelhante 587 Polimorfismo 590
10 xviii Sumário Custos da herança 590 PADRÕES DE PROJETO 593 Padrão Adapter 594 Padrão Observer 597 EXERCÍCIOS 602 PARTE II INTRODUÇÃO À PROGRAMAÇÃO DE GUIs COM SWING 607 Capítulo 17 Aspectos básicos de Swing 609 ORIGENS E FILOSOFIA DE PROJETO DE SWING 610 COMPONENTES E CONTÊINERES 612 Componentes 612 Contêineres 613 Painéis do contêiner de nível superior 613 GERENCIADORES DE LEIAUTE 614 PRIMEIRO PROGRAMA SWING SIMPLES 615 Primeiro exemplo de Swing linha a linha 617 TRATAMENTO DE EVENTOS 621 Eventos 621 Fontes de eventos 621 Ouvintes de eventos 622 Classes de eventos e interfaces de ouvintes 622 Classes adaptadoras 624 USANDO UM BOTÃO DE AÇÃO 625 INTRODUÇÃO AO JTextField 633 USE CLASSES INTERNAS ANÔNIMAS PARA TRATAR EVENTOS 645 EXERCÍCIOS 646 Capítulo 18 Examinando os controles de Swing 649 JLabel E ImageIcon 650 OS BOTÕES DE SWING 653 Tratando eventos de ação 654 Tratando eventos de item 654 JButton 655 JToggleButton 658 Caixas de seleção 660 Botões de rádio 662 JTextField 665 JScrollPane 675 JList 682 JComboBox 686
11 Sumário xix ÁRVORES 689 JTable 693 UMA EXPLICAÇÃO RÁPIDA DOS MODELOS 696 EXERCÍCIOS 697 Capítulo 19 Trabalhando com menus 700 ASPECTOS BÁSICOS DOS MENUS 700 UMA VISÃO GERAL DE JMenuBar, JMenu E JMenuItem 702 JMenuBar 702 JMenu 703 JMenuItem 704 CRIE UM MENU PRINCIPAL 704 ADICIONE MNEMÔNICOS E ACELERADORES AOS ITENS DE MENU 709 ADICIONE IMAGENS E DICAS DE FERRAMENTAS AOS ITENS DE MENU 712 USE JRadioButtonMenuItem E JCheckBoxMenuItem 720 EXERCÍCIOS 722 Capítulo 20 Caixas de diálogo 725 JOptionPane 726 showmessagedialog( ) 728 showconfirmdialog( ) 732 showinputdialog( ) 736 showoptiondialog( ) 741 JDialog 746 CRIE UMA CAIXA DE DIÁLOGO NÃO MODAL 750 SELECIONE ARQUIVOS COM JFileChooser 751 EXERCÍCIOS 762 Capítulo 21 Threads, applets e geração de componentes 766 O USO DE VÁRIAS THREADS EM SWING 766 USE Timer 773 CRIE APPLETS SWING 779 Um applet Swing simples 780 GERANDO COMPONENTES 787 Fundamentos da geração de componentes 787 O contexto gráfico 788 Calcule a área de desenho 789 Solicite a geração do componente 789 Um exemplo de geração de componente 789 EXERCÍCIOS 795
12 xx Sumário PARTE III EXAMINANDO A BIBLIOTECA DE APIs JAVA 797 Capítulo 22 Manipulação de strings 799 ASPECTOS BÁSICOS DOS STRINGS 799 OS CONSTRUTORES DE STRING 800 TRÊS RECURSOS DA LINGUAGEM RELACIONADOS A STRINGS 802 Literais de strings 803 Concatenação de strings 803 Concatenação de strings com outros tipos de dados 803 Sobrepondo tostring( ) 804 O MÉTODO length( ) 809 OBTENDO OS CARACTERES DE UM STRING 809 charat( ) 810 getchars( ) 810 tochararray( ) 811 COMPARAÇÃO DE STRINGS 812 equals( ) e equalsignorecase( ) 812 equals( ) versus == 813 regionmatches( ) 814 startswith( ) e endswith( ) 814 compareto( ) e comparetoignorecase( ) 815 USANDO indexof( ) E lastindexof( ) 817 OBTENDO UM STRING MODIFICADO 819 substring( ) 819 replace( ) 820 trim( ) 821 ALTERANDO A CAIXA DOS CARACTERES DE UM STRING 822 StringBuffer E StringBuilder 825 EXERCÍCIOS 825 Capítulo 23 Examinando o pacote java.lang 828 ENCAPSULADORES DE TIPOS PRIMITIVOS 829 Number 829 Double e Float 830 Byte, Short, Integer e Long 831 Character 834 Boolean 837 O autoboxing e os encapsuladores de tipos 837 A CLASSE Math 838 A CLASSE Process 842 A CLASSE ProcessBuilder 842 A CLASSE Runtime 844 A CLASSE System 846
13 Sumário xxi Usando currenttimemillis( ) para marcar o tempo de execução do programa 847 Usando arraycopy( ) 848 Obtendo valores de propriedades 849 Redirecionando fluxos de I/O padrão 849 A CLASSE Object 851 A CLASSE Class 851 A CLASSE Enum 853 CLASSES RELACIONADAS A THREADS E A INTERFACE Runnable 853 OUTRAS CLASSES 854 AS INTERFACES DE java.lang 854 A interface Comparable 855 A interface Appendable 857 A interface Iterable 857 A interface Readable 858 A interface CharSequence 858 A interface AutoCloseable 859 EXERCÍCIOS 860 Capítulo 24 Examinando o pacote java.util 862 A CLASSE Locale 864 TRABALHANDO COM DATA E HORA 867 Date 867 Calendar e GregorianCalendar 868 FORMATANDO A SAÍDA COM Formatter 873 Os construtores de Formatter 873 Aspectos básicos da formatação 874 Formatando strings e caracteres 877 Formatando números 877 Formatando data e hora 878 Os especificadores %n e %% 880 Especificando uma largura de campo mínima 880 Especificando precisão 881 Usando os flags de formatação 882 A opção de uso de maiúsculas 884 Usando um índice de argumento 885 Formatação para um local diferente 886 Fechando um Formatter 887 A FORMATAÇÃO E O MÉTODO printf( ) 890 A CLASSE Scanner 892 Os construtores de Scanner 892 Aspectos básicos da varredura 892 Alguns exemplos com Scanner 894
14 xxii Sumário Mais alguns recursos de Scanner 899 A CLASSE Random 900 USE Observable E Observer 901 AS CLASSES Timer E TimerTask 905 CLASSES E INTERFACES UTILITÁRIAS VARIADAS 907 EXERCÍCIOS 908 Capítulo 25 Usando as estruturas de dados do Collections Framework 911 VISÃO GERAL DAS ESTRUTURAS DE DADOS 912 Pilhas e filas 912 Listas encadeadas 913 Árvores 914 Tabelas hash 915 Selecionando uma estrutura de dados 915 VISÃO GERAL DAS COLEÇÕES 916 AS INTERFACES DE COLEÇÕES 917 A interface Collection 918 A interface List 920 A interface Set 920 A interface SortedSet 920 A interface NavigableSet 922 A interface Queue 922 A interface Deque 924 AS CLASSES DE COLEÇÕES 926 A classe ArrayList 927 A classe LinkedList 930 A classe HashSet 934 A classe TreeSet 936 A classe LinkedHashSet 938 A classe ArrayDeque 939 A classe PriorityQueue 941 ACESSANDO UMA COLEÇÃO COM UM ITERADOR 942 Usando um iterador 942 A alternativa aos iteradores com o uso de for-each 946 TRABALHANDO COM MAPAS 946 As interfaces de mapas 946 A interface Map 947 A interface SortedMap 947 A interface NavigableMap 948 A interface Map.Entry 949 As classes de mapas 951
15 Sumário xxiii A classe HashMap 952 A classe TreeMap 953 A classe LinkedHashMap 955 COMPARADORES 956 OS ALGORITMOS DE COLEÇÕES 959 A CLASSE Arrays 962 AS CLASSES E INTERFACES LEGADAS 963 A interface Enumeration 963 Vector 963 Stack 963 Dictionary 963 Hashtable 963 Properties 964 EXERCÍCIOS 964 Capítulo 26 Redes com java.net 967 ASPECTOS BÁSICOS DE REDES 967 AS CLASSES E INTERFACES DE REDES 968 A CLASSE InetAddress 969 A CLASSE Socket 971 A CLASSE URL 975 A CLASSE URLConnection 977 A CLASSE HttpURLConnection 982 DATAGRAMAS 984 DatagramSocket 985 DatagramPacket 985 Um exemplo de datagrama 986 EXERCÍCIOS 989 Capítulo 27 Os utilitários de concorrência 991 OS PACOTES DA API DE CONCORRÊNCIA 992 java.util.concurrent 992 java.util.concurrent.atomic 993 java.util.concurrent.locks 993 USANDO OBJETOS DE SINCRONIZAÇÃO 994 Semaphore 994 CountDownLatch 997 CyclicBarrier 1000 Exchanger 1002 Phaser 1005 USANDO UM EXECUTOR 1012 Um exemplo de executor simples 1013
16 xxiv Sumário USANDO Callable E Future 1015 A ENUMERAÇÃO TimeUnit 1018 AS COLEÇÕES DE CONCORRÊNCIA 1020 BLOQUEIOS 1020 OPERAÇÕES ATÔMICAS 1023 PROGRAMAÇÃO PARALELA COM O FRAMEWORK FORK/JOIN 1024 AS PRINCIPAIS CLASSES DO FRAMEWORK FORK/JOIN 1025 ForkJoinTask<V> 1025 RecursiveAction 1026 RecursiveTask<V> 1026 ForkJoinPool 1027 A ESTRATÉGIA DE DIVIDIR E CONQUISTAR 1028 Um primeiro exemplo simples do Framework Fork/Join 1029 Entendendo o impacto do nível de paralelismo 1031 Um exemplo que usa RecursiveTask<V> 1034 Executando uma tarefa de forma assíncrona 1036 OS UTILITÁRIOS DE CONCORRÊNCIA VERSUS A ABORDAGEM TRADICIONAL JAVA 1037 EXERCÍCIOS 1038 Apêndice A Usando comentários de documentação da linguagem Java 1041 TAGS DE javadoc 1041 FORMA GERAL DE UM COMENTÁRIO DE DOCUMENTAÇÃO 1045 O QUE javadoc GERA 1046 EXEMPLO QUE USA COMENTÁRIOS DE DOCUMENTAÇÃO 1046 Apêndice B Introdução às expressões regulares 1049 A CLASSE Pattern 1049 A CLASSE Matcher 1050 ASPECTOS BÁSICOS DA SINTAXE DAS EXPRESSÕES REGULARES 1050 DEMONSTRANDO A CORRESPONDÊNCIA DE PADRÕES 1051 USANDO O CARACTERE CURINGA E QUANTIFICADORES 1053 TRABALHANDO COM CLASSES DE CARACTERES 1055 USANDO replaceall( ) 1055 A CONEXÃO COM A CLASSE String 1056 ASSUNTOS A EXPLORAR 1056 Apêndice C Respostas de exercícios selecionados 1057 Índice 1111
Sumário. Introdução... xvi. 1 Fundamentos da linguagem Java... 1
Introdução... xvi 1 Fundamentos da linguagem Java... 1 Origem da linguagem Java... 3 Qual a relação entre Java, C e C++?... 4 Qual a relação entre Java e C#?... 4 Contribuições da linguagem Java para a
Sumário. Capítulo 1 Introdução 29. Capítulo 2 Utilizando Objetos 59
Sumário Capítulo 1 Introdução 29 1.1 O que é programação? 30 1.2 A anatomia de um computador 31 1.3 Traduzindo programas legíveis pelo homem em código de máquina 36 1.4 A linguagem de programação Java
Java Básico. Carga Horária: 32 horas. Pré-requisito: Lógica de Programação; JAVA. Conteúdo Programático
Java Básico Objetivo: Os assuntos apresentados no decorrer do curso Java Básico incluem os conceitos gerais desta linguagem assim como a definição e utilização de seus recursos diversos, tais como: tipos
SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA...1
SUMÁRIO CAPÍTULO 1 INTRODUÇÃO AO JAVA...1 A Origem...2 O Caminho Para a Aprendizagem...4 Java Como Plataforma...6 Finalidade...8 Características...11 Perspectivas...13 Exercícios...14 CAPÍTULO 2 AMBIENTE
CONTEÚDO PROGRAMÁTICO
CONTEÚDO PROGRAMÁTICO Java Básico Carga horária: 24 horas TreinaWeb Tecnologia LTDA CNPJ: 06.156.637/0001-58 Av. Paulista, 1765 - Conj 71 e 72 São Paulo - SP CONTEÚDO PROGRAMÁTICO 1 - Um pouco sobre o
CONTEÚDO PROGRAMÁTICO
CONTEÚDO PROGRAMÁTICO C# C# (C Sharp) Básico Carga horária: 24 horas CONTEÚDO PROGRAMÁTICO TreinaWeb Tecnologia LTDA CNPJ: 06.156.637/0001-58 Av. Paulista, 1765 - Conj 71 e 72 São Paulo - SP 1 - Conhecendo
No final deste curso, saberás criar programas através da linguagem de programação Java.
Programação em Java Programação Formato: Mentored - Online Preço: 415 ( Os valores apresentados não incluem IVA. Oferta de IVA a particulares e estudantes. ) Horário: Flexível das 24h/24h Duração: ~45h
Sumário. Introdução 1
Sumário Introdução 1 Capítulo 1. Rápida Introdução à Programação Procedural 7 Criando e Executando Programas Python 7 O Lindo Coração do Python 12 Parte #1: Tipos de Dados 12 Parte #2: Referência de Objeto
PACOTE COM OS CURSOS (LÓGICA DE PROGRAMAÇÃO PROGRAMAÇÃO ORIENTADA A OBJETOS SQL BÁSICO JAVA BÁSICO JAVA AVANÇADO)
DESENVOLVEDOR JAVA I PACOTE COM OS CURSOS (LÓGICA DE PROGRAMAÇÃO PROGRAMAÇÃO ORIENTADA A OBJETOS SQL BÁSICO JAVA BÁSICO JAVA AVANÇADO) Objetivo Lógica de Programação: O curso tem como objetivo apresentar
Java. Guia do Programador. Peter Jandl Junior. Novatec
Java Guia do Programador Peter Jandl Junior Novatec Sumário Agradecimentos...15 Sobre o autor...16 Prefácio...17 Parte I Programação Java...19 Capítulo 1 Introdução...20 1.1 A Linguagem Java...20 1.2 Breve
Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java
Guia da Sintaxe do Java TIPOS PRIMITIVOS DE DADOS DO JAVA São os tipos nativos de dados do Java, que podem ser usados na declaração de atributos, variáveis, parâmetros. Tipo primitivo Tamanho Valor padrão
Linguagem Java - Introdução
Linguagem Java - Introdução Identificadores válidos resultado teste01 _numeroclientes $fortuna Identificadores Identificadores inválidos 101dalmatas 34 #x Palavras reservadas abstract assert*** boolean
Tipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
Tipos, Literais, Operadores
Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não
1) DADOS DA OBRA: Programando em Java 2 Teoria e Aplicações Rui Rossi dos Santos 2004 Axcel Books (
1) DADOS DA OBRA: Título: Programando em Java 2 Teoria e Aplicações Autor: Rui Rossi dos Santos Ano: 2004 Editora: Axcel Books (http://www.axcel.com.br) Páginas: 580 Encadernação: Capa dura 2) DESCRIÇÃO
Sumário. 1 Introdução 1. Parte um: A linguagem Objective-C 2 Programação com Objective-C 7. 3 Classes, objetos e métodos 27
Sumário 1 Introdução 1 O que você vai aprender neste livro 2 Como o livro está organizado 3 Suporte 5 Agradecimentos 5 Prefácio da quarta edição 6 Parte um: A linguagem Objective-C 2 Programação com Objective-C
Palavras Reservadas da Linguagem Java
Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de
Desenvolva de qualquer sistema operacional para qualquer sistema operacional. Sem limites.
Desenvolva de qualquer sistema operacional para qualquer sistema operacional. Sem limites. Gabriel Pereira, Especialista em Java da Clarify Projete e desenvolva situações de Mercado com a criação de um
1.1 o que é um algoritmo... 6
sumário introdução 1 1 fundamentos 5 1.1 o que é um algoritmo... 6 1.1.1 algoritmos executados por um computador...7 1.1.2 comandos básicos executados por um computador...11 1.1.3 da necessidade do desenvolvimento
Lição 4 Fundamentos da programação
Lição 4 Fundamentos da programação Introdução à Programação I 1 Objetivos Ao final desta lição, o estudante será capaz de: Identificar as partes básicas de um programa em Java Reconhecer as diferenças
Noçõ linguagem Java. Profs. Marcel Hugo e Jomi Fred Hübner. Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB
Noçõ ções básicas b da linguagem Java Profs. Marcel Hugo e Jomi Fred Hübner Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB Introduçã ção Origem Funcionamento Vantagens Linguagem
Programação Orientada a Objetos
Programação Orientada a Objetos Prof. Kléber de Oliveira Andrade [email protected] Coleções, Propriedades, Resources e Strings (Parte 2) Coleções É comum usarmos um objeto que armazena vários outros
Programação de Computadores II TCC Turma A-1
Programação de Computadores II TCC-00.309 Turma A-1 Conteúdo Introdução ao Java Professor Leandro Augusto Frata Fernandes [email protected] Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2015.1/tcc-00.309
Linguagem Java. Introdução. Rosemary Silveira Filgueiras Melo
Linguagem Java Introdução Rosemary Silveira Filgueiras Melo [email protected] 1 Tópicos abordados Histórico da Linguagem Caracterização da Linguagem Criação de Programa Java inicial Entrada e Saída
JAVA. Professor: Bruno Toledo
JAVA Professor: Bruno Toledo Funcionamento de uma LP Em uma Linguagem de Programação (LP) como C e Pascal, temos o seguinte quadro quando vamos compilar um programa. Código fonte em c Teste.c Gera código
Introdução à Programação para Dispositivos Móveis
Introdução à Programação para Dispositivos Móveis Aula 05 Prof. Diemesleno Souza Carvalho [email protected] http://www.diemesleno.com.br Na aula passada vimos... Na aula passada vimos... Ambiente
Análise de Programação
Análise de Programação Fundamentos da Linguagem de Programação Java Prof. Gilberto B. Oliveira Variáveis Atributos: Variáveis Declaradas fora de um método, sem o modificador static Variáveis membro ou
Sumário. Parte I JavaScript básica. 1 Introdução a JavaScript Estrutura léxica Tipos, valores e variáveis... 28
Sumário 1 Introdução a JavaScript... 1 1.1 JavaScript básica 4 1.2 JavaScript do lado do cliente 8 Parte I JavaScript básica 2 Estrutura léxica... 21 2.1 Conjunto de caracteres 21 2.2 Comentários 23 2.3
Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.
1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras
Formação JAVA Web.
Inscreva-se na Formação JAVA Web e comece a desenvolver sistemas para Web e Desktop com a linguagem de programação open source multiplataforma mais valorizada do mercado. Carga-horária: 80h O que você
Notas de Aula 09: Tratamento de exceções
Notas de Aula 09: Tratamento de exceções Objetivos da aula: Compreender o conceito de exceção Aprender a tratar exceções nos programas Entender a hierarquia das exceções Criar e lançar uma exceção proprietária
CONTEÚDO PROGRAMÁTICO
CONTEÚDO PROGRAMÁTICO PHP Básico Carga horária: 24 horas TreinaWeb Tecnologia LTDA CNPJ: 06.156.637/0001-58 Av. Paulista, 1765 - Conj 71 e 72 São Paulo - SP CONTEÚDO PROGRAMÁTICO 1 - Introdução à linguagem
Programação Estruturada e Orientada a Objetos
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Programação Estruturada e Orientada a Objetos Docente: Éberton da Silva Marinho e-mail: [email protected] [email protected]
Java 2 Standard Edition Tipos, literais, operadores e controle de fluxo
Java 2 Standard Edition Tipos, literais, operadores e controle de fluxo Helder da Rocha www.argonavis.com.br 1 Operadores e controle de fluxo da execução Este módulo explora as estruturas procedurais da
Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO
Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem
Linguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa
Programação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida
Programação Orientada a Objetos II Java Segunda aula 1 Programação Orientada a Objeto II Tipos de Dados e Variáveis Operadores Operadores aritméticos Operadores relacionais Operadores lógicos Operadores
Conceitos de Linguagens de Programação - Características. Paavo Soeiro
Conceitos de Linguagens de Programação - Características Paavo Soeiro Motivação Para que possa escolher uma linguagem apropriada ao problema. Melhorar o entendimento da linguagem utilizada. Facilitar o
Módulo 03. Identificadores, Palavras Reservadas, e Tipos
Módulo 03 Identificadores, Palavras Reservadas, e Tipos Objetivos Utilizar comentários em um programa. Distinguir entre identificadores válidos e não-válidos. Reconhecer palavras-reservadas da tecnologia
Programação Orientada a Objetos
Programação Orientada a Objetos Professor: Diego Oliveira Conteúdo 05: Linguagem Java Conteúdo da Aula Linguagem Java Tipos Primitivos Operadores Aritiméticos Operadores Lógicos Precedência de Operadores
Introdução à Linguagem de Programação Java 1 INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO JAVA
1 INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO JAVA 2 INDICE 1. COMENTÁRIOS... 4 1.1. Comentário de uma linha... 4 1.2. Comentário de múltiplas linhas... 4 2. IMPRESSÃO DE TEXTOS... 5 2.1. Imprimindo um texto
Modelo de plano analitico
Modelo de pla analitico Disciplina: Algoritmização e Programação Curso: Licenciatura em Ensi de Informática A/Semestre: 1º A/2º Semestre Carga horária: 4 h/semana; Docente: Célio Sengo Introdução A linguagem
Tipos Primitivos, estruturas de iteração e decisão.
Tipos Primitivos, estruturas de iteração e decisão. André Luis Meneses Silva [email protected] http://br.geocities.com/programacao2ufs/ Agenda Tipos Primitivos de Dados Variáveis e Constantes es Comandos
PHP. Programando com Orientação a Objetos. Pablo Dall Oglio. Novatec
PHP Programando com Orientação a Objetos Pablo Dall Oglio Novatec Copyright 2007, 2009, 2016 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida
PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS Docente: Éberton da Silva Marinho e-mail: [email protected] [email protected]
Curso Profissional de Técnico de Informática - Sistemas
Planificação Anual 2018/2019 Curso Profissional de Técnico de Informática - Sistemas LINGUAGENS DE PROGRAMAÇÃO 11º ANO 1 MÓDULO 4 - UFCD 0785 - Programação em C/C++ - Formas complexas Data Início/Final:
Linguagem de Programação III
Linguagem de Programação III Aula-5 Estruturas de Decisão e Controle. Arrays em Java Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de
MsC. João Maria MsC. Liviane Melo
Disciplina: Programação Orientada à Objetos AULA 02 Corpo docente: MsC. Alexandro Vladno Edmilson Campos MsC. Fábio Procópio Esp. Felipe Dantas MsC. João Maria MsC. Liviane Melo 2 Tipo Tamanho Alcance
Programação Orientada a Objectos - P. Prata, P. Fazendeiro
3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem
4ª Edição Pablo Dall Oglio
4ª Edição Pablo Dall Oglio Novatec Copyright 2007, 2009, 2016, 2018 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra,
Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação
Ederson Luiz da Silva Ciência da Computação Algoritmos e Programação Programação em C Características Criado na década de 70; Possui muitas regras em sintaxe e semântica; Utilizado para programação de
Programação Orientada a Objetos II
Programação Orientada a Objetos II Introdução Prof. Rodrigo Rocha [email protected] www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha [email protected] Ementa Introdução ao Desenvolvimento
Programação com Acesso a BD. Programação com OO Acesso em Java
Programação com OO Acesso em Java a BD Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática
Orientação a Objetos e Java
Orientação a Objetos e Java Daves Martins [email protected] Mestre em Computação de Alto Desempenho pela UFRJ Especialista em Banco de Dados Analista Web Orientação a Objetos e Java Características
Algoritmos II prof. Daniel Oliveira
Algoritmos II prof. Daniel Oliveira Revisar conceitos abordados na disciplina anterior Abordar conceitos vistos com a linguagem C# Variáveis e listas Expressões Estruturas de controle do tipo condicional
Stephen Samuel Stefan Bocutiu
Stephen Samuel Stefan Bocutiu Novatec Copyright Packt Publishing 2017. First published in the English language under the title Programming Kotlin (9781787126367). Copyright Packt Publishing 2017. Publicação
Ambientação com a Sintaxe de Java: parte 1
Ambientação com a Sintaxe de Java: parte 1 Prof. Gustavo Wagner FATEC-PB Programas em Java Texto do programa: arquivo com extensão.java Arquivo contém ao menos uma classe Nome do arquivo deve ser IGUAL
Aula 1 POO 1 Prática. Profa. Elaine Faria UFU
Aula 1 POO 1 Prática Profa. Elaine Faria UFU - 2019 Introdução Java Linguagem de programação poderosa Utiliza o paradigma Orientado a Objetos Muito utilizada em aplicativos para Internet e para redes Difundida
Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010
Herança SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic [email protected] Instituto de Ciências Matemáticas e de Computação(ICMC) Universidade
INTRODUÇÃO A LINGUAGEM JAVA
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A LINGUAGEM JAVA Docente: Éberton da Silva Marinho e-mail: [email protected] [email protected] Curso Técnico
Classes e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
Criando Relatórios com PHP Pablo Dall Oglio
Criando Relatórios com PHP Pablo Dall Oglio Novatec Copyright 2011 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo
Dmitry Jemerov e Svetlana Isakova. Novatec
Dmitry Jemerov e Svetlana Isakova Novatec Original English language edition published by Manning Publications Co, Copyright 2017 by Manning Publications. Portuguese-language edition for Brazil copyright
PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S
PROGRAMAÇÃO I VA R I Á V E I S, C O N S TA N T E S, O P E R A D O R E S E N T R A DA E S A Í DA D E DA D O S Variáveis 2 Variáveis são locais onde são armazenados os valores na memória. Toda variável é
Sobre a KTEC KTEC Escola de Tecnologia
Programação em JAVA Sobre a KTEC A KTEC Escola de Tecnologia oferece uma série de cursos, para os que procuram uma base sólida no aprendizado, com foco nas boas práticas que fazem a diferença no mercado
Lógica e Prog. Java6.0 + Java p/ Web com Hibernate e Struts 2. Duração 124 horas/aula
Objetivo Estes cursos unidos, possuem um completo conteúdo, com um aprendizado teórico e prático da linguagem de programação Java tanto para ambiente Desktop como para a Web. Serão abordados os seguintes
Revisão da Linguagem C Prof. Evandro L. L. Rodrigues
SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos
API e Coleções Java. Sérgio Luiz Ruivace Cerqueira
API e Coleções Java Sérgio Luiz Ruivace Cerqueira [email protected] Java API Introdução API Endereço http://download.oracle.com/javase/6/docs/api/ API - Descrição API - Resumo API - Detalhes Coleções
Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }
Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação
