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? .