Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Introdução à Programação em Java: Exercícios Práticos, Manuais, Projetos, Pesquisas de Programação para Java

Um guia para Java Orientado a Objetos com boa didática e direto ao ponto.

Tipologia: Manuais, Projetos, Pesquisas

2021

Compartilhado em 02/05/2021

denilson-j-alexandre
denilson-j-alexandre 🇦🇴

5

(4)

1 documento

1 / 337

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a
pf3b
pf3c
pf3d
pf3e
pf3f
pf40
pf41
pf42
pf43
pf44
pf45
pf46
pf47
pf48
pf49
pf4a
pf4b
pf4c
pf4d
pf4e
pf4f
pf50
pf51
pf52
pf53
pf54
pf55
pf56
pf57
pf58
pf59
pf5a
pf5b
pf5c
pf5d
pf5e
pf5f
pf60
pf61
pf62
pf63
pf64

Pré-visualização parcial do texto

Baixe Introdução à Programação em Java: Exercícios Práticos e outras Manuais, Projetos, Pesquisas em PDF para Programação para Java, somente na Docsity!

.

Sumário

  • 1.1 O que é realmente importante? 1 Como Aprender Java
  • 1.2 Sobre os exercícios
  • 1.3 Tirando dúvidas e indo além
  • 2.1 Java 2 O que é Java
  • 2.2 Uma breve história do Java
  • 2.3 Máquina Virtual
  • 2.4 Java lento? Hotspot e JIT
  • 2.5 Versões do Java e a confusão do Java2
  • 2.6 JVM? JRE? JDK? O que devo baixar?
  • 2.7 Onde usar e os objetivos do Java
  • 2.8 Especificação versus implementação
  • 2.9 Como o FJ-11 está organizado
  • 2.10 Compilando o primeiro programa
  • 2.11 Executando seu primeiro programa
  • 2.12 O que aconteceu?
  • 2.13 Para saber mais: como é o bytecode?
  • 2.14 Exercícios: Modificando o Hello World
  • 2.15 O que pode dar errado?
  • 2.16 Um pouco mais...
  • 2.17 Exercícios adicionais
  • 3.1 Declarando e usando variáveis 3 Variáveis primitivas e Controle de fluxo
  • 3.2 Tipos primitivos e valores
  • 3.3 Exercícios: Variáveis e tipos primitivos
  • 3.4 Discussão em aula: convenções de código e código legível
  • 3.5 Casting e promoção
  • 3.6 O if e o else
  • 3.7 O While
  • 3.8 O For
  • 3.9 Controlando loops
  • 3.10 Escopo das variáveis
  • 3.11 Um bloco dentro do outro
  • 3.12 Para saber mais
  • 3.13 Exercícios: Fixação de sintaxe
  • 3.14 Desafios: Fibonacci
  • 4.1 Motivação: problemas do paradigma procedural 4 Orientação a objetos básica
  • 4.2 Criando um tipo
  • 4.3 Uma classe em Java
  • 4.4 Criando e usando um objeto
  • 4.5 Métodos
  • 4.6 Métodos com retorno
  • 4.7 Objetos são acessados por referências
  • 4.8 O método transfere()
  • 4.9 Continuando com atributos
  • 4.10 Para saber mais: Uma Fábrica de Carros
  • 4.11 Um pouco mais...
  • 4.12 Exercícios: Orientação a Objetos
  • 4.13 Desafios
  • 4.14 Fixando o conhecimento
  • 5.1 Controlando o acesso 5 Modificadores de acesso e atributos de classe
  • 5.2 Encapsulamento
  • 5.3 Getters e Setters
  • 5.4 Construtores
  • 5.5 A necessidade de um construtor
  • 5.6 Atributos de classe
  • 5.7 Um pouco mais...
  • 5.8 Exercícios: Encapsulamento, construtores e static
  • 5.9 Desafios
  • 6.1 O Eclipse 6 Eclipse IDE
  • 6.2 Apresentando o Eclipse
  • 6.3 Views e Perspective
  • 6.4 Criando um projeto novo
  • 6.5 Criando o main
  • 6.6 Executando o main
  • 6.7 Pequenos truques
  • 6.8 Exercícios: Eclipse
  • 6.9 Discussão em aula: Refactoring
  • 7.1 Organização 7 Pacotes - Organizando suas classes e bibliotecas
  • 7.2 Diretórios
  • 7.3 Import
  • 7.4 Acesso aos atributos, construtores e métodos
  • 7.5 Usando o Eclipse com pacotes
  • 7.6 Exercícios: Pacotes
  • 8.1 Arquivos, bibliotecas e versões 8 Ferramentas: jar e javadoc
  • 8.2 Gerando o JAR pelo Eclipse
  • 8.3 Javadoc
  • 8.4 Gerando o Javadoc
  • 8.5 Exercícios: Jar e Javadoc
  • 8.6 Importando um jar externo
  • 8.7 Exercícios: Importando um jar
  • 8.8 Manipulando a conta pela interface gráfica
  • 8.9 Exercícios: Mostrando os dados da conta na tela
  • 9.1 Repetindo código? 9 Herança, reescrita e polimorfismo
  • 9.2 Reescrita de método
  • 9.3 Invocando o método reescrito
  • 9.4 Polimorfismo
  • 9.5 Um outro exemplo
  • 9.6 Um pouco mais...
  • 9.7 Exercícios: Herança e Polimorfismo
  • 9.8 Discussões em aula: Alternativas ao atributo protected
  • 10.1 Repetindo mais código? 10 Classes Abstratas
  • 10.2 Classe abstrata
  • 10.3 Métodos abstratos
  • 10.4 Aumentando o exemplo
  • 10.5 Para saber mais...
  • 10.6 Exercícios: Classes Abstratas
  • 11.1 Aumentando nosso exemplo 11 Interfaces
  • 11.2 Interfaces
  • 11.3 Dificuldade no aprendizado de interfaces
  • 11.4 Exemplo interessante: conexões com o banco de dados
  • 11.5 Exercícios: Interfaces
  • 11.6 Exercícios avançados opcionais
  • 11.7 Discussão: favoreça composição em relação à herança
  • 12.1 Motivação 12 Exceções e controle de erros
  • 12.2 Exercício para começar com os conceitos
  • 12.3 Exceções de Runtime mais comuns
  • 12.4 Outro tipo de exceção: Checked Exceptions
  • 12.5 Um pouco da grande família Throwable
  • 12.6 Mais de um erro
  • 12.7 Lançando exceções
  • 12.8 O que colocar dentro do try?
  • 12.9 Criando seu próprio tipo de exceção
  • 12.10 Para saber mais: finally
  • 12.11 Exercícios: Exceções
  • 12.12 Desafios
  • 12.13 Discussão em aula: catch e throws em Exception
  • 13.1 Pacote java.lang 13 O pacote java.lang
  • 13.2 Um pouco sobre a classe System
  • 13.3 java.lang.Object
  • 13.4 Métodos do java.lang.Object: equals e toString
  • 13.5 Exercícios: java.lang.Object
  • 13.6 java.lang.String
  • 13.7 Exercícios: java.lang.String
  • 13.8 Desafio
  • 13.9 Discussão em aula: O que você precisa fazer em Java?
  • 14.1 O problema 14 Um pouco de arrays
  • 14.2 Arrays de referências
  • 14.3 Percorrendo uma array
  • 14.4 Percorrendo uma array no Java 5.0
  • 14.5 Exercícios: Arrays
  • 14.6 Um pouco mais...
  • 14.7 Desafios Opcionais
  • 15.1 Arrays são trabalhosos, utilizar estrutura de dados 15 Collections framework
  • 15.2 Listas: java.util.List
  • 15.3 Listas no Java 5 e Java 7 com Generics
  • 15.4 A importância das interfaces nas coleções
  • 15.5 Ordenação: Collections.sort
  • 15.6 Exercícios: Ordenação
  • 15.7 Conjunto: java.util.Set
  • 15.8 Principais interfaces: java.util.Collection
  • 15.9 Percorrendo coleções no Java
  • 15.10 Para saber mais: Iterando sobre coleções com java.util.Iterator
  • 15.11 Mapas - java.util.Map
  • 15.12 Para saber mais: Properties
  • 15.13 Para saber mais: Equals e HashCode
  • 15.14 Para saber mais: Boas práticas
  • 15.15 Exercícios: Collections
  • 15.16 Desafios
  • 15.17 Para saber mais: Comparators, classes anônimas, Java 8 e o lambda
  • 16.1 Conhecendo uma API 16 Pacote java.io
  • 16.2 Orientação a objetos no java.io
  • 16.3 InputStream, InputStreamReader e BufferedReader
  • 16.4 Lendo Strings do teclado
  • 16.5 A analogia para a escrita: OutputStream
  • 16.6 Uma maneira mais fácil: Scanner e PrintStream
  • 16.7 Um pouco mais...
  • 16.8 Integer e classes wrappers (box)

21.3 Instalação do JDK em ambiente Windows 301

22 Apêndice - Debugging

22.1 O que é debugar 306 22.2 Debugando no Eclipse 306 22.3 Perspectiva de debug 309 22.4 Debug avançado 315 22.5 Profiling 324 22.6 Profiling no Eclipse TPTP 324 Versão: 22.8. Caelum Sumário

.

A Alura oferece centenas de cursos online em sua plataforma exclusiva de

ensino que favorece o aprendizado com a qualidade reconhecida da Caelum.

Você pode escolher um curso nas áreas de Programação, Front-end, Mobile,

Design & UX, Infra e Business, com um plano que dá acesso a todos os cursos. Ex-aluno da

Caelum tem 15% de desconto neste link!

Conheça os cursos online Alura.

Os exercícios do curso variam de práticos até pesquisas na Internet, ou mesmo consultas sobre

assuntos avançados em determinados tópicos para incitar a curiosidade do aprendiz na tecnologia.

Existem também, em determinados capítulos, uma série de desafios. Eles focam mais no problema

computacional que na linguagem, porém são uma excelente forma de treinar a sintaxe e, principalmente,

familiarizar o aluno com a biblioteca padrão Java, além de proporcionar um ganho na velocidade de

desenvolvimento.

Para tirar dúvidas dos exercícios, ou de Java em geral, recomendamos o fórum do GUJ

(http://www.guj.com.br/), onde sua dúvida será respondida prontamente. O GUJ foi fundado por

desenvolvedores da Caelum, e hoje conta com mais de um milhão de mensagens.

Fora isso, sinta-se à vontade para entrar em contato com seu instrutor para tirar todas as dúvidas que

surgirem durante o curso.

Se o que você está buscando são livros de apoio, sugerimos conhecer a editora Casa do Código:

http://www.casadocodigo.com.br

A Caelum fornece muitos outros cursos Java, com destaque para o FJ-21 que traz a aplicação do Java

na web.

http://www.caelum.com.br/

Há também cursos online que vão te ajudar a ir além, com muita interação com os instrutores, a

Já conhece os cursos online Alura? 1.2 SOBRE OS EXERCÍCIOS 1.3 TIRANDO DÚVIDAS E INDO ALÉM .

Alura:

http://www.alura.com.br/

.

linguagem. Um deles é o GUJ (http://www.guj.com.br), uma comunidade virtual com artigos, tutoriais e

fórum para tirar dúvidas, o maior em língua portuguesa com mais de cem mil usuários e 1 milhão de

mensagens.

Encorajamos todos os alunos a usar muito os fóruns do mesmo, pois é uma das melhores maneiras

para achar soluções para pequenos problemas que acontecem com grande frequência.

A Alura oferece centenas de cursos online em sua plataforma exclusiva de

ensino que favorece o aprendizado com a qualidade reconhecida da Caelum.

Você pode escolher um curso nas áreas de Programação, Front-end, Mobile,

Design & UX, Infra e Business, com um plano que dá acesso a todos os cursos. Ex-aluno da

Caelum tem 15% de desconto neste link!

Conheça os cursos online Alura.

A Sun criou um time (conhecido como Green Team) para desenvolver inovações tecnológicas em

1992. Esse time foi liderado por James Gosling, considerado o pai do Java. O time voltou com a ideia de

criar um interpretador (já era uma máquina virtual, veremos o que é isso mais a frente) para pequenos

dispositivos, facilitando a reescrita de software para aparelhos eletrônicos, como vídeo cassete, televisão e

aparelhos de TV a cabo.

A ideia não deu certo. Tentaram fechar diversos contratos com grandes fabricantes de eletrônicos,

como Panasonic, mas não houve êxito devido ao conflito de interesses e custos. Hoje, sabemos que o

Java domina o mercado de aplicações para celulares com mais de 2.5 bilhões de dispositivos compatíveis,

porém em 1994 ainda era muito cedo para isso.

Com o advento da web, a Sun percebeu que poderia utilizar a ideia criada em 1992 para rodar

pequenas aplicações dentro do browser. A semelhança era que na internet havia uma grande quantidade

de sistemas operacionais e browsers, e com isso seria grande vantagem poder programar numa única

linguagem, independente da plataforma. Foi aí que o Java 1.0 foi lançado: focado em transformar o

browser de apenas um cliente magro (thin client ou terminal burro) em uma aplicação que possa

também realizar operações avançadas, e não apenas renderizar html.

Os applets deixaram de ser o foco da Sun, e nem a Oracle nunca teve interesse. É curioso notar que a

Já conhece os cursos online Alura? 2.2 UMA BREVE HISTÓRIA DO JAVA .

tecnologia Java nasceu com um objetivo em mente, foi lançado com outro, mas, no final, decolou

mesmo no desenvolvimento de aplicações do lado do servidor. Sorte? Há hoje o Java FX, tentando dar

força para o Java não só no desktop mas como aplicações ricas na web, mas muitos não acreditam que

haja espaço para tal, considerando o destino de tecnologias como Adobe Flex e Microsoft Silverlight.

Você pode ler a história da linguagem Java em: http://www.java.com/en/javahistory/

E um vídeo interessante: http://tinyurl.com/histjava

Em 2009 a Oracle comprou a Sun, fortalecendo a marca. A Oracle sempre foi, junto com a IBM, uma

das empresas que mais investiram e fizeram negócios através do uso da plataforma Java. Em 2014 surge a

versão Java 8 com mudanças interessantes na linguagem.

Em uma linguagem de programação como C e Pascal, temos a seguinte situação quando vamos

compilar um programa:

O código fonte é compilado para código de máquina específico de uma plataforma e sistema

operacional. Muitas vezes o próprio código fonte é desenvolvido visando uma única plataforma!

Esse código executável (binário) resultante será executado pelo sistema operacional e, por esse

motivo, ele deve saber conversar com o sistema operacional em questão.

Isto é, temos um código executável para cada sistema operacional. É necessário compilar uma vez

para Windows, outra para o Linux, e assim por diante, caso a gente queira que esse nosso software possa

ser utilizado em várias plataformas. Esse é o caso de aplicativos como o OpenOffice, Firefox e outros.

2.3 MÁQUINA VIRTUAL .

Essa camada, a máquina virtual, não entende código java, ela entende um código de máquina

específico. Esse código de máquina é gerado por um compilador java, como o javac , e é conhecido por

" bytecode ", pois existem menos de 256 códigos de operação dessa linguagem, e cada "opcode" gasta um

byte. O compilador Java gera esse bytecode que, diferente das linguagens sem máquina virtual, vai servir

para diferentes sistemas operacionais, já que ele vai ser "traduzido" pela JVM.

WRITE ONCE, RUN ANYWHERE

Esse era um slogan que a Sun usava para o Java, já que você não precisa reescrever partes da sua

aplicação toda vez que quiser mudar de sistema operacional.

Hotspot é a tecnologia que a JVM utiliza para detectar pontos quentes da sua aplicação: código que é

executado muito, provavelmente dentro de um ou mais loops. Quando a JVM julgar necessário, ela vai

compilar estes códigos para instruções realmente nativas da plataforma, tendo em vista que isso vai

provavelmente melhorar a performance da sua aplicação. Esse compilador é o JIT: Just inTime Compiler,

o compilador que aparece "bem na hora" que você precisa.

Você pode pensar então: porque a JVM não compila tudo antes de executar a aplicação? É que

teoricamente compilar dinamicamente, a medida do necessário, pode gerar uma performance melhor. O

motivo é simples: imagine um .exe gerado pelo VisualBasic, pelo gcc ou pelo Delphi; ele é estático. Ele já

foi otimizado baseado em heurísticas, o compilador pode ter tomado uma decisão não tão boa.

Já a JVM, por estar compilando dinamicamente durante a execução, pode perceber que um

determinado código não está com performance adequada e otimizar mais um pouco aquele trecho, ou

ainda mudar a estratégia de otimização. É por esse motivo que as JVMs mais recentes em alguns casos

chegam a ganhar de códigos C compilados com o GCC 3.x.

2.4 JAVA LENTO? HOTSPOT E JIT .

Querendo aprender ainda mais sobre? Esclarecer dúvidas dos exercícios? Ouvir

explicações detalhadas com um instrutor?

A Caelum oferece o curso FJ-11 presencial nas cidades de São Paulo, Rio de

Janeiro e Brasília, além de turmas incompany.

Consulte as vantagens do curso Java e Orientação a Objetos

Java 1.0 e 1.1 são as versões muito antigas do Java, mas já traziam bibliotecas importantes como o

JDBC e o java.io.

Com o Java 1.2 houve um aumento grande no tamanho da API, e foi nesse momento em que

trocaram a nomenclatura de Java para Java2, com o objetivo de diminuir a confusão que havia entre Java

e Javascript. Mas lembre-se, não há versão "Java 2.0", o 2 foi incorporado ao nome, tornando-se Java

Depois vieram o Java2 1.3 e 1.4, e o Java 1.5 passou a se chamar Java 5, tanto por uma questão de

marketing e porque mudanças significativas na linguagem foram incluídas. É nesse momento que o "2"

do nome Java desaparece. Repare que para fins de desenvolvimento, o Java 5 ainda é referido como Java

Hoje a última versão disponível do Java é a 8.

O que gostaríamos de baixar no site da Oracle?

JVM = apenas a virtual machine, esse download não existe, ela sempre vem acompanhada.

JRE = Java Runtime Environment , ambiente de execução Java, formado pela JVM e bibliotecas,

tudo que você precisa para executar uma aplicação Java. Mas nós precisamos de mais.

JDK = Java Development Kit : Nós, desenvolvedores, faremos o download do JDK do Java SE

(Standard Edition). Ele é formado pela JRE somado a ferramentas, como o compilador.

Tanto o JRE e o JDK podem ser baixados do site http://www.oracle.com/technetwork/java/. Para

encontrá-los, acesse o link Java SE dentro dos top downloads. Consulte o apêndice de instalação do JDK

Você pode também fazer o curso FJ-11 dessa apostila na Caelum 2.5 VERSÕES DO JAVA E A CONFUSÃO DO JAVA 2.6 JVM? JRE? JDK? O QUE DEVO BAIXAR? .