Buscar

Trabalho Programação Orientada a Objetos - aplicação que utiliza Java

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Java 
Java é hoje uma das linguagens mais utilizadas em todo o mundo e 
isso acontece porque ela não se trata apenas de uma linguagem, mas também, 
de uma plataforma de desenvolvimento. Com ele é possível desenvolver 
aplicações para desktop, celular, cartão, web, televisão digital, etc. Conta com 
uma forte comunidade de usuários em todo o mundo e graças a eles é possível 
obter material para estudos de maneira fácil, participar de encontros regionais, 
palestras e até minicursos, trocar experiências com pessoas que já atuam na 
área a mais tempo, como as comunidades SouJava ou o JCP (Java Community 
Process). Graças ao investimento dessas comunidades e também de algumas 
empresas, existem hoje uma variedade de frameworks que visam facilitar o 
trabalho do desenvolvedor. Outro fator que deve ser levado em consideração é 
que O Java não roda somente Java: A máquina virtual Java atualmente roda 
cerca de 350 linguagens com pontos interessantes, por exemplo, o Groovy 
linguagem dinâmica, Scala que é específica para concorrência dentre outras 
linguagens como JPython , Python, Jruby e o Ruby. Por isso, o Java torna 
possível em qualquer sistema operacional para qualquer sistema operacional: 
Quando se compila um arquivo em Java ele gera um bytecode que é interpretado 
numa JVM (Java Virtual Machine). Bastando que o seu sistema operacional 
tenha uma JVM, será possível executar o Java nos sistemas operacionais 
Windows, GNU/Linux e Mac. Dentre suas principais IDES, podemos citar o 
Eclipse e o Netbeans, que rodam em Java ou seja, podemos programar em 
qualquer sistema operacional. 
 
 O que é Java e para que serve? 
 
Java é uma linguagem de programação e plataforma computacional 
desenvolvida por uma equipa de programadores liderada por James Gosling e 
lançada pela Sun Microsystems em 1995. Ao contrário das linguagens 
convencionais, que são compiladas para código nativo, a linguagem Java é 
compilada para um bytecode que é executado por uma máquina virtual. Hoje em 
dia Java é a base de praticamente todos os tipos de aplicações em rede e é o 
padrão para desenvolvimento e implementação de aplicações móveis, jogos, 
conteúdo on-line e software corporativo. Existem muitas aplicações e sites que 
não funcionarão, a menos que você tenha o Java instalado, e cada vez mais 
dessas funcionalidades são criados todos os dias. O Java é rápido, seguro e 
confiável. A linguagem Java permite desenvolver e implementar aplicações e 
serviços de maneira eficiente. Com ferramentas abrangentes, um ecossistema 
sólido e um desempenho excelente, o Java oferece a portabilidade de aplicações 
mesmo entre ambientes computacionais bastante diferentes. De laptops a 
datacenters, consoles de games a supercomputadores científicos, telefones 
celulares à Internet, o Java está em todos os lugares! Sua intenção é permitir 
que os desenvolvedores escrevam o programa apenas uma vez e o executem 
por meio de qualquer dispositivo. 
 
 Quais são as características do Java? 
 
o Para entender o que é Java, é necessário conhecer as características que o 
diferenciam de outras linguagens de programação: 
 Simples 
 O Java oferece a funcionalidade de uma linguagem bastante potente, 
derivada de C e C ++, porém, sem os recursos confusos e pouco utilizados 
desses. 
 
 Orientado a objetos 
 O modelo orientado a objetos (também conhecido pela sigla do inglês, POO) 
é um dos estilos de programação mais populares. Ele permite desenhar o 
software para que os diferentes tipos de dados utilizados sejam vinculados às 
suas operações. 
 
 Distribuído 
 Java fornece uma grande biblioteca padrão e ferramentas para que os 
programas possam ser distribuídos. 
 Independente de plataforma 
 Isso significa que os programas escritos na linguagem Java podem ser 
executados em qualquer tipo de hardware, o que o torna portátil. 
 
 Coletor de lixo 
 Quando não há referências localizadas para um objeto, o coletor de lixo do 
Java exclui esse objeto, liberando, assim, a memória que ele ocupava. Isso 
evita possíveis fugas de memória. 
 
 Seguro e sólido 
 Proporciona uma plataforma segura para desenvolver e 
executar aplicativos que gerenciam automaticamente a memória, fornece 
canais de comunicação seguros, protegendo a privacidade dos dados e, por 
ter uma sintaxe rigorosa, evita a quebra de código, ou seja, não permite sua 
corrupção. 
 
 Multi-thread 
 O Java consegue executar várias tarefas simultaneamente dentro do mesmo 
programa. Isso permite melhorar o desempenho e a velocidade de execução. 
 
 
 
 
 
 
 
 
 
 
 Qual é a importância do Java na programação? 
 
o Essa linguagem permite desenhar softwares que podem ser executados e 
distribuídos em diferentes plataformas (MAC, Linux, Windows etc.), sem a 
necessidade de modificá-los e, inclusive, sem pensar na arquitetura da 
máquina. Tudo isso graças ao Java Virtual Machine, uma máquina virtual que 
cria uma ponte entre o aplicativo e o hardware do dispositivo. 
 
 Quais as vantagens que o Java oferece? 
 
o Algumas das vantagens oferecidas por essa linguagem de programação são: 
 Perfeitamente adaptável a todos os tipos de dispositivos (tablets, 
smartphones, computadores, notebooks), permitindo que você visualize 
qualquer conteúdo de aplicações, sites ou blogs; 
 Permite desenhar praticamente qualquer elemento ou aplicativo; 
 Possibilita criar páginas web dinâmicas e atraentes por meio de XML; 
 Permite incluir objetos de som e multimídia, além de bancos de dados e outras 
funcionalidades. 
Por ser uma linguagem de uso comum, existem muitos aplicativos e páginas de 
internet que não funcionam totalmente ou que possuem itens que não serão 
executados, a menos que o Java esteja instalado. 
 
Netflix utilizando Java 
 
 Fonte Freepik (2010-2020) 
Hollow, uma biblioteca Java utilizada e apresentada pela Netflix para 
processamento de datasets em memória. 
O Netflix recentemente apresentou o Hollow, uma biblioteca e um conjunto de 
ferramentas Java para processar datasets em memória que não são 
caracterizados como "big data." Como datasets podem conter metadata para e-
commerce e motores de busca, ou no caso do Netflix, metadata sobre filmes e 
shows de TV. Soluções tradicionais para processar estes datasets requerem o 
uso de banco de dados ou serialização, mas normalmente sofrem de problemas 
de confiabilidade e latência. O guia de inicialização do Hollow resume os 
conceitos principais e a nomenclatura: 
O Hollow gerencia datasets que são fornecidos por um simples producer, e 
disseminados somente com permissão de leitura para um ou vários consumers. 
Um dataset muda ao longo do tempo. A linha de tempo para um dataset em 
mudança pode ser dividida em discretos estados de dados, no qual cada um é 
um snapshot completo dos dados em um determinado ponto no tempo. 
O producer e os consumer manipulam os datasets através de um state 
engine que transita entre os estados dos dados. Um producer usa um write state 
engine e um consumer usa um read state engine. 
O Hollow substitui o framework anterior de dados em memória do Netflix, o Zeno. 
Os datasets agora são representados com uma codificação compacta, de 
tamanho fixo, fortemente tipada. Essa codificação minimiza o rastro dos datasets 
e os registros codificados são "agrupados dentro de pedaços reutilizáveis da 
memória que são armazenados na heap da JVM para evitar impactar o 
comportamento do GC em servidores muito ocupados." 
 
Começando 
Como ponto de partida, considere o seguinte POJO: 
 public class Movie { 
 long id; 
 String title; 
 int releaseYear; 
 public Movie(long id,String title,int releaseYear) { 
 this.id = id; 
 this.title = title; 
 this.releaseYear = releaseYear; 
 } 
 } 
 
Um simples dataset baseado no POJO acima pode ser populado como: 
 List movies = Arrays.asList 
 new Movie(1,"The Matrix",1999), 
 new Movie(2,"Beastsof No Nation",2015), 
 new Movie(3,"Goodfellas",1990), 
 new Movie(4,"Inception",2010), 
Hollow traduz a lista de filmes para o novo layout de codificação como mostrado 
a seguir: 
 
 Fonte InfoQ (03/2017) 
Mais detalhes sobre essa codificação podem ser encontrados na seção 
Advanced Topics no website do Hollow. 
 
O Producer 
A primeira instância de um producer disponibiliza um estado dos dados inicial de 
um dataset (filmes neste exemplo) e consumers são notificados em onde 
encontrar esse conjunto de dados. Alterações subsequentes no conjunto de 
dados são sistematicamente publicados e comunicadas para os consumers. 
Um producer usa um HollowWriteStateEngine como gerenciador para um 
dataset: 
 HollowWriteStateEngine writeEngine = new HollowWriteStateEngine(); 
 Um HollowObjectMapper popula um HollowWriteStateEngine: 
 HollowObjectMapper objectMapper = new HollowObjectMapper(writeEngine); 
 for(Movie movie : movies) { 
 objectMapper.addObject(movie); 
 } 
 
O HollowObjectMapper é thread safe e também pode ser executado em paralelo. 
O producer escreve o dataset (também conhecido como blob) em um 
determinado output stream: 
OutputStream os = new BufferedOutputStream(new 
FileOutputStream(snapshotFile)); 
 HollowBlobWriter writer = new HollowBlobWriter(writeEngine); 
 writer.writeSnapshot(os); 
Gerando uma API para Consumers 
Uma API cliente gera o código Java necessário com base no modelo de dados 
e deve ser executado antes de escrever o código inicial do consumer: 
HollowAPIGenerator codeGenerator = new HollowAPIGenerator( 
"MovieAPI", // um nome para a API 
 "org.redlich.hollow.consumer.api.generated", // o path para os arquivos da 
API gerados 
 stateEngine); // o state engine 
 codeGenerator.generateFiles(apiCodeFolder); 
 
O Consumer 
Uma vez que o consumer é notificado de que um dataset foi publicado, o 
consumer usa um HollowWriteReadEngine para manipular o dataset: 
HollowReadStateEngine readEngine = new HollowReadStateEngine(); 
Um HollowBlobReader consome um blob do producer dentro de um 
HollowReadStateEngine: 
HollowBlobReader reader = new HollowBlobReader(readEngine); 
InputStream is = new BufferedInputStream(new 
FileInputStream(snapshotFile)); 
reader.readSnapshot(is); 
 
Os dados dentro do dataset podem ser acessados através da API gerada: 
MovieAPI movieAPI = consumer.getAPI(); 
for(MovieHollow movie : movieAPI.getAllMovieHollow()) { 
 System.out.println(movie._getId() + ", " + 
 movie._getTitle()._getValue() + ", " + 
 movie._getReleaseYear()); 
 } 
 
O seguinte saída será exibida: 
1, "The Matrix", 1999 
2, "Beasts of No Nation", 2015 
3, "Goodfellas", 1990 
4,"Inception", 2010 - Todo o projeto Hollow pode ser encontrado no GitHub. 
 
Conclusão: 
Java é uma das linguagens mais populares entre os programadores e vem 
ganhando cada vez mais força ao longo dos últimos 20 anos. Por essa razão, 
existem vários motivos pelos quais devemos adquirir conhecimentos e aprender 
a programar em Java. A começar pelo fato de que Java não depende de 
nenhuma plataforma. O lema Java é “O que compila uma vez, é executável em 
qualquer lado”. Isso lema levou ao reconhecimento e à propagação dos 
programadores Java que podem por exemplo desenvolver aplicações em 
ambientes Windows, e executá-los em plataformas UNIX. 
Hoje em dia Java é a base de praticamente todos os tipos de aplicações em rede 
e é o padrão para desenvolvimento e implementação de aplicações móveis, 
jogos, conteúdo on-line e software corporativo. A facilidade na escrita e na leitura 
dos programas, permite manter o sistema modular, flexível e escalável. 
Possui uma API valiosa para I/O, networking, utilitários, xmlparsing, ligação a 
bases de dados e para quase tudo. Se faltar algo, está salvaguardado por 
bibliotecas de código aberto como o Apache Commons, Google Guava e outros, 
além de poderosas ferramentas de desenvolvimento como por exemplo, o 
Eclipse e o Netbeans, que são ambientes de desenvolvimento integrado (IDE) 
tornaram o desenvolvimento em Java muito mais fácil, rápido e fluente. É mais 
fácil de procurar e ler código usando IDEs. 
Possui também uma grande coleção de bibliotecas Open Source, o que garante 
que Java pode ser usado em todo o lado. Apache, Google e outras organizações 
contribuíram com muitas bibliotecas, que torna o desenvolvimento em Java 
muito mais fácil, rápido e barato. Existem frameworks como Springs, Struts e 
Maven que asseguram que o desenvolvimento em Java segue as melhores 
práticas dos fabricantes de software e dão suporte aos programadores Java no 
desempenho das suas tarefas. Excelente suporte e documentação – Java docs 
– uma excelente fonte de documentação, que lhe fornece informação essencial 
sobre a API de Java. Java doc torna a compreensão da linguagem muito mais 
fácil e fornece excelentes referências enquanto programa. 
E o melhor, sua relação com o custo: Java é grátis! Desde o início. E é 
principalmente por esta razão que Java é muito procurada por programadores 
em geral e também em empresas. 
 
 
 
 
 
 
 
Referências bibliográficas 
Fonte: https://www.infoq.com/br/news/2017/03/netflix-introduces-hollow/ 
Fonte: https://www.devmedia.com.br/por-que-java/20384 
Fonte: https://tek.sapo.pt/opiniao/artigos/opiniao-10-motivos-para-aprender-a-
programar-java-e-porque-e-uma-das-melhores-linguagens

Continue navegando