++ Vs JAVA: Qual é a diferença?

Qual é a linguagem C ++?

C ++ é uma linguagem de programação de computador que contém o recurso da linguagem de programação C, bem como Simula67 (primeira linguagem orientada a objeto). C ++ introduziu o conceito de Classe e Objetos.

Ele encapsula recursos de linguagem de alto e baixo nível. Portanto, é vista como uma linguagem de nível intermediário. Anteriormente, era chamado de 'C com classes', pois tinha todas as propriedades da linguagem C.

Qual é a linguagem Java?

Java é uma linguagem de programação desenvolvida pela Sun Microsystems. Uma pequena equipe de desenvolvimento de software desenvolveu essa linguagem. Eles eram conhecidos como Equipe Verde, que iniciou a linguagem Java no ano de 1991.

História do C ++

A linguagem C ++ foi desenvolvida por Bjarne Stroustrup na AT&T Bell Laboratories. Stroustrup era um grande apoiador de C e um admirador de Simula67. Ele queria combinar o melhor de ambas as línguas. Ele pretendia criar uma linguagem que suportasse recursos de programação orientada a objetos e ainda retivesse o poder do C. Isso resultou em C ++.

História de Java

A linguagem Java foi inicialmente chamada de OAK. Originalmente, ele foi desenvolvido para manipular dispositivos e decodificadores. Oak foi um grande fracasso. Assim, em 1995, a Sun mudou o nome para Java e modificou a linguagem para aproveitar as vantagens do florescente negócio de desenvolvimento da World Wide Web.

Posteriormente, em 2009, a Oracle Corporation adquiriu a Sun Microsystems e adquiriu a propriedade de dois ativos de software principais da Sun: Java e Solaris.

DIFERENÇA PRINCIPAL:

  • C ++ usa apenas compilador, enquanto Java usa compilador e interpretador ambos.
  • C ++ oferece suporte à sobrecarga do operador e do método, enquanto o Java só oferece suporte à sobrecarga do método.
  • C ++ oferece suporte ao gerenciamento manual de objetos com a ajuda de palavras-chave novas e de exclusão, enquanto o Java possui coleta de lixo automática integrada.
  • C ++ oferece suporte a estruturas, enquanto Java não oferece suporte a estruturas.
  • C ++ oferece suporte a uniões, enquanto Java não oferece suporte a sindicatos.

C ++ Vs Java

Diferença entre C ++ e Java

Parâmetro C ++ Java
Relação Nenhuma relação estrita entre nomes de classes e nomes de arquivos. Em C ++, arquivos de cabeçalho e arquivos de implementação são usados ​​para classes específicas. A relação estrita é aplicada, por exemplo, o código-fonte para a classe PayRoll deve estar em PayRoll.java.
Mecanismo de entrada As declarações de I / O usam in e cout, por exemplo, in x; cout y; O mecanismo de entrada de E / S é bastante complexo, pois lê um byte de cada vez (System.in). A saída é fácil, por exemplo System.out.println (x);
Compilador e Intérprete C ++ suporta apenas compilador Java suporta compilador e interpretador
Compatibilidade com outros idiomas Compatível com o código-fonte C, exceto alguns casos excepcionais. Sem compatibilidade com versões anteriores de qualquer idioma anterior. A sintaxe é influenciada por C / C ++.
Controle de acesso e proteção de objetos Modelo flexível com proteção constante disponível O modelo complicado incentiva o encapsulamento fraco.
Conceito Escreva uma vez, compile em qualquer lugar Escreva uma vez, execute em qualquer lugar em qualquer lugar
Suporte para tipo de programação Permite a programação procedural e a programação orientada a objetos. Suporta modelo de programação orientado a objetos.
Interface Permite chamadas diretas para bibliotecas nativas do sistema. Chame apenas por meio da Java Native Interface e recentemente do Java Native Access
Gerenciamento de memória Acessível ao programador Sistema controlado
Hierarquia raiz C ++ não existe tal hierarquia raiz. C ++ suporta programação procedural e orientada a objetos; portanto, é chamada de linguagem híbrida. Java é uma linguagem de programação puramente orientada a objetos. Isso é. Por que segue uma hierarquia de raiz única.
Melhores características C ++ oferece suporte a recursos orientados a objetos Recursos de programação procedural. Java oferece suporte à coleta de lixo automática. Ele não suporta destruidores como o C ++.
Declaração Goto C ++ tem uma instrução goto. Embora não seja ideal usar uma instrução goto. Java não tem instrução goto. As palavras-chave got e const são reservadas mesmo se não forem usadas.
Herança múltipla C ++ fornece multipleInheritance. A palavra-chave virtual é usada para resolver problemas durante a herança múltipla, se houver algum. Java não fornece herança múltipla.
Operador de resolução de escopo C ++ tem operador de resolução de escopo (: :) que é usado para definir um método fora de uma classe e para acessar uma variável global dentro do escopo onde uma variável local também existe com o mesmo nome. Nenhum operador de resolução de escopo (: :) em Java. As definições do método devem ocorrer dentro de uma classe, portanto, não há necessidade de resolução de escopo.
Método de apoio C ++ suporta sobrecarga de método e sobrecarga de operador Java só oferece suporte à sobrecarga de método. Ele não fornece suporte para sobrecarga do operador.
Portabilidade A fonte deve ser recompilada para a plataforma; portanto, o código não é portátil. As classes de bytecode são transferíveis para JVMs específicos da plataforma.
Semântica de tipo Consistente entre os tipos primitivos e de objeto. Diferem para tipos primitivos e de objeto.
Bibliotecas Funcionalidade predominantemente de baixo nível Massivo, aulas para serviços de alto nível.
Detecção de erro de tempo de execução Responsabilidade do programador. Responsabilidade do sistema.
Funções e dados Funções e dados podem existir externos a qualquer classe, escopos globais e de namespace estão disponíveis. Todas as funções e dados existem dentro das classes; o escopo do pacote está disponível.
Plataforma Os programas C ++ dependem da plataforma. Eles precisam ser compilados para uma plataforma específica. Os programas Java são independentes de plataforma. Os programas Java são escritos para Java Virtual Machine (JVM). Ele será executado sem a necessidade de recompilação.
Detecção de erro de tempo de execução Em C ++, é responsabilidade do Programador verificar os erros. É responsabilidade do sistema verificar erros no programa.
Pointer Ponteiros de suporte C ++. Java oferece apenas suporte limitado para ponteiros.
Estrutura Suporta estruturas. Não tem suporte para estruturas.
Sindicatos C ++ oferece suporte a sindicatos. Java não oferece suporte a sindicatos.
Gerenciamento de objetos C ++ oferece suporte ao gerenciamento manual de objetos com a ajuda de palavras-chave novas e de exclusão. Java é pesado depende da coleta de lixo automática. Não suporta destruidores.