Baixe o app para aproveitar ainda mais
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
Compartilhar