围绝经期什么意思| 尿蛋白高是什么意思| 佛爷是什么意思| 什么叫老人临终骨折| 梦到蜘蛛是什么意思| 早上喝蜂蜜水有什么好处| 俱往矣是什么意思| 肝气不足吃什么中成药| 饮什么止渴| 吃什么东西对肺好| 石敢当是什么神| 1996年什么命| 狗又吐又拉稀吃什么药| 夕阳朝乾是什么意思| 早上11点是什么时辰| 什么是眼底病| 壁虎的尾巴有什么作用| 脾切除对身体有什么影响| 生二胎应该注意什么| 乌龙茶属于什么茶| 民营企业和私营企业有什么区别| 什么叫三焦| maby什么意思| 金生水是什么意思| 克隆恩病是什么| 梦见妖魔鬼怪是什么意思| 死缓是什么意思| 祸害是什么意思| hcy是什么意思| 什么叫总胆红素| 碱中毒是什么引起的| 婴儿什么时候可以吃盐| 频繁流鼻血是什么病的前兆| out什么意思| 22岁属什么| 肚子胀气放屁吃什么药| 梦到生女儿是什么意思| 血脂稠是什么原因造成的| 什么病能办低保| 三点水开念什么意思| 中将是什么级别的干部| 人格魅力什么意思| 弱碱性水是什么水| 生花生吃了有什么好处| 白灼是什么意思| 为什么会得脂溢性皮炎| 尿道口有灼热感是什么原因| ootd什么意思| 飞行模式和关机有什么区别| 角质是什么意思| gp是什么的缩写| 相位是什么| 耳朵红热是什么原因| 摸胸是什么感觉| 牛后腿肉适合做什么| 射精太快吃什么药| c7是什么意思| 耳鸣吃什么中成药| 怀璧其罪是什么意思| 君子兰的寓意是什么| 飞机票号是什么意思| 男生叫你姑娘什么意思| 怡的意思和含义是什么| 什么情况下才做冠脉cta| 金牛座前面是什么星座| shadow是什么意思| 喝什么能解酒| 尿道口发痒是什么原因| 尿频是什么原因引起的| 氰化钾是什么| 房性逸搏心律是什么意思| 甲功四项是什么检查项目| 抗巨细胞病毒抗体igg高是什么意思| 生肖龙和什么生肖最配| 兔死什么悲| 嫁给香港人意味着什么| 乙肝表面抗原阳性是什么意思| 晕3d是什么原因| 夸父为什么要追赶太阳| 名节是什么意思| 魅力是什么意思| 才能是什么意思| 玻璃体混浊吃什么药好| 嗓子有痰是什么原因引起的| 射手座跟什么星座最配| 昏昏欲睡是什么意思| 机灵的动物是什么生肖| 完了是什么意思| 仁慈是什么意思| wt什么意思| 什么时候期末考试| 郑板桥擅长画什么| 破费是什么意思| 大眼角痒是什么原因| 空气炸锅什么牌子好| hh是什么牌子| 左脸长痘是什么原因| 三月二十是什么星座| 早晨8点是什么时辰| 鸽子吃什么食物| cph是什么意思| 十二指肠球炎是什么意思| 右手臂酸痛是什么前兆| 享年是什么意思| 什么人容易得多囊卵巢| 雾化是治疗什么的| 阴唇为什么会长痘痘| 可小刀是什么意思| 肚脐左下方疼是什么原因| 梦见一条小蛇是什么意思| 中秋节送礼送什么| 手心出汗什么原因| 下午五点多是什么时辰| 20年是什么年| 人言可畏是什么意思| 今天什么时候下雨| 吃什么治便秘最有效| 什么是精神分裂| hcv是什么病毒| 樱桃是什么季节的水果| 大葱和小葱有什么区别| 什么人不能喝蜂蜜| development是什么意思| pedro是什么牌子| 11月11号什么星座| 净身出户什么意思| q币有什么用| 酒量越来越差什么原因| 大腿肌肉疼是什么原因| 植物纤维是什么面料| 缺钾有什么症状和危害| 肺间质纤维化是什么病| uin是什么意思| 平纹布是什么面料| 甲亢吃什么药| 胆囊炎适合吃什么食物| 小鸡啄米什么意思| 淋巴肉为什么不能吃| 闺蜜生日送什么礼物好| 为什么有的人怎么吃都不胖| 冬枣为什么叫冬枣| 莫拉古是什么意思| 饮鸩止渴什么意思| 元辰是什么意思| 1948年属鼠的是什么命| 什么危不什么| c肽测定是什么意思| 下压高是什么原因引起的| 生吃大蒜有什么好处和坏处| 什么品牌蓝牙耳机好| 信球什么意思| 樱桃是什么季节的水果| 解语花是什么意思| 肋骨疼是什么原因| 争奇斗艳什么意思| 海盐是什么盐| 查颈椎挂什么科| 子宫肌瘤术后吃什么好| 拔完罐需要注意什么| 总胆固醇偏高是什么原因| premier是什么牌子| 茶水费是什么意思| 泰国是一个什么样的国家| 什么克水| 什么面玲珑| 3月21号是什么星座| 蚊子讨厌什么气味| 画蛇添足是什么生肖| 梦见筷子是什么预兆| 眼珠子疼是什么原因| 为什么挠脚心会痒| 办理港澳通行证需要什么材料| 不来月经是什么原因| 1994年是什么命| 吃饭的时候恶心想吐是什么原因| 掌中宝是什么部位| 749局是什么| 心梗是什么症状| 糙皮病是什么病| 露从今夜白下一句是什么| 后羿射日是什么意思| 吞拿鱼是什么鱼| 湿疹和热疹有什么区别| p和t分别是什么意思| 镍是什么金属| 石家庄以前叫什么名字| 大脑供血不足用什么药| 做奶茶用什么茶叶| 脚底板痛什么原因| 粉领是什么意思| 检查胃挂什么科| 血管很明显是什么原因| 梦见好多黄鳝是什么意思| 反射弧长是什么意思| 餐后血糖高吃什么药| 高危妊娠是什么意思啊| 暇步士属于什么档次| 女人味是什么| 榴莲坏了是什么味道| 3000年前是什么朝代| 马蜂长什么样| 比特币是什么意思| osprey是什么牌子| 吃什么减肥效果最快| 骨质疏松有什么症状| 布施蚂蚁什么食物最好| 红眼病什么症状| 吃完饭就想睡觉是什么原因| 梦见生了个女儿是什么意思| 什么是接触性出血| 后背疼是什么病| 大小休是什么意思| 坚信的意思是什么| 欣字属于五行属什么| 为什么老是出汗| 英语6级是什么水平| 十一月是什么星座的啊| 什么是理想| 09年的牛是什么命| 自什么自什么| 肠道易激惹综合症是什么症状| 腰椎管狭窄吃什么药| 7月15是什么节日| 金牛座女和什么座最配对| 什么是玄学| 梦遗太频繁是什么原因造成的| 过期的维生素e有什么用途| 日十组成什么字| 小孩磨牙是什么原因| 银色的什么| 韭菜吃多了有什么坏处| 川芎有什么功效与作用| 光明会到底是干什么的| 肝钙化灶是什么意思| galaxy是什么牌子| 肺大泡有什么危害| 单核细胞是什么| 阴是什么生肖| 输卵管堵塞吃什么药能打通| 胆结石挂号挂什么科| 梦见打死狗有什么预兆| 阴唇为什么会变黑| 领结婚证需要准备什么| 孕妇肚子疼是什么原因| 乳房变大是什么原因| 肝气郁结吃什么中药| 大熊猫的尾巴是什么颜色| 7月2日什么星座| 农历7月是什么星座| twin什么意思| 强势的人有什么特点| 头不舒服去医院挂什么科| 慢性结肠炎是什么症状| 被鬼缠身有什么症状| 王字旁行念什么| 肾虚吃什么补肾| 阳虚是什么| 低盐饮食有利于预防什么疾病| 经血逆流的症状是什么| 乳头有点痛什么原因| 现在创业做什么好| 1961年属什么生肖| 过期的啤酒有什么用处| 饭局是什么意思| 百度Zum Inhalt springen

枣庄山亭141座全域旅游厕所顺利通过省级验收

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
眼睛雾化的作用是什么 眼睛有眼屎是什么原因引起的 心脏五行属什么 劳动法什么时候实施的 nb是什么意思
氩弧焊对身体有什么危害 角膜塑形镜是什么 白细胞阳性什么意思 抑郁症挂什么科 胆囊炎吃什么食物好
猪横利是什么 欺山莫欺水是什么意思 编程是什么专业 hgb是什么意思 versus什么意思
血肌酐高吃什么食物 心脏长什么样 宫腔积液是什么意思 医院五行属什么 萤火虫为什么越来越少
不然呢是什么意思hcv9jop2ns8r.cn 溜车是什么意思hcv9jop0ns0r.cn 毛囊是什么样子图片hcv8jop4ns9r.cn 2012年是什么年hcv8jop3ns5r.cn 卵泡排出来是什么样的xianpinbao.com
穿拖鞋脚臭是什么原因hcv9jop1ns9r.cn 姐姐的女儿应该叫什么hcv8jop1ns3r.cn 手足口病用什么药hcv8jop4ns0r.cn 谐星是什么意思hcv8jop1ns0r.cn 杀生电影讲的什么意思wzqsfys.com
心里堵得慌是什么原因hcv9jop2ns8r.cn 转氨酶异常是什么意思hcv9jop0ns1r.cn 坐高铁不能带什么hcv7jop5ns3r.cn 血压偏低有什么危害hcv8jop7ns3r.cn 什么汤清热解毒去火hcv7jop6ns9r.cn
药流前需要做什么检查chuanglingweilai.com cup什么意思hcv8jop2ns2r.cn 雍正叫什么名字jasonfriends.com 白天不咳嗽晚上咳嗽吃什么药hcv8jop7ns1r.cn 孕妇适合喝什么牛奶fenrenren.com
百度