J'ai récemment appris le J2SE. Après environ 20 jours, j'ai fini de lire J2SE de M. Ma Bingbing. Je pense que ce professeur est si plein d'humour que je ne serai pas distrait en écoutant ses cours. L'utilisation du temps est très élevée. Je donne sincèrement un coup de pouce au professeur Ma Bingbing, et deux autres félicitations au professeur Mi qui nous a fait apprendre cette vidéo ! (Il y a beaucoup de belles choses dans le monde, mais ce qui manque, ce sont les yeux pour découvrir de belles choses !).
Sans plus attendre, regardons ce qui est réellement dit dans cette vidéo. Comme indiqué ci-dessous :
Les personnes qui ont peut-être étudié n'importe quel langage orienté objet (j'ai étudié C#, qui est calqué sur Java et encore amélioré Java), la première impression en voyant cette image est qu'ils ont essentiellement étudié toutes ces choses. Il semble qu'il n'y ait qu'une interface graphique. , JDBC est une nouveauté.
En fait, ils sont très similaires, de toute façon, la plupart des gens pensent qu’ils sont identiques. Comparez-les ci-dessous !
En termes de syntaxe, les deux ont abandonné de nombreux endroits tape-à-l'œil tels que la modification const des fonctions et de leurs paramètres en C++, la substitution de macros, les variables globales et les fonctions globales.
En termes d'héritage, les deux adoptent des solutions d'héritage racine unique et d'implémentation multi-interfaces plus faciles à comprendre et à construire. En termes d'organisation du code source, une meilleure encapsulation logique intégrant la déclaration et l'implémentation a été proposée.
En termes d'unification de types entre les types de base et les objets hérités à racine unique, la méthode box/unbox proposée par C# est plus intelligente et plus efficace que la classe d'empaquetage de Java.
L’orientation composants est sans aucun doute le courant dominant du développement logiciel contemporain. C# est même devenu "obsédé" par la programmation de composants, ce qui est complètement différent de Java, qui a fait ses débuts il y a 6 ans - bien sûr, c'est une question de temps. C# implémente sa prise en charge directe de la programmation de composants via des propriétés, des indexeurs, une délégation, des événements, une surcharge d'opérateurs, des traits, des versions, etc. Bien que ceux-ci puissent être implémentés indirectement via des méthodes, des interfaces ou des adaptateurs en Java, l'histoire de l'industrie du logiciel nous dit que cela nuit gravement à l'efficacité de la programmation ou à la conception logique - la première chose à laquelle les langages de haut niveau sont confrontés, ce sont les personnes, pas machines. En plus de ces mécanismes de prise en charge des composants au niveau du langage, la plate-forme .NET fournit également une solution package pour la configuration, le fonctionnement, la gestion des composants, etc., et Visual Studio.NET, conçu sur mesure pour le développement de composants, est encore plus passionnant. C'est tout pour que la programmation de composants C# ouvre un vaste monde. En termes d'autres technologies, les faibles inconvénients de Java sont négligeables, mais en termes de programmation de composants, Java présente des défauts incurables par rapport à C#. Surtout pour les développeurs issus d’une formation C++ et Visual Basic, C# a un charme et une tentation irrésistibles à cet égard.
En termes de multiplateforme, le support et l'implémentation de Java sont salués, même si la vitesse de JVM reste un casse-tête. Bien que C# ait pleinement pris en compte la portabilité en termes de structure sous-jacente, au moins il n’existe pas encore de produit mature et testé. C# semble être plus intéressé par l'interopérabilité des services Web XML que par la programmation multiplateforme. Cependant, la prise en charge de l'interopérabilité au niveau objet de C# pour plus de 20 langages courants via sa construction de langage de base (CLI) a considérablement amélioré le statut technique de C#. L'interopérabilité bon marché avec les composants COM rapporte également beaucoup de points à C# : le maintien d'un système compatible est très important pour l'industrie du logiciel moderne, et c'est également un signe de responsabilité pour la majorité des développeurs.
Bien entendu, une évaluation technique complète des deux langages n’est en aucun cas une simple liste et comparaison des points ci-dessus. Leurs plateformes back-end (C# pour .NET, Java pour J2EE), le support de leurs frameworks de programmation. , et la mise en œuvre d'outils pertinents pour chaque langage sont désormais Certaines fondations du système, etc., ont un impact considérable sur le développement des langages de programmation. D'un point de vue purement technique, C# est sans aucun doute plus compétitif que Java. Il ne sert à rien de débattre pour savoir qui a copié qui : le développement technologique est par nature un processus d’apprentissage mutuel. La pure concurrence technique ne peut pas déterminer l’issue de ce débat – s’il doit s’agir d’une confrontation. L'industrie du logiciel est heureuse de voir la concurrence, seule une technologie tempérée par le marché peut mieux nous servir.