心跳不规律是什么原因| 肝血虚吃什么药| 常熟有什么好玩的地方| 革兰氏阳性菌是什么病| 双鱼座和什么座最配对| 宝宝咳嗽吃什么药好| 年检是什么意思| 吃什么东西补肾| 什么是回迁房| 鸭子什么时候下蛋| 什么是支气管扩张| 后背麻木是什么原因| 枸杞泡水喝有什么作用| iron什么意思| 肝郁血瘀吃什么中成药| 割包皮属于什么科| 才貌双全是什么生肖| 环孢素是什么药| 二尖瓣钙化是什么意思| 高梁长什么样子| 尿频尿急尿不尽吃什么药| 为什么会长疤痕疙瘩| 什么是我的| 倏地是什么意思| 气血亏虚吃什么中成药| 尿液发黄是什么原因| 生吃洋葱有什么好处| 剥离是什么意思| 肚子疼拉肚子挂什么科| 石榴石是什么材质| 日字五行属什么| 月经前腰疼是什么原因| beside是什么意思| 西米是什么东西| 蛇属于什么动物| 无名指为什么叫无名指| 妈妈的妹妹叫什么| 经常胃疼是什么原因| 520是什么意思表白| 手上脱皮什么原因| 专班是什么意思| 肝胆胰腺属于什么科| o型rhd阳性是什么意思| roa胎位是什么意思| 首鼠两端什么意思| 驻外大使是什么级别| 溃疡用什么药| 郑州有什么好玩的景点| 秋千为什么叫秋千| 春天都开什么花| 吃什么可以护肝养肝| 边界尚清是什么意思| 胎毛什么时候脱落| 月经期间喝什么好排毒排污血| 手指甲出现双层是什么原因| 什么人容易得白塞氏病| 吃什么补钾快| 来日方长是什么意思| 祭日和忌日是什么意思| 梦见骡子是什么意思| 九三年属鸡是什么命| 尿频吃什么药效果最好| 牛逼是什么意思| 智齿是什么原因引起的| 吃什么补钙最快| 父母什么血型会溶血| 情景剧是什么意思| 阑尾炎做什么检查| 吃葡萄有什么好处| 产褥期是什么意思| 一清二白是什么意思| 儿童过敏性咳嗽吃什么药| 马踏飞燕什么意思| 梦见跟别人打架是什么意思| 1月24号什么星座| 眼睛痒什么原因| 22点是什么时辰| 桑是什么意思| 吃什么养发| 低聚果糖是什么| 反社会人格有什么表现| 背疼应该挂什么科| 指尖脱皮是什么原因| 成龙姓什么| 乌龟为什么不吃东西| b超检查前要注意什么| 小孩老放屁是什么原因| lo是什么意思| 内分泌科看什么病| lee属于什么档次| 晚上七点多是什么时辰| 六月不搬家是什么意思| 长河落日圆什么意思| 一什么斑点| 血脂高吃什么药| 甲状腺弥漫性改变是什么意思| 成人受到惊吓吃什么药| 维生素b族什么时候吃最好| 什么减肥药好使| c13呼气试验阳性是什么意思| susie是什么意思| 州和洲有什么区别| 办暂住证需要什么| 鲨鱼是什么动物| 1946年属狗的是什么命| 舅舅和外甥女是什么关系| 精梳棉是什么面料| 强盗是什么意思| 双脚发热是什么原因| 婴儿胀气是什么原因| 低压高吃什么药最有效| 心电图挂什么科| 感觉牙齿松动是什么原因| 什么时候着床| 晨尿有泡沫是什么原因| 黑加京念什么| 等闲识得东风面下一句是什么| 如火如荼是什么意思| 咽喉炎挂什么科| 秋葵有什么作用| 荆棘什么意思| 甲流吃什么药效果最好| 王毅是什么级别| 时柱比肩是什么意思| 言字旁有什么字| 舌苔黄厚腻是什么原因| 女人吃玛卡有什么好处| 被隐翅虫咬了涂什么药| 围子是什么动物| 笃什么意思| 高血压可以吃什么水果| 全身发热是什么原因| bred是什么意思| 手术后吃什么好| 子母被是什么意思| 羊齿状结晶代表什么| 为什么生理期不能拔牙| 温碧泉适合什么年龄| 见分晓是什么意思| 气血虚吃什么补最快女人| 美甲做多了有什么危害| 经血发黑什么原因| 李子有什么功效| 爱放屁吃什么药| 白脉病西医叫什么病| 尿白细胞高是什么原因| hbalc是什么意思| 什么是电子烟| 什么症状吃保心丸| 杰瑞是什么品种的老鼠| gg是什么品牌| 几天不大便是什么原因| 神经紊乱会出现什么症状| 六神无主是什么意思| 虾仁和什么包饺子好吃| 来世是什么意思| 眩晕症是什么原因造成的| 九品芝麻官是什么级别| 胰腺在人体什么位置| 蛇胆疮是什么原因引起的| 小孩睡觉磨牙是什么原因引起的| 解酒喝什么最好| 黄瓜不能和什么食物一起吃| 松香对人体有什么危害| 粤语什么怎么说| 高血压1级是什么意思| 太多的理由太多的借口是什么歌| 慢性胆囊炎是什么原因引起的| 罄竹难书什么意思| 癫痫是什么病| 木舌是什么字| 冲鸡蛋水喝有什么好处| 终身是什么意思| moschino是什么品牌| 淘米水洗脸有什么好处| 咳嗽吐白痰是什么病| 酒后大量出虚汗什么原因| 蜂蜜和什么不能一起吃| 太平天国失败的根本原因是什么| 女的什么时候退休| 梦到和别人吵架是什么意思| 吡唑醚菌酯治什么病| 胎盘前壁是什么意思| 反流性食管炎可以吃什么水果| 为什么胃酸会分泌过多| 吐槽什么意思| 太阳穴长痘痘什么原因| 公共关系是什么意思| 草鱼喜欢吃什么食物| 婚检检查什么| 一动就出汗吃什么药| 二月一号是什么星座| 果实是什么意思| 胆囊切除对身体有什么影响| 微循环是什么意思| 肺燥吃什么中成药| 喉咙痛可以吃什么水果| 蛀牙的早期症状是什么| roi是什么| 肺气肿是什么意思| 先自度其足的度是什么意思| 喝水喝多了有什么坏处| 天冬氨酸氨基转移酶高是什么原因| 金铃子是什么昆虫| 燊念什么| 病魔是什么意思| 花雕酒是什么酒| 足跟痛吃什么药| 大腿粗是什么原因导致的| 吃人参对身体有什么好处| 生物包括什么| 三羊开泰什么意思| 不怀孕是什么原因引起的| 圆珠笔是什么笔| 已佚是什么意思| 什么是素质教育| 梦见龙是什么预兆| phicomm是什么牌子| 见什么知什么| 龙象征着什么| pretty什么意思| 口腔疱疹吃什么药| sod什么意思| 尿胆原norm是什么意思| 手掌脱皮是什么原因| 睡眠瘫痪症是什么| 皮革胃是什么意思| 猪精是什么| 什么是气短| 干涉是什么意思| 烂苹果气味的是什么病| 有什么园| 左灯右行什么意思| 南京大屠杀是什么时候| 凝血功能差是什么原因| 劳改是什么意思| 痔疮手术后可以吃什么水果| 父亲送什么礼物| 上课什么坐姿可以瘦腿| 肛周湿疹用什么药| 属猪的贵人属相是什么| 酚咖片是什么药| hpv是什么症状| 蚊子会传播什么疾病| 燃面为什么叫燃面| 贻字五行属什么| 老年人喝什么蛋白粉好| 怀才不遇什么意思| 死精是什么样的颜色| 老鼠最怕什么气味驱赶| 吃虾有什么好处| 乳房痛是什么原因| 治前列腺炎吃什么药效果最好| 口腔溃疡是什么原因造成的| 多多保重是什么生肖| 牙龈肿痛吃什么中成药| 胃炎吃什么药效果好| 扁平化管理是什么意思| 什么是酸| 苹果a1660是什么型号| 胎儿肠管扩张是什么原因造成的| 淋巴结肿大挂什么科| 战略纵深是什么意思| 毕业送什么花| 百度Zum Inhalt springen

味淋可以用什么代替

aus Wikipedia, der freien Enzyklop?die
Java-Logo
百度 要加强自身建设特别是领导班子建设,贯彻民主集中制,提高政治把握能力、参政议政能力、组织领导能力、合作共事能力、解决自身问题能力。

Die Java Virtual Machine (abgekürzt Java VM oder JVM) ist der Teil der Java-Laufzeitumgebung (Java Runtime Environment, JRE) für Java-Programme, der für die Ausführung des Java-Bytecodes verantwortlich ist. Hierbei wird im Normalfall jedes gestartete Java-Programm in seiner eigenen virtuellen Maschine (VM) ausgeführt. Der andere Teil der Java-Laufzeitumgebung sind die Java-Klassenbibliotheken.

Die JVM dient dabei als Schnittstelle zur Maschine und zum Betriebssystem und ist für die meisten Plattformen verfügbar (z. B. Linux, macOS, Palm OS, Solaris, Windows, z/OS). Die JVM ist meist in den Programmiersprachen C oder C++ geschrieben.

Die Bestandteile der JVM sind

Funktionsprinzip

[Bearbeiten | Quelltext bearbeiten]

Vom Java-Compiler erzeugter (plattformunabh?ngiger) Bytecode wird von einer plattformabh?ngigen Java Virtual Machine ausgeführt. Die erzeugten Bytecode-Dateien (Dateiendung ?.class“) werden w?hrend der Laufzeit in die lokale Maschinensprache übersetzt. Die virtuelle Maschine arbeitet dabei wie ein Interpreter, ist jedoch wesentlich schneller, da z. B. keine Syntaxüberprüfungen mehr vorgenommen werden müssen.

Sicherheitsvorteile

[Bearbeiten | Quelltext bearbeiten]

Die Java Virtual Machine bietet neben der Plattformunabh?ngigkeit des Bytecodes auch einen Gewinn an Sicherheit. Sie überwacht zur Laufzeit die Ausführung des Programms, verhindert also zum Beispiel Pufferüberl?ufe, welche zu unvorhersehbarem Verhalten wie etwa dem Absturz des Programmes führen. Im speziellen Fall von Java f?llt diese überwachung sehr einfach aus, da Java nicht direkt Zeiger unterstützt (nur implizit).

Optimierungsverfahren

[Bearbeiten | Quelltext bearbeiten]

Um die Ausführungsgeschwindigkeit von Java-Programmen zu erh?hen, setzen die meisten Java-VMs sogenannte JIT-Compiler (JITC) ein, die unmittelbar w?hrend des Programmablaufs den Bytecode ?Just In Time“ dauerhaft in Maschinencode übersetzen. Eine Weiterentwicklung dieses Ansatzes ist der Hotspot-Optimizer von Sun, welcher mit dynamischer Optimierung arbeitet:

Dynamische Optimierung

[Bearbeiten | Quelltext bearbeiten]

Oft ist zum Zeitpunkt der Kompilierung nicht bekannt, welche konkrete Eingabe eine Software verarbeiten muss. Demzufolge muss die Software mit allen Arten von Eingaben zurechtkommen. Die Eingabe wird demnach in Variablen gespeichert. Nach dem Start des Programms werden jedoch viele Variablen nicht mehr ge?ndert. Folglich sind diese – von einem Zeitpunkt kurz nach dem Start an – Konstanten. Wird nun erst nach diesem Zeitpunkt die Software für die System-Architektur kompiliert (dies ist bei HotSpot der Fall), so k?nnen diese Konstanten berücksichtigt werden. Bestimmte Verzweigungen, die nur von solchen ?Halbkonstanten“ abh?ngig sind, sind dann für immer eindeutig und stellen somit kein Risiko für eine falsche Sprungvorhersage dar. Ein solcher Programmcode kann also schneller ablaufen als zu einem früheren Zeitpunkt kompilierter Code.

Implementierungen in Hardware

[Bearbeiten | Quelltext bearbeiten]

Ausführungen in Hardware sind die Java-Prozessoren, Mikroprozessoren, die Java-Bytecode als Maschinensprache verwenden. Sie konnten sich gegen die schnelle Steigerung der Leistungsf?higkeit von prozessorspezifischen JVMs auf anderssprachigen Prozessoren, wie in PCs und Mobiltelefonen eingesetzt, nicht durchsetzen.

Abschottung der Threads

[Bearbeiten | Quelltext bearbeiten]

Die Java VM schottet die in ihr laufenden Prozesse vom Betriebssystem ab (Green Threads). Sie bildet standardm??ig Java-Threads durch Threads des Betriebssystems ab. Nur in Ausnahmef?llen erfolgt das Thread-Management durch die Java VM. Somit ist es auch m?glich, auf einem Betriebssystem, das kein Multithreading unterstützt, eine Java VM mit vollem Funktionsumfang anzubieten.

Die Java VM hat stets volle und standardkonforme Hoheit über die Java-Threads, d. h. der Programmierer braucht nicht die betriebssystemspezifischen Multi-Threading/Tasking/Processing-Eigenschaften zu berücksichtigen und kann sich stets auf die JRE verlassen. Nachteil ist, dass Probleme, die von einem Thread ausgehen, seitens des Betriebssystems dem gesamten Prozess zugeordnet werden. G?ngige Betriebssysteme (wie zum Beispiel Linux, Windows) erlauben Kontrolle über diese ?nativen“ Threads allenfalls über Software von Drittanbietern, wie beispielsweise die mit dem JDK mitgelieferte VisualVM. Standardwerkzeuge wie beispielsweise der Windows Taskmanager zeigen Systemthreads jedoch nicht an.

Neben Java gibt es auch andere Sprachen, die als Programmiersprachen für JVM-Programme benutzt werden k?nnen. Unter anderem folgende Sprachen k?nnen auf einer JVM laufen:

  • Clojure, ein Lisp-Dialekt,
  • Ceylon,
  • Concurnas, eine Multi-Paradigma-Programmiersprache für nebenl?ufige, verteilte und reaktive Anwendungen, mit Python-?hnlicher Syntax, Unterstützung für GPU-Computing und Off-Heap-Speicherverwaltung.[1][2]
  • Erjang, ein Erlang-Dialekt für die JVM,
  • Free Pascal, das auch unter der JVM einen Gro?teil der Object-Pascal-Konstrukte unterstützt,
  • Groovy, eine sehr Java-nahe, statisch wie dynamisch typisierte Programmiersprache
  • JRuby, eine ann?hernd Ruby-kompatible Implementierung,
  • Jython (früher: JPython), eine reine Java-Implementierung der Programmiersprache Python,
  • Nice, erg?nzt Java mit parametrischen Typen, anonymen Funktionen, Multimethoden, Tupel und optionalen Parametern[3].
  • Scala, eine Sprache, die Eigenschaften von Java mit funktionaler Programmierung vereint,
  • Kotlin, eine 2011 vorgestellte Sprache von JetBrains[4]

Daneben gibt es eine Reihe von Skripting-Sprachen, die von Java aus aufrufbar sind. Dazu geh?rt JavaScript (mittlerweile standardisiert als ECMAScript) mit dem ?Rhino“-Interpreter (ein Mozilla-Projekt) bis Version 7 bzw. mit dem ?Nashorn“-Interpreter ab Version 8. Auch JavaFX enthielt in den Versionen 1.x eine Skripting-Sprache vor allem für grafische Elemente, ist aber ab Version 2.0 in pure Java implementiert.

Kompilierung in JavaScript

[Bearbeiten | Quelltext bearbeiten]

Mit der kontinuierlichen Verbesserung der JavaScript-Ausführungsgeschwindigkeit, kombiniert mit der verst?rkten Nutzung mobiler Ger?te, deren Webbrowser keine Unterstützung für Plugins bereitstellen, gibt es Bemühungen, diese Benutzer durch Kompilierung in JavaScript anzusprechen. Es ist m?glich, den Quellcode oder JVM-Bytecode nach JavaScript zu kompilieren.

Die Kompilierung des JVM-Bytecodes, der für alle JVM-Sprachen universell ist, erm?glicht es, auf dem bestehenden Compiler der Sprache aufzubauen und Bytecode zu erstellen. Die wichtigsten JVM-Bytecodes für JavaScript-Compiler sind TeaVM[5], der Compiler im Dragome Web SDK[6], Bck2Brwsr[7], und j2js-Compiler[8].

Zu den führenden Compilern von JVM-Sprachen zu JavaScript geh?ren der Java-zu-JavaScript-Compiler in Google Web Toolkit, Clojurescript (Clojure), GrooScript (Apache Groovy), Scala.js (Scala) und andere[9].

  • Dalvik – eine von Google für die Android-Plattform entwickelte JVM
  • HotSpot – die am weitesten verbreitete JVM von Oracle
  • IBM J9
  • JRockit (BEA Systems, jetzt Oracle)
  • Kaffe – eine freie GPL-JVM-Implementierung
  • Persistent Reusable Java Virtual Machine (PRJVM) – eine von IBM modifizierte Form der JVM
  • PreonVM,[10] virtuelle Maschine für ressourcenbeschr?nkte eingebettete Systeme
  • SableVM – freie LGPL JVM-Implementierung
Commons: Java Virtual Machine – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. Concurnas: the New Language on the JVM for Concurrent and GPU Computing. In: InfoQ.com. C4Media Inc., abgerufen am 25. Juni 2020 (englisch).
  2. The Concurnas Programming Language. Concurnas Ltd., abgerufen am 25. Juni 2020 (englisch).
  3. The Nice programming language. Abgerufen am 15. August 2019 (englisch).
  4. Kotlin: Erster Web-Auftritt für JetBrains JVM-Sprache, it-republik.de, abgerufen am 22. Juli 2012
  5. TeaVM: Build Fast, Modern Web Apps in Java. Abgerufen am 23. Oktober 2019 (englisch).
  6. Dragome Web SDK. Abgerufen am 23. Oktober 2019 (englisch).
  7. Bck2Brwsr – APIDesign. Abgerufen am 23. Oktober 2019 (englisch).
  8. GitHub – decatur/j2js-compiler: A Java Bytecode to JavaScript Cross-Compiler. In: GitHub. Abgerufen am 23. Oktober 2019 (englisch).
  9. List of languages that compile to JS · jashkenas/coffeescript Wiki · GitHub. Github.com, abgerufen am 26. Juni 2015 (englisch).
  10. PreonVM | Virtuelle Maschine für die Preon32-Serie (Memento des Originals vom 11. November 2017 im Internet Archive)  Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gem?? Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/www.virtenio.com Abgerufen am 10. November 2017
走后门什么意思 打扮的意思是什么 everytime什么意思 出汗臭是什么原因 马蜂窝治什么病最好
乙肝15阳性是什么意思 血糖高适合吃什么食物 医学hr是什么意思 兴奋是什么意思 痔疮是什么科室看的
失心疯是什么意思 纸上谈兵是什么生肖 tb是什么意思啊 长春新碱是什么药 香肠炒什么菜好吃
Fish什么意思 缺铁性贫血吃什么药好 胃酸反流是什么原因 隔夜茶为什么不能喝 暂住证需要什么材料
丙肝是什么hcv8jop1ns4r.cn 茜草别名又叫什么hcv9jop3ns9r.cn 人血白蛋白适合什么人hcv9jop8ns1r.cn 看望病人送什么花合适hcv9jop5ns2r.cn 糙米饭是什么米hcv8jop4ns7r.cn
月经来前有什么征兆hcv9jop7ns4r.cn 为什么人会得抑郁症1949doufunao.com 血压高有什么危害hcv7jop5ns1r.cn cm和mm有什么区别naasee.com 头发粗硬是什么原因hcv9jop6ns3r.cn
什么是化学hanqikai.com 男同是什么意思hcv8jop8ns5r.cn 果是什么结构的字hcv8jop1ns3r.cn 舌苔黄腻吃什么药hcv9jop0ns8r.cn 月经淋漓不尽吃什么药cl108k.com
闺蜜是什么意思kuyehao.com 月经有血块是什么原因zhongyiyatai.com 梅毒螺旋体抗体是什么意思hcv9jop2ns0r.cn 桑树枝煮水有什么功效hcv9jop2ns5r.cn 芒果什么人不适合吃xjhesheng.com
百度