gildaaa@ufop.edu.br Por que Java? Os maiores problemas quando se está programando em C são: Ponteiros: Segmentation fault (core dumped) Access violation, Memory Violation Liberar memória: Memory low Organização: Arquivos em uma única pasta Falta de bibliotecas boas: jogos, processamentos de imagens, aprendizado de máquina, redes, banco de dados, gráficos, código de barras, wireless, segurança, mobile, wearable, Web Reescrever parte do código ao mudar de sistema operacional ou hardware: Celulares, handhelds, servidores, PCs, software embarcado Dificuldade de manutenção, mudança ou extensão de programas Java é a Solução? Java tenta amenizar todos estes problemas: Java não tem ponteiros Java tem um garbage collector, que é responsável por jogar fora (liberar memória) todos os objetos que não estão sendo referenciados Java utiliza pacotes para agrupar classes de funcionalidade parecida em diretórios/pastas (organização) Java possui uma quantidade enorme de bibliotecas gratuitas, para realizar diversos trabalhos (relatórios, gráficos, sistemas de busca, código de barra, qrcode, XML, vídeo, texto, impressão,...) Java utiliza o conceito de máquina virtual, onde uma camada entre o Sistema Operacional(S.O.) e a aplicação “traduz” o que a aplicação deseja fazer para as chamadas do S.O. (funciona em qualquer S.O.) JDK (Java Development Kit) é gratuito, assim como as principais bibliotecas Java e ferramentas e também os IDEs NetBeans e Eclipse. Java é Orientada a Objetos, que facilita manutenção e extensão de programas Vantagens de Java Modularização É a divisão do programa em componentes ou subsistemas, o mais independente possíveis dos demais, ou seja, com contratos claros e dependências bem estabelecidas de acordo com a necessidade de cada aplicação. O principal objetivo da modularização é gerenciar o desenvolvimento de programas de grande porte. Com a subdivisão de programas complexos em módulos, algumas vantagens são conquistadas como a legibilidade (trechos de código mais simples), a manutenibilidade (favorece a detecção e correção de erros e mudanças) e a produtividade (facilita a reutilização de software). Vantagens de Java Abstração Abstrair algo significa esconder os detalhes e se concentrar nos aspectos essenciais de um determinado contexto, ou seja, ignorando características menos importantes. Um exemplo é o funcionamento de um carro. Quando ligamos o carro, não precisamos saber quais passos ele faz para colocar o veículo em funcionamento (verificações de água, óleo, bateria, cinto de segurança, etc). Quando o freio é acionado, não precisamos saber todos os mecanismos que são acionados para fazer o carro frear. Apenas sabemos o que cada objeto ou função produz como resultado. Vantagens de Java Encapsulamento Ele permite que certas características ou propriedades dos objetos de uma classe não possam ser vistas ou modificadas externamente, ou seja, ocultam- se as características internas do objeto. O encapsulamento protege os dados que estão dentro dos objetos, evitando que eles sejam alterados incorretamente. A única forma de alterar esses dados é por meio de funções dos próprios objetos, que são chamadas de operações ou métodos. História de Java A Sun criou uma equipe (13 pessoas) para desenvolver inovações tecnológicas em 1991. Essa equipe foi liderado por James Gosling, o pai do Java. Eles criaram um interpretador chamado Oak para pequenos dispositivos, facilitando a reescrita de software para aparelhos eletrônicos, como vídeo cassete e tv a cabo. A idéia não deu certo, tentaram fechar contratos com fabricantes como a Panasonic, mas não houve êxito. Oak foi rebatizada para Java em 1995 focada em executar pequenas aplicações no browser (applets). Java decolou no desenvolvimento de aplicações do lado do servidor (backend). Como a equipe de desenvolvimento tomava muito café enquanto trabalhava, o nome Java foi sugerido em homenagem à cidade de origem de um café importado. Compilar em outras linguagens Linguagens de programação C, C++, Pascal,... Código para Windows 10
Código fonte Compilar Código binário para
um SO específico Código para em C Linux
Código para Windows Server
Temos um código executável para cada sistema operacional. É necessário compilar
uma vez para Windows, outra para Linux, etc... O programa utiliza as bibliotecas do SO, como por exemplo, a interface gráfica para desenhar as telas. É preciso reescrever o mesmo trecho para diferentes SOs. Compilar em Java Java utiliza o conceito de máquina virtual Camada extra entre o SO e a aplicação, responsável por “traduzir” o que a aplicação deseja fazer para as chamadas do SO no qual ela está executando.
Compilar Máquina Virtual Java
Código (javac) Código Windows 10 (JRE) fonte em bytecode Máquina Virtual Java Java Java Windows Server (*.java) (*.class) (JRE) Máquina Virtual Java JRE - Java Runtime Linux (JRE) Environment
Dessa forma, a maneira como se abre uma janela no Linux ou no
Windows é a mesma: independência de sistema operacional. Máquina Virtual Java É um computador de mentira, ela tem tudo que um computador tem. É responsável por gerenciar memória, gerenciar threads, pilha de execução, etc. O programa Java executa sem nenhum acesso ao sistema operacional. O programa conversa apenas com a Java Virtual Machine (JVM). Se uma JVM termina abruptamente, só as aplicações que estavam executando nela irão terminar. As outras JVMs e o sistema operacional não serão afetados. Instalação do Java Sem IDE – 1/2 Fazer o download JRE = Java Runtime Environment, ambiente de execução Java, formado pela JVM e bibliotecas, tudo que é necessário para executar uma aplicação Java. JDK = Java Development Kit. É o conjunto de ferramentas necessárias para desenvolver aplicações java. Inclui a JRE e as ferramentas de programação: • javac – compilador • jar – empacotador • javadoc – ferramenta para geração de documentação Instalação do Java Sem IDE – 2/2 Configurar variáveis de ambiente Para tornar possível executar o compilador Java e a máquina virtual de qualquer diretório. Nos Windows: Iniciar Configurações Painel de Controle Sistema Avançado Variáveis de Sistema. CLASSPATH=. PATH=<o que ja estava antes>;c:\diretorioDeInstalacaoDoJava\bin Instalação do Java Com IDE IDE – Integrated Development Environment Eclipse Código aberto. O Eclipse foi iniciado pela IBM que desenvolveu a primeira versão do produto e o fez sua doação como software livre para a comunidade. IDE Java mais utilizado no mundo. Editor com sintaxe colorida. Compilador: javac NomedoArquivo.java Debug. Run: java NomedoArquivo.class O Eclipse cuida de tudo: classpath, compilação, escreve código Quando usar Java? Aplicações de médio a grande porte, com vários desenvolvedores e que pode vir a mudar e crescer. Aplicações sofisticadas, usando diversos recursos (bibliotecas Java gratuitas), sem precisar comprar um componente específico. Plataformas (ambientes e sistemas operacionais) heterogêneos.