<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>The Java Files</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta name="Author" content="Philippe PRADOS" /> <meta name="Description" content="Pattern et API Java" /> <meta name="Keywords" content="JAVA;API;PATTERN" /> <script type="text/javascript" src="../../cookies.js"> </script>  <script type="text/javascript" language="JavaScript1.3"> <!-- var ns = (navigator.appName.indexOf("Netscape")  >= 0); if (ns && (parseInt(navigator.appVersion)<5))   document.write('<'+'link rel="STYLESHEET" href="../../style_ns4/pprados.css" type="text/css">'); else {   style=GetCookie("style");   if (style==null) style="../../style/pprados.css";   document.write('<'+'link rel="STYLESHEET" href="'+style+'" type="text/css">'); } // --> </script>  <meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true for "http://perso.club-internet.fr/pprados/" r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true for "http://perso.club-internet.fr/pprados/" r (n 0 s 0 v 0 l 0))' /> <META http-equiv="Content-Style-Type" content="text/css"> </head> <body> <h1 class="Titre">Langage Java</h1>  <p class="VoirAussi"></p> <!-- Copyright --> <div class="copyright">&copy; <a href="mailto:pp@philippe.prados.name">Ph. PRADOS</a><br />  <a href="http://wwp.icq.com/scripts/contact.dll?msgto=106583514"><img src="http://wwp.icq.com/scripts/online.dll?icq=106583514&amp;img=7" border="0" alt="ICQ" /> </a></div>  <!-- Onglets --> <table cellpadding="0" cellspacing="0" summary="onglet"> <tbody> <tr> <td class="OngletUnselect" width="80" valign="middle"><a href="../../index.html">Home</a></td> <td class="OngletUnselect" width="80" valign="middle"><a href="../../Analyses/index.html" title="Diff&eacute;rentes analyses sur la programmation objet">Analyses</a></td> <td class="OngletUnselect" width="80" valign="middle"><a href="../CPP/index.html" title="Des cours techniques et des librairies C++">C++</a></td> <td class="OngletSelect" width="80" valign="middle"><A href="index.html" title="Des cours techniques et des librairies Java">Java</A></td> <td class="OngletUnselect" width="80" valign="middle"><a href="../../Internet/index.html" title="Des points de vues sur la programmation sur Internet">Internet</a></td> <td class="OngletUnselect" width="80" valign="middle"><a href="../../Pattern/index.html" title="Des patterns de codages">Pattern</a></td> <td class="OngletUnselect" width="80" valign="middle"><a href="../../Securite/index.html" title="Des informations sur la s&eacute;curit&eacute;">Securit&eacute;</a></td> <td width="40"></td> </tr>  <tr> <td colspan="8" class="OngletBar"></td> </tr> </tbody> </table>  <!-- Historique --> <div class="Histo"><a href="../../index.html">Home</a> &gt; <a href="../index.html">Langage</a> &gt; <A href="index.html">Java</A></div>  <p>Quelques articles sur Java.</p>  <h1><a id="Guide" name="Guide"></a>Guides d'utilisations</h1>  <p>Voici quelques guides d'utilisation de java afin d'am&eacute;liorer la qualit&eacute; des programmes.</p>  <h2><a id="Construction" name="Construction"></a>La construction en Java</h2>  <p>La <a href="Construction/Construction.html"> construction</a> (<a href="Construction/Construction.pdf"  target="pdf">Format <img src="../../gif/pdf.gif" border="0" alt="Format Pdf" width="17" height="17" /></a>) d'une instance Java s'effectue en plusieurs &eacute;tapes qu'il est int&eacute;ressant &agrave; conna&icirc;tre. Cela peut avoir des effets de bords non ma&icirc;tris&eacute;s.</p>  <h2><a id="Synchronized" name="Synchronized"></a>Synchronized</h2>  <p>Comment utiliser correctement l'adjectif <a href="Synchronized/Synchronized.html"> synchronized</a> (<a href="Synchronized/Synchronized.pdf"  target="pdf">Format <img src="../../gif/pdf.gif" border="0" alt="Format Pdf" width="17" height="17" /></a>)? Comment r&eacute;diger une classe pour que celle-ci soit thread-safe?</p>  <h2><a id="Exception" name="Exception"></a>Les exceptions</h2>  <p>Utiliser correctement les <a href="Exception/Exception.html"> exceptions</a> (<a href="Exception/Exception.pdf"  target="pdf">Format <img src="../../gif/pdf.gif" border="0" alt="Format Pdf" width="17" height="17" /></a>) en java n'est pas aussi facile que le marketing cherche &agrave; nous le faire croire.</p>  <h2><a id="const" name="const"></a>Les r&eacute;f&eacute;rences constantes</h2>  <p>Il n'est pas possible, avec java, de contr&ocirc;ler l'usage qu'une classe fera d'un pointeur. Le C ANSI et le C++ proposent des r&eacute;f&eacute;rences constantes. Ce <a href="const/const.html"> document</a> (<a href="const/const.pdf"  target="pdf">Format <img src="../../gif/pdf.gif" border="0" alt="Format Pdf" width="17" height="17" /></a>) explique comment offrir ce concept avec Java.</p>  <h2><a id="enum" name="enum"></a>Les &eacute;num&eacute;rations</h2>  <p>Comment proposer des &eacute;num&eacute;rations contr&ocirc;l&eacute;es par le compilateur java ? Ce <a href="enum/enum.html"> document</a> (<a href="enum/enum.pdf"  target="pdf">Format <img src="../../gif/pdf.gif" border="0" alt="Format Pdf" width="17" height="17" /></a>) explique comment r&eacute;diger cela.</p>  <h2><a id="inner" name="inner"></a>Les inner-classes</h2>  <p>Comment fonctionne les inner-classes ? Ce <a href="inner/inner.html"> document</a> (<a href="inner/inner.pdf"  target="pdf">Format <img src="../../gif/pdf.gif" border="0" alt="Format Pdf" width="17" height="17" /></a>) explique comment les utiliser et comment elles fonctionnent.</p>  <h2><a id="Object" name="Object"></a>Comment r&eacute;diger les m&eacute;thodes de Object ?</h2>  <ul> <li><code><a id="toString" name="toString" href="toString/toString.html">toString()</a></code> (<a href="toString/toString.pdf"  target="pdf">Format <img src="../../gif/pdf.gif" border="0" alt="Format Pdf" width="17" height="17" /></a>)</li>  <li><code><a id="equals" name="equals" href="equals/equals.html">equals()</a></code> (<a href="equals/equals.pdf"  target="pdf">Format <img src="../../gif/pdf.gif" border="0" alt="Format Pdf" width="17" height="17" /></a>)</li>  <li><code><a id="hash" name="hash" href="hashCode/hashCode.html">hashCode()</a></code> (<a href="hashCode/hashCode.pdf"  target="pdf">Format <img src="../../gif/pdf.gif" border="0" alt="Format Pdf" width="17" height="17" /></a>)</li>  <li><code><a id="clone" name="clone" href="clone/clone.html">clone()</a></code> (<a href="clone/clone.pdf"  target="pdf">Format <img src="../../gif/pdf.gif" border="0" alt="Format Pdf" width="17" height="17" /></a>)</li>  <li><code><a id="finalize" name="finalize" href="finalize/finalize.html">finalize()</a></code> (<a href="finalize/finalize.pdf"  target="pdf">Format <img src="../../gif/pdf.gif" border="0" alt="Format Pdf" width="17" height="17" /></a>)</li> </ul>  <h2><a id="null" name="null"></a>Le type de null</h2>  <p>Quel est le type de <code>null</code> ? Il n'est g&eacute;n&eacute;ralement pas n&eacute;cessaire de le savoir. Mais parfois... Ce <a href="null/null.html"> document</a> (<a href="null/null.pdf"  target="pdf">Format <img src="../../gif/pdf.gif" border="0" alt="Format Pdf" width="17" height="17" /></a>) explique comment le compilateur manipule la constante <code>null</code>.</p>  <h2><a id="ClassLoader" name="ClassLoader"></a>Les ClassLoader</h2> <p>Ce <a href="ClassLoader/ClassLoader.htm"> document</a> (<a href="ClassLoader/ClassLoader.pdf"  target="pdf">Format <img src="../../gif/pdf.gif" border="0" alt="Format Pdf" width="17" height="17" /></a>) explique comment fonctionnent les class loaders. Un exemple de source est disponible <a href="ClassLoader/MyClassLoader.jar">ici</a>.</p>  <h2><a id="Class" name="Class"></a>Le format .class</h2> <p>Ce <a href="Class/Class.htm"> document</a> (<a href="Class/Class.pdf"  target="pdf">Format <img src="../../gif/pdf.gif" border="0" alt="Format Pdf" width="17" height="17" /></a>) explique le format des fichiers .class utilis&eacute;s par les class loaders. </p>   <h2><a id="Optimisation" name="Optimisation"></a>Optimisation de Java</h2>  <p>Comment optimiser le code Java ? Ce <a href="Optimisation/Optimisation.html"> document</a> (<a href="Optimisation/Optimisation.pdf"  target="pdf">Format <img src="../../gif/pdf.gif" border="0" alt="Format Pdf" width="17" height="17" /></a>) propose differentes techniques pour cela.</p>  <h2><a id="UnitTest" name="UnitTest"></a>Tests unitaires</h2>  <p>Comment r&eacute;diger des tests objets ? Comment prouver qu'une classe est correctement r&eacute;dig&eacute;e ? Ce <a href="UnitTest/UnitTest.html"> document</a> (<a href="UnitTest/UnitTest.pdf"  target="pdf">Format <img src="../../gif/pdf.gif" border="0" alt="Format Pdf" width="17" height="17" /></a>) propose une d&eacute;marche.</p>  <h1>Patterns et biblioth&egrave;ques</h1>  <p>Quelques patterns et biblioth&egrave;ques pour Java.</p>  <h2><a id="Semaphore" name="Semaphore"></a>Semaphore</h2>  <p>La syntaxe de Java permet de bloquer un objet lors d'une m&eacute;thode &agrave; l'aide de l'adjectif <a href="Doc/PPrados.Semaphore.html"> synchronized</a> <a href="Tools/tools.zip"> <img src="../../gif/srcjava.gif" border="0" alt="Source Java" width="17" height="17" /></a> , mais ne permet pas de le bloquer dans une m&eacute;thode et de le d&eacute;bloquer dans une autre. <a id="RefMet" name="RefMet"></a></p>  <h2><a id="MethodeRef" name="MethodeRef"></a>R&eacute;f&eacute;rence sur une m&eacute;thode</h2>  <p>Il n'est pas possible en Java d'avoir une <a href="Doc/PPrados.MethodeRef.html"> r&eacute;f&eacute;rence sur une m&eacute;thode</a> <a href="MethodeRef/MethodeRef.zip"> <img src="../../gif/srcjava.gif" border="0" alt="Source Java" width="17" height="17" /></a>. Il n'est donc pas possible d'utiliser un m&eacute;canisme pourtant tr&egrave;s courant : Les call-backs. Pour lever cette limitation, il faut utiliser un m&eacute;canisme particulier de traduction de ce concept (La version 1.1 du JDK supprime cette limitation).</p>  <h2>Lecture multiple/Ecriture unique</h2>  <p>Le <a href="RMWO/RMWO.html"> m&eacute;canisme de protection</a> <a href="RMWO/RMWO.zip"> <img src="../../gif/srcjava.gif" border="0" alt="Source Java" width="17" height="17" /></a> des instances en Java lors d'une ex&eacute;cution en multi-t&acirc;ches ne permet pas d'avoir plusieurs traitements acc&eacute;dant en lecture au m&ecirc;me objet. Cela peut &ecirc;tre la cause d'&eacute;treinte mutuelle. Pour am&eacute;liorer le m&eacute;canisme de blocage, je propose cette librairie.</p>  <h1>Divers</h1>  <h2><a id="Agregation" name="Agregation"></a>L'agr&eacute;gation</h2>  <p>Comment ajouter <a href="../../Analyses/Agregation/Agregation.html"> l'agr&eacute;gation</a> (<a href="../../Analyses/Agregation/Agregation.pdf"  target="pdf">Format <img src="../../gif/pdf.gif" border="0" width="17" height="17" alt="Format Pdf" /></a>) a Java?</p>  <h2><a id="Singleton" name="Singleton"></a>Les Singletons</h2> <p>Ce <a href="Singleton/Singleton.html"> document</a> (<a href="Singleton/Singleton.pdf"  target="pdf">Format <img src="../../gif/pdf.gif" border="0" alt="Format Pdf" width="17" height="17" /></a>) explique quand et comment utiliser des singletons. Trop souvent, ce pattern est mal utilis&eacute;. </p>  <h2><a id="BSF" name="BSF"></a>Bean Script Framework</h2>  Comment <a href="BSF/BSF.htm">int&eacute;grer</a> (<a href="BSF/BSF.pdf" target="pdf">Format <img src="../../gif/pdf.gif" border="0" width="17" height="17" alt="Format Pdf" /></a>) un langage de script &agrave; Java ?  <h2><a id="JMX" name="JMX"></a>Java Managment eXtension</h2>  Que propose <a href="JMX/JMX.htm">JMX</a> (<a href="JMX/JMX.pdf" target="pdf">Format <img src="../../gif/pdf.gif" border="0" width="17" height="17" alt="Format Pdf" /></a>) pour g&eacute;rer une application java &agrave; chaud ?  <h2><a id="Rhino" name="Rhino"></a>Rhino</h2>  <a href="Rhino/Rhino.htm">Rhino</a> (<a href="Rhino/Rhino.pdf" target="pdf">Format <img src="../../gif/pdf.gif" border="0" width="17" height="17" alt="Format Pdf" /></a>) est une impl&eacute;Nmentation javascript pour java.  <p class="VoirAussi">Voir aussi :<br /> <a href="../../OO.html">Programmations et conceptions objets</a><br /> <a href="../../Livre/CJS/index.html">&quot;C++, Java, Smalltalk&quot;</a><br /> </p> </body> </html> <!-- DEBUT / Cybermonitor / START --> <script language="javascript"><!-- CM_RUBRIQUE = "edit_PagesPersos_abonnes"; CM_CLIENT = "clubv3"; CM_SECTION1 = "PagesPersos"; // --></script> <script language="javascript" src="http://js.cybermonitor.com/clubv3.js"> </script> <noscript> <img src="http://stat3.cybermonitor.com/clubv3_v?R=edit_PagesPersos_abonnes&S=total;PagesPersos"> </noscript> <!-- FIN / Cybermonitor / END --> 
