Javatpoint Logo
Javatpoint Logo

C++ versus Java

Existem algumas diferenças e similaridades entre a linguagem de programação C++ e Java. Uma lista das principais diferenças entre C++ e java são dadas abaixo:

Índice de comparação C++Java
Independência de plataforma Depende da plataforma Não depende de plataforma
Principalmente usada para Programação de sistemas Programação de aplicações. Amplamente usada no Windows, web, enterprise e aplicativos mobile.
Objetivo do design Foi projetado para programação de sistemas e aplicativos. Foi uma extensão  da linguagem de programação C. Foi projetado e criado como um interpretador para sistemas de impressão mas depois foi estendida como um  suporte a computação em rede. Foi projetada com um objetivo de ser fácil para usar e acessível para um mais amplo público.
Goto Suporta a declaração goto Não suporta a declaração goto
Herança múltipla Suporta herança múltipla Java não suporta herança múltipla através de class. Pode ser alcançada usando interfaces em java.
Sobrecarga de operadores Suporta sobrecarga de operadores Não suporta sobrecarga de operadores
Ponteiros Suporta ponteiros. Você consegue utilizar ponteiros em programas C++ Suporta ponteiro internamente. Entretanto, você não pode trabalhar com ponteiros em programas java.
Compilador e interpretador Usa somente compilador. C++ é compilado e executado usando o compilador que converte o código fonte em código de máquina, então, C++ é dependente de plataforma. Usa ambos. O código fonte java é convertido em bytecode em tempo de compilação. O interpretador executa este bytecode em tempo de execução e produz uma saída. Java é interpretado e é por isso que é independente de plataforma.
Chamada por valor e chamada por referência C++ suporta ambos. Suporta somente chamada por valor. Não existe chamada por referencia em java.
Structure e Union C++ suporta structures e unions Java não suporta structures e unions
Suporte a thread C++ não tem suporte embutido para threads. Depende de bibliotecas de terceiros para suportar thread. Java tem suporte a thread embutido
Documentação e Comentário Não suporta comentário Suporta comentário (/** … */) para criar comentário para código fonte java.
Palavra reservada Virtual Suporta virtual mas nós que decidimos se sobrescreve ou não uma função Não tem a palavra reservada virtual. Nós podemos sobrescrever todos os métodos não estáticos por default. Em outras palavras, métodos não estáticos são virtual por padrão.
Shift para a direita sem sinal >>> Não suporta operador >>> Suporta operador >>> que preenche de zeros a esquerda para números negativos. Para números positivos, funciona da mesma forma que o operador >>
Árvore de Herança Cria sempre uma nova árvore de herança Java usa sempre uma única árvore de herança porque todas as classes são filhas da classe object em java. A classe objeto é a raiz da árvore de herança em java.
Hardware É mais perto do hardware. Não é tão interativo com o hardware
Orientação a objetos É uma linguagem orientada a objetos. Entretanto, na linguagem C, hierarquia de única raiz não é possível. É também uma linguagem orientada a objetos. Entretanto, tudo (com exceção dos tipos fundamentais) é um objeto em java. É uma hierarquia de raiz única, pois tudo é derivado de java.lang.Object.

Nota

  • Java não suporta argumentos padrão como C++.
  • Java não suporta cabeçalhos de arquivos como em C++. Java usa a palavra reservada import para incluir diferentes classes e métodos.

C++ Example

Arquivo: main.cpp

Java Example

Arquivo: Simple.java


Próximo tópicoPrimeiro Programa em Java




Help Others, Please Share

facebook twitter pinterest

Learn Latest Tutorials


Preparation


Trending Technologies


B.Tech / MCA