编程知识 cdmana.com

Série JVM - - une histoire intéressante sur le développement historique de Java

javaQuelques développements dans le système technologique

Bonjour, je suisidea.Dans cette colonne, parlons dejavaL'histoire du développement de la famille des machines virtuelles,Il se peut que cet article n'explique pas beaucoup de choses sur les principes techniques,Plus de connaissances pertinentes seront plus intéressantes.

In1990En,Plusieurs maisons technologiques commencent à travailler sur un système capable de supporter plusieurs plateformes.


PourquoiCLa langue n'a pas de bonnes caractéristiques multiplateforme?

UtiliserCLes fichiers édités dans la langue finissent par être en format binaire,Mais différentcpuRègles incohérentes pour ces identifications binaires,Cela peut facilement conduire àCCe qui est écrit dans la langue estA-cpuLe Haut peut fonctionner,Mais dansB-cpuImpossible d'exécuter,Alors disCLe langage n'est pas parfait dans l'aspect multiplateforme.

Insérer la description de l'image ici

Ces maisons techniques sont donc à l'origineCSur la base de la langue, le développement secondaire,J'ai l'intention de combiner différentscpuFaire un adaptateur de couche pour les règles de résolution des ensembles d'instructions( Le concept de machine virtuelle est né progressivement ), Il a donc développé une sorte de OakLa langue de.Mais parce queOak La langue était déjà enregistrée , Alors changez de nom pour JavaLangues.

JDKHistoire du développement

1996Au début de l'année,Java Première apparition de la langue , À cette époque, c'était principalement Sun La société fait la promotion de ,Et il s'appelleJDK1.0Version, L'utilisation principale est un modèle appelé Classic La technologie des machines virtuelles pour .Mais parce queClassic Quelques défauts de la technologie des machines virtuelles , Pas assez bien fait au niveau éditorial , Il a également laissé un ”Java Le langage est très lent “Impression.


1997En,sun La société a acquis une société appelée Longview TechnologiesEntreprises, C'est là qu'est apparue une nouvelle HotspotMachine virtuelle pour.
Insérer la description de l'image ici

1998En,jdk1.2Publié, Principalement pour les grands systèmes de serveurs ,En même tempsSun La société a également proposé jsp/ServletSpécifications techniques,EJBSpécifications,EtJava Le domaine global de J2EE,J2SE,J2METrois directions, Pour les développeurs de logiciels sur le marché , Concurrence sur le marché des fournisseurs de services . Il y a aussi un nouveau type appelé Exact VmMachine virtuelle pour, Cette machine virtuelle est plus performante qu'auparavant Classic La technologie des machines virtuelles est un peu plus mature .Exact Vm Les machines virtuelles ont principalement abandonné la technologie Handle Query Object utilisée précédemment , Amélioration des performances de positionnement des objets .

Insérer la description de l'image ici


2000En,JDK1.3Publié,Hotspot La machine virtuelle est devenue la machine virtuelle par défaut ,Et avantJDK1.2La période apparaîtExact VM Mais il n'a pas été développé et maintenu pour des raisons de décision interne .Hotspot La machine virtuelle est devenue une technologie de machine virtuelle utilisée par la plupart des programmeurs .
2001Année,JDK1.4Publication,Classic La machine virtuelle est hors de vue . A l'arrière 03En,GroovyJ'ai aussi rejointJava Dans le camp de .04EnJDK1.5 C'est un changement historique , Il y a eu beaucoup de changements dans cette version ,Par exemple, génériques,Réflexe,Enumeration,Paramètre de longueur variable,foreach De nouveaux points caractéristiques tels que la grammaire émergent .
Plus tard,06En,JavaDémarrer l'Open Source, C'est ainsi qu'est née la fameuse OpenJDKProjets, Dans ce projet Hotspot La réputation de la machine virtuelle a encore été amplifiée .
Bien queJDK Au fil des ans, les choses se sont bien passées , Mais la concurrence commerciale est rude ,AvecSun Développement de l'entreprise , Un autre géant Oracle Les yeux commencent à rougir , Il est prévu d'utiliser des moyens d'acquisition pour acquérir ces technologies précieuses . 08EnOracleLa sociétéBEA J'ai fait une acquisition ,À ce moment - là,BEA Les entreprises ont également développé leurs propres machines virtuelles uniques , Et a développé un modèle appelé JRokit La technologie des machines virtuelles pour .ArrièreOracleEncore.Sun La société a fait une acquisition , Et en même temps JRokitEtHotspot Deux technologies de machines virtuelles très connues .
2011En,jdk1.7Publié, Une nouvelle génération de collecteurs d'ordures est maintenant disponible G1,EtNIO2.0Diffusion de la technologie.A plus tard.2014En,JDK1.8 Elle commence aussi à apparaître dans la vision populaire ,À l'époquelambda La syntaxe a beaucoup changé java Styles et habitudes de programmation .
Suivijdk Le développement et l'itération continus de , Plusieurs nouvelles technologies sont apparues :

JDK9—Par défautG1 En tant que collecteur d'ordures ,En même temps,Jshell Cet outil technique .


JDK10— Dans cette version varUtilisation de mots clés, Et la technique de poignée de main locale du thread ( Cela peut être interprété comme une fois qu'un thread a terminé son exécution , Nouvelles méthodes de rappel automatique )


JDK11—CommencerHttpClient DeapiIntroduit dansjava.net Utilisé dans le paquet .ZGC Promotion de la technologie ,ZGC Peut être compris comme étant à l'origine G1Un moyen d'optimiser. Par rapport aux algorithmes traditionnels de marquage des objets ,ZGC Marquer le pointeur , Ajouter Load Barrier(Lire la barrière), Comme quand un objet est GCBouge, La couleur sur le pointeur est mauvaise , Cette barrière met à jour le pointeur à une adresse valide avant de retourner ,C'est - à - dire, Il n'y a toujours qu'une seule chance qu'un seul objet soit décéléré lorsqu'il est lu , Il n'y a pas de raison de maintenir l'application avec GC Cohérent et grossier dans son ensemble STW.


JDK12— Une sorte de Shenandoah DeGCTechnique, Cette technologie passe par Java Thread simultané evacuation Travailler pour réduire GC Temps de pause.Utiliser Shenandoah Le temps de pause est indépendant de la taille du tas,Cela signifie que peu importe la pile 200 MB Toujours 200 GB, Tous auront le même temps de pause .

Quelles entreprises ont développé JDK

À part ceux que nous connaissons bien Sun,OracleAu - delà, En fait, les entreprises suivantes ont développé leur propre JDK.
IBM La société a développé un J9Machine virtuelle pour, Il y a aussi une certaine réputation dans l'industrie .
bea system L'entreprise a développé jrockitMachine virtuelle, J'ai aussi mentionné au - dessus de l'article , Mais l'entreprise a ensuite été OracleAcquis.

Et l'Alibaba que nous connaissons bien , Twitter a essayé de faire son propre jdkSur mesure, Mais ils sont tous basés sur Hotspot La technologie de base de , Pas de reprise du développement .open jdk,sun/oracle jdk,j9,jrockit Les machines virtuelles peuvent fonctionner sur une plate - forme matérielle commune .Il y en a un autre.jdkPlutôt spécial., Pour le fonctionnement de plates - formes matérielles spécialisées ,Azul SystemsDe l'entrepriseazul vmC'est un cas,Mais sur la basehotspot En cours de transformation .A cause deazul vm Les machines virtuelles ont des exigences élevées en matière d'adaptation du matériel , Donc plus tard Azul Systems L'entreprise n'a pas mis l'accent sur le développement de ce secteur d'activité , Au lieu de cela, il s'est concentré sur le développement zuluProduits.En fait...zuluDejvmPlus quehotspot Les performances des machines virtuelles sont meilleures ,Modifié en même tempshotspot Beaucoup de détails de mise en œuvre à l'intérieur ,Dont:pgc,c4 Le collecteur d'ordures peut supporter TB Niveau de collecte des ordures .C'est ça.hostspot On y est presque. jdk11Etjdk12 Version pour rattraper son amélioration de performance .

Microsoft a également développé jdkContexte, Mais plus tard sun La société a poursuivi et a arrêté la recherche et le développement .
2018Enoracle labs Il s'agit d'étudier une technologie Noire graal vm, Cette machine virtuelle peut supporter simultanément plusieurs types de langues différentes pour les appels mutuels .

Dis juste Sun/OracleDéveloppé parhotspot Les machines virtuelles sont largement utilisées , Il est donc facile d'induire les programmeurs en erreur ,Je pensais...JDKSeulementHotspot Cette collection .

版权声明
本文为[Danny... Idea]所创,转载请带上原文链接,感谢
https://cdmana.com/2022/01/202201080559031322.html

Scroll to Top