<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ro">
	<id>http://wiki.dcae.pub.ro/index.php?action=history&amp;feed=atom&amp;title=Notions_About_the_Java_Language</id>
	<title>Notions About the Java Language - Revizia istoricului</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.dcae.pub.ro/index.php?action=history&amp;feed=atom&amp;title=Notions_About_the_Java_Language"/>
	<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=Notions_About_the_Java_Language&amp;action=history"/>
	<updated>2026-05-27T09:00:57Z</updated>
	<subtitle>Istoricul versiunilor pentru această pagină din wiki</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=Notions_About_the_Java_Language&amp;diff=1514&amp;oldid=prev</id>
		<title>Rhobincu: /* Particularitățile limbajului Java */</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=Notions_About_the_Java_Language&amp;diff=1514&amp;oldid=prev"/>
		<updated>2013-10-21T19:43:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Particularitățile limbajului Java&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ro&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Versiunea anterioară&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versiunea de la data 21 octombrie 2013 19:43&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l41&quot; &gt;Linia 41:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 41:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the first phase, the initial program, stored in a file with .java extension is compiled, using the Java compiler (&amp;#039;&amp;#039;javac&amp;#039;&amp;#039;), and a new, executable file is generated for JVM, having the .class extension. This file is loaded by the virtual machine (&amp;#039;&amp;#039;java&amp;#039;&amp;#039;) and is interpreted.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In the first phase, the initial program, stored in a file with .java extension is compiled, using the Java compiler (&amp;#039;&amp;#039;javac&amp;#039;&amp;#039;), and a new, executable file is generated for JVM, having the .class extension. This file is loaded by the virtual machine (&amp;#039;&amp;#039;java&amp;#039;&amp;#039;) and is interpreted.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Particularitățile limbajului &lt;/del&gt;Java ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Specific Features of the &lt;/ins&gt;Java &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Language &lt;/ins&gt;==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Cu toate că sintaxa limbajului &lt;/del&gt;Java &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;provine în cea mai mare măsură din &lt;/del&gt;C, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;există unele particularități&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;în special legate de modul de acces la memorie&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;care este fundamental diferit&lt;/del&gt;:&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Although the &lt;/ins&gt;Java &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;language syntax is derived mainly from &lt;/ins&gt;C, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;there are certain features&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;especially related to memory access&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;which are fundamentally different&lt;/ins&gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;în &lt;/del&gt;Java &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;nu există pointeri&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;doar referințe&lt;/del&gt;; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;implicit&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;nu există aritmetica pointerilor&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;in &lt;/ins&gt;Java &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;there are no pointers&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;only references&lt;/ins&gt;; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;implicitly&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;there is no pointer arithmetic&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;runtime checking&amp;#039;&amp;#039; - &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;un sistem care verifică accesul la locațiile de memorie într-un vector și aruncă excepții atunci când se încearcă accesul în zone nepermise&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;runtime checking&amp;#039;&amp;#039; - &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;a system that verifies the memory locations access in an array, and throws exceptions when access to forbidden areas is requested&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;garbage collection&amp;#039;&amp;#039; - &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;programatorul nu trebuie să țină seama de memoria alocată&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;o zonă de memorie este eliberată în mod automat atunci când nu mai există referințe active către ea&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;garbage collection&amp;#039;&amp;#039; - &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the programmer does not need to keep tabs on allocated memory&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;a memory chunk is automatically freed if there are no more references to it&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;distributed computing&amp;#039;&amp;#039; - Java &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;pune la dispoziție în bibliotecile implicite clase care facilitează conectivitatea &lt;/del&gt;(java.net) &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;și execuția distribuită &lt;/del&gt;(java.rmi);&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;distributed computing&amp;#039;&amp;#039; - Java &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;provides, in its default libraries, classes which facilitate connectivity &lt;/ins&gt;(java.net) &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;and distributed execution &lt;/ins&gt;(java.rmi);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;multithreading&amp;#039;&amp;#039; - Java &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;pune la dispoziție în bibliotecile implicite clase care facilitează execuția concurentă a mai multor metode și sincronizarea acestora.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;multithreading&amp;#039;&amp;#039; - Java &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;provides, in its default libraries, classes which facilitate concurrent execution of multiple methods and their synchronization;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;În plus față de aplicațiile de sine stătătoare (&amp;#039;&amp;#039;&lt;/del&gt;standalone&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#039;&amp;#039;)&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;în &lt;/del&gt;Java &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;există suport pentru un tip de aplicații numite &lt;/del&gt;[http://en.wikipedia.org/wiki/Java_applet &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;applet&lt;/del&gt;]&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-uri&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;care se execută în interiorul unui &lt;/del&gt;browser &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;de web&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Acest lucru facilitează dezvoltarea aplicațiilor &lt;/del&gt;interactive &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;pe &lt;/del&gt;web.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Besides &lt;/ins&gt;standalone &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;applications&lt;/ins&gt;, Java &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;also offers support for another type of applications called &lt;/ins&gt;[http://en.wikipedia.org/wiki/Java_applet &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;applets&lt;/ins&gt;], &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;which are run inside a web &lt;/ins&gt;browser. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;This facilitates development of &lt;/ins&gt;interactive web &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;applications&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Totuși&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;poate cel mai &lt;/del&gt;important &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;avantaj al limbajului &lt;/del&gt;Java&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;, este setul de clase puse la dispoziție de &lt;/del&gt;Oracle, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;numit generic &lt;/del&gt;Application Programming Interface, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;care conține o vastă colecție de funcții deja implementate&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;gata de a fi folosite pentru o gamă largă de aplicații&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;However&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;maybe the most &lt;/ins&gt;important &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;advantage of the &lt;/ins&gt;Java &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;language is the set of classes provided by &lt;/ins&gt;Oracle, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;generically called the &lt;/ins&gt;Application Programming Interface &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(API)&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;containing a vast collection of functions already implemented&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ready to be used in any type of application&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Rhobincu</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=Notions_About_the_Java_Language&amp;diff=1513&amp;oldid=prev</id>
		<title>Rhobincu: /* Mașina Virtuală Java (JVM) */</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=Notions_About_the_Java_Language&amp;diff=1513&amp;oldid=prev"/>
		<updated>2013-10-21T19:34:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Mașina Virtuală Java (JVM)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ro&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Versiunea anterioară&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versiunea de la data 21 octombrie 2013 19:34&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l31&quot; &gt;Linia 31:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 31:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The [http://en.wikipedia.org/wiki/Compiler compiler] is a program that has the role of translating a programming language in another programming language. Basically, this is a translation program, but not between two tongues, but two formal languages. The difference between a language and a formal language is that the latter has a set of strict rules, making rigorous translation possible for an algorithm. Unlike the interpreter, the compiler does the translation statically, at the compile-time, between the high-level language and the assembly language of a specific processor. Once the program is translated to assembly language, then into machine code with the help of an assembler and a linker, it is ran directly on the processor, without any other additional programs.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;The [http://en.wikipedia.org/wiki/Compiler compiler] is a program that has the role of translating a programming language in another programming language. Basically, this is a translation program, but not between two tongues, but two formal languages. The difference between a language and a formal language is that the latter has a set of strict rules, making rigorous translation possible for an algorithm. Unlike the interpreter, the compiler does the translation statically, at the compile-time, between the high-level language and the assembly language of a specific processor. Once the program is translated to assembly language, then into machine code with the help of an assembler and a linker, it is ran directly on the processor, without any other additional programs.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Mașina Virtuală &lt;/del&gt;Java (JVM) ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;The &lt;/ins&gt;Java &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Virtual Machine &lt;/ins&gt;(JVM) ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Fișier:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;jvm&lt;/del&gt;.png|&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Schema bloc a mecanismului de execuție a mașinii virtuale&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Fișier:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;jvm_en&lt;/ins&gt;.png|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Diagram of the JVM execution environment&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Programele &lt;/del&gt;Java &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sunt compilate și apoi interpretate&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Motivul pentru acest sistem este introducerea în &lt;/del&gt;flow&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-ul de execuție a unui strat suplimentar&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;numit &lt;/del&gt;[http://en.wikipedia.org/wiki/Java_virtual_machine &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Mașina Virtuală &lt;/del&gt;Java]. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;După cum îi spune și numele&lt;/del&gt;, JVM &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;este un procesor&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;dar nu unul &lt;/del&gt;real, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;fizic&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;realizat pe siliciu&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ci un procesor &lt;/del&gt;virtual, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;simulat de procesorul gazdă&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;În esență&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;mașina virtuală este un alt &lt;/del&gt;program. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Există două mari avantaje pentru utilizarea acestui &lt;/del&gt;concept:&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Java &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;programs are compiled then interpreted&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;The reason for this system is the insertion, in the execution &lt;/ins&gt;flow, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;of an extra layer, called the &lt;/ins&gt;[http://en.wikipedia.org/wiki/Java_virtual_machine Java &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Virtual Machine&lt;/ins&gt;]. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;As the name says&lt;/ins&gt;, JVM &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;is a processor&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;but not a &lt;/ins&gt;real, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;physical&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;silicon one&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;but a &lt;/ins&gt;virtual &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;processor&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;simulated by the host CPU&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;So basically&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the virtual machine is another &lt;/ins&gt;program. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;There are two main advantages of this &lt;/ins&gt;concept:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;portabilitate&lt;/del&gt;&amp;#039;&amp;#039; - &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;mașina virtuală Java are o specificație clară, și fiecare implementare de mașină virtuală este identică&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;indiferent pe ce procesor rulează&lt;/del&gt;; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;asta implică faptul că odată programul compilat pentru &lt;/del&gt;JVM, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;acesta va rula pe orice implementare&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;adică pe orice procesor gazdă și pe orice sistem de operare&lt;/del&gt;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;portability&lt;/ins&gt;&amp;#039;&amp;#039; - &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the JVM has a clear specification and each of its implementations is identical&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;regardless on what hardware it runs on&lt;/ins&gt;; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;this entails that once the program is compiled for &lt;/ins&gt;JVM, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;it will run on any implementation&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;on any host CPU and any operating system&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;securitate&lt;/del&gt;&amp;#039;&amp;#039; - layer&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;-ul mașinii virtuale se comportă ca un &lt;/del&gt;[http://en.wikipedia.org/wiki/Sandbox_(computer_security) sandbox], &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;astfel încât execuția programului se reflectă în cea mai mare măsură în interiorul mașinii virtuale&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;și nu în mașina reală&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;oferind un grad ridicat de protecție&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &amp;#039;&amp;#039;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;security&lt;/ins&gt;&amp;#039;&amp;#039; - &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the virtual machine &lt;/ins&gt;layer &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;behaves like a &lt;/ins&gt;[http://en.wikipedia.org/wiki/Sandbox_(computer_security) sandbox], &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;so that the program&amp;#039;s execution is only relevant inside the virtual machine&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;not in the real machine&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;offering a high degree of protection&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;În prima fază&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;programul inițial&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;care este stocat într-un fișier cu extensia &lt;/del&gt;.java, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;este compilat, folosind compilatorul &lt;/del&gt;Java (&amp;#039;&amp;#039;javac&amp;#039;&amp;#039;) &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;și este generat fișierul executabil pentru &lt;/del&gt;JVM, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;care are extensia &lt;/del&gt;.class. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Acest fișier este încărcat de către mașina virtuală &lt;/del&gt;(&amp;#039;&amp;#039;java&amp;#039;&amp;#039;) &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;și este interpretat&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;In the first phase&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the initial program&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;stored in a file with &lt;/ins&gt;.java &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;extension is compiled&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;using the &lt;/ins&gt;Java &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;compiler &lt;/ins&gt;(&amp;#039;&amp;#039;javac&amp;#039;&amp;#039;)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;, and a new, executable file is generated for &lt;/ins&gt;JVM, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;having the &lt;/ins&gt;.class &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;extension&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;This file is loaded by the virtual machine &lt;/ins&gt;(&amp;#039;&amp;#039;java&amp;#039;&amp;#039;) &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;and is interpreted&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Particularitățile limbajului Java ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Particularitățile limbajului Java ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Rhobincu</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=Notions_About_the_Java_Language&amp;diff=1512&amp;oldid=prev</id>
		<title>Rhobincu: /* Compilarea */</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=Notions_About_the_Java_Language&amp;diff=1512&amp;oldid=prev"/>
		<updated>2013-10-21T19:25:04Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Compilarea&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ro&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Versiunea anterioară&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versiunea de la data 21 octombrie 2013 19:25&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l25&quot; &gt;Linia 25:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 25:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It can be seen that the function &amp;#039;&amp;#039;eval&amp;#039;&amp;#039; takes a string of characters as an argument, which is dynamically built, then evaluated as a language expression. This is not possible with compiled programs. The major disadvantage of interpreted programs is the low execution speed (the translation from high level language to the machine language is done at the runime).&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;It can be seen that the function &amp;#039;&amp;#039;eval&amp;#039;&amp;#039; takes a string of characters as an argument, which is dynamically built, then evaluated as a language expression. This is not possible with compiled programs. The major disadvantage of interpreted programs is the low execution speed (the translation from high level language to the machine language is done at the runime).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Compilarea &lt;/del&gt;===&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Compilation &lt;/ins&gt;===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Fișier:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;compilare&lt;/del&gt;.png|&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Schema bloc a mecanismului de compilare&lt;/del&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Fișier:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;compilation&lt;/ins&gt;.png|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Diagram of the compile system&lt;/ins&gt;]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[http://en.wikipedia.org/wiki/Compiler &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Compilatorul&lt;/del&gt;] &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;este un &lt;/del&gt;program &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;care are ca rol, traducerea unui limbaj în alt limbaj&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;În principiu&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;acesta este un &lt;/del&gt;program &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;de traducere&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;dar nu între două limbi&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;ci între două limbaje formale&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Diferența dintre limbă și limbaj &lt;/del&gt;formal &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;este că acesta din urmă are un &lt;/del&gt;set &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;de reguli stricte care fac traducerea riguroasă posibilă pentru un algoritm&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Spre deosebire de interpretor&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;compilatorul face traducerea static&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;adică la ceea ce se numește &amp;#039;&amp;#039;&lt;/del&gt;compile-time&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#039;&amp;#039;&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;între limbajul de nivel înalt și limbajul de asamblare &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;unui procesor &lt;/del&gt;specific. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Odată programul translatat în limbaj de asamblare&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;apoi în cod mașină cu ajutorul unui asamblor și al unui &lt;/del&gt;linker, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;acesta este rulat direct pe procesor&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;fără alte programe ajutătoare&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;The &lt;/ins&gt;[http://en.wikipedia.org/wiki/Compiler &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;compiler&lt;/ins&gt;] &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;is a &lt;/ins&gt;program &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;that has the role of translating a programming language in another programming language&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Basically&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;this is a translation &lt;/ins&gt;program, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;but not between two tongues&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;but two formal languages&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;The difference between a language and a &lt;/ins&gt;formal &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;language is that the latter has a &lt;/ins&gt;set &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;of strict rules, making rigorous translation possible for an algorithm&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Unlike the interpreter&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;the compiler does the translation statically&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;at the &lt;/ins&gt;compile-time, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;between the high-level language and the assembly language of &lt;/ins&gt;a specific &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;processor&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Once the program is translated to assembly language&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;then into machine code with the help of an assembler and a &lt;/ins&gt;linker, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;it is ran directly on the processor&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;without any other additional programs&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Mașina Virtuală Java (JVM) ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Mașina Virtuală Java (JVM) ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Rhobincu</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=Notions_About_the_Java_Language&amp;diff=1511&amp;oldid=prev</id>
		<title>Rhobincu: /* Interpretation */</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=Notions_About_the_Java_Language&amp;diff=1511&amp;oldid=prev"/>
		<updated>2013-10-21T19:18:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Interpretation&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ro&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Versiunea anterioară&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versiunea de la data 21 octombrie 2013 19:18&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l20&quot; &gt;Linia 20:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 20:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;eval(&amp;quot;x=10;y=20;document.write(x*y)&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;eval(&amp;quot;x=10;y=20;document.write(x*y)&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;document.write(&amp;quot;&amp;lt;br /&amp;gt;&amp;quot; + eval(&amp;quot;2+2&amp;quot;));&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;document.write(&amp;quot;&amp;lt;br /&amp;gt;&amp;quot; + eval(&amp;quot;2+2&amp;quot;));&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;document.write(&amp;quot;&amp;lt;br /&amp;gt;&amp;quot; + eval(x+17));&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;document.write(&amp;quot;&amp;lt;br /&amp;gt;&amp;quot; + eval(&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&lt;/ins&gt;x+17&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;quot;&lt;/ins&gt;));&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class=&#039;diff-marker&#039;&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Rhobincu</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=Notions_About_the_Java_Language&amp;diff=1510&amp;oldid=prev</id>
		<title>Rhobincu: Pagină nouă: Java is a programming language developed by the former company Sun Microsystems (actual [http://www.oracle.com/us/technologies/java/overview/index.html Oracle]), launched in 1995. Bas...</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=Notions_About_the_Java_Language&amp;diff=1510&amp;oldid=prev"/>
		<updated>2013-10-21T19:17:59Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: Java is a programming language developed by the former company Sun Microsystems (actual [http://www.oracle.com/us/technologies/java/overview/index.html Oracle]), launched in 1995. Bas...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pagină nouă&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Java is a programming language developed by the former company Sun Microsystems (actual [http://www.oracle.com/us/technologies/java/overview/index.html Oracle]), launched in 1995. Based on this language and on the idea of a virtual machine, countless technologies emerged, for web and distributed applications ([http://en.wikipedia.org/wiki/Java_(programming_language)]).&lt;br /&gt;
&lt;br /&gt;
== Compilation vs. Interpretation ==&lt;br /&gt;
&lt;br /&gt;
Before presenting the virtual machine mechanism, we must make a brief description of the methods of program implementation for different programming languages.&lt;br /&gt;
&lt;br /&gt;
A computer processor (or computing machines in general) can execute a fixed number of instructions known to the processor, called instruction set. A program can be written directly using these instructions (their mnemonic), i.e. in assembly language, or in a high level language. There are advantages and disadvantages to both.&lt;br /&gt;
&lt;br /&gt;
A program written in assembly language is not portable, so it can be executed only on the machine for which it was written, because it depends on the instruction set that the processor is able to execute, on the operating system running on the machine, on the peripherals , etc. Another disadvantage is that for a relatively simple functionality of the program, a much larger quantity of code must be written as opposed to a high-level language (such as C or Java), which makes code maintenance, as well as development opportunities to be limited. On the other hand, an experienced programmer can make the best optimizations in assembly language, since he has control over all resources.&lt;br /&gt;
&lt;br /&gt;
However, for complex applications, you need a compromise between performance and size / complexity of the code. Thus arose formal, high level languages, which are more intuitive, easier to learn and understand, and abstracts away many of the low-level layers of a computing machine (instruction set , memory map, the stack structure execution, memory allocation, and so on). The advantages are enormous, beginning with the ease of syntax and semantics of a program and ending with the fact that we now have a certain degree of portability. This portability exists because the language itself is unique and an algorithm is described in the same way for any machine, but this issue arises: since a processor only knows how to execute its set of instructions, how to make the transition from a program written in a generic high level language to the assembly language? There are two solutions: interpretation and compilation.&lt;br /&gt;
&lt;br /&gt;
=== Interpretation ===&lt;br /&gt;
&lt;br /&gt;
[[Fișier:interpretation.png|Diagram of the interpretation system]]&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Interpreter_(computing) Interpretation] of a program is done by another program, called an &amp;#039;&amp;#039;interpreter&amp;#039;&amp;#039;. It parses the source code of the program you wish to run and it transforms it in machine code while executing it. The advantage of this approach is that there is the possibility of dynamic code generation, at &amp;#039;&amp;#039;runtime&amp;#039;&amp;#039;. An example of an interpreted language is Javascript. This accepts constructs like:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;Javascript&amp;quot;&amp;gt;&lt;br /&gt;
eval(&amp;quot;x=10;y=20;document.write(x*y)&amp;quot;);&lt;br /&gt;
document.write(&amp;quot;&amp;lt;br /&amp;gt;&amp;quot; + eval(&amp;quot;2+2&amp;quot;));&lt;br /&gt;
document.write(&amp;quot;&amp;lt;br /&amp;gt;&amp;quot; + eval(x+17));&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It can be seen that the function &amp;#039;&amp;#039;eval&amp;#039;&amp;#039; takes a string of characters as an argument, which is dynamically built, then evaluated as a language expression. This is not possible with compiled programs. The major disadvantage of interpreted programs is the low execution speed (the translation from high level language to the machine language is done at the runime).&lt;br /&gt;
&lt;br /&gt;
=== Compilarea ===&lt;br /&gt;
&lt;br /&gt;
[[Fișier:compilare.png|Schema bloc a mecanismului de compilare]]&lt;br /&gt;
&lt;br /&gt;
[http://en.wikipedia.org/wiki/Compiler Compilatorul] este un program care are ca rol, traducerea unui limbaj în alt limbaj. În principiu, acesta este un program de traducere, dar nu între două limbi, ci între două limbaje formale. Diferența dintre limbă și limbaj formal este că acesta din urmă are un set de reguli stricte care fac traducerea riguroasă posibilă pentru un algoritm. Spre deosebire de interpretor, compilatorul face traducerea static, adică la ceea ce se numește &amp;#039;&amp;#039;compile-time&amp;#039;&amp;#039;, între limbajul de nivel înalt și limbajul de asamblare a unui procesor specific. Odată programul translatat în limbaj de asamblare, apoi în cod mașină cu ajutorul unui asamblor și al unui linker, acesta este rulat direct pe procesor, fără alte programe ajutătoare.&lt;br /&gt;
&lt;br /&gt;
== Mașina Virtuală Java (JVM) ==&lt;br /&gt;
&lt;br /&gt;
[[Fișier:jvm.png|Schema bloc a mecanismului de execuție a mașinii virtuale]]&lt;br /&gt;
&lt;br /&gt;
Programele Java sunt compilate și apoi interpretate. Motivul pentru acest sistem este introducerea în flow-ul de execuție a unui strat suplimentar, numit [http://en.wikipedia.org/wiki/Java_virtual_machine Mașina Virtuală Java]. După cum îi spune și numele, JVM este un procesor, dar nu unul real, fizic, realizat pe siliciu, ci un procesor virtual, simulat de procesorul gazdă. În esență, mașina virtuală este un alt program. Există două mari avantaje pentru utilizarea acestui concept:&lt;br /&gt;
* &amp;#039;&amp;#039;portabilitate&amp;#039;&amp;#039; - mașina virtuală Java are o specificație clară, și fiecare implementare de mașină virtuală este identică, indiferent pe ce procesor rulează; asta implică faptul că odată programul compilat pentru JVM, acesta va rula pe orice implementare, adică pe orice procesor gazdă și pe orice sistem de operare;&lt;br /&gt;
* &amp;#039;&amp;#039;securitate&amp;#039;&amp;#039; - layer-ul mașinii virtuale se comportă ca un [http://en.wikipedia.org/wiki/Sandbox_(computer_security) sandbox], astfel încât execuția programului se reflectă în cea mai mare măsură în interiorul mașinii virtuale, și nu în mașina reală, oferind un grad ridicat de protecție.&lt;br /&gt;
&lt;br /&gt;
În prima fază, programul inițial, care este stocat într-un fișier cu extensia .java, este compilat, folosind compilatorul Java (&amp;#039;&amp;#039;javac&amp;#039;&amp;#039;) și este generat fișierul executabil pentru JVM, care are extensia .class. Acest fișier este încărcat de către mașina virtuală (&amp;#039;&amp;#039;java&amp;#039;&amp;#039;) și este interpretat.&lt;br /&gt;
&lt;br /&gt;
== Particularitățile limbajului Java ==&lt;br /&gt;
&lt;br /&gt;
Cu toate că sintaxa limbajului Java provine în cea mai mare măsură din C, există unele particularități, în special legate de modul de acces la memorie, care este fundamental diferit:&lt;br /&gt;
* în Java nu există pointeri, doar referințe; implicit, nu există aritmetica pointerilor;&lt;br /&gt;
* &amp;#039;&amp;#039;runtime checking&amp;#039;&amp;#039; - un sistem care verifică accesul la locațiile de memorie într-un vector și aruncă excepții atunci când se încearcă accesul în zone nepermise;&lt;br /&gt;
* &amp;#039;&amp;#039;garbage collection&amp;#039;&amp;#039; - programatorul nu trebuie să țină seama de memoria alocată, o zonă de memorie este eliberată în mod automat atunci când nu mai există referințe active către ea;&lt;br /&gt;
* &amp;#039;&amp;#039;distributed computing&amp;#039;&amp;#039; - Java pune la dispoziție în bibliotecile implicite clase care facilitează conectivitatea (java.net) și execuția distribuită (java.rmi);&lt;br /&gt;
* &amp;#039;&amp;#039;multithreading&amp;#039;&amp;#039; - Java pune la dispoziție în bibliotecile implicite clase care facilitează execuția concurentă a mai multor metode și sincronizarea acestora.&lt;br /&gt;
&lt;br /&gt;
În plus față de aplicațiile de sine stătătoare (&amp;#039;&amp;#039;standalone&amp;#039;&amp;#039;), în Java există suport pentru un tip de aplicații numite [http://en.wikipedia.org/wiki/Java_applet applet]-uri, care se execută în interiorul unui browser de web. Acest lucru facilitează dezvoltarea aplicațiilor interactive pe web.&lt;br /&gt;
&lt;br /&gt;
Totuși, poate cel mai important avantaj al limbajului Java, este setul de clase puse la dispoziție de Oracle, numit generic Application Programming Interface, care conține o vastă colecție de funcții deja implementate, gata de a fi folosite pentru o gamă largă de aplicații.&lt;/div&gt;</summary>
		<author><name>Rhobincu</name></author>
	</entry>
</feed>