Tenho aprendido J2SE recentemente. Após cerca de 20 dias, terminei de ler J2SE do Sr. Ma Bingbing. Sinto que este professor é tão bem-humorado que não me distraio ao ouvir suas palestras. Sinceramente, dou um sinal de positivo para a professora Ma Bingbing e mais dois polegares para a professora Mi, que nos fez aprender este vídeo! (Existem muitas coisas bonitas no mundo, mas o que falta são olhos para descobrir coisas bonitas!).
Sem mais delongas, vamos dar uma olhada no que realmente é dito neste vídeo. Conforme mostrado abaixo:
Pessoas que podem ter estudado qualquer linguagem orientada a objetos (eu estudei C#, que é modelado a partir de Java e melhorei ainda mais o Java), a primeira impressão ao ver esta imagem é que basicamente estudaram todas essas coisas. , JDBC é uma coisa nova.
Na verdade, eles são realmente semelhantes. A maioria das pessoas pensa que são iguais. Compare-os abaixo!
Em termos de sintaxe, ambos abandonaram muitos lugares chamativos, como modificação const de funções e seus parâmetros em C++, substituição de macros, variáveis globais e funções globais.
Em termos de herança, ambos adotam herança de raiz única e soluções de implementação multiinterface que são mais fáceis de entender e construir. Em termos de organização do código-fonte, foi proposto um melhor encapsulamento lógico que integra declaração e implementação.
Em termos de unificação de tipos entre tipos básicos e objetos herdados de raiz única, o box/unbox proposto pelo C# é mais inteligente e eficiente do que a classe de empacotamento do Java.
A orientação a componentes é, sem dúvida, a corrente principal do desenvolvimento de software contemporâneo. O C# até ficou “obcecado” pela programação de componentes, o que é completamente diferente do Java, que estreou há 6 anos – claro que isso é uma questão de tempo. C# implementa seu suporte em primeira mão para programação de componentes por meio de propriedades, indexadores, delegação, eventos, sobrecarga de operador, características, versões, etc. Embora estes possam ser implementados indiretamente através de métodos, interfaces ou adaptadores em Java, a história da indústria de software nos diz que isso é um grande dano à eficiência da programação ou ao design lógico - a primeira coisa que as linguagens de alto nível enfrentam são as Pessoas, não máquinas. Além desses mecanismos de suporte a componentes em nível de linguagem, a plataforma .NET também fornece uma solução de pacote para configuração, operação, gerenciamento de componentes, etc., e o Visual Studio.NET, que é feito sob medida para o desenvolvimento de componentes, é ainda mais interessante Isso é tudo para C# A programação de componentes abre um vasto mundo. Em termos de outras tecnologias, as desvantagens fracas do Java são insignificantes, mas em termos de programação de componentes, o Java tem falhas incuráveis em comparação com o C#. Especialmente para desenvolvedores com experiência em C++ e Visual Basic, C# tem um charme e uma tentação irresistíveis nesse aspecto.
Em termos de plataforma cruzada, o suporte e a implementação do Java são elogiados, embora a velocidade da JVM ainda seja uma dor de cabeça. Embora o C# tenha considerado totalmente a portabilidade em termos de estrutura subjacente, pelo menos ainda não existe um produto maduro e testado. C# parece estar mais interessado na interoperabilidade de XML Web Services do que na programação multiplataforma. No entanto, o suporte à interoperabilidade em nível de objeto do C# para mais de 20 linguagens convencionais por meio de sua construção de linguagem básica (CLI) melhorou bastante o status técnico do C#. A interoperabilidade barata com componentes COM também dá muitos pontos ao C# - manter um sistema compatível é muito importante para a indústria de software moderna e também é um sinal de responsabilidade para a maioria dos desenvolvedores.
É claro que uma avaliação técnica abrangente das duas linguagens não é de forma alguma apenas uma simples lista e comparação dos pontos acima. Suas plataformas de back-end (C# para .NET, Java para J2EE), o suporte de suas estruturas de programação. , e a implementação de ferramentas relevantes para cada linguagem são agora Algumas bases de sistema e assim por diante têm um impacto considerável no desenvolvimento de linguagens de programação. De uma perspectiva puramente técnica, C# é sem dúvida mais competitivo que Java. Não faz sentido discutir quem copiou quem – o desenvolvimento da tecnologia é inerentemente um processo de aprendizagem mútua. A pura competição técnica não pode determinar o resultado deste debate – se tiver de ser um confronto. A indústria de software está feliz em ver a concorrência. Somente a tecnologia que foi temperada pelo mercado pode nos servir melhor.