<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>360 eMedia &#187; Technique</title>
	<atom:link href="http://www.360emedia.fr/category/technique/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.360emedia.fr</link>
	<description>Tablettes, Mobiles, SocialTV, Géolocalisation : nouveaux médias et plateformes</description>
	<lastBuildDate>Wed, 01 Sep 2010 23:10:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>&#171;&#160;OK&#160;&#187; or Not &#171;&#160;OK&#160;&#187;</title>
		<link>http://www.360emedia.fr/2009/11/12/ok-or-not-ok/</link>
		<comments>http://www.360emedia.fr/2009/11/12/ok-or-not-ok/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 15:17:15 +0000</pubDate>
		<dc:creator>antho</dc:creator>
				<category><![CDATA[Observatoire d'IHM]]></category>
		<category><![CDATA[Technique]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[bouton]]></category>
		<category><![CDATA[ergonomie]]></category>
		<category><![CDATA[ok]]></category>

		<guid isPermaLink="false">http://www.360emedia.fr/?p=622</guid>
		<description><![CDATA[Le billet aujourd&#8217;hui tourne autour du bouton OK. Nous connaissons tous ce bouton par coeur, il est partout, il est tout le temps, il est &#171;&#160;gris&#160;&#187; (;-)) ;  mais finalement, a t-il encore lieu d&#8217;être aussi présent dans nos applications qu&#8217;elles soient standalone ou web . Prenons, l&#8217;exemple simple, du bouton OK pour valider un [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="ok" src="http://icones.pro/wp-content/uploads/images/verifier-vert-ok-oui-icone-7022-64.png" alt="" width="64" height="64" />Le billet aujourd&#8217;hui tourne autour du bouton OK.</p>
<p>Nous connaissons tous ce bouton par coeur, il est partout, il est tout le temps, il est &laquo;&nbsp;gris&nbsp;&raquo; (;-)) ;  mais finalement, a t-il encore lieu d&#8217;être aussi présent dans nos applications qu&#8217;elles soient standalone ou web .</p>
<p>Prenons, l&#8217;exemple simple, du bouton OK pour valider un formulaire : le fameux &laquo;&nbsp;submit&nbsp;&raquo;.</p>
<p>Finalement, coté code, aucun problème pour ne pas en mettre au profit d&#8217;appuyer sur touche entrée</p>
<p>Pourquoi donc le garder à toutes les sauces.</p>
<p>En fait, ce billet restera de manière volontaire ouvert à vos commentaires sur ce sujet. Je me suis ici contenté de vous poser cette question et attend avec impatience vos remarques</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.360emedia.fr/2009/11/12/ok-or-not-ok/feed" rel="nofollow" class="external" title="S'abonner aux commentaires de cet article ?">S'abonner aux commentaires de cet article ?</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.360emedia.fr/2009/11/12/ok-or-not-ok/&amp;t=%22OK%22+or+Not+%22OK%22" rel="nofollow" class="external" title="Partagez-le sur Facebook">Partagez-le sur Facebook</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=%22OK%22+or+Not+%22OK%22&amp;body=Link: http://www.360emedia.fr/2009/11/12/ok-or-not-ok/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Le%20billet%20aujourd%27hui%20tourne%20autour%20du%20bouton%20OK.%0D%0A%0D%0ANous%20connaissons%20tous%20ce%20bouton%20par%20coeur%2C%20il%20est%20partout%2C%20il%20est%20tout%20le%20temps%2C%20il%20est%20%22gris%22%20%28%3B-%29%29%20%3B%20%C2%A0mais%20finalement%2C%20a%20t-il%20encore%20lieu%20d%27%C3%AAtre%20aussi%20pr%C3%A9sent%20dans%20nos%20applications%20qu%27elles%20soient%20standalone%20ou%20web%20.%0D%0A%0D%0APrenons%2C%20l%27exemple%20sim" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.360emedia.fr/2009/11/12/ok-or-not-ok/&amp;title=%22OK%22+or+Not+%22OK%22" rel="nofollow" class="external" title="Ajoutez-le à Google Bookmarks">Ajoutez-le à Google Bookmarks</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=%22OK%22+or+Not+%22OK%22+-+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>500 Internal Server Error</title>
</head><body>
<h1>Internal Server Error</h1>
<p>The server encountered an internal error or
misconfiguration and was unable to complete
your request.</p>
<p>Please contact the server administrator,
 webmaster@b2l.me and inform them of the time the error occurred,
and anything you might have done that may have
caused the error.</p>
<p>More information about this error may be available
in the server error log.</p>
<p>Additionally, a 404 Not Found
error was encountered while trying to use an ErrorDocument to handle the request.</p>
</body></html>&amp;source=shareaholic" rel="nofollow" class="external" title="Tweetez-le !">Tweetez-le !</a>
		</li>
		<li class="shr-wikio">
			<a href="http://www.wikio.com/sharethis?url=http://www.360emedia.fr/2009/11/12/ok-or-not-ok/&amp;title=%22OK%22+or+Not+%22OK%22" rel="nofollow" class="external" title="Partagez-le sur Wikio">Partagez-le sur Wikio</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.360emedia.fr/2009/11/12/ok-or-not-ok/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Navigabilité d&#8217;un site en Flash</title>
		<link>http://www.360emedia.fr/2008/02/19/navigabilite-dun-site-en-flash/</link>
		<comments>http://www.360emedia.fr/2008/02/19/navigabilite-dun-site-en-flash/#comments</comments>
		<pubDate>Tue, 19 Feb 2008 12:17:20 +0000</pubDate>
		<dc:creator>Jean-David</dc:creator>
				<category><![CDATA[Technique]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[navigabilité]]></category>
		<category><![CDATA[référencement]]></category>
		<category><![CDATA[url]]></category>

		<guid isPermaLink="false">http://www.ecoms.fr/wordpress/ecoms/navigabilite-dun-site-en-flash/</guid>
		<description><![CDATA[Moi qui vient du monde de l&#8217;informatique de gestion, je découvre petit à petit les possibilités du Flash et les techniques pour l&#8217;intégrer à une archi serveur un peu évoluée. AMF et tutti quanti, que des choses bien intéressantes J&#8217;ai largement de la matière pour un long article (mais toujours aussi peu de temps pour [...]]]></description>
			<content:encoded><![CDATA[<p>Moi qui vient du monde de l&#8217;informatique de gestion, je découvre petit à petit les possibilités du Flash et les techniques pour l&#8217;intégrer à une archi serveur un peu évoluée. AMF et tutti quanti, que des choses bien intéressantes <img src='http://www.360emedia.fr/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  J&#8217;ai largement de la matière pour un long article (mais toujours aussi peu de temps pour l&#8217;écrire, bien sûr !).</p>
<p>Je voulais toutefois vous faire part d&#8217;une petite recherche que j&#8217;ai effectué aujourd&#8217;hui, avec l&#8217;aide de mon collègue <a href="http://book.abe.free.fr/blog/" target="_blank">Cédric</a>, sur la navigabilité des sites en Flash, et en particulier pour gérer les boutons &laquo;&nbsp;Suivant/Précédent&nbsp;&raquo; qui sont tellement problématiques pour les développeurs, et pourtant tellement utilisés intuitivement par les utilisateurs !</p>
<p>Si vous jetez un oeil à ce site : <a href="http://www.shoplecoq.com" target="_blank">Le Coq Sportif</a>, vous allez voir qu&#8217;il s&#8217;agit d&#8217;un site d&#8217;eCommerce en Flash, chose déjà suffisamment rare, mais avec quelques petits détails qui font toute la différence :</p>
<ul>
<li>Déjà, on peut utiliser le clic droit, pour aller à tout moment sur son panier ou valider sa commande. Pas évident au départ, tellement le réflexe est &laquo;&nbsp;contre nature&nbsp;&raquo; pour une navigation Web, mais pourtant tellement pratique !</li>
<li>L&#8217;aspect dynamique du Flash permet de passer d&#8217;une vignette à l&#8217;autre de manière fluide, et de visualiser d&#8217;un coup d&#8217;oeil quels sont les tailles dispos et les autres</li>
<li>Et surtout, une astuce de la mort qui tue permet de gérer proprement la navigabilité.</li>
</ul>
<p>Pour ce faire, le site va réécrire dynamiquement l&#8217;URL au fur et à mesure de votre navigation&#8230;dans l&#8217;interface Flash, ce qui par définition ne devrait pas faire changer l&#8217;URL. Ainsi, il &laquo;&nbsp;suffit&nbsp;&raquo; de générer des URL permettant de réafficher des points précis dans l&#8217;interface Flash, et on peut ensuite utiliser le mécanisme classique d&#8217;historique du navigateur.</p>
<p>Autre avantage non négligeable pour les SEO : en multipliant ainsi les URL pour une seule et même interface Flash, on facilite ainsi le boulot des robots de moteurs de recherche, qui vont ainsi pouvoir naviguer sur l&#8217;interface, alors que le Flash est si difficile à référencer d&#8217;habitude.</p>
<p>Je n&#8217;ai pas encore testé, mais une page recensant les diverses URL &laquo;&nbsp;d&#8217;entrée&nbsp;&raquo; vers le Flash devrait pas mal faciliter le boulot. Ce mécanisme, cumulé à <a href="http://www.adobe.com/licensing/developer/search/faq/" target="_blank">celui d&#8217;Adobe</a> permettant de &laquo;&nbsp;parser&nbsp;&raquo; le texte d&#8217;un .swf, devrait permettre des choses intéressantes du côté du référencement.</p>
<p>Pour en revenir à cette génération d&#8217;URL pointant au coeur d&#8217;une application Flash, on peut utiliser <a href="http://www.asual.com/swfaddress/" target="_blank">ce type de framework</a> qui est tout spécialement conçu pour !</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.360emedia.fr/2008/02/19/navigabilite-dun-site-en-flash/feed" rel="nofollow" class="external" title="S'abonner aux commentaires de cet article ?">S'abonner aux commentaires de cet article ?</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.360emedia.fr/2008/02/19/navigabilite-dun-site-en-flash/&amp;t=Navigabilit%C3%A9+d%27un+site+en+Flash" rel="nofollow" class="external" title="Partagez-le sur Facebook">Partagez-le sur Facebook</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=Navigabilit%C3%A9+d%27un+site+en+Flash&amp;body=Link: http://www.360emedia.fr/2008/02/19/navigabilite-dun-site-en-flash/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Moi%20qui%20vient%20du%20monde%20de%20l%27informatique%20de%20gestion%2C%20je%20d%C3%A9couvre%20petit%20%C3%A0%20petit%20les%20possibilit%C3%A9s%20du%20Flash%20et%20les%20techniques%20pour%20l%27int%C3%A9grer%20%C3%A0%20une%20archi%20serveur%20un%20peu%20%C3%A9volu%C3%A9e.%20AMF%20et%20tutti%20quanti%2C%20que%20des%20choses%20bien%20int%C3%A9ressantes%20%3A%29%20J%27ai%20largement%20de%20la%20mati%C3%A8re%20pour%20un%20long%20article%20%28mais%20to" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.360emedia.fr/2008/02/19/navigabilite-dun-site-en-flash/&amp;title=Navigabilit%C3%A9+d%27un+site+en+Flash" rel="nofollow" class="external" title="Ajoutez-le à Google Bookmarks">Ajoutez-le à Google Bookmarks</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Navigabilit%C3%A9+d%27un+site+en+Flash+-+http://www.360emedia.fr/2008/02/19/navigabilite-dun-site-en-flash/&amp;source=shareaholic" rel="nofollow" class="external" title="Tweetez-le !">Tweetez-le !</a>
		</li>
		<li class="shr-wikio">
			<a href="http://www.wikio.com/sharethis?url=http://www.360emedia.fr/2008/02/19/navigabilite-dun-site-en-flash/&amp;title=Navigabilit%C3%A9+d%27un+site+en+Flash" rel="nofollow" class="external" title="Partagez-le sur Wikio">Partagez-le sur Wikio</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.360emedia.fr/2008/02/19/navigabilite-dun-site-en-flash/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Java pour les nuls (moi, donc)</title>
		<link>http://www.360emedia.fr/2007/07/17/java-pour-les-nuls-moi-donc/</link>
		<comments>http://www.360emedia.fr/2007/07/17/java-pour-les-nuls-moi-donc/#comments</comments>
		<pubDate>Tue, 17 Jul 2007 14:05:55 +0000</pubDate>
		<dc:creator>Jean-David</dc:creator>
				<category><![CDATA[Technique]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.ecoms.fr/wordpress/ecoms/java-pour-les-nuls-moi-donc/</guid>
		<description><![CDATA[Non non, je ne fais pas une crise d&#8217;infériorité, c&#8217;est juste que là&#8230; je comprend pas. J&#8217;aime bien donner des cours, ça permet de se poser des questions que jamais on ne se poserait en prod, et de tomber sur des trucs tout bêtes, limite de débutants, mais qui bloquent bien ! J&#8217;ai deux cas [...]]]></description>
			<content:encoded><![CDATA[<p>Non non, je ne fais pas une crise d&#8217;infériorité, c&#8217;est juste que là&#8230; je comprend pas. J&#8217;aime bien donner des cours, ça permet de se poser des questions que jamais on ne se poserait en prod, et de tomber sur des trucs tout bêtes, limite de débutants, mais qui bloquent bien ! J&#8217;ai deux cas a soumettre à votre sagacité, des trucs tous cons, et j&#8217;avoue que.. je n&#8217;arrive pas à les expliquer&#8230; Si vous avez des idées, surtout n&#8217;hésitez pas !<span id="more-269"></span></p>
<p><strong>1) Le mystère des comparaisons de String</strong></p>
<p>La classe la plus banale de Java : String. Dans la Javadoc, ils précisent bien que</p>
<blockquote><p>s=&nbsp;&raquo;coucou&nbsp;&raquo;;</p></blockquote>
<p>et</p>
<blockquote><p>s=new String(&laquo;&nbsp;coucou&nbsp;&raquo;);</p></blockquote>
<p>sont équivalents.</p>
<p>Eh ben&#8230;regardez :</p>
<blockquote><p>String s1=&nbsp;&raquo;bob&nbsp;&raquo;;<br />
String s2=&nbsp;&raquo;bob&nbsp;&raquo;;<br />
String s3=new String(&laquo;&nbsp;bob&nbsp;&raquo;);<br />
if(s1==s2)<br />
System.out.println(&laquo;&nbsp;ca marche sans le new&nbsp;&raquo;);<br />
if(s1==s3)<br />
System.out.println(&laquo;&nbsp;ca marche avec le new&nbsp;&raquo;);</p></blockquote>
<p>Le premier test fonctionne, et pas le second ! Je sais qu&#8217;il ne faut pas faire l&#8217;erreur d&#8217;utiliser ==, mais bien .equals, mais là il s&#8217;agit de comparer les pointeurs.. Je m&#8217;étonne en fait que le premier test fonctionne.</p>
<p><strong>2) L&#8217;héritage perdu</strong></p>
<p>Soit une classe mère :</p>
<blockquote><p>public class Mere {<br />
public Mere()<br />
{<br />
System.out.println(&laquo;&nbsp;mere sans param&nbsp;&raquo;);<br />
}</p>
<p>public Mere(String s)<br />
{<br />
System.out.println(&laquo;&nbsp;mere &laquo;&nbsp;+s);<br />
}<br />
}</p></blockquote>
<p>et une classe Fille&#8230;vide :</p>
<blockquote><p>public class Fille extends Mere<br />
{<br />
}</p></blockquote>
<p>Testez :</p>
<blockquote><p>Mere m=new Mere();<br />
Mere m2=new Mere(&laquo;&nbsp;bla&nbsp;&raquo;);<br />
Fille f=new Fille();<br />
//Fille f2=new Fille(&laquo;&nbsp;bli&nbsp;&raquo;);</p></blockquote>
<p>La dernière ligne est en commentaire, et pour cause : elle provoque une erreur du compilateur ! &laquo;&nbsp;Constructeur inexistant&nbsp;&raquo;. En revanche, la ligne &laquo;&nbsp;Fille f=new Fille()&nbsp;&raquo; appelle bien le constructeur de la classe mère, et pas un constructeur implicite.  Pourquoi hériter d&#8217;un constructeur et pas de l&#8217;autre ?</p>
<p>Alors, vos avis ?</p>
<p><strong>Update </strong>: j&#8217;ai compris pour le cas 2 ! Merci à Jib pour m&#8217;avoir aiguillé sur la voie de la rédemption !</p>
<p>Alors, je vous explique : ce qui me paraissait super bizarre, c&#8217;est que Fille sache bien exploiter le constructeur sans paramètre de la classe mère, mais pas l&#8217;autre ! C&#8217;était quoi, de la ségrégation ?</p>
<p>Je ne voyais pas en quoi le principe  du &laquo;&nbsp;constructeur implicite&nbsp;&raquo; jouait , puisqu&#8217;on héritait bien de quelque chose, il n&#8217;y avait rien d&#8217;implicite. Jib a toutefois bien fait d&#8217;insister. Suivez le raisonnement exact de Java :</p>
<ol>
<li>On n&#8217;hérite PAS des constructeurs lors d&#8217;un mécanisme d&#8217;héritage. Je l&#8217;avoue, je l&#8217;avais complètement oublié. Mais ce qui m&#8217;a aidé dans cet oubli, c&#8217;est le fait que la classe Fille &laquo;&nbsp;hérite&nbsp;&raquo; quand même d&#8217;un des constructeurs de la classe mère, du moins en apparence. Mais&#8230;</li>
<li>&#8230;vu que la classe fille n&#8217;hérite d&#8217;aucun constructeur, et qu&#8217;elle n&#8217;en possède pas, la règle rappelée par Jib s&#8217;applique : un constructeur implicite est mis en place.</li>
<li>Deuxième effet kiss-cool : le constructeur implicite, contrairement à ce que je croyais, ne reste pas sans rien faire. En fait, il a un rôle bien particulier : il appelle, implicitement, le constructeur sans paramètre de la classe mère.</li>
<li>Vu que la classe mère a quant à elle un constructeur sans paramètre bien réel, ce dernier est appelé. CQFD.</li>
</ol>
<p>Voilà pourquoi ma classe Fille se retrouve &laquo;&nbsp;héritant&nbsp;&raquo; du constructeur sans paramètre de ma classe Mere, et pas de l&#8217;autre. Tout simplement parce qu&#8217;il n&#8217;y a pas d&#8217;héritage direct des constructeurs, mais une construction implicite qui appelle implicitement un constructeur parent. Pffiou !</p>
<p><strong>Update 2</strong> : Vu que, quand yen a marre, ya Malabar, j&#8217;ai employé les grands moyens pour comprendre cette histoire d&#8217;affectation de String, et ça a été l&#8217;occasion pour moi de faire un truc que je voulais faire depuis longtemps : décompiler du Bytecode !</p>
<p>On utilise pour cela l&#8217;instruction javap, qui prend en entrée un fichier .class, et qui vous le &laquo;&nbsp;désassemble&nbsp;&raquo; pour obtenir un byte code plus ou moins lisible.</p>
<p>Tentons de désassembler le code suivant :</p>
<blockquote><p>String s1=&nbsp;&raquo;bob&nbsp;&raquo;;<br />
String s2=&nbsp;&raquo;bob&nbsp;&raquo;;<br />
String s3=new String(&laquo;&nbsp;bob&nbsp;&raquo;);</p></blockquote>
<p>Cela donne le code suivant (j&#8217;ai fait trois paragraphes correspondant aux 3 instructions) :</p>
<blockquote><p>0:    ldc    #16; //String bob<br />
2:    astore_1</p>
<p>3:    ldc    #16; //String bob<br />
5:    astore_2</p>
<p>6:    new    #18; //class java/lang/String<br />
9:    dup<br />
10:    ldc    #16; //String bob<br />
12:    invokespecial    #20; //Method java/lang/String.&nbsp;&raquo;&lt;init&gt;&nbsp;&raquo;<br />
15:    astore_3</p></blockquote>
<p>On a donc la réponse : les deux chaînes s1 et s2 pointent bel et bien sur le même espace mémoire (#16) tout simplement parce que le compilateur Java a su  détecter que la chaîne utilisée était bien la même dans les deux cas. Pour preuve, en ligne 10, c&#8217;est à nouveau cette adresse qui est chargée dans le registre pour pouvoir appeler le constructeur de String (j&#8217;ai essayé de faire 3 tonnes d&#8217;affectations entre la déclaration de s1 et s2, ça marche pareil, il retombe sur ses pattes).</p>
<p>Autre enseignement de ces quelques lignes : dans les affectations de type s=&nbsp;&raquo;toto&nbsp;&raquo;, il n&#8217;y a pas de construction explicite de l&#8217;objet String qui est effectuée (pas d&#8217;appel à &laquo;&nbsp;new&nbsp;&raquo;), mais simplement le chargement d&#8217;une référence vers un espace mémoire représentant ce String, et qui va être partagé par tous ceux qui contiennent la même chaine.</p>
<p>Pour les développeurs débutants, c&#8217;est super piégeux, car le fait que s1==s2 donne le résultat attendu peut faire croire qu&#8217;on est dans le bon, alors que ça ne marchera plus dès lors qu&#8217;on manipulera des String générés par des éléments externes (une lecture dans une base, par exemple).</p>
<p>Pour les développeurs un peu plus aguerris, ça nous amène à la réflexion suivante : en fait, les objets String ne sont pas immuables par une volonté particulière, mais simplement par nécessité : il serait super risqué de donner la possibilité de modifier ces &laquo;&nbsp;espaces mémoires mis en commun&nbsp;&raquo;.</p>
<p>Reste une question : est ce que ces espaces communs sont des instances de String à part entière, ou bien des simulâcres  de classes pour  donner une cohérence à l&#8217;organisation &laquo;&nbsp;100% classes&nbsp;&raquo; de String ? Je ne sais pas encore&#8230;</p>
<p>Update 3 : <a href="http://java.sun.com/docs/books/jvms/second_edition/html/Concepts.doc.html#20359" target="_blank">une doc intéressante</a> fournie par un de mes stagiaires, merci Michel !</p>
<p>On y apprend deux choses :</p>
<ul>
<li>String est vraiment une classe à part, elle est considérée comme étant un  &laquo;&nbsp;literal&nbsp;&raquo;, au même titre qu&#8217;un type scalaire (int&#8230;), son comportement est donc assez différent d&#8217;une classe classique que l&#8217;on instancie</li>
<li>L&#8217;article m&#8217;a aiguillé sur la méthode intern() de la classe String qui confirme ce que je pensais : Java gère en interne un &laquo;&nbsp;pool&nbsp;&raquo; de chaînes de caractères afin de repérer les chaînes similaires et éviter les doublons d&#8217;instance.</li>
</ul>
<p>A noter qu&#8217;apparemment, <a href="http://en.wikipedia.org/wiki/String_intern_pool" target="_blank">C# fonctionne de la même manière</a>.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-shr">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.360emedia.fr/2007/07/17/java-pour-les-nuls-moi-donc/feed" rel="nofollow" class="external" title="S'abonner aux commentaires de cet article ?">S'abonner aux commentaires de cet article ?</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.360emedia.fr/2007/07/17/java-pour-les-nuls-moi-donc/&amp;t=Java+pour+les+nuls+%28moi%2C+donc%29" rel="nofollow" class="external" title="Partagez-le sur Facebook">Partagez-le sur Facebook</a>
		</li>
		<li class="shr-gmail">
			<a href="https://mail.google.com/mail/?ui=2&amp;view=cm&amp;fs=1&amp;tf=1&amp;su=Java+pour+les+nuls+%28moi%2C+donc%29&amp;body=Link: http://www.360emedia.fr/2007/07/17/java-pour-les-nuls-moi-donc/ (sent via shareaholic)%0D%0A%0D%0A----%0D%0A Non%20non%2C%20je%20ne%20fais%20pas%20une%20crise%20d%27inf%C3%A9riorit%C3%A9%2C%20c%27est%20juste%20que%20l%C3%A0...%20je%20comprend%20pas.%20J%27aime%20bien%20donner%20des%20cours%2C%20%C3%A7a%20permet%20de%20se%20poser%20des%20questions%20que%20jamais%20on%20ne%20se%20poserait%20en%20prod%2C%20et%20de%20tomber%20sur%20des%20trucs%20tout%20b%C3%AAtes%2C%20limite%20de%20d%C3%A9butants%2C%20mais%20qui%20bloquent%20bien%20%21%20J%27ai%20deux%20cas%20a%20s" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.google.com/bookmarks/mark?op=add&amp;bkmk=http://www.360emedia.fr/2007/07/17/java-pour-les-nuls-moi-donc/&amp;title=Java+pour+les+nuls+%28moi%2C+donc%29" rel="nofollow" class="external" title="Ajoutez-le à Google Bookmarks">Ajoutez-le à Google Bookmarks</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Java+pour+les+nuls+%28moi%2C+donc%29+-+File: /data/app/webapp/functions.php<br />Line: 7<br />Message: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (11)&amp;source=shareaholic" rel="nofollow" class="external" title="Tweetez-le !">Tweetez-le !</a>
		</li>
		<li class="shr-wikio">
			<a href="http://www.wikio.com/sharethis?url=http://www.360emedia.fr/2007/07/17/java-pour-les-nuls-moi-donc/&amp;title=Java+pour+les+nuls+%28moi%2C+donc%29" rel="nofollow" class="external" title="Partagez-le sur Wikio">Partagez-le sur Wikio</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.360emedia.fr/2007/07/17/java-pour-les-nuls-moi-donc/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
