CINXE.COM
Java (langage) — Wikipédia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available" lang="fr" dir="ltr"> <head> <meta charset="UTF-8"> <title>Java (langage) — Wikipédia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-sticky-header-enabled vector-toc-available";var cookie=document.cookie.match(/(?:^|; )frwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":[",\t."," \t,"],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","janvier","février","mars","avril","mai","juin","juillet","août","septembre","octobre","novembre","décembre"],"wgRequestId":"dc954ccc-fb7c-47ec-ac02-5326504ab9de","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Java_(langage)","wgTitle":"Java (langage)","wgCurRevisionId":223275134,"wgRevisionId":223275134,"wgArticleId":6469,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Page utilisant P571","Page utilisant P1195","Article utilisant une Infobox","Article contenant un appel à traduction en anglais","Article à référence souhaitée","Article à référence nécessaire","Article contenant un appel à traduction en espagnol","Page avec un oldid invalide","Catégorie Commons avec lien local identique sur Wikidata","Portail:Programmation informatique/Articles liés","Portail:Informatique/Articles liés","Article de qualité en malayâlam", "Java (langage)","Langage de programmation","Langage orienté objet","Plateforme Java","Langage pour la machine virtuelle Java"],"wgPageViewLanguage":"fr","wgPageContentLanguage":"fr","wgPageContentModel":"wikitext","wgRelevantPageName":"Java_(langage)","wgRelevantArticleId":6469,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":true,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"fr","pageLanguageDir":"ltr","pageVariantFallbacks":"fr"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":true,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":100000,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false, "wgWikibaseItemId":"Q251","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","ext.pygments.view","mediawiki.page.media","site","mediawiki.page.ready","mediawiki.toc","skins.vector.js", "ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ArchiveLinks","ext.gadget.Wdsearch","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=fr&modules=ext.cite.styles%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=fr&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=fr&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.18"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="noindex,nofollow,max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/3/3e/Metodo_Astratto.png"> <meta property="og:image:width" content="1200"> <meta property="og:image:height" content="582"> <meta property="og:image" content="https://upload.wikimedia.org/wikipedia/commons/3/3e/Metodo_Astratto.png"> <meta property="og:image:width" content="800"> <meta property="og:image:height" content="388"> <meta property="og:image:width" content="640"> <meta property="og:image:height" content="310"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Java (langage) — Wikipédia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//fr.m.wikipedia.org/wiki/Java_(langage)"> <link rel="alternate" type="application/x-wiki" title="Modifier" href="/w/index.php?title=Java_(langage)&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipédia (fr)"> <link rel="EditURI" type="application/rsd+xml" href="//fr.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://fr.wikipedia.org/wiki/Java_(langage)"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr"> <link rel="alternate" type="application/atom+xml" title="Flux Atom de Wikipédia" href="/w/index.php?title=Sp%C3%A9cial:Modifications_r%C3%A9centes&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Java_langage rootpage-Java_langage skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Aller au contenu</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" title="Menu principal" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Menu principal" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Menu principal</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Menu principal</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">déplacer vers la barre latérale</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">masquer</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Accueil_principal" title="Accueil général [z]" accesskey="z"><span>Accueil</span></a></li><li id="n-thema" class="mw-list-item"><a href="/wiki/Portail:Accueil"><span>Portails thématiques</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Page_au_hasard" title="Affiche un article au hasard [x]" accesskey="x"><span>Article au hasard</span></a></li><li id="n-contact" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Contact"><span>Contact</span></a></li><li id="n-specialpages" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Pages_sp%C3%A9ciales"><span>Pages spéciales</span></a></li> </ul> </div> </div> <div id="p-Contribuer" class="vector-menu mw-portlet mw-portlet-Contribuer" > <div class="vector-menu-heading"> Contribuer </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-aboutwp" class="mw-list-item"><a href="/wiki/Aide:D%C3%A9buter"><span>Débuter sur Wikipédia</span></a></li><li id="n-help" class="mw-list-item"><a href="/wiki/Aide:Accueil" title="Accès à l’aide"><span>Aide</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikip%C3%A9dia:Accueil_de_la_communaut%C3%A9" title="À propos du projet, ce que vous pouvez faire, où trouver les informations"><span>Communauté</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Modifications_r%C3%A9centes" title="Liste des modifications récentes sur le wiki [r]" accesskey="r"><span>Modifications récentes</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Wikip%C3%A9dia:Accueil_principal" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipédia" src="/static/images/mobile/copyright/wikipedia-wordmark-fr.svg" style="width: 7.4375em; height: 1.125em;"> <img class="mw-logo-tagline" alt="l'encyclopédie libre" src="/static/images/mobile/copyright/wikipedia-tagline-fr.svg" width="120" height="13" style="width: 7.5em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Sp%C3%A9cial:Recherche" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Rechercher sur Wikipédia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Rechercher</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Rechercher sur Wikipédia" aria-label="Rechercher sur Wikipédia" autocapitalize="sentences" title="Rechercher sur Wikipédia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Spécial:Recherche"> </div> <button class="cdx-button cdx-search-input__end-button">Rechercher</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Outils personnels"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Apparence"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Modifier l'apparence de la taille, de la largeur et de la couleur de la police de la page" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Apparence" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Apparence</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=fr.wikipedia.org&uselang=fr" class=""><span>Faire un don</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Sp%C3%A9cial:Cr%C3%A9er_un_compte&returnto=Java+%28langage%29&returntoquery=section%3D12%26veaction%3Dedit" title="Nous vous encourageons à créer un compte utilisateur et vous connecter ; ce n’est cependant pas obligatoire." class=""><span>Créer un compte</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Sp%C3%A9cial:Connexion&returnto=Java+%28langage%29&returntoquery=section%3D12%26veaction%3Dedit" title="Nous vous encourageons à vous connecter ; ce n’est cependant pas obligatoire. [o]" accesskey="o" class=""><span>Se connecter</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Plus d’options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Outils personnels" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Outils personnels</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="Menu utilisateur" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/?wmf_source=donate&wmf_medium=sidebar&wmf_campaign=fr.wikipedia.org&uselang=fr"><span>Faire un don</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:Cr%C3%A9er_un_compte&returnto=Java+%28langage%29&returntoquery=section%3D12%26veaction%3Dedit" title="Nous vous encourageons à créer un compte utilisateur et vous connecter ; ce n’est cependant pas obligatoire."><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Créer un compte</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:Connexion&returnto=Java+%28langage%29&returntoquery=section%3D12%26veaction%3Dedit" title="Nous vous encourageons à vous connecter ; ce n’est cependant pas obligatoire. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Se connecter</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages pour les contributeurs déconnectés <a href="/wiki/Aide:Premiers_pas" aria-label="En savoir plus sur la contribution"><span>en savoir plus</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Mes_contributions" title="Une liste des modifications effectuées depuis cette adresse IP [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Mes_discussions" title="La page de discussion pour les contributions depuis cette adresse IP [n]" accesskey="n"><span>Discussion</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Sommaire" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Sommaire</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">déplacer vers la barre latérale</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">masquer</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">Début</div> </a> </li> <li id="toc-Aperçu" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Aperçu"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>Aperçu</span> </div> </a> <ul id="toc-Aperçu-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Historique" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Historique"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Historique</span> </div> </a> <button aria-controls="toc-Historique-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Afficher / masquer la sous-section Historique</span> </button> <ul id="toc-Historique-sublist" class="vector-toc-list"> <li id="toc-Origine_du_langage" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Origine_du_langage"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>Origine du langage</span> </div> </a> <ul id="toc-Origine_du_langage-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java_rencontre_Internet" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Java_rencontre_Internet"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span> <span>Java rencontre Internet</span> </div> </a> <ul id="toc-Java_rencontre_Internet-sublist" class="vector-toc-list"> <li id="toc-Origine_du_nom_Java" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Origine_du_nom_Java"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2.1</span> <span>Origine du nom Java</span> </div> </a> <ul id="toc-Origine_du_nom_Java-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Lancement_public_de_Java" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Lancement_public_de_Java"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2.2</span> <span>Lancement public de Java</span> </div> </a> <ul id="toc-Lancement_public_de_Java-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Avènement_de_Java_2" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Avènement_de_Java_2"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.3</span> <span>Avènement de Java 2</span> </div> </a> <ul id="toc-Avènement_de_Java_2-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Histoire_récente" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Histoire_récente"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.4</span> <span>Histoire récente</span> </div> </a> <ul id="toc-Histoire_récente-sublist" class="vector-toc-list"> <li id="toc-Utilisation_Web" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Utilisation_Web"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.4.1</span> <span>Utilisation Web</span> </div> </a> <ul id="toc-Utilisation_Web-sublist" class="vector-toc-list"> <li id="toc-Côté_client" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Côté_client"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.4.1.1</span> <span>Côté client</span> </div> </a> <ul id="toc-Côté_client-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Côté_serveur" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Côté_serveur"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.4.1.2</span> <span>Côté serveur</span> </div> </a> <ul id="toc-Côté_serveur-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Utilisation_sur_poste_de_travail" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Utilisation_sur_poste_de_travail"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.4.2</span> <span>Utilisation sur poste de travail</span> </div> </a> <ul id="toc-Utilisation_sur_poste_de_travail-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Utilisation_avec_les_mobiles" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Utilisation_avec_les_mobiles"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.4.3</span> <span>Utilisation avec les mobiles</span> </div> </a> <ul id="toc-Utilisation_avec_les_mobiles-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-OS_Windows,_Mac_OS_X_et_GNU/Linux" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#OS_Windows,_Mac_OS_X_et_GNU/Linux"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.4.4</span> <span>OS Windows, Mac OS X et GNU/Linux</span> </div> </a> <ul id="toc-OS_Windows,_Mac_OS_X_et_GNU/Linux-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Passage_sous_licence_open-source" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Passage_sous_licence_open-source"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.4.5</span> <span>Passage sous licence open-source</span> </div> </a> <ul id="toc-Passage_sous_licence_open-source-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Acquisition_par_Oracle" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Acquisition_par_Oracle"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.4.6</span> <span>Acquisition par Oracle</span> </div> </a> <ul id="toc-Acquisition_par_Oracle-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Historique_des_versions" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Historique_des_versions"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5</span> <span>Historique des versions</span> </div> </a> <ul id="toc-Historique_des_versions-sublist" class="vector-toc-list"> <li id="toc-Numérotation_des_versions" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Numérotation_des_versions"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.1</span> <span>Numérotation des versions</span> </div> </a> <ul id="toc-Numérotation_des_versions-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Versions_successives" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Versions_successives"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.2</span> <span>Versions successives</span> </div> </a> <ul id="toc-Versions_successives-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Contenu_et_évolutions" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Contenu_et_évolutions"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3</span> <span>Contenu et évolutions</span> </div> </a> <ul id="toc-Contenu_et_évolutions-sublist" class="vector-toc-list"> <li id="toc-Du_JDK_1.0_au_J2SE_1.4" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Du_JDK_1.0_au_J2SE_1.4"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3.1</span> <span>Du JDK 1.0 au J2SE 1.4</span> </div> </a> <ul id="toc-Du_JDK_1.0_au_J2SE_1.4-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-J2SE_5.0" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#J2SE_5.0"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3.2</span> <span>J2SE 5.0</span> </div> </a> <ul id="toc-J2SE_5.0-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java_SE_6" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Java_SE_6"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3.3</span> <span>Java SE 6</span> </div> </a> <ul id="toc-Java_SE_6-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java_SE_7_(LTS)" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Java_SE_7_(LTS)"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3.4</span> <span>Java SE 7 (LTS)</span> </div> </a> <ul id="toc-Java_SE_7_(LTS)-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java_SE_8_(LTS)" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Java_SE_8_(LTS)"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3.5</span> <span>Java SE 8 (LTS)</span> </div> </a> <ul id="toc-Java_SE_8_(LTS)-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java_SE_9" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Java_SE_9"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3.6</span> <span>Java SE 9</span> </div> </a> <ul id="toc-Java_SE_9-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java_SE_10" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Java_SE_10"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3.7</span> <span>Java SE 10</span> </div> </a> <ul id="toc-Java_SE_10-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java_SE_11_(LTS)" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Java_SE_11_(LTS)"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3.8</span> <span>Java SE 11 (LTS)</span> </div> </a> <ul id="toc-Java_SE_11_(LTS)-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java_SE_12" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Java_SE_12"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3.9</span> <span>Java SE 12</span> </div> </a> <ul id="toc-Java_SE_12-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java_SE_13" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Java_SE_13"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3.10</span> <span>Java SE 13</span> </div> </a> <ul id="toc-Java_SE_13-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java_SE_14" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Java_SE_14"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3.11</span> <span>Java SE 14</span> </div> </a> <ul id="toc-Java_SE_14-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java_SE_15" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Java_SE_15"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3.12</span> <span>Java SE 15</span> </div> </a> <ul id="toc-Java_SE_15-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java_SE_16" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Java_SE_16"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3.13</span> <span>Java SE 16</span> </div> </a> <ul id="toc-Java_SE_16-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java_SE_17_(LTS)" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Java_SE_17_(LTS)"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3.14</span> <span>Java SE 17 (LTS)</span> </div> </a> <ul id="toc-Java_SE_17_(LTS)-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java_SE_18" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Java_SE_18"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3.15</span> <span>Java SE 18</span> </div> </a> <ul id="toc-Java_SE_18-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java_SE_19" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Java_SE_19"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3.16</span> <span>Java SE 19</span> </div> </a> <ul id="toc-Java_SE_19-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java_SE_20" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Java_SE_20"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3.17</span> <span>Java SE 20</span> </div> </a> <ul id="toc-Java_SE_20-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Java_SE_21_(LTS)" class="vector-toc-list-item vector-toc-level-4"> <a class="vector-toc-link" href="#Java_SE_21_(LTS)"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.5.3.18</span> <span>Java SE 21 (LTS)</span> </div> </a> <ul id="toc-Java_SE_21_(LTS)-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> </ul> </li> </ul> </li> <li id="toc-Philosophie" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Philosophie"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Philosophie</span> </div> </a> <button aria-controls="toc-Philosophie-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Afficher / masquer la sous-section Philosophie</span> </button> <ul id="toc-Philosophie-sublist" class="vector-toc-list"> <li id="toc-Langage_orienté_objet_et_familier" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Langage_orienté_objet_et_familier"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.1</span> <span>Langage orienté objet et familier</span> </div> </a> <ul id="toc-Langage_orienté_objet_et_familier-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Mécanisme_du_ramasse-miettes" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Mécanisme_du_ramasse-miettes"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.2</span> <span>Mécanisme du ramasse-miettes</span> </div> </a> <ul id="toc-Mécanisme_du_ramasse-miettes-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Indépendance_vis-à-vis_de_la_plateforme" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Indépendance_vis-à-vis_de_la_plateforme"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.3</span> <span>Indépendance vis-à-vis de la plateforme</span> </div> </a> <ul id="toc-Indépendance_vis-à-vis_de_la_plateforme-sublist" class="vector-toc-list"> <li id="toc-Types_de_compilations" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Types_de_compilations"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.3.1</span> <span>Types de compilations</span> </div> </a> <ul id="toc-Types_de_compilations-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Bilan_de_la_portabilité_Java" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Bilan_de_la_portabilité_Java"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.3.2</span> <span>Bilan de la portabilité Java</span> </div> </a> <ul id="toc-Bilan_de_la_portabilité_Java-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Exécution_sécurisée_de_code_distant" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Exécution_sécurisée_de_code_distant"> <div class="vector-toc-text"> <span class="vector-toc-numb">3.4</span> <span>Exécution sécurisée de code distant</span> </div> </a> <ul id="toc-Exécution_sécurisée_de_code_distant-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Éléments_du_langage" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Éléments_du_langage"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Éléments du langage</span> </div> </a> <button aria-controls="toc-Éléments_du_langage-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Afficher / masquer la sous-section Éléments du langage</span> </button> <ul id="toc-Éléments_du_langage-sublist" class="vector-toc-list"> <li id="toc-Mots_réservés,_primitifs_et_littéraux" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Mots_réservés,_primitifs_et_littéraux"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.1</span> <span>Mots réservés, primitifs et littéraux</span> </div> </a> <ul id="toc-Mots_réservés,_primitifs_et_littéraux-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Classe,_attribut,_méthode" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Classe,_attribut,_méthode"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2</span> <span>Classe, attribut, méthode</span> </div> </a> <ul id="toc-Classe,_attribut,_méthode-sublist" class="vector-toc-list"> <li id="toc-Notion_de_classe" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Notion_de_classe"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2.1</span> <span>Notion de classe</span> </div> </a> <ul id="toc-Notion_de_classe-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Notion_d'attribut" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Notion_d'attribut"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2.2</span> <span>Notion d'attribut</span> </div> </a> <ul id="toc-Notion_d'attribut-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Notion_de_méthode" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Notion_de_méthode"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.2.3</span> <span>Notion de méthode</span> </div> </a> <ul id="toc-Notion_de_méthode-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Types" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Types"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.3</span> <span>Types</span> </div> </a> <ul id="toc-Types-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Les_collections_d'objets" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Les_collections_d'objets"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.4</span> <span>Les collections d'objets</span> </div> </a> <ul id="toc-Les_collections_d'objets-sublist" class="vector-toc-list"> <li id="toc-Collections_de_taille_fixe" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Collections_de_taille_fixe"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.4.1</span> <span>Collections de taille fixe</span> </div> </a> <ul id="toc-Collections_de_taille_fixe-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Collections_de_taille_variable" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Collections_de_taille_variable"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.4.2</span> <span>Collections de taille variable</span> </div> </a> <ul id="toc-Collections_de_taille_variable-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Structures_de_contrôle" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Structures_de_contrôle"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.5</span> <span>Structures de contrôle</span> </div> </a> <ul id="toc-Structures_de_contrôle-sublist" class="vector-toc-list"> <li id="toc-Boucles" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Boucles"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.5.1</span> <span>Boucles</span> </div> </a> <ul id="toc-Boucles-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Structures_conditionnelles" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Structures_conditionnelles"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.5.2</span> <span>Structures conditionnelles</span> </div> </a> <ul id="toc-Structures_conditionnelles-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Branchements_inconditionnels" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Branchements_inconditionnels"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.5.3</span> <span>Branchements inconditionnels</span> </div> </a> <ul id="toc-Branchements_inconditionnels-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Traitement_des_exceptions" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Traitement_des_exceptions"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.5.4</span> <span>Traitement des exceptions</span> </div> </a> <ul id="toc-Traitement_des_exceptions-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Types_génériques" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Types_génériques"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.5.5</span> <span>Types génériques</span> </div> </a> <ul id="toc-Types_génériques-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Codage_du_code_source" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Codage_du_code_source"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.5.6</span> <span>Codage du code source</span> </div> </a> <ul id="toc-Codage_du_code_source-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Opérateur_de_comparaison" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Opérateur_de_comparaison"> <div class="vector-toc-text"> <span class="vector-toc-numb">4.6</span> <span>Opérateur de comparaison</span> </div> </a> <ul id="toc-Opérateur_de_comparaison-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Critiques_du_langage_Java" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Critiques_du_langage_Java"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Critiques du langage Java</span> </div> </a> <button aria-controls="toc-Critiques_du_langage_Java-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Afficher / masquer la sous-section Critiques du langage Java</span> </button> <ul id="toc-Critiques_du_langage_Java-sublist" class="vector-toc-list"> <li id="toc-Failles_de_sécurité" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Failles_de_sécurité"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.1</span> <span>Failles de sécurité</span> </div> </a> <ul id="toc-Failles_de_sécurité-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-La_«_classite_»" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#La_«_classite_»"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.2</span> <span>La « classite »</span> </div> </a> <ul id="toc-La_«_classite_»-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-La_généricité_du_langage_Java" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#La_généricité_du_langage_Java"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.3</span> <span>La généricité du langage Java</span> </div> </a> <ul id="toc-La_généricité_du_langage_Java-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Types_de_données_manquants" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Types_de_données_manquants"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.4</span> <span>Types de données manquants</span> </div> </a> <ul id="toc-Types_de_données_manquants-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Écarts_aux_normes_de_codage_en_virgule_flottante" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Écarts_aux_normes_de_codage_en_virgule_flottante"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.5</span> <span>Écarts aux normes de codage en virgule flottante</span> </div> </a> <ul id="toc-Écarts_aux_normes_de_codage_en_virgule_flottante-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Faible_performance" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Faible_performance"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.6</span> <span>Faible performance</span> </div> </a> <ul id="toc-Faible_performance-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Environnements_de_développement" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Environnements_de_développement"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Environnements de développement</span> </div> </a> <button aria-controls="toc-Environnements_de_développement-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Afficher / masquer la sous-section Environnements de développement</span> </button> <ul id="toc-Environnements_de_développement-sublist" class="vector-toc-list"> <li id="toc-JavaStyle" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#JavaStyle"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.1</span> <span>JavaStyle</span> </div> </a> <ul id="toc-JavaStyle-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Frameworks_et_API" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Frameworks_et_API"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.2</span> <span>Frameworks et API</span> </div> </a> <ul id="toc-Frameworks_et_API-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Outils_de_développement" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Outils_de_développement"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.3</span> <span>Outils de développement</span> </div> </a> <ul id="toc-Outils_de_développement-sublist" class="vector-toc-list"> <li id="toc-Automatisation" class="vector-toc-list-item vector-toc-level-3"> <a class="vector-toc-link" href="#Automatisation"> <div class="vector-toc-text"> <span class="vector-toc-numb">6.3.1</span> <span>Automatisation</span> </div> </a> <ul id="toc-Automatisation-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> </ul> </li> <li id="toc-Notes_et_références" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Notes_et_références"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>Notes et références</span> </div> </a> <ul id="toc-Notes_et_références-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Voir_aussi" class="vector-toc-list-item vector-toc-level-1"> <a class="vector-toc-link" href="#Voir_aussi"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>Voir aussi</span> </div> </a> <button aria-controls="toc-Voir_aussi-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Afficher / masquer la sous-section Voir aussi</span> </button> <ul id="toc-Voir_aussi-sublist" class="vector-toc-list"> <li id="toc-Bibliographie" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Bibliographie"> <div class="vector-toc-text"> <span class="vector-toc-numb">8.1</span> <span>Bibliographie</span> </div> </a> <ul id="toc-Bibliographie-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Articles_connexes" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Articles_connexes"> <div class="vector-toc-text"> <span class="vector-toc-numb">8.2</span> <span>Articles connexes</span> </div> </a> <ul id="toc-Articles_connexes-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Liens_externes" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Liens_externes"> <div class="vector-toc-text"> <span class="vector-toc-numb">8.3</span> <span>Liens externes</span> </div> </a> <ul id="toc-Liens_externes-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Sommaire" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" title="Table des matières" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Basculer la table des matières" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Basculer la table des matières</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Java (langage)</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Aller à un article dans une autre langue. Disponible en 117 langues." > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-117" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">117 langues</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-ace mw-list-item"><a href="https://ace.wikipedia.org/wiki/Java" title="Java – aceh" lang="ace" hreflang="ace" data-title="Java" data-language-autonym="Acèh" data-language-local-name="aceh" class="interlanguage-link-target"><span>Acèh</span></a></li><li class="interlanguage-link interwiki-af mw-list-item"><a href="https://af.wikipedia.org/wiki/Java_(programmeertaal)" title="Java (programmeertaal) – afrikaans" lang="af" hreflang="af" data-title="Java (programmeertaal)" data-language-autonym="Afrikaans" data-language-local-name="afrikaans" class="interlanguage-link-target"><span>Afrikaans</span></a></li><li class="interlanguage-link interwiki-am mw-list-item"><a href="https://am.wikipedia.org/wiki/%E1%8C%83%E1%89%AB" title="ጃቫ – amharique" lang="am" hreflang="am" data-title="ጃቫ" data-language-autonym="አማርኛ" data-language-local-name="amharique" class="interlanguage-link-target"><span>አማርኛ</span></a></li><li class="interlanguage-link interwiki-an mw-list-item"><a href="https://an.wikipedia.org/wiki/Luengache_de_programaci%C3%B3n_Java" title="Luengache de programación Java – aragonais" lang="an" hreflang="an" data-title="Luengache de programación Java" data-language-autonym="Aragonés" data-language-local-name="aragonais" class="interlanguage-link-target"><span>Aragonés</span></a></li><li class="interlanguage-link interwiki-ar mw-list-item"><a href="https://ar.wikipedia.org/wiki/%D8%AC%D8%A7%D9%81%D8%A7_(%D9%84%D8%BA%D8%A9_%D8%A8%D8%B1%D9%85%D8%AC%D8%A9)" title="جافا (لغة برمجة) – arabe" lang="ar" hreflang="ar" data-title="جافا (لغة برمجة)" data-language-autonym="العربية" data-language-local-name="arabe" class="interlanguage-link-target"><span>العربية</span></a></li><li class="interlanguage-link interwiki-ary mw-list-item"><a href="https://ary.wikipedia.org/wiki/%D8%AC%D8%A7%DA%A4%D8%A7" title="جاڤا – arabe marocain" lang="ary" hreflang="ary" data-title="جاڤا" data-language-autonym="الدارجة" data-language-local-name="arabe marocain" class="interlanguage-link-target"><span>الدارجة</span></a></li><li class="interlanguage-link interwiki-arz mw-list-item"><a href="https://arz.wikipedia.org/wiki/%D8%AC%D8%A7%D9%81%D8%A7_(%D9%84%D8%BA%D8%A9_%D8%A8%D8%B1%D9%85%D8%AC%D9%87)" title="جافا (لغة برمجه) – arabe égyptien" lang="arz" hreflang="arz" data-title="جافا (لغة برمجه)" data-language-autonym="مصرى" data-language-local-name="arabe égyptien" class="interlanguage-link-target"><span>مصرى</span></a></li><li class="interlanguage-link interwiki-as mw-list-item"><a href="https://as.wikipedia.org/wiki/%E0%A6%9C%E0%A6%BE%E0%A6%AD%E0%A6%BE" title="জাভা – assamais" lang="as" hreflang="as" data-title="জাভা" data-language-autonym="অসমীয়া" data-language-local-name="assamais" class="interlanguage-link-target"><span>অসমীয়া</span></a></li><li class="interlanguage-link interwiki-ast mw-list-item"><a href="https://ast.wikipedia.org/wiki/Java_(llinguaxe_de_programaci%C3%B3n)" title="Java (llinguaxe de programación) – asturien" lang="ast" hreflang="ast" data-title="Java (llinguaxe de programación)" data-language-autonym="Asturianu" data-language-local-name="asturien" class="interlanguage-link-target"><span>Asturianu</span></a></li><li class="interlanguage-link interwiki-az mw-list-item"><a href="https://az.wikipedia.org/wiki/Java" title="Java – azerbaïdjanais" lang="az" hreflang="az" data-title="Java" data-language-autonym="Azərbaycanca" data-language-local-name="azerbaïdjanais" class="interlanguage-link-target"><span>Azərbaycanca</span></a></li><li class="interlanguage-link interwiki-azb mw-list-item"><a href="https://azb.wikipedia.org/wiki/%D8%AC%D8%A7%D9%88%D8%A7" title="جاوا – South Azerbaijani" lang="azb" hreflang="azb" data-title="جاوا" data-language-autonym="تۆرکجه" data-language-local-name="South Azerbaijani" class="interlanguage-link-target"><span>تۆرکجه</span></a></li><li class="interlanguage-link interwiki-bat-smg mw-list-item"><a href="https://bat-smg.wikipedia.org/wiki/Java" title="Java – samogitien" lang="sgs" hreflang="sgs" data-title="Java" data-language-autonym="Žemaitėška" data-language-local-name="samogitien" class="interlanguage-link-target"><span>Žemaitėška</span></a></li><li class="interlanguage-link interwiki-be mw-list-item"><a href="https://be.wikipedia.org/wiki/Java_(%D0%BC%D0%BE%D0%B2%D0%B0_%D0%BF%D1%80%D0%B0%D0%B3%D1%80%D0%B0%D0%BC%D0%B0%D0%B2%D0%B0%D0%BD%D0%BD%D1%8F)" title="Java (мова праграмавання) – biélorusse" lang="be" hreflang="be" data-title="Java (мова праграмавання)" data-language-autonym="Беларуская" data-language-local-name="biélorusse" class="interlanguage-link-target"><span>Беларуская</span></a></li><li class="interlanguage-link interwiki-be-x-old mw-list-item"><a href="https://be-tarask.wikipedia.org/wiki/Java" title="Java – Belarusian (Taraškievica orthography)" lang="be-tarask" hreflang="be-tarask" data-title="Java" data-language-autonym="Беларуская (тарашкевіца)" data-language-local-name="Belarusian (Taraškievica orthography)" class="interlanguage-link-target"><span>Беларуская (тарашкевіца)</span></a></li><li class="interlanguage-link interwiki-bg mw-list-item"><a href="https://bg.wikipedia.org/wiki/Java" title="Java – bulgare" lang="bg" hreflang="bg" data-title="Java" data-language-autonym="Български" data-language-local-name="bulgare" class="interlanguage-link-target"><span>Български</span></a></li><li class="interlanguage-link interwiki-bn mw-list-item"><a href="https://bn.wikipedia.org/wiki/%E0%A6%9C%E0%A6%BE%E0%A6%AD%E0%A6%BE_(%E0%A6%AA%E0%A7%8D%E0%A6%B0%E0%A7%8B%E0%A6%97%E0%A7%8D%E0%A6%B0%E0%A6%BE%E0%A6%AE%E0%A6%BF%E0%A6%82_%E0%A6%AD%E0%A6%BE%E0%A6%B7%E0%A6%BE)" title="জাভা (প্রোগ্রামিং ভাষা) – bengali" lang="bn" hreflang="bn" data-title="জাভা (প্রোগ্রামিং ভাষা)" data-language-autonym="বাংলা" data-language-local-name="bengali" class="interlanguage-link-target"><span>বাংলা</span></a></li><li class="interlanguage-link interwiki-bs mw-list-item"><a href="https://bs.wikipedia.org/wiki/Java_(programski_jezik)" title="Java (programski jezik) – bosniaque" lang="bs" hreflang="bs" data-title="Java (programski jezik)" data-language-autonym="Bosanski" data-language-local-name="bosniaque" class="interlanguage-link-target"><span>Bosanski</span></a></li><li class="interlanguage-link interwiki-bug mw-list-item"><a href="https://bug.wikipedia.org/wiki/Java" title="Java – bugi" lang="bug" hreflang="bug" data-title="Java" data-language-autonym="Basa Ugi" data-language-local-name="bugi" class="interlanguage-link-target"><span>Basa Ugi</span></a></li><li class="interlanguage-link interwiki-ca mw-list-item"><a href="https://ca.wikipedia.org/wiki/Java_(llenguatge_de_programaci%C3%B3)" title="Java (llenguatge de programació) – catalan" lang="ca" hreflang="ca" data-title="Java (llenguatge de programació)" data-language-autonym="Català" data-language-local-name="catalan" class="interlanguage-link-target"><span>Català</span></a></li><li class="interlanguage-link interwiki-cdo mw-list-item"><a href="https://cdo.wikipedia.org/wiki/Java" title="Java – Mindong" lang="cdo" hreflang="cdo" data-title="Java" data-language-autonym="閩東語 / Mìng-dĕ̤ng-ngṳ̄" data-language-local-name="Mindong" class="interlanguage-link-target"><span>閩東語 / Mìng-dĕ̤ng-ngṳ̄</span></a></li><li class="interlanguage-link interwiki-ckb mw-list-item"><a href="https://ckb.wikipedia.org/wiki/%D8%AC%D8%A7%DA%A4%D8%A7_(%D8%B2%D9%85%D8%A7%D9%86%DB%8C_%D8%A8%DB%95%D8%B1%D9%86%D8%A7%D9%85%DB%95%D8%B3%D8%A7%D8%B2%DB%8C)" title="جاڤا (زمانی بەرنامەسازی) – sorani" lang="ckb" hreflang="ckb" data-title="جاڤا (زمانی بەرنامەسازی)" data-language-autonym="کوردی" data-language-local-name="sorani" class="interlanguage-link-target"><span>کوردی</span></a></li><li class="interlanguage-link interwiki-co mw-list-item"><a href="https://co.wikipedia.org/wiki/Java" title="Java – corse" lang="co" hreflang="co" data-title="Java" data-language-autonym="Corsu" data-language-local-name="corse" class="interlanguage-link-target"><span>Corsu</span></a></li><li class="interlanguage-link interwiki-cs mw-list-item"><a href="https://cs.wikipedia.org/wiki/Java_(programovac%C3%AD_jazyk)" title="Java (programovací jazyk) – tchèque" lang="cs" hreflang="cs" data-title="Java (programovací jazyk)" data-language-autonym="Čeština" data-language-local-name="tchèque" class="interlanguage-link-target"><span>Čeština</span></a></li><li class="interlanguage-link interwiki-cv mw-list-item"><a href="https://cv.wikipedia.org/wiki/Java_(%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80_%D1%87%C4%95%D0%BB%D1%85%D0%B8)" title="Java (компьютер чĕлхи) – tchouvache" lang="cv" hreflang="cv" data-title="Java (компьютер чĕлхи)" data-language-autonym="Чӑвашла" data-language-local-name="tchouvache" class="interlanguage-link-target"><span>Чӑвашла</span></a></li><li class="interlanguage-link interwiki-cy mw-list-item"><a href="https://cy.wikipedia.org/wiki/Java_(iaith_raglennu)" title="Java (iaith raglennu) – gallois" lang="cy" hreflang="cy" data-title="Java (iaith raglennu)" data-language-autonym="Cymraeg" data-language-local-name="gallois" class="interlanguage-link-target"><span>Cymraeg</span></a></li><li class="interlanguage-link interwiki-da mw-list-item"><a href="https://da.wikipedia.org/wiki/Java_(programmeringssprog)" title="Java (programmeringssprog) – danois" lang="da" hreflang="da" data-title="Java (programmeringssprog)" data-language-autonym="Dansk" data-language-local-name="danois" class="interlanguage-link-target"><span>Dansk</span></a></li><li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Java_(Programmiersprache)" title="Java (Programmiersprache) – allemand" lang="de" hreflang="de" data-title="Java (Programmiersprache)" data-language-autonym="Deutsch" data-language-local-name="allemand" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-el mw-list-item"><a href="https://el.wikipedia.org/wiki/Java" title="Java – grec" lang="el" hreflang="el" data-title="Java" data-language-autonym="Ελληνικά" data-language-local-name="grec" class="interlanguage-link-target"><span>Ελληνικά</span></a></li><li class="interlanguage-link interwiki-en mw-list-item"><a href="https://en.wikipedia.org/wiki/Java_(programming_language)" title="Java (programming language) – anglais" lang="en" hreflang="en" data-title="Java (programming language)" data-language-autonym="English" data-language-local-name="anglais" class="interlanguage-link-target"><span>English</span></a></li><li class="interlanguage-link interwiki-eo mw-list-item"><a href="https://eo.wikipedia.org/wiki/Java_(programlingvo)" title="Java (programlingvo) – espéranto" lang="eo" hreflang="eo" data-title="Java (programlingvo)" data-language-autonym="Esperanto" data-language-local-name="espéranto" class="interlanguage-link-target"><span>Esperanto</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Java_(lenguaje_de_programaci%C3%B3n)" title="Java (lenguaje de programación) – espagnol" lang="es" hreflang="es" data-title="Java (lenguaje de programación)" data-language-autonym="Español" data-language-local-name="espagnol" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-et mw-list-item"><a href="https://et.wikipedia.org/wiki/Java" title="Java – estonien" lang="et" hreflang="et" data-title="Java" data-language-autonym="Eesti" data-language-local-name="estonien" class="interlanguage-link-target"><span>Eesti</span></a></li><li class="interlanguage-link interwiki-eu mw-list-item"><a href="https://eu.wikipedia.org/wiki/Java_(programazio-lengoaia)" title="Java (programazio-lengoaia) – basque" lang="eu" hreflang="eu" data-title="Java (programazio-lengoaia)" data-language-autonym="Euskara" data-language-local-name="basque" class="interlanguage-link-target"><span>Euskara</span></a></li><li class="interlanguage-link interwiki-ext mw-list-item"><a href="https://ext.wikipedia.org/wiki/Java" title="Java – estrémègne" lang="ext" hreflang="ext" data-title="Java" data-language-autonym="Estremeñu" data-language-local-name="estrémègne" class="interlanguage-link-target"><span>Estremeñu</span></a></li><li class="interlanguage-link interwiki-fa mw-list-item"><a href="https://fa.wikipedia.org/wiki/%D8%AC%D8%A7%D9%88%D8%A7" title="جاوا – persan" lang="fa" hreflang="fa" data-title="جاوا" data-language-autonym="فارسی" data-language-local-name="persan" class="interlanguage-link-target"><span>فارسی</span></a></li><li class="interlanguage-link interwiki-fi mw-list-item"><a href="https://fi.wikipedia.org/wiki/Java" title="Java – finnois" lang="fi" hreflang="fi" data-title="Java" data-language-autonym="Suomi" data-language-local-name="finnois" class="interlanguage-link-target"><span>Suomi</span></a></li><li class="interlanguage-link interwiki-fj mw-list-item"><a href="https://fj.wikipedia.org/wiki/Java" title="Java – fidjien" lang="fj" hreflang="fj" data-title="Java" data-language-autonym="Na Vosa Vakaviti" data-language-local-name="fidjien" class="interlanguage-link-target"><span>Na Vosa Vakaviti</span></a></li><li class="interlanguage-link interwiki-ga mw-list-item"><a href="https://ga.wikipedia.org/wiki/Java" title="Java – irlandais" lang="ga" hreflang="ga" data-title="Java" data-language-autonym="Gaeilge" data-language-local-name="irlandais" class="interlanguage-link-target"><span>Gaeilge</span></a></li><li class="interlanguage-link interwiki-gl mw-list-item"><a href="https://gl.wikipedia.org/wiki/Java_(linguaxe_de_programaci%C3%B3n)" title="Java (linguaxe de programación) – galicien" lang="gl" hreflang="gl" data-title="Java (linguaxe de programación)" data-language-autonym="Galego" data-language-local-name="galicien" class="interlanguage-link-target"><span>Galego</span></a></li><li class="interlanguage-link interwiki-gu mw-list-item"><a href="https://gu.wikipedia.org/wiki/%E0%AA%9C%E0%AA%BE%E0%AA%B5%E0%AA%BE_(%E0%AA%AA%E0%AB%8D%E0%AA%B0%E0%AB%8B%E0%AA%97%E0%AB%8D%E0%AA%B0%E0%AA%BE%E0%AA%AE%E0%AA%BF%E0%AA%82%E0%AA%97_%E0%AA%AD%E0%AA%BE%E0%AA%B7%E0%AA%BE)" title="જાવા (પ્રોગ્રામિંગ ભાષા) – goudjarati" lang="gu" hreflang="gu" data-title="જાવા (પ્રોગ્રામિંગ ભાષા)" data-language-autonym="ગુજરાતી" data-language-local-name="goudjarati" class="interlanguage-link-target"><span>ગુજરાતી</span></a></li><li class="interlanguage-link interwiki-ha mw-list-item"><a href="https://ha.wikipedia.org/wiki/Java_programming_language" title="Java programming language – haoussa" lang="ha" hreflang="ha" data-title="Java programming language" data-language-autonym="Hausa" data-language-local-name="haoussa" class="interlanguage-link-target"><span>Hausa</span></a></li><li class="interlanguage-link interwiki-hak mw-list-item"><a href="https://hak.wikipedia.org/wiki/Java" title="Java – hakka" lang="hak" hreflang="hak" data-title="Java" data-language-autonym="客家語 / Hak-kâ-ngî" data-language-local-name="hakka" class="interlanguage-link-target"><span>客家語 / Hak-kâ-ngî</span></a></li><li class="interlanguage-link interwiki-he mw-list-item"><a href="https://he.wikipedia.org/wiki/%D7%92%27%D7%90%D7%95%D7%95%D7%94_(%D7%A9%D7%A4%D7%AA_%D7%AA%D7%9B%D7%A0%D7%95%D7%AA)" title="ג'אווה (שפת תכנות) – hébreu" lang="he" hreflang="he" data-title="ג'אווה (שפת תכנות)" data-language-autonym="עברית" data-language-local-name="hébreu" class="interlanguage-link-target"><span>עברית</span></a></li><li class="interlanguage-link interwiki-hi mw-list-item"><a href="https://hi.wikipedia.org/wiki/%E0%A4%9C%E0%A4%BE%E0%A4%B5%E0%A4%BE_(%E0%A4%AA%E0%A5%8D%E0%A4%B0%E0%A5%8B%E0%A4%97%E0%A5%8D%E0%A4%B0%E0%A4%BE%E0%A4%AE%E0%A4%BF%E0%A4%82%E0%A4%97_%E0%A4%AD%E0%A4%BE%E0%A4%B7%E0%A4%BE)" title="जावा (प्रोग्रामिंग भाषा) – hindi" lang="hi" hreflang="hi" data-title="जावा (प्रोग्रामिंग भाषा)" data-language-autonym="हिन्दी" data-language-local-name="hindi" class="interlanguage-link-target"><span>हिन्दी</span></a></li><li class="interlanguage-link interwiki-hr mw-list-item"><a href="https://hr.wikipedia.org/wiki/Java_(programski_jezik)" title="Java (programski jezik) – croate" lang="hr" hreflang="hr" data-title="Java (programski jezik)" data-language-autonym="Hrvatski" data-language-local-name="croate" class="interlanguage-link-target"><span>Hrvatski</span></a></li><li class="interlanguage-link interwiki-ht mw-list-item"><a href="https://ht.wikipedia.org/wiki/Java_(enf%C3%B2matik)" title="Java (enfòmatik) – créole haïtien" lang="ht" hreflang="ht" data-title="Java (enfòmatik)" data-language-autonym="Kreyòl ayisyen" data-language-local-name="créole haïtien" class="interlanguage-link-target"><span>Kreyòl ayisyen</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Java_(programoz%C3%A1si_nyelv)" title="Java (programozási nyelv) – hongrois" lang="hu" hreflang="hu" data-title="Java (programozási nyelv)" data-language-autonym="Magyar" data-language-local-name="hongrois" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-hy mw-list-item"><a href="https://hy.wikipedia.org/wiki/%D5%8B%D5%A1%D5%BE%D5%A1" title="Ջավա – arménien" lang="hy" hreflang="hy" data-title="Ջավա" data-language-autonym="Հայերեն" data-language-local-name="arménien" class="interlanguage-link-target"><span>Հայերեն</span></a></li><li class="interlanguage-link interwiki-ia mw-list-item"><a href="https://ia.wikipedia.org/wiki/Java_(linguage_de_programmation)" title="Java (linguage de programmation) – interlingua" lang="ia" hreflang="ia" data-title="Java (linguage de programmation)" data-language-autonym="Interlingua" data-language-local-name="interlingua" class="interlanguage-link-target"><span>Interlingua</span></a></li><li class="interlanguage-link interwiki-id mw-list-item"><a href="https://id.wikipedia.org/wiki/Java" title="Java – indonésien" lang="id" hreflang="id" data-title="Java" data-language-autonym="Bahasa Indonesia" data-language-local-name="indonésien" class="interlanguage-link-target"><span>Bahasa Indonesia</span></a></li><li class="interlanguage-link interwiki-io mw-list-item"><a href="https://io.wikipedia.org/wiki/Java_(programifo-linguo)" title="Java (programifo-linguo) – ido" lang="io" hreflang="io" data-title="Java (programifo-linguo)" data-language-autonym="Ido" data-language-local-name="ido" class="interlanguage-link-target"><span>Ido</span></a></li><li class="interlanguage-link interwiki-is mw-list-item"><a href="https://is.wikipedia.org/wiki/Java_(forritunarm%C3%A1l)" title="Java (forritunarmál) – islandais" lang="is" hreflang="is" data-title="Java (forritunarmál)" data-language-autonym="Íslenska" data-language-local-name="islandais" class="interlanguage-link-target"><span>Íslenska</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Java_(linguaggio_di_programmazione)" title="Java (linguaggio di programmazione) – italien" lang="it" hreflang="it" data-title="Java (linguaggio di programmazione)" data-language-autonym="Italiano" data-language-local-name="italien" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-ja mw-list-item"><a href="https://ja.wikipedia.org/wiki/Java" title="Java – japonais" lang="ja" hreflang="ja" data-title="Java" data-language-autonym="日本語" data-language-local-name="japonais" class="interlanguage-link-target"><span>日本語</span></a></li><li class="interlanguage-link interwiki-ka mw-list-item"><a href="https://ka.wikipedia.org/wiki/%E1%83%AF%E1%83%90%E1%83%95%E1%83%90_(%E1%83%9E%E1%83%A0%E1%83%9D%E1%83%92%E1%83%A0%E1%83%90%E1%83%9B%E1%83%98%E1%83%A0%E1%83%94%E1%83%91%E1%83%98%E1%83%A1_%E1%83%94%E1%83%9C%E1%83%90)" title="ჯავა (პროგრამირების ენა) – géorgien" lang="ka" hreflang="ka" data-title="ჯავა (პროგრამირების ენა)" data-language-autonym="ქართული" data-language-local-name="géorgien" class="interlanguage-link-target"><span>ქართული</span></a></li><li class="interlanguage-link interwiki-kaa mw-list-item"><a href="https://kaa.wikipedia.org/wiki/Java_(programmalast%C4%B1r%C4%B1w_tili)" title="Java (programmalastırıw tili) – karakalpak" lang="kaa" hreflang="kaa" data-title="Java (programmalastırıw tili)" data-language-autonym="Qaraqalpaqsha" data-language-local-name="karakalpak" class="interlanguage-link-target"><span>Qaraqalpaqsha</span></a></li><li class="interlanguage-link interwiki-kab mw-list-item"><a href="https://kab.wikipedia.org/wiki/Java_(tutlayt)" title="Java (tutlayt) – kabyle" lang="kab" hreflang="kab" data-title="Java (tutlayt)" data-language-autonym="Taqbaylit" data-language-local-name="kabyle" class="interlanguage-link-target"><span>Taqbaylit</span></a></li><li class="interlanguage-link interwiki-kk mw-list-item"><a href="https://kk.wikipedia.org/wiki/Java_(%D0%B1%D0%B0%D2%93%D0%B4%D0%B0%D1%80%D0%BB%D0%B0%D0%BC%D0%B0%D0%BB%D0%B0%D1%83_%D1%82%D1%96%D0%BB%D1%96)" title="Java (бағдарламалау тілі) – kazakh" lang="kk" hreflang="kk" data-title="Java (бағдарламалау тілі)" data-language-autonym="Қазақша" data-language-local-name="kazakh" class="interlanguage-link-target"><span>Қазақша</span></a></li><li class="interlanguage-link interwiki-kn mw-list-item"><a href="https://kn.wikipedia.org/wiki/%E0%B2%9C%E0%B2%BE%E0%B2%B5%E0%B2%BE" title="ಜಾವಾ – kannada" lang="kn" hreflang="kn" data-title="ಜಾವಾ" data-language-autonym="ಕನ್ನಡ" data-language-local-name="kannada" class="interlanguage-link-target"><span>ಕನ್ನಡ</span></a></li><li class="interlanguage-link interwiki-ko mw-list-item"><a href="https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_(%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D_%EC%96%B8%EC%96%B4)" title="자바 (프로그래밍 언어) – coréen" lang="ko" hreflang="ko" data-title="자바 (프로그래밍 언어)" data-language-autonym="한국어" data-language-local-name="coréen" class="interlanguage-link-target"><span>한국어</span></a></li><li class="interlanguage-link interwiki-ku mw-list-item"><a href="https://ku.wikipedia.org/wiki/Java_(ziman%C3%AA_bernamesaziy%C3%AA)" title="Java (zimanê bernamesaziyê) – kurde" lang="ku" hreflang="ku" data-title="Java (zimanê bernamesaziyê)" data-language-autonym="Kurdî" data-language-local-name="kurde" class="interlanguage-link-target"><span>Kurdî</span></a></li><li class="interlanguage-link interwiki-ky mw-list-item"><a href="https://ky.wikipedia.org/wiki/Java" title="Java – kirghize" lang="ky" hreflang="ky" data-title="Java" data-language-autonym="Кыргызча" data-language-local-name="kirghize" class="interlanguage-link-target"><span>Кыргызча</span></a></li><li class="interlanguage-link interwiki-la mw-list-item"><a href="https://la.wikipedia.org/wiki/Java_(lingua_programmandi)" title="Java (lingua programmandi) – latin" lang="la" hreflang="la" data-title="Java (lingua programmandi)" data-language-autonym="Latina" data-language-local-name="latin" class="interlanguage-link-target"><span>Latina</span></a></li><li class="interlanguage-link interwiki-lij mw-list-item"><a href="https://lij.wikipedia.org/wiki/Java_(lenguazzo)" title="Java (lenguazzo) – ligure" lang="lij" hreflang="lij" data-title="Java (lenguazzo)" data-language-autonym="Ligure" data-language-local-name="ligure" class="interlanguage-link-target"><span>Ligure</span></a></li><li class="interlanguage-link interwiki-lmo mw-list-item"><a href="https://lmo.wikipedia.org/wiki/Java" title="Java – lombard" lang="lmo" hreflang="lmo" data-title="Java" data-language-autonym="Lombard" data-language-local-name="lombard" class="interlanguage-link-target"><span>Lombard</span></a></li><li class="interlanguage-link interwiki-lt mw-list-item"><a href="https://lt.wikipedia.org/wiki/Java_(programavimo_kalba)" title="Java (programavimo kalba) – lituanien" lang="lt" hreflang="lt" data-title="Java (programavimo kalba)" data-language-autonym="Lietuvių" data-language-local-name="lituanien" class="interlanguage-link-target"><span>Lietuvių</span></a></li><li class="interlanguage-link interwiki-lv mw-list-item"><a href="https://lv.wikipedia.org/wiki/Java_(programm%C4%93%C5%A1anas_valoda)" title="Java (programmēšanas valoda) – letton" lang="lv" hreflang="lv" data-title="Java (programmēšanas valoda)" data-language-autonym="Latviešu" data-language-local-name="letton" class="interlanguage-link-target"><span>Latviešu</span></a></li><li class="interlanguage-link interwiki-min mw-list-item"><a href="https://min.wikipedia.org/wiki/Java" title="Java – minangkabau" lang="min" hreflang="min" data-title="Java" data-language-autonym="Minangkabau" data-language-local-name="minangkabau" class="interlanguage-link-target"><span>Minangkabau</span></a></li><li class="interlanguage-link interwiki-mk mw-list-item"><a href="https://mk.wikipedia.org/wiki/Java_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%81%D0%BA%D0%B8_%D1%98%D0%B0%D0%B7%D0%B8%D0%BA)" title="Java (програмски јазик) – macédonien" lang="mk" hreflang="mk" data-title="Java (програмски јазик)" data-language-autonym="Македонски" data-language-local-name="macédonien" class="interlanguage-link-target"><span>Македонски</span></a></li><li class="interlanguage-link interwiki-ml badge-Q17437796 badge-featuredarticle mw-list-item" title="article de qualité"><a href="https://ml.wikipedia.org/wiki/%E0%B4%9C%E0%B4%BE%E0%B4%B5_(%E0%B4%AA%E0%B5%8D%E0%B4%B0%E0%B5%8B%E0%B4%97%E0%B5%8D%E0%B4%B0%E0%B4%BE%E0%B4%AE%E0%B4%BF%E0%B4%99%E0%B5%8D_%E0%B4%AD%E0%B4%BE%E0%B4%B7)" title="ജാവ (പ്രോഗ്രാമിങ് ഭാഷ) – malayalam" lang="ml" hreflang="ml" data-title="ജാവ (പ്രോഗ്രാമിങ് ഭാഷ)" data-language-autonym="മലയാളം" data-language-local-name="malayalam" class="interlanguage-link-target"><span>മലയാളം</span></a></li><li class="interlanguage-link interwiki-mn mw-list-item"><a href="https://mn.wikipedia.org/wiki/Java" title="Java – mongol" lang="mn" hreflang="mn" data-title="Java" data-language-autonym="Монгол" data-language-local-name="mongol" class="interlanguage-link-target"><span>Монгол</span></a></li><li class="interlanguage-link interwiki-mr mw-list-item"><a href="https://mr.wikipedia.org/wiki/%E0%A4%9C%E0%A4%BE%E0%A4%B5%E0%A4%BE_(%E0%A4%86%E0%A4%9C%E0%A5%8D%E0%A4%9E%E0%A4%BE%E0%A4%B5%E0%A4%B2%E0%A5%80_%E0%A4%AD%E0%A4%BE%E0%A4%B7%E0%A4%BE)" title="जावा (आज्ञावली भाषा) – marathi" lang="mr" hreflang="mr" data-title="जावा (आज्ञावली भाषा)" data-language-autonym="मराठी" data-language-local-name="marathi" class="interlanguage-link-target"><span>मराठी</span></a></li><li class="interlanguage-link interwiki-ms mw-list-item"><a href="https://ms.wikipedia.org/wiki/Java" title="Java – malais" lang="ms" hreflang="ms" data-title="Java" data-language-autonym="Bahasa Melayu" data-language-local-name="malais" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-my mw-list-item"><a href="https://my.wikipedia.org/wiki/%E1%80%82%E1%80%BB%E1%80%AC%E1%80%97%E1%80%AC%E1%80%B8_(%E1%80%95%E1%80%9B%E1%80%AD%E1%80%AF%E1%80%82%E1%80%9B%E1%80%99%E1%80%BA%E1%80%99%E1%80%84%E1%80%BA%E1%80%B8%E1%80%98%E1%80%AC%E1%80%9E%E1%80%AC%E1%80%85%E1%80%80%E1%80%AC%E1%80%B8)" title="ဂျာဗား (ပရိုဂရမ်မင်းဘာသာစကား) – birman" lang="my" hreflang="my" data-title="ဂျာဗား (ပရိုဂရမ်မင်းဘာသာစကား)" data-language-autonym="မြန်မာဘာသာ" data-language-local-name="birman" class="interlanguage-link-target"><span>မြန်မာဘာသာ</span></a></li><li class="interlanguage-link interwiki-ne mw-list-item"><a href="https://ne.wikipedia.org/wiki/%E0%A4%9C%E0%A4%BE%E0%A4%AD%E0%A4%BE" title="जाभा – népalais" lang="ne" hreflang="ne" data-title="जाभा" data-language-autonym="नेपाली" data-language-local-name="népalais" class="interlanguage-link-target"><span>नेपाली</span></a></li><li class="interlanguage-link interwiki-nl mw-list-item"><a href="https://nl.wikipedia.org/wiki/Java_(programmeertaal)" title="Java (programmeertaal) – néerlandais" lang="nl" hreflang="nl" data-title="Java (programmeertaal)" data-language-autonym="Nederlands" data-language-local-name="néerlandais" class="interlanguage-link-target"><span>Nederlands</span></a></li><li class="interlanguage-link interwiki-nn mw-list-item"><a href="https://nn.wikipedia.org/wiki/Programmeringsspr%C3%A5ket_Java" title="Programmeringsspråket Java – norvégien nynorsk" lang="nn" hreflang="nn" data-title="Programmeringsspråket Java" data-language-autonym="Norsk nynorsk" data-language-local-name="norvégien nynorsk" class="interlanguage-link-target"><span>Norsk nynorsk</span></a></li><li class="interlanguage-link interwiki-no mw-list-item"><a href="https://no.wikipedia.org/wiki/Java_(programmeringsspr%C3%A5k)" title="Java (programmeringsspråk) – norvégien bokmål" lang="nb" hreflang="nb" data-title="Java (programmeringsspråk)" data-language-autonym="Norsk bokmål" data-language-local-name="norvégien bokmål" class="interlanguage-link-target"><span>Norsk bokmål</span></a></li><li class="interlanguage-link interwiki-oc mw-list-item"><a href="https://oc.wikipedia.org/wiki/Java_(lengatge)" title="Java (lengatge) – occitan" lang="oc" hreflang="oc" data-title="Java (lengatge)" data-language-autonym="Occitan" data-language-local-name="occitan" class="interlanguage-link-target"><span>Occitan</span></a></li><li class="interlanguage-link interwiki-or mw-list-item"><a href="https://or.wikipedia.org/wiki/%E0%AC%9C%E0%AC%BE%E0%AC%AD%E0%AC%BE_(%E0%AC%AA%E0%AD%8D%E0%AC%B0%E0%AD%8B%E0%AC%97%E0%AD%8D%E0%AC%B0%E0%AC%BE%E0%AC%AE%E0%AC%BF%E0%AC%82_%E0%AC%AD%E0%AC%BE%E0%AC%B7%E0%AC%BE)" title="ଜାଭା (ପ୍ରୋଗ୍ରାମିଂ ଭାଷା) – odia" lang="or" hreflang="or" data-title="ଜାଭା (ପ୍ରୋଗ୍ରାମିଂ ଭାଷା)" data-language-autonym="ଓଡ଼ିଆ" data-language-local-name="odia" class="interlanguage-link-target"><span>ଓଡ଼ିଆ</span></a></li><li class="interlanguage-link interwiki-pa mw-list-item"><a href="https://pa.wikipedia.org/wiki/%E0%A8%9C%E0%A8%BE%E0%A8%B5%E0%A8%BE_(%E0%A8%AA%E0%A9%8D%E0%A8%B0%E0%A9%8B%E0%A8%97%E0%A8%B0%E0%A8%BE%E0%A8%AE%E0%A8%BF%E0%A9%B0%E0%A8%97_%E0%A8%AD%E0%A8%BE%E0%A8%B8%E0%A8%BC%E0%A8%BE)" title="ਜਾਵਾ (ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ) – pendjabi" lang="pa" hreflang="pa" data-title="ਜਾਵਾ (ਪ੍ਰੋਗਰਾਮਿੰਗ ਭਾਸ਼ਾ)" data-language-autonym="ਪੰਜਾਬੀ" data-language-local-name="pendjabi" class="interlanguage-link-target"><span>ਪੰਜਾਬੀ</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Java" title="Java – polonais" lang="pl" hreflang="pl" data-title="Java" data-language-autonym="Polski" data-language-local-name="polonais" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-pnb mw-list-item"><a href="https://pnb.wikipedia.org/wiki/%D8%AC%D8%A7%D9%88%D8%A7_(%D9%BE%D8%B1%D9%88%DA%AF%D8%B1%D8%A7%D9%85%D9%86%DA%AF_%D8%B2%D8%A8%D8%A7%D9%86)" title="جاوا (پروگرامنگ زبان) – Western Punjabi" lang="pnb" hreflang="pnb" data-title="جاوا (پروگرامنگ زبان)" data-language-autonym="پنجابی" data-language-local-name="Western Punjabi" class="interlanguage-link-target"><span>پنجابی</span></a></li><li class="interlanguage-link interwiki-pt mw-list-item"><a href="https://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o)" title="Java (linguagem de programação) – portugais" lang="pt" hreflang="pt" data-title="Java (linguagem de programação)" data-language-autonym="Português" data-language-local-name="portugais" class="interlanguage-link-target"><span>Português</span></a></li><li class="interlanguage-link interwiki-qu mw-list-item"><a href="https://qu.wikipedia.org/wiki/Java_(wakichiy_simi)" title="Java (wakichiy simi) – quechua" lang="qu" hreflang="qu" data-title="Java (wakichiy simi)" data-language-autonym="Runa Simi" data-language-local-name="quechua" class="interlanguage-link-target"><span>Runa Simi</span></a></li><li class="interlanguage-link interwiki-ro mw-list-item"><a href="https://ro.wikipedia.org/wiki/Java_(limbaj_de_programare)" title="Java (limbaj de programare) – roumain" lang="ro" hreflang="ro" data-title="Java (limbaj de programare)" data-language-autonym="Română" data-language-local-name="roumain" class="interlanguage-link-target"><span>Română</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/Java" title="Java – russe" lang="ru" hreflang="ru" data-title="Java" data-language-autonym="Русский" data-language-local-name="russe" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-sa mw-list-item"><a href="https://sa.wikipedia.org/wiki/%E0%A4%9C%E0%A4%BE%E0%A4%B5%E0%A4%BE" title="जावा – sanskrit" lang="sa" hreflang="sa" data-title="जावा" data-language-autonym="संस्कृतम्" data-language-local-name="sanskrit" class="interlanguage-link-target"><span>संस्कृतम्</span></a></li><li class="interlanguage-link interwiki-sah mw-list-item"><a href="https://sah.wikipedia.org/wiki/Java" title="Java – iakoute" lang="sah" hreflang="sah" data-title="Java" data-language-autonym="Саха тыла" data-language-local-name="iakoute" class="interlanguage-link-target"><span>Саха тыла</span></a></li><li class="interlanguage-link interwiki-sd mw-list-item"><a href="https://sd.wikipedia.org/wiki/%D8%AC%D8%A7%D9%88%D8%A7_(%D9%BE%D8%B1%D9%88%DA%AF%D8%B1%D8%A7%D9%85%D9%86%DA%AF_%D8%AC%D9%8A_%D9%BB%D9%88%D9%84%D9%8A)" title="جاوا (پروگرامنگ جي ٻولي) – sindhi" lang="sd" hreflang="sd" data-title="جاوا (پروگرامنگ جي ٻولي)" data-language-autonym="سنڌي" data-language-local-name="sindhi" class="interlanguage-link-target"><span>سنڌي</span></a></li><li class="interlanguage-link interwiki-sh mw-list-item"><a href="https://sh.wikipedia.org/wiki/Java_(programski_jezik)" title="Java (programski jezik) – serbo-croate" lang="sh" hreflang="sh" data-title="Java (programski jezik)" data-language-autonym="Srpskohrvatski / српскохрватски" data-language-local-name="serbo-croate" class="interlanguage-link-target"><span>Srpskohrvatski / српскохрватски</span></a></li><li class="interlanguage-link interwiki-si mw-list-item"><a href="https://si.wikipedia.org/wiki/%E0%B6%A2%E0%B7%8F%E0%B7%80%E0%B7%8F_(%E0%B6%9A%E0%B7%8A%E2%80%8D%E0%B6%BB%E0%B6%B8%E0%B6%BD%E0%B7%9A%E0%B6%9B%E0%B6%B1_%E0%B6%B7%E0%B7%8F%E0%B7%82%E0%B7%8F%E0%B7%80)" title="ජාවා (ක්රමලේඛන භාෂාව) – cingalais" lang="si" hreflang="si" data-title="ජාවා (ක්රමලේඛන භාෂාව)" data-language-autonym="සිංහල" data-language-local-name="cingalais" class="interlanguage-link-target"><span>සිංහල</span></a></li><li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://simple.wikipedia.org/wiki/Java_(programming_language)" title="Java (programming language) – Simple English" lang="en-simple" hreflang="en-simple" data-title="Java (programming language)" data-language-autonym="Simple English" data-language-local-name="Simple English" class="interlanguage-link-target"><span>Simple English</span></a></li><li class="interlanguage-link interwiki-sk mw-list-item"><a href="https://sk.wikipedia.org/wiki/Java_(programovac%C3%AD_jazyk)" title="Java (programovací jazyk) – slovaque" lang="sk" hreflang="sk" data-title="Java (programovací jazyk)" data-language-autonym="Slovenčina" data-language-local-name="slovaque" class="interlanguage-link-target"><span>Slovenčina</span></a></li><li class="interlanguage-link interwiki-sl mw-list-item"><a href="https://sl.wikipedia.org/wiki/Java_(programski_jezik)" title="Java (programski jezik) – slovène" lang="sl" hreflang="sl" data-title="Java (programski jezik)" data-language-autonym="Slovenščina" data-language-local-name="slovène" class="interlanguage-link-target"><span>Slovenščina</span></a></li><li class="interlanguage-link interwiki-so mw-list-item"><a href="https://so.wikipedia.org/wiki/Java_(luuqada_borograaminta)" title="Java (luuqada borograaminta) – somali" lang="so" hreflang="so" data-title="Java (luuqada borograaminta)" data-language-autonym="Soomaaliga" data-language-local-name="somali" class="interlanguage-link-target"><span>Soomaaliga</span></a></li><li class="interlanguage-link interwiki-sq mw-list-item"><a href="https://sq.wikipedia.org/wiki/Java_(gjuh%C3%AB_programimi)" title="Java (gjuhë programimi) – albanais" lang="sq" hreflang="sq" data-title="Java (gjuhë programimi)" data-language-autonym="Shqip" data-language-local-name="albanais" class="interlanguage-link-target"><span>Shqip</span></a></li><li class="interlanguage-link interwiki-sr mw-list-item"><a href="https://sr.wikipedia.org/wiki/Java_(%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D1%81%D0%BA%D0%B8_%D1%98%D0%B5%D0%B7%D0%B8%D0%BA)" title="Java (програмски језик) – serbe" lang="sr" hreflang="sr" data-title="Java (програмски језик)" data-language-autonym="Српски / srpski" data-language-local-name="serbe" class="interlanguage-link-target"><span>Српски / srpski</span></a></li><li class="interlanguage-link interwiki-sv mw-list-item"><a href="https://sv.wikipedia.org/wiki/Java_(programspr%C3%A5k)" title="Java (programspråk) – suédois" lang="sv" hreflang="sv" data-title="Java (programspråk)" data-language-autonym="Svenska" data-language-local-name="suédois" class="interlanguage-link-target"><span>Svenska</span></a></li><li class="interlanguage-link interwiki-sw mw-list-item"><a href="https://sw.wikipedia.org/wiki/Java_(lugha_ya_programu)" title="Java (lugha ya programu) – swahili" lang="sw" hreflang="sw" data-title="Java (lugha ya programu)" data-language-autonym="Kiswahili" data-language-local-name="swahili" class="interlanguage-link-target"><span>Kiswahili</span></a></li><li class="interlanguage-link interwiki-ta mw-list-item"><a href="https://ta.wikipedia.org/wiki/%E0%AE%9C%E0%AE%BE%E0%AE%B5%E0%AE%BE_(%E0%AE%A8%E0%AE%BF%E0%AE%B0%E0%AE%B2%E0%AE%BE%E0%AE%95%E0%AF%8D%E0%AE%95_%E0%AE%AE%E0%AF%8A%E0%AE%B4%E0%AE%BF)" title="ஜாவா (நிரலாக்க மொழி) – tamoul" lang="ta" hreflang="ta" data-title="ஜாவா (நிரலாக்க மொழி)" data-language-autonym="தமிழ்" data-language-local-name="tamoul" class="interlanguage-link-target"><span>தமிழ்</span></a></li><li class="interlanguage-link interwiki-te mw-list-item"><a href="https://te.wikipedia.org/wiki/%E0%B0%9C%E0%B0%BE%E0%B0%B5%E0%B0%BE" title="జావా – télougou" lang="te" hreflang="te" data-title="జావా" data-language-autonym="తెలుగు" data-language-local-name="télougou" class="interlanguage-link-target"><span>తెలుగు</span></a></li><li class="interlanguage-link interwiki-th mw-list-item"><a href="https://th.wikipedia.org/wiki/%E0%B8%A0%E0%B8%B2%E0%B8%A9%E0%B8%B2%E0%B8%88%E0%B8%B2%E0%B8%A7%E0%B8%B2" title="ภาษาจาวา – thaï" lang="th" hreflang="th" data-title="ภาษาจาวา" data-language-autonym="ไทย" data-language-local-name="thaï" class="interlanguage-link-target"><span>ไทย</span></a></li><li class="interlanguage-link interwiki-tl mw-list-item"><a href="https://tl.wikipedia.org/wiki/Java_(wikang_pamprograma)" title="Java (wikang pamprograma) – tagalog" lang="tl" hreflang="tl" data-title="Java (wikang pamprograma)" data-language-autonym="Tagalog" data-language-local-name="tagalog" class="interlanguage-link-target"><span>Tagalog</span></a></li><li class="interlanguage-link interwiki-tr mw-list-item"><a href="https://tr.wikipedia.org/wiki/Java" title="Java – turc" lang="tr" hreflang="tr" data-title="Java" data-language-autonym="Türkçe" data-language-local-name="turc" class="interlanguage-link-target"><span>Türkçe</span></a></li><li class="interlanguage-link interwiki-tt mw-list-item"><a href="https://tt.wikipedia.org/wiki/Java" title="Java – tatar" lang="tt" hreflang="tt" data-title="Java" data-language-autonym="Татарча / tatarça" data-language-local-name="tatar" class="interlanguage-link-target"><span>Татарча / tatarça</span></a></li><li class="interlanguage-link interwiki-uk mw-list-item"><a href="https://uk.wikipedia.org/wiki/Java" title="Java – ukrainien" lang="uk" hreflang="uk" data-title="Java" data-language-autonym="Українська" data-language-local-name="ukrainien" class="interlanguage-link-target"><span>Українська</span></a></li><li class="interlanguage-link interwiki-ur mw-list-item"><a href="https://ur.wikipedia.org/wiki/%D8%AC%D8%A7%D9%88%D8%A7_(%D9%BE%D8%B1%D9%88%DA%AF%D8%B1%D8%A7%D9%85%D9%86%DA%AF_%D8%B2%D8%A8%D8%A7%D9%86)" title="جاوا (پروگرامنگ زبان) – ourdou" lang="ur" hreflang="ur" data-title="جاوا (پروگرامنگ زبان)" data-language-autonym="اردو" data-language-local-name="ourdou" class="interlanguage-link-target"><span>اردو</span></a></li><li class="interlanguage-link interwiki-uz mw-list-item"><a href="https://uz.wikipedia.org/wiki/Java" title="Java – ouzbek" lang="uz" hreflang="uz" data-title="Java" data-language-autonym="Oʻzbekcha / ўзбекча" data-language-local-name="ouzbek" class="interlanguage-link-target"><span>Oʻzbekcha / ўзбекча</span></a></li><li class="interlanguage-link interwiki-vec mw-list-item"><a href="https://vec.wikipedia.org/wiki/Java_(lenguajo_de_programasion)" title="Java (lenguajo de programasion) – vénitien" lang="vec" hreflang="vec" data-title="Java (lenguajo de programasion)" data-language-autonym="Vèneto" data-language-local-name="vénitien" class="interlanguage-link-target"><span>Vèneto</span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wikipedia.org/wiki/Java_(ng%C3%B4n_ng%E1%BB%AF_l%E1%BA%ADp_tr%C3%ACnh)" title="Java (ngôn ngữ lập trình) – vietnamien" lang="vi" hreflang="vi" data-title="Java (ngôn ngữ lập trình)" data-language-autonym="Tiếng Việt" data-language-local-name="vietnamien" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-war mw-list-item"><a href="https://war.wikipedia.org/wiki/Java_(linggwahe_hin_pagprograma)" title="Java (linggwahe hin pagprograma) – waray" lang="war" hreflang="war" data-title="Java (linggwahe hin pagprograma)" data-language-autonym="Winaray" data-language-local-name="waray" class="interlanguage-link-target"><span>Winaray</span></a></li><li class="interlanguage-link interwiki-wuu mw-list-item"><a href="https://wuu.wikipedia.org/wiki/Java" title="Java – wu" lang="wuu" hreflang="wuu" data-title="Java" data-language-autonym="吴语" data-language-local-name="wu" class="interlanguage-link-target"><span>吴语</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wikipedia.org/wiki/Java" title="Java – chinois" lang="zh" hreflang="zh" data-title="Java" data-language-autonym="中文" data-language-local-name="chinois" class="interlanguage-link-target"><span>中文</span></a></li><li class="interlanguage-link interwiki-zh-classical mw-list-item"><a href="https://zh-classical.wikipedia.org/wiki/%E7%88%AA%E5%93%87%E7%A8%8B%E5%BC%8F%E8%AA%9E" title="爪哇程式語 – chinois littéraire" lang="lzh" hreflang="lzh" data-title="爪哇程式語" data-language-autonym="文言" data-language-local-name="chinois littéraire" class="interlanguage-link-target"><span>文言</span></a></li><li class="interlanguage-link interwiki-zh-min-nan mw-list-item"><a href="https://zh-min-nan.wikipedia.org/wiki/Java_(th%C3%AAng-sek_g%C3%AD-gi%C3%A2n)" title="Java (thêng-sek gí-giân) – minnan" lang="nan" hreflang="nan" data-title="Java (thêng-sek gí-giân)" data-language-autonym="閩南語 / Bân-lâm-gú" data-language-local-name="minnan" class="interlanguage-link-target"><span>閩南語 / Bân-lâm-gú</span></a></li><li class="interlanguage-link interwiki-zh-yue mw-list-item"><a href="https://zh-yue.wikipedia.org/wiki/Java_(%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80)" title="Java (程式語言) – cantonais" lang="yue" hreflang="yue" data-title="Java (程式語言)" data-language-autonym="粵語" data-language-local-name="cantonais" class="interlanguage-link-target"><span>粵語</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q251#sitelinks-wikipedia" title="Modifier les liens interlangues" class="wbc-editpage">Modifier les liens</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Espaces de noms"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Java_(langage)" title="Voir le contenu de la page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Discussion:Java_(langage)" rel="discussion" title="Discussion au sujet de cette page de contenu [t]" accesskey="t"><span>Discussion</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Modifier la variante de langue" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">français</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Affichages"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Java_(langage)"><span>Lire</span></a></li><li id="ca-ve-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Java_(langage)&veaction=edit" title="Modifier cette page [v]" accesskey="v"><span>Modifier</span></a></li><li id="ca-edit" class="collapsible vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Java_(langage)&action=edit" title="Modifier le wikicode de cette page [e]" accesskey="e"><span>Modifier le code</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Java_(langage)&action=history" title="Historique des versions de cette page [h]" accesskey="h"><span>Voir l’historique</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Outils de la page"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Outils" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Outils</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Outils</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">déplacer vers la barre latérale</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">masquer</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="Plus d’options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Java_(langage)"><span>Lire</span></a></li><li id="ca-more-ve-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Java_(langage)&veaction=edit" title="Modifier cette page [v]" accesskey="v"><span>Modifier</span></a></li><li id="ca-more-edit" class="collapsible vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Java_(langage)&action=edit" title="Modifier le wikicode de cette page [e]" accesskey="e"><span>Modifier le code</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Java_(langage)&action=history"><span>Voir l’historique</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> Général </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Pages_li%C3%A9es/Java_(langage)" title="Liste des pages liées qui pointent sur celle-ci [j]" accesskey="j"><span>Pages liées</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Sp%C3%A9cial:Suivi_des_liens/Java_(langage)" rel="nofollow" title="Liste des modifications récentes des pages appelées par celle-ci [k]" accesskey="k"><span>Suivi des pages liées</span></a></li><li id="t-upload" class="mw-list-item"><a href="//fr.wikipedia.org/wiki/Aide:Importer_un_fichier" title="Téléverser des fichiers [u]" accesskey="u"><span>Téléverser un fichier</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Java_(langage)&oldid=223275134" title="Adresse permanente de cette version de cette page"><span>Lien permanent</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Java_(langage)&action=info" title="Davantage d’informations sur cette page"><span>Informations sur la page</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:Citer&page=Java_%28langage%29&id=223275134&wpFormIdentifier=titleform" title="Informations sur la manière de citer cette page"><span>Citer cette page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:UrlShortener&url=https%3A%2F%2Ffr.wikipedia.org%2Fw%2Findex.php%3Ftitle%3DJava_%28langage%29%26section%3D12%26veaction%3Dedit"><span>Obtenir l'URL raccourcie</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:QrCode&url=https%3A%2F%2Ffr.wikipedia.org%2Fw%2Findex.php%3Ftitle%3DJava_%28langage%29%26section%3D12%26veaction%3Dedit"><span>Télécharger le code QR</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Imprimer / exporter </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-create_a_book" class="mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:Livre&bookcmd=book_creator&referer=Java+%28langage%29"><span>Créer un livre</span></a></li><li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Sp%C3%A9cial:DownloadAsPdf&page=Java_%28langage%29&action=show-download-screen"><span>Télécharger comme PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Java_(langage)&printable=yes" title="Version imprimable de cette page [p]" accesskey="p"><span>Version imprimable</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> Dans d’autres projets </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:Java_(programming_language)" hreflang="en"><span>Wikimedia Commons</span></a></li><li class="wb-otherproject-link wb-otherproject-wikibooks badge-Q17437796 badge-featuredarticle mw-list-item" title="article de qualité"><a href="https://fr.wikibooks.org/wiki/Programmation_Java" hreflang="fr"><span>Wikilivres</span></a></li><li class="wb-otherproject-link wb-otherproject-wikinews mw-list-item"><a href="https://fr.wikinews.org/wiki/Cat%C3%A9gorie:Java_(technique)" hreflang="fr"><span>Wikinews</span></a></li><li class="wb-otherproject-link wb-otherproject-wikiversity mw-list-item"><a href="https://fr.wikiversity.org/wiki/Java" hreflang="fr"><span>Wikiversité</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q251" title="Lien vers l’élément dans le dépôt de données connecté [g]" accesskey="g"><span>Élément Wikidata</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Outils de la page"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Apparence"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Apparence</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">déplacer vers la barre latérale</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">masquer</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">Un article de Wikipédia, l'encyclopédie libre.</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr"><div class="bandeau-container metadata homonymie hatnote"><div class="bandeau-cell bandeau-icone" style="display:table-cell;padding-right:0.5em"><span class="noviewer" typeof="mw:File"><a href="/wiki/Aide:Homonymie" title="Aide:Homonymie"><img alt="Page d’aide sur l’homonymie" src="//upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Logo_disambig.svg/20px-Logo_disambig.svg.png" decoding="async" width="20" height="15" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Logo_disambig.svg/30px-Logo_disambig.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/a/a9/Logo_disambig.svg/40px-Logo_disambig.svg.png 2x" data-file-width="512" data-file-height="375" /></a></span></div><div class="bandeau-cell" style="display:table-cell;padding-right:0.5em"> <p>Pour les articles homonymes, voir <a href="/wiki/Java" class="mw-disambig" title="Java">Java</a>. </p> </div></div> <div class="bandeau-container metadata homonymie hatnote"><div class="bandeau-cell bandeau-icone" style="display:table-cell;padding-right:0.5em"><span class="noviewer" typeof="mw:File"><a href="/wiki/Aide:Homonymie" title="Aide:Homonymie"><img alt="Page d’aide sur l’homonymie" src="//upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Confusion_colour.svg/20px-Confusion_colour.svg.png" decoding="async" width="20" height="15" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Confusion_colour.svg/30px-Confusion_colour.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Confusion_colour.svg/40px-Confusion_colour.svg.png 2x" data-file-width="260" data-file-height="200" /></a></span></div><div class="bandeau-cell" style="display:table-cell;padding-right:0.5em"> <p>Ne doit pas être confondu avec <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>. </p> </div></div> <p class="mw-empty-elt"> </p> <table class="infobox_v2 infobox infobox--frwiki noarchive"> <tbody><tr> <td colspan="2" class="entete informatique" style="background-color:#0074bc;color:black;"><span style="color: #fff;">Java</span><style data-mw-deduplicate="TemplateStyles:r188801372">.mw-parser-output .entete.informatique{background-image:url("//upload.wikimedia.org/wikipedia/commons/a/ae/Picto-infoboxinfo.png")}</style> </td></tr> <tr><td colspan="3" style="text-align:center; line-height: 1.5em;"><span typeof="mw:File/Frameless"><a href="/wiki/Fichier:Java_Logo.svg" class="mw-file-description"><img alt="Logo." src="//upload.wikimedia.org/wikipedia/fr/thumb/2/2e/Java_Logo.svg/131px-Java_Logo.svg.png" decoding="async" width="131" height="244" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/fr/thumb/2/2e/Java_Logo.svg/197px-Java_Logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/fr/thumb/2/2e/Java_Logo.svg/262px-Java_Logo.svg.png 2x" data-file-width="354" data-file-height="659" /></a></span> </td></tr> <tr> <td colspan="3" style="text-align:center; line-height: 1.5em;"><span typeof="mw:File/Frameless"><a href="/wiki/Fichier:Metodo_Astratto.png" class="mw-file-description"><img alt="Image illustrative de l’article Java (langage)" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/3e/Metodo_Astratto.png/280px-Metodo_Astratto.png" decoding="async" width="280" height="136" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/3/3e/Metodo_Astratto.png 1.5x" data-file-width="336" data-file-height="163" /></a></span> </td></tr> <tr> <td colspan="2"><hr style="height:2px; color:inherit; background-color:#0074bc;" /></td></tr> <tr> <th scope="row">Date de première version </th> <td><span class="wd_p571"><time datetime="1995" data-sort-value="1995" class="date-lien"><a href="/wiki/1995" title="1995">1995</a></time><span class="noprint wikidata-linkback skin-invert"><span class="mw-valign-baseline noviewer" typeof="mw:File"><a href="https://www.wikidata.org/wiki/Q251?uselang=fr#P571" title="Voir et modifier les données sur Wikidata"><img alt="Voir et modifier les données sur Wikidata" src="//upload.wikimedia.org/wikipedia/commons/thumb/7/73/Blue_pencil.svg/10px-Blue_pencil.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/7/73/Blue_pencil.svg/15px-Blue_pencil.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/7/73/Blue_pencil.svg/20px-Blue_pencil.svg.png 2x" data-file-width="600" data-file-height="600" /></a></span></span></span> </td> </tr> <tr> <th scope="row"><a href="/wiki/Paradigme_(programmation)" title="Paradigme (programmation)">Paradigme</a> </th> <td><a href="/wiki/Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">Orienté objet</a>, <a href="/wiki/Programmation_structur%C3%A9e" title="Programmation structurée">structuré</a>, <a href="/wiki/Programmation_imp%C3%A9rative" title="Programmation impérative">impératif</a>, <a href="/wiki/Programmation_fonctionnelle" title="Programmation fonctionnelle">fonctionnel</a>, <a href="/wiki/G%C3%A9n%C3%A9ricit%C3%A9" title="Généricité">générique</a> </td> </tr> <tr> <th scope="row">Auteur </th> <td><a href="/wiki/Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a> </td> </tr> <tr> <th scope="row">Développeurs </th> <td><a href="/wiki/Oracle_(entreprise)" title="Oracle (entreprise)">Oracle Corporation</a> </td> </tr> <tr> <th scope="row"><a href="/wiki/Version_d%27un_logiciel" title="Version d'un logiciel">Dernière version</a> </th> <td>23 (17 septembre 2024<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite_crochet">[</span>1<span class="cite_crochet">]</span></a></sup>) </td> </tr> <tr> <th scope="row">Typage </th> <td><a href="/wiki/Typage_statique" title="Typage statique">Statique</a>, <a href="/wiki/Typage_fort" title="Typage fort">fort</a>, <a href="/wiki/S%C3%BBret%C3%A9_du_typage" title="Sûreté du typage">sûr</a>, <a href="/wiki/Syst%C3%A8me_nominatif_de_types" title="Système nominatif de types">nominatif</a> </td> </tr> <tr> <th scope="row">Influencé par </th> <td><a href="/wiki/Objective-C" title="Objective-C">Objective-C</a>, <a href="/wiki/C%2B%2B" title="C++">C++</a>, <a href="/wiki/Smalltalk" title="Smalltalk">Smalltalk</a>, <a href="/wiki/Eiffel_(langage)" title="Eiffel (langage)">Eiffel</a><sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite_crochet">[</span>2<span class="cite_crochet">]</span></a></sup>, <a href="/wiki/Ada_(langage)" title="Ada (langage)">Ada 83</a>, <a href="/w/index.php?title=Mesa_(langage)&action=edit&redlink=1" class="new" title="Mesa (langage) (page inexistante)">Mesa</a>, <a href="/wiki/Modula-3" class="mw-redirect" title="Modula-3">Modula-3</a>, <a href="/wiki/Oberon_(langage)" title="Oberon (langage)">Oberon</a>, <a href="/wiki/Pascal_(langage)" title="Pascal (langage)">Pascal</a> </td> </tr> <tr> <th scope="row">A influencé </th> <td><a href="/wiki/C_sharp" class="mw-redirect" title="C sharp">C#</a>, <a href="/wiki/J_sharp" class="mw-redirect" title="J sharp">J#</a>, <a href="/wiki/Ada_(langage)" title="Ada (langage)">Ada 2005</a>, <a href="/wiki/Gambas_(langage)" title="Gambas (langage)">Gambas</a>, <a href="/wiki/BeanShell" title="BeanShell">BeanShell</a>, <a href="/wiki/Clojure" title="Clojure">Clojure</a>, <a href="/wiki/ECMAScript" title="ECMAScript">ECMAScript</a>, <a href="/wiki/Groovy_(langage)" title="Groovy (langage)">Groovy</a>, <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>, <a href="/wiki/PHP" title="PHP">PHP</a>, <a href="/wiki/Kotlin_(langage)" title="Kotlin (langage)">Kotlin</a>, <a href="/wiki/Python_(langage)" title="Python (langage)">Python</a><sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite_crochet">[</span>3<span class="cite_crochet">]</span></a></sup>, <a href="/wiki/Scala_(langage)" title="Scala (langage)">Scala</a>, <a href="/w/index.php?title=Seed7&action=edit&redlink=1" class="new" title="Seed7 (page inexistante)">Seed7</a>, <a href="/wiki/Vala_(langage)" title="Vala (langage)">Vala</a>, <a href="/wiki/Processing" title="Processing">Processing</a> </td> </tr> <tr> <th scope="row">Implémentations </th> <td><a href="/wiki/Machine_virtuelle_Java" title="Machine virtuelle Java">Liste de JVM</a> </td> </tr> <tr> <th scope="row"><a href="/wiki/Syst%C3%A8me_d%27exploitation" title="Système d'exploitation">Système d'exploitation</a> </th> <td><a href="/wiki/Logiciel_multiplateforme" title="Logiciel multiplateforme">Multiplateformes</a> </td> </tr> <tr> <th scope="row"><a href="/wiki/Licence_de_logiciel" title="Licence de logiciel">Licence</a> </th> <td><a href="/wiki/Licence_publique_g%C3%A9n%C3%A9rale_GNU" title="Licence publique générale GNU">GNU GPLV2+CPE</a> </td> </tr> <tr> <th scope="row"><a href="/wiki/Site_web" title="Site web">Site web</a> </th> <td><a rel="nofollow" class="external text" href="https://www.oracle.com/java/technologies/">www.oracle.com/java/technologies</a> </td> </tr> <tr> <th scope="row"><a href="/wiki/Extension_de_nom_de_fichier" title="Extension de nom de fichier">Extension de fichier</a> </th> <td><span class="wd_p1195">java, class, jar, jad et jmod<span class="noprint wikidata-linkback skin-invert"><span class="mw-valign-baseline noviewer" typeof="mw:File"><a href="https://www.wikidata.org/wiki/Q251?uselang=fr#P1195" title="Voir et modifier les données sur Wikidata"><img alt="Voir et modifier les données sur Wikidata" src="//upload.wikimedia.org/wikipedia/commons/thumb/7/73/Blue_pencil.svg/10px-Blue_pencil.svg.png" decoding="async" width="10" height="10" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/7/73/Blue_pencil.svg/15px-Blue_pencil.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/7/73/Blue_pencil.svg/20px-Blue_pencil.svg.png 2x" data-file-width="600" data-file-height="600" /></a></span></span></span> </td> </tr> <tr> <td class="navigation-only" colspan="2" style="border-top: 2px #0074bc solid; font-size: 80%; background:inherit; color: inherit; text-align: right;"><span class="plainlinks" style="float:left;"><a class="external text" href="https://fr.wikipedia.org/w/index.php?title=Java_(langage)&action=edit&section=0"><span class="infodoc">modifier</span></a></span> <span typeof="mw:File"><a href="/wiki/Mod%C3%A8le:Infobox_Langage_de_programmation" title="Consultez la documentation du modèle"><img alt="" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/38/Info_Simple.svg/12px-Info_Simple.svg.png" decoding="async" width="12" height="12" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/38/Info_Simple.svg/18px-Info_Simple.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/38/Info_Simple.svg/24px-Info_Simple.svg.png 2x" data-file-width="512" data-file-height="512" /></a></span></td> </tr> </tbody></table> <p><b>Java</b> est un <a href="/wiki/Langage_de_programmation_de_haut_niveau" title="Langage de programmation de haut niveau">langage de programmation de haut niveau</a> <a href="/wiki/Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">orienté objet</a> créé par <a href="/wiki/James_Gosling" title="James Gosling">James Gosling</a> et <a href="/wiki/Patrick_Naughton" title="Patrick Naughton">Patrick Naughton</a>, employés de <a href="/wiki/Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a>, avec le soutien de <a href="/wiki/Bill_Joy" title="Bill Joy">Bill Joy</a> (cofondateur de Sun Microsystems en <a href="/wiki/1982" title="1982">1982</a>), présenté officiellement le <time class="nowrap" datetime="1995-05-23" data-sort-value="1995-05-23">23 mai 1995</time> au <i><span class="lang-en" lang="en">SunWorld</span></i>. </p><p>La société Sun est rachetée en 2009 par la société <a href="/wiki/Oracle_(entreprise)" title="Oracle (entreprise)">Oracle</a> qui détient et maintient désormais <a href="/wiki/Java_(technique)" title="Java (technique)">Java</a>. </p><p>Un logiciel écrit en langage Java a pour particularité d'être <a href="/wiki/Compilateur_Java" title="Compilateur Java">compilé</a> vers un code intermédiaire formé de <i><a href="/wiki/Bytecode" title="Bytecode">bytecodes</a></i> qui peut être exécuté dans une <a href="/wiki/Machine_virtuelle_Java" title="Machine virtuelle Java">machine virtuelle Java</a> (JVM) en faisant abstraction du <a href="/wiki/Syst%C3%A8me_d%27exploitation" title="Système d'exploitation">système d'exploitation</a>. </p><p>Java 23 est officiellement disponible depuis le <time class="nowrap" datetime="2024-09-17" data-sort-value="2024-09-17">17 septembre 2024</time>. Cette version fait suite à la LTS Java 21, et précède la prochaine LTS attendue, Java 25, prévue pour septembre 2025<sup id="cite_ref-:1_4-0" class="reference"><a href="#cite_note-:1-4"><span class="cite_crochet">[</span>4<span class="cite_crochet">]</span></a></sup>. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="Aperçu"><span id="Aper.C3.A7u"></span>Aperçu</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=1" title="Modifier la section : Aperçu" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=1" title="Modifier le code source de la section : Aperçu"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Le langage Java reprend en grande partie la <a href="/wiki/Syntaxe" title="Syntaxe">syntaxe</a> du langage <a href="/wiki/C%2B%2B" title="C++">C++</a>. Néanmoins, Java est épuré des concepts les plus subtils du C++ et à la fois les plus déroutants, tels que les <a href="/wiki/Pointeur_(programmation)" title="Pointeur (programmation)">pointeurs</a> et références, ou l’<a href="/wiki/H%C3%A9ritage_multiple" title="Héritage multiple">héritage multiple</a> contourné par l’<a href="/wiki/Mise_en_%C5%93uvre" title="Mise en œuvre">implémentation</a> des <a href="/wiki/Interface_(programmation_orient%C3%A9e_objet)" title="Interface (programmation orientée objet)">interfaces</a>. De même, depuis la version 8, l'arrivée des interfaces fonctionnelles introduit l'<a href="/wiki/H%C3%A9ritage_multiple" title="Héritage multiple">héritage multiple</a> (sans la gestion des attributs) avec ses avantages et inconvénients tels que l'<a href="/wiki/Probl%C3%A8me_du_diamant" title="Problème du diamant">héritage en diamant</a>. Les concepteurs ont privilégié l’approche <a href="/wiki/Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">orientée objet</a> de sorte qu’en Java, tout est objet à l’exception des <a href="/wiki/Type_(informatique)" title="Type (informatique)">types</a> primitifs (<a href="/wiki/Entier_naturel" title="Entier naturel">nombres entiers</a>, <a href="/wiki/Virgule_flottante" title="Virgule flottante">nombres à virgule flottante</a>, etc.) qui ont cependant leurs variantes qui héritent de l'objet Object (Integer, Float, Double, etc.). </p><p>Java permet de développer des applications <a href="/wiki/Client-serveur" title="Client-serveur">client-serveur</a>. Côté client, les <a href="/wiki/Appliquette" class="mw-redirect" title="Appliquette">applets</a> sont à l’origine de la notoriété du langage. C’est surtout côté serveur que Java s’est imposé dans le milieu de l’entreprise grâce aux <a href="/wiki/Servlet" title="Servlet">servlets</a>, le pendant serveur des applets, et plus récemment les <a href="/wiki/JavaServer_Pages" class="mw-redirect" title="JavaServer Pages">JavaServer Pages</a> (JSP) qui peuvent se substituer à <a href="/wiki/PHP" title="PHP">PHP</a>, <a href="/wiki/Active_Server_Pages" title="Active Server Pages">Active Server Pages</a> (ASP) et <a href="/wiki/ASP.NET" title="ASP.NET">ASP.NET</a>. </p><p>Java donne naissance à un système d'exploitation (<a href="/wiki/JavaOS" title="JavaOS">JavaOS</a>), à des environnements de développement (<a href="/wiki/Eclipse_(projet)" title="Eclipse (projet)">Eclipse</a>/<a href="/wiki/Java_Development_Kit" title="Java Development Kit">Java Development Kit</a>), l'<a href="/wiki/Environnement_d%27ex%C3%A9cution_Java" title="Environnement d'exécution Java">Environnement d'exécution Java</a> (JRE), des <a href="/wiki/Machine_virtuelle" title="Machine virtuelle">machines virtuelles</a> (<a href="/w/index.php?title=MSJVM&action=edit&redlink=1" class="new" title="MSJVM (page inexistante)">MSJVM</a> <a href="https://en.wikipedia.org/wiki/Microsoft_Java_Virtual_Machine" class="extiw" title="en:Microsoft Java Virtual Machine"><span class="indicateur-langue" title="Article en anglais : « Microsoft Java Virtual Machine »">(en)</span></a>, applicatives <a href="/wiki/Logiciel_multiplateforme" title="Logiciel multiplateforme">multiplateforme</a> (<a href="/wiki/Machine_virtuelle_Java" title="Machine virtuelle Java">JVM</a>), une déclinaison pour les périphériques <a href="/wiki/Informatique_mobile" title="Informatique mobile">mobiles</a>/<a href="/wiki/Informatique_embarqu%C3%A9e" title="Informatique embarquée">embarqués</a> (<a href="/wiki/Java_ME" title="Java ME">J2ME</a>), une bibliothèque de conception d'<a href="/wiki/Interface_graphique" title="Interface graphique">interface graphique</a> (<a href="/wiki/Swing_(Java)" title="Swing (Java)">AWT/Swing</a>), des applications lourdes (Jude, <a href="/wiki/Oracle_SQL_Developer" title="Oracle SQL Developer">Oracle SQL</a> Worksheet, etc.), des technologies web (servlets, applets) et une déclinaison pour l'entreprise (<a href="/wiki/Java_EE" class="mw-redirect" title="Java EE">J2EE</a>). La <a href="/wiki/Portabilit%C3%A9_(informatique)" title="Portabilité (informatique)">portabilité</a> du bytecode Java est assurée par la <a href="/wiki/Machine_virtuelle" title="Machine virtuelle">machine virtuelle</a> Java, et éventuellement par des bibliothèques standard incluses dans un JRE. Cette machine virtuelle peut <a href="/wiki/Interpr%C3%A8te_(informatique)" title="Interprète (informatique)">interpréter</a> le bytecode ou la <a href="/wiki/Compilation_%C3%A0_la_vol%C3%A9e" title="Compilation à la volée">compilation à la volée</a> en langage machine. La portabilité est dépendante de la qualité de portage des JVM sur chaque OS. </p> <div class="mw-heading mw-heading2"><h2 id="Historique">Historique</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=2" title="Modifier la section : Historique" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=2" title="Modifier le code source de la section : Historique"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Origine_du_langage">Origine du langage</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=3" title="Modifier la section : Origine du langage" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=3" title="Modifier le code source de la section : Origine du langage"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Le langage Java est issu d’un projet de Sun Microsystems datant de 1990 : l’ingénieur Patrick Naughton n’était pas satisfait par le langage C++ utilisé chez Sun, ses <a href="/wiki/Interface_de_programmation" title="Interface de programmation">interfaces de programmation</a> en langage C, ainsi que les outils associés. Alors qu’il envisageait une migration vers <a href="/wiki/NeXT" title="NeXT">NeXT</a>, on lui proposa de travailler sur une nouvelle technologie et c’est ainsi que le <b>Projet <span class="lang-en" lang="en">Stealth</span></b> (<a href="/wiki/Furtivit%C3%A9" title="Furtivité">furtif</a>) vit le jour. </p><p>Le <b>Projet <span class="lang-en" lang="en">Stealth</span></b> fut rapidement rebaptisé <b><span class="lang-en" lang="en">Green Project</span></b> avec l’arrivée de <a href="/wiki/James_Gosling" title="James Gosling">James Gosling</a> et de Mike Sheridan. Ensemble, aidés par d’autres ingénieurs, ils commencèrent à travailler dans un bureau de la rue Sand Hill à <a href="/wiki/Menlo_Park" title="Menlo Park">Menlo Park</a> en <a href="/wiki/Californie" title="Californie">Californie</a>. Ils essayèrent d’élaborer une technologie pour le développement d’applications d’une nouvelle génération, offrant à Sun la perspective d’opportunités uniques. </p><p>L’équipe envisageait initialement d’utiliser le langage C++, mais l’abandonna pour différentes raisons. Tout d’abord, ils développaient sur un <a href="/wiki/Syst%C3%A8me_embarqu%C3%A9" title="Système embarqué">système embarqué</a> avec des ressources limitées et estimaient que l’utilisation du C++ demandait un investissement trop important et que cette complexité était une source d’erreur pour les développeurs. L'absence de <a href="/wiki/Ramasse-miettes_(informatique)" title="Ramasse-miettes (informatique)">ramasse-miettes</a> impliquait que la gestion de la mémoire devait être programmée manuellement, un défi mais aussi une source d’erreurs. </p><p>L’équipe était également insatisfaite des lacunes du langage C++ au niveau de la sécurité, de la programmation distribuée, du <span class="lang-en" lang="en"><i><a href="/wiki/Simultaneous_multithreading" title="Simultaneous multithreading">multi-threading</a></i></span>. De plus, ils voulaient une plateforme qui puisse être portée sur tout type d’appareils ou de plateformes. </p><p>Bill Joy avait envisagé un nouveau langage combinant le meilleur du langage de programmation <a href="/w/index.php?title=Mesa_(langage)&action=edit&redlink=1" class="new" title="Mesa (langage) (page inexistante)">Mesa</a> <a href="https://en.wikipedia.org/wiki/Mesa_(programming_language)" class="extiw" title="en:Mesa (programming language)"><span class="indicateur-langue" title="Article en anglais : « Mesa (programming language) »">(en)</span></a> et du <a href="/wiki/C_(langage)" title="C (langage)">langage C</a>. Dans un article appelé <i>Plus loin (<span class="lang-en" lang="en">Further</span>)</i>, il proposa à Sun que ses ingénieurs développent un environnement orienté objet basé sur le langage C++. À l’origine, Gosling envisageait de modifier et d’améliorer le langage C++, qu’il appelait C++ ++ --, mais l’idée fut bientôt abandonnée au profit du développement d’un nouveau langage de programmation qu’ils appelèrent <b><span class="lang-en" lang="en"><i>Oak</i></span> (chêne)</b> en référence, selon la légende, à un arbre planté devant la fenêtre de leur bureau<sup class="need_ref_tag" style="padding-left:2px;"><a href="/wiki/Aide:R%C3%A9f%C3%A9rence_n%C3%A9cessaire" title="Aide:Référence nécessaire">[<abbr class="abbr" title="référence">réf.</abbr> souhaitée]</a></sup>. </p><p>À l’été 1992, ils furent capables de faire une démonstration constituée d'une <a href="/wiki/Plateforme_(informatique)" class="mw-redirect" title="Plateforme (informatique)">plateforme</a> incluant le système d’exploitation Green<sup class="need_ref_tag" style="padding-left:2px;"><a href="/wiki/Aide:R%C3%A9f%C3%A9rence_n%C3%A9cessaire" title="Aide:Référence nécessaire">[<abbr class="abbr" title="référence">réf.</abbr> souhaitée]</a></sup>, le langage Oak (1992), les bibliothèques et le matériel. Leur première réalisation, présentée le <time class="nowrap date-lien" datetime="1992-09-03" data-sort-value="1992-09-03"><a href="/wiki/3_septembre" title="3 septembre">3</a> <a href="/wiki/Septembre_1992" title="Septembre 1992">septembre</a> <a href="/wiki/1992_en_informatique" title="1992 en informatique">1992</a></time>, fut la construction d’un <a href="/wiki/Assistant_personnel" title="Assistant personnel">PDA</a> appelé <b>Star7</b> ayant une <a href="/wiki/Interface_graphique" title="Interface graphique">interface graphique</a> et un <a href="/wiki/Agent_intelligent" title="Agent intelligent">agent intelligent</a> appelé <b>Duke</b> pour prêter assistance à l’utilisateur. </p><p>En novembre de la même année, le <span class="lang-en" lang="en"><b>Green Project</b></span> fut abandonné pour devenir <b>FirstPerson, Inc</b>, appartenant en totalité à Sun Microsystems et l’équipe fut relocalisée à Palo Alto. L’équipe <b>FirstPerson</b> était intéressée par la construction d’outils hautement interactifs et quand Time Warner publia un appel d’offres en faveur d’un décodeur multifonctions, FirstPerson changea d’objectif pour proposer une telle plateforme. </p><p>Cependant, l’industrie de la <a href="/wiki/T%C3%A9l%C3%A9vision_par_c%C3%A2ble" title="Télévision par câble">télévision par câble</a> trouva qu’elle offrait trop de possibilités à l’utilisateur et FirstPerson perdit le marché au profit de <a href="/wiki/Silicon_Graphics" title="Silicon Graphics">Silicon Graphics</a>. Incapable d’intéresser l’industrie audiovisuelle, la société fut réintégrée au sein de Sun. </p> <div class="mw-heading mw-heading3"><h3 id="Java_rencontre_Internet">Java rencontre Internet</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=4" title="Modifier la section : Java rencontre Internet" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=4" title="Modifier le code source de la section : Java rencontre Internet"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <figure class="mw-default-size" typeof="mw:File/Thumb"><a href="/wiki/Fichier:Duke_(Java_mascot)_waving.svg" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/5/5d/Duke_%28Java_mascot%29_waving.svg/170px-Duke_%28Java_mascot%29_waving.svg.png" decoding="async" width="170" height="306" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/5/5d/Duke_%28Java_mascot%29_waving.svg/255px-Duke_%28Java_mascot%29_waving.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/5/5d/Duke_%28Java_mascot%29_waving.svg/340px-Duke_%28Java_mascot%29_waving.svg.png 2x" data-file-width="226" data-file-height="407" /></a><figcaption>Duke, la mascotte de Java</figcaption></figure> <p>De juin à <time class="nowrap date-lien" datetime="1994-07" data-sort-value="1994-07"><a href="/wiki/Juillet_1994" title="Juillet 1994">juillet</a> <a href="/wiki/1994_en_informatique" title="1994 en informatique">1994</a></time>, après trois jours de remue-méninges avec John Gage, James Gosling, Joy, Naughton, Wayne Rosing et <a href="/wiki/Eric_Schmidt" title="Eric Schmidt">Eric Schmidt</a>, l’équipe recentra la plateforme sur le <a href="/wiki/World_Wide_Web" title="World Wide Web">web</a>. Ils pensaient qu’avec l’avènement du navigateur <a href="/wiki/NCSA_Mosaic" title="NCSA Mosaic">Mosaic</a>, Internet était le lieu où allait se développer le même genre d’outil interactif que celui qu’ils avaient envisagé pour l’industrie du câble. Naughton développa comme prototype un petit navigateur web, WebRunner qui deviendra par la suite <a href="/wiki/HotJava" title="HotJava">HotJava</a>. </p> <div class="mw-heading mw-heading4"><h4 id="Origine_du_nom_Java">Origine du nom Java</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=5" title="Modifier la section : Origine du nom Java" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=5" title="Modifier le code source de la section : Origine du nom Java"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Le nom <span class="citation">« Java »</span> n'est pas un <a href="/wiki/Acronymie" title="Acronymie">acronyme</a>, il a été choisi lors d'un <a href="/wiki/Brainstorming" title="Brainstorming">brainstorming</a><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite_crochet">[</span>5<span class="cite_crochet">]</span></a></sup> en remplacement du nom d'origine <span class="citation">« Oak »</span>, à cause d'un conflit avec une marque de <a href="/wiki/Carte_graphique" title="Carte graphique">carte vidéo</a>, parce que le café (<span class="citation">« java »</span> en argot américain)<sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite_crochet">[</span>6<span class="cite_crochet">]</span></a></sup> est la boisson favorite de nombreux programmeurs<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite_crochet">[</span>7<span class="cite_crochet">]</span></a></sup>. Le logo choisi par Sun est d'ailleurs une tasse de café fumant. </p> <div class="mw-heading mw-heading4"><h4 id="Lancement_public_de_Java">Lancement public de Java</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=6" title="Modifier la section : Lancement public de Java" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=6" title="Modifier le code source de la section : Lancement public de Java"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>En <time class="nowrap date-lien" datetime="1994-10" data-sort-value="1994-10"><a href="/wiki/Octobre_1994" title="Octobre 1994">octobre</a> <a href="/wiki/1994_en_informatique" title="1994 en informatique">1994</a></time>, HotJava et la plateforme Java furent présentés pour <span class="lang-en" lang="en">Sun Executives</span>. Java 1.0a fut disponible en téléchargement en 1994 mais la première version publique du navigateur HotJava arriva le <time class="nowrap date-lien" datetime="1995-05-23" data-sort-value="1995-05-23"><a href="/wiki/23_mai" title="23 mai">23</a> <a href="/wiki/Mai_1995" title="Mai 1995">mai</a> <a href="/wiki/1995_en_informatique" title="1995 en informatique">1995</a></time> à la conférence <b><span class="lang-en" lang="en">SunWorld</span></b><sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite_crochet">[</span>8<span class="cite_crochet">]</span></a></sup>. </p><p>L’annonce fut effectuée par John Gage, le directeur scientifique de Sun Microsystems. Son annonce fut accompagnée de l’annonce surprise de Marc Andressen, vice-président de l’exécutif de <a href="/wiki/Netscape_Communications" title="Netscape Communications">Netscape</a> que Netscape allait inclure le support de Java dans ses navigateurs. Le <time class="nowrap date-lien" datetime="1996-01-09" data-sort-value="1996-01-09"><a href="/wiki/9_janvier" title="9 janvier">9</a> <a href="/wiki/Janvier_1996" title="Janvier 1996">janvier</a> <a href="/wiki/1996_en_informatique" title="1996 en informatique">1996</a></time>, le groupe Javasoft fut constitué par Sun Microsystems pour développer cette technologie<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite_crochet">[</span>9<span class="cite_crochet">]</span></a></sup>. Deux semaines plus tard la première version de Java était disponible. </p> <div class="mw-heading mw-heading3"><h3 id="Avènement_de_Java_2"><span id="Av.C3.A8nement_de_Java_2"></span>Avènement de Java 2</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=7" title="Modifier la section : Avènement de Java 2" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=7" title="Modifier le code source de la section : Avènement de Java 2"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>L'apparition de la version 1.2 du langage marque un tournant significatif : c'est en 2000 qu'apparait simultanément la déclinaison en deux plateformes Java : </p> <ul><li><span class="lang-en" lang="en">Java 2 Standard Edition</span> (J2SE), plateforme avec les API et bibliothèques de bases, devenue depuis <a href="/wiki/Java_SE" title="Java SE">Java SE</a> ;</li> <li><span class="lang-en" lang="en">Java 2 Enterprise Edition</span> (J2EE), extension avec des technologies pour le développement d'applications d’entreprise, devenue <a href="/wiki/Java_EE" class="mw-redirect" title="Java EE">Java EE</a>.</li></ul> <p>Sun les qualifie alors de plateforme <a href="/wiki/Java_2" title="Java 2">Java 2</a> par opposition aux premières générations 1.0 et 1.1. Toutes les versions ultérieures, de J2EE 1.2 à Java SE ou Java EE 7 restent désignées sous le qualificatif de plateformes Java 2, bien que le '2' ait été depuis officiellement abandonné. </p> <div class="mw-heading mw-heading3"><h3 id="Histoire_récente"><span id="Histoire_r.C3.A9cente"></span>Histoire récente</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=8" title="Modifier la section : Histoire récente" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=8" title="Modifier le code source de la section : Histoire récente"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading4"><h4 id="Utilisation_Web">Utilisation Web</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=9" title="Modifier la section : Utilisation Web" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=9" title="Modifier le code source de la section : Utilisation Web"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading5"><h5 id="Côté_client"><span id="C.C3.B4t.C3.A9_client"></span>Côté client</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=10" title="Modifier la section : Côté client" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=10" title="Modifier le code source de la section : Côté client"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><b>Applets</b> </p><p>Historiquement, la possibilité des navigateurs Web de lancer des <a href="/wiki/Applet_Java" title="Applet Java">applets Java</a> était la seule solution pour afficher des applications clientes riches (RIA pour <a href="/wiki/Rich_Internet_application" title="Rich Internet application">rich Internet application</a>). Puis des technologies concurrentes ont émergé parmi lesquelles <a href="/wiki/Macromedia" title="Macromedia">Macromedia</a> <a href="/wiki/Adobe_Flash" title="Adobe Flash">Flash</a>, le DHTML <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a>, <a href="/wiki/Silverlight" title="Silverlight">Silverlight</a> basé sur <a href="/wiki/XAML" title="XAML">XAML</a> ou <a href="/wiki/XML-based_User_interface_Language" title="XML-based User interface Language">Xul</a>, ou le <a href="/wiki/Scol" title="Scol">Scol</a>. </p><p>Les applets sur le poste Client peuvent communiquer avec des <a href="/wiki/Servlet" title="Servlet">servlets</a> sur le Serveur, tout comme Javascript peut communiquer avec le Serveur au moyen d’<a href="/wiki/Ajax_(informatique)" title="Ajax (informatique)">AJAX</a>. <a href="/wiki/Adobe_Flex" class="mw-redirect" title="Adobe Flex">Flex</a> utilise quant à lui la technologie Flash par le biais du <a href="/wiki/Adobe_Flash_Player" title="Adobe Flash Player">Adobe Flash Player</a>. </p><p>À une époque où <a href="/wiki/JavaScript" title="JavaScript">JavaScript</a> souffrait de problèmes de compatibilité inter-navigateurs, les applets Java avaient l'avantage de la portabilité car le portage d'interfaces complexes était difficile à assurer pour tous les navigateurs du marché. </p><p>Outre la retombée de la « mode » Java, les progrès faits dans les technologies concurrentes à Java ont amené la plupart des développeurs à se détourner des applets Java et des problèmes inhérents à cette technologie (incompatibilités entre les JVM, mauvaises performances, pauvreté des <a href="/wiki/Biblioth%C3%A8que_graphique" title="Bibliothèque graphique">bibliothèques graphiques</a>, complexité). Enfin, les navigateurs modernes n'incluent plus systématiquement l'environnement Java à cause de sa taille importante, et le taux de machines capables d'afficher des applets n'était plus que de 70 % en 2010, bien plus faible que pour Flash par exemple<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite_crochet">[</span>10<span class="cite_crochet">]</span></a></sup>. En 2010, la quasi-totalité des applications clients riches utilisent des technologies alternatives ; Flash pour l'essentiel mais aussi <a href="/wiki/Google_Web_Toolkit" title="Google Web Toolkit">GWT</a>. </p><p>Enfin, l'arrivée de <a href="/wiki/HTML5" title="HTML5">HTML5</a>, destiné à embarquer de nombreuses fonctionnalités RIA et <a href="/wiki/Multim%C3%A9dia" title="Multimédia">multimédia</a>, rend également les applets caducs. </p><p><b>JavaFX</b> </p><p>Avec l'apparition de Java 8 en <time class="nowrap" datetime="2014-03" data-sort-value="2014-03">mars 2014</time>, <a href="/wiki/JavaFX" title="JavaFX">JavaFX</a> devient l'outil de création d'interface graphique ('GUI <a href="/wiki/Toolkit" title="Toolkit">toolkit</a>') officiel de Java, pour toutes les sortes d'application (<a href="/wiki/Application_mobile" title="Application mobile">applications mobiles</a>, applications sur poste de travail, applications Web…), le développement de son prédécesseur Swing étant abandonné (sauf pour les corrections de bogues). JavaFX est une pure API Java (le <a href="/wiki/Langage_de_script" title="Langage de script">langage de script</a> spécifique qui lui a été un temps associé est maintenant abandonné). JavaFX contient des outils très divers, notamment pour les médias audio et vidéo, le graphisme 2D et 3D, la <a href="/wiki/Programmation_web" title="Programmation web">programmation Web</a>, la <a href="/wiki/Parall%C3%A9lisme_(informatique)" title="Parallélisme (informatique)">programmation parallèle</a>, etc. </p> <div class="mw-heading mw-heading5"><h5 id="Côté_serveur"><span id="C.C3.B4t.C3.A9_serveur"></span>Côté serveur</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=11" title="Modifier la section : Côté serveur" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=11" title="Modifier le code source de la section : Côté serveur"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Avec les <a href="/wiki/Serveur_d%27applications" title="Serveur d'applications">serveurs d’applications</a>, on utilise des <a href="/wiki/Enterprise_JavaBeans" title="Enterprise JavaBeans">EJB</a> pour encapsuler les classes définies précédemment. Ces éléments sont utilisés dans des architectures <a href="/wiki/Java_EE" class="mw-redirect" title="Java EE">J2EE</a> pour des applications multicouches. L'avantage qu'on tire de ce travail est de pouvoir cacher au client l'implémentation du code côté serveur. </p> <div class="mw-heading mw-heading4"><h4 id="Utilisation_sur_poste_de_travail">Utilisation sur poste de travail</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=12" title="Modifier la section : Utilisation sur poste de travail" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=12" title="Modifier le code source de la section : Utilisation sur poste de travail"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>L’utilisation native du langage Java pour des applications sur un poste de travail restait jusqu'à présent relativement rare à cause de leur manque de rapidité. Cependant, avec l’accroissement rapide de la puissance des ordinateurs, les améliorations au cours des années 2000, de la machine virtuelle Java et de la qualité des compilateurs, plusieurs technologies ont gagné du terrain comme <a href="/wiki/NetBeans" title="NetBeans">NetBeans</a> et l’environnement <a href="/wiki/Eclipse_(projet)" title="Eclipse (projet)">Eclipse</a>, les technologies de fichiers partagés <a href="/wiki/LimeWire" title="LimeWire">LimeWire</a>, <a href="/wiki/Vuze_(logiciel)" title="Vuze (logiciel)">Vuze (ex Azureus)</a>, et <a href="/wiki/I2P" title="I2P">I2P</a>. Java est aussi utilisé dans le programme de mathématiques <a href="/wiki/MATLAB" title="MATLAB">MATLAB</a>, au niveau de l’interface homme machine et pour le <a href="/wiki/Calcul_formel" title="Calcul formel">calcul formel</a>. Les applications <a href="/wiki/Swing_(Java)" title="Swing (Java)">Swing</a> apparaissent également comme une alternative à la technologie .NET. </p> <div class="mw-heading mw-heading4"><h4 id="Utilisation_avec_les_mobiles">Utilisation avec les mobiles</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=13" title="Modifier la section : Utilisation avec les mobiles" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=13" title="Modifier le code source de la section : Utilisation avec les mobiles"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <figure class="mw-default-size" typeof="mw:File/Thumb"><a href="/wiki/Fichier:CyanogenMod_10_homescreen_screenshot.png" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/6/69/CyanogenMod_10_homescreen_screenshot.png/170px-CyanogenMod_10_homescreen_screenshot.png" decoding="async" width="170" height="302" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/69/CyanogenMod_10_homescreen_screenshot.png/255px-CyanogenMod_10_homescreen_screenshot.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/69/CyanogenMod_10_homescreen_screenshot.png/340px-CyanogenMod_10_homescreen_screenshot.png 2x" data-file-width="720" data-file-height="1280" /></a><figcaption><a href="/wiki/Android" title="Android">Android</a> utilise beaucoup les technologies Java</figcaption></figure> <p><a href="/wiki/Oracle_(entreprise)" title="Oracle (entreprise)">Oracle</a> annonce début <time class="nowrap" datetime="2012-10" data-sort-value="2012-10">octobre 2012</time> à la conférence JavaOne sa volonté de proposer des solutions Java pour le domaine des logiciels embarqués, pour processeurs moins puissants que ceux habituellement disponibles sur les PC. Oracle fédère autour d'elle tout un <a href="/wiki/%C3%89cosyst%C3%A8me" title="Écosystème">écosystème</a> d'entreprises spécialistes de ces segments de marchés, comme l'éditeur <a href="/wiki/MicroEJ" title="MicroEJ">MicroEJ</a><sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite_crochet">[</span>11<span class="cite_crochet">]</span></a></sup> ou encore <a href="/wiki/STMicroelectronics" title="STMicroelectronics">STMicroelectronics</a> qui propose du Java sur ses STM32<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite_crochet">[</span>12<span class="cite_crochet">]</span></a></sup> dont le cœur est un CortexM3/M4. </p><p>Java, notamment via <a href="/wiki/Eclipse_(projet)" title="Eclipse (projet)">Eclipse</a> et <a href="/wiki/NetBeans" title="NetBeans">NetBeans</a>, offre déjà des environnements de développement intégrés pour mobile. Java est le principal langage utilisé pour développer des applications pour le système d'exploitation libre pour Mobile de <a href="/wiki/Google" title="Google">Google</a> : <a href="/wiki/Android" title="Android">Android</a>. </p><p><a href="/wiki/JavaFX" title="JavaFX">JavaFX</a> peut aussi permettre l'utilisation de Java sur mobiles, bien que ce ne soit pas son objectif principal. </p> <div class="mw-heading mw-heading4"><h4 id="OS_Windows,_Mac_OS_X_et_GNU/Linux"><span id="OS_Windows.2C_Mac_OS_X_et_GNU.2FLinux"></span>OS Windows, Mac OS X et GNU/Linux</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=14" title="Modifier la section : OS Windows, Mac OS X et GNU/Linux" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=14" title="Modifier le code source de la section : OS Windows, Mac OS X et GNU/Linux"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a> a fourni en 2001 un environnement de travail de type Java, dénommé <a href="/wiki/Visual_J%2B%2B" title="Visual J++">J++</a>, avec ses systèmes d’exploitation avant la sortie de <a href="/wiki/Windows_XP" title="Windows XP">Windows XP</a>. À la suite d'une décision de justice<sup class="need_ref_tag" style="padding-left:2px;"><a href="/wiki/Aide:R%C3%A9f%C3%A9rence_n%C3%A9cessaire" title="Aide:Référence nécessaire"><span title="Ce passage nécessite une référence ; voir l'aide.">[réf. nécessaire]</span></a></sup>, et au vu du non-respect des spécifications de ce langage, Microsoft a dû abandonner celui-ci et créer un nouveau langage, de nom <a href="/wiki/C_sharp" class="mw-redirect" title="C sharp">C#</a> (cf. chapitre « <a href="#Indépendance_vis-à-vis_de_la_plateforme">Indépendance vis-à-vis de la plateforme</a> » plus bas) </p><p>Beaucoup de fabricants d’ordinateurs continuent d’inclure un environnement JRE sur leurs systèmes Windows. </p><p>Java apparaît également comme un standard au niveau du <a href="/wiki/MacOS" title="MacOS">Mac OS X</a> d’<a href="/wiki/Apple" title="Apple">Apple</a> aussi bien que pour les distributions <a href="/wiki/Linux" title="Linux">Linux</a>. Ainsi, de nos jours, la plupart des utilisateurs peuvent lancer des applications Java sans aucun problème. Toutefois, sur ordinateur Apple, la distribution de Java 5 à Java 6 fut assurée directement par Apple, et non par Oracle<sup id="cite_ref-13" class="reference"><a href="#cite_note-13"><span class="cite_crochet">[</span>13<span class="cite_crochet">]</span></a></sup>. Cette politique entraîna des retards et des restrictions de version : </p> <dl><dd>Ainsi J2SE 1.4 ne fut pas disponible avant <a href="/wiki/Mac_OS_X_v10.2" title="Mac OS X v10.2">Mac OS X v10.2</a> (nom de code <i>Jaguar</i>), J2SE 5.0 à partir de <a href="/wiki/Mac_OS_X_v10.4" title="Mac OS X v10.4">Mac OS X v10.4</a> (<i>Tiger</i>), Java SE 6 fonctionne uniquement sous <a href="/wiki/Mac_OS_X_v10.5" title="Mac OS X v10.5">Mac OS X v10.5</a> (<i>Leopard</i>) équipé de processeur <a href="/wiki/Intel#Microprocesseurs_x86" title="Intel">Intel</a><sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite_crochet">[</span>14<span class="cite_crochet">]</span></a></sup>, et Java 7 exige un ordinateur Mac Intel exécutant la version <a href="/wiki/Mac_OS_X_v10.7" class="mw-redirect" title="Mac OS X v10.7">Mac OS X v10.7</a>.3 (<i>Lion</i>).</dd></dl> <div class="mw-heading mw-heading4"><h4 id="Passage_sous_licence_open-source">Passage sous licence open-source</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=15" title="Modifier la section : Passage sous licence open-source" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=15" title="Modifier le code source de la section : Passage sous licence open-source"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Le <time class="nowrap date-lien" datetime="2006-11-11" data-sort-value="2006-11-11"><a href="/wiki/11_novembre" title="11 novembre">11</a> <a href="/wiki/Novembre_2006" title="Novembre 2006">novembre</a> <a href="/wiki/2006_en_informatique" title="2006 en informatique">2006</a></time>, le code source du compilateur <tt>javac</tt> et de la machine virtuelle <a href="/wiki/HotSpot" title="HotSpot">HotSpot</a> ont été publiés en <a href="/wiki/Open_source" title="Open source">Open Source</a> sous la <a href="/wiki/Licence_publique_g%C3%A9n%C3%A9rale_GNU" title="Licence publique générale GNU">Licence publique générale GNU</a><sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite_crochet">[</span>15<span class="cite_crochet">]</span></a></sup>. </p><p>Le <time class="nowrap date-lien" datetime="2006-11-13" data-sort-value="2006-11-13"><a href="/wiki/13_novembre" title="13 novembre">13</a> <a href="/wiki/Novembre_2006" title="Novembre 2006">novembre</a> <a href="/wiki/2006_en_informatique" title="2006 en informatique">2006</a></time>, Sun Microsystems annonce le passage de Java, c’est-à-dire le <a href="/wiki/Java_Development_Kit" title="Java Development Kit">JDK</a> (JRE et outils de développement) et les environnements Java EE (déjà sous licence CDDL) et Java ME sous licence <a href="/wiki/Licence_publique_g%C3%A9n%C3%A9rale_GNU" title="Licence publique générale GNU">GPL</a> d’ici <time class="nowrap" datetime="2007-03" data-sort-value="2007-03">mars 2007</time>, sous le nom de projet <a href="/wiki/OpenJDK" title="OpenJDK">OpenJDK</a><sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite_crochet">[</span>16<span class="cite_crochet">]</span></a></sup>. </p><p>En <time class="nowrap date-lien" datetime="2007-05" data-sort-value="2007-05"><a href="/wiki/Mai_2007" title="Mai 2007">mai</a> <a href="/wiki/2007_en_informatique" title="2007 en informatique">2007</a></time>, Sun publie effectivement OpenJDK sous licence libre. Cependant OpenJDK dépend encore de fragments de code non libre que Sun ne détient pas. C'est pourquoi la société <a href="/wiki/Red_Hat" title="Red Hat">Redhat</a> lance en <time class="nowrap date-lien" datetime="2007-06" data-sort-value="2007-06"><a href="/wiki/Juin_2007" title="Juin 2007">juin</a> <a href="/wiki/2007_en_informatique" title="2007 en informatique">2007</a></time> le projet <a href="/w/index.php?title=IcedTea&action=edit&redlink=1" class="new" title="IcedTea (page inexistante)">IcedTea</a> <a href="https://en.wikipedia.org/wiki/IcedTea" class="extiw" title="en:IcedTea"><span class="indicateur-langue" title="Article en anglais : « IcedTea »">(en)</span></a> qui vise à remplacer les fragments de code non libre et ainsi rendre OpenJDK utilisable sans aucun <a href="/wiki/Logiciel_propri%C3%A9taire" title="Logiciel propriétaire">logiciel propriétaire</a>. En <time class="nowrap date-lien" datetime="2008-06" data-sort-value="2008-06"><a href="/wiki/Juin_2008" title="Juin 2008">juin</a> <a href="/wiki/2008_en_informatique" title="2008 en informatique">2008</a></time>, le projet IcedTea a passé les tests rigoureux de compatibilité Java (TCK)<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite_crochet">[</span>17<span class="cite_crochet">]</span></a></sup>. IcedTea est donc une implémentation open-source des spécifications de Java. Sun, puis Oracle, garde toutefois le contrôle de la technologie par le biais d'un catalogue de brevets s'appliquant à Java, ainsi que par le maintien du TCK sous une licence propriétaire. </p> <div class="mw-heading mw-heading4"><h4 id="Acquisition_par_Oracle">Acquisition par <a href="/wiki/Oracle_(entreprise)" title="Oracle (entreprise)">Oracle</a></h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=16" title="Modifier la section : Acquisition par Oracle" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=16" title="Modifier le code source de la section : Acquisition par Oracle"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>La société <a href="/wiki/Oracle_(entreprise)" title="Oracle (entreprise)">Oracle</a> a acquis en 2009 l'entreprise <a href="/wiki/Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a>. On peut désormais voir apparaître le logo Oracle dans les documentations de l'api Java. </p><p>Le <time class="nowrap" datetime="2010-04-12" data-sort-value="2010-04-12">12 avril 2010</time>, <a href="/wiki/James_Gosling" title="James Gosling">James Gosling</a>, le créateur du langage de programmation Java, démissionne d’Oracle pour des motifs qu’il ne souhaite pas divulguer. Il était devenu le directeur technologique de la division logicielle client pour Oracle. </p><p>En 2018, Oracle annonce que les mises à jour de sa version Java SE 8 pour un usage professionnel seraient soumis à une <a href="/wiki/Licence_de_logiciel" title="Licence de logiciel">licence</a> payante à partir de <time class="nowrap" datetime="2019-01" data-sort-value="2019-01">janvier 2019</time><sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite_crochet">[</span>18<span class="cite_crochet">]</span></a></sup>. </p><p>En 2023, Oracle modifie en profondeur son mode de licence pour Java SE, en ne proposant plus les licences au processeur ou à l'utilisateur nommé, mais uniquement au nombre total d'employés de l'entreprise concernée, y compris ceux qui n'utilisent pas Java<sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite_crochet">[</span>19<span class="cite_crochet">]</span></a></sup>, ce qui risque d'augmenter significativement le coûts<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite_crochet">[</span>20<span class="cite_crochet">]</span></a></sup> et provoque des réactions négatives parmi les entreprises concernées<sup id="cite_ref-21" class="reference"><a href="#cite_note-21"><span class="cite_crochet">[</span>21<span class="cite_crochet">]</span></a></sup>. </p> <div class="mw-heading mw-heading3"><h3 id="Historique_des_versions">Historique des versions</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=17" title="Modifier la section : Historique des versions" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=17" title="Modifier le code source de la section : Historique des versions"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Le langage Java a connu plusieurs évolutions depuis le JDK 1.0 (<span class="lang-en" lang="en"><i>Java Development Kit</i></span>) avec l’ajout de nombreuses classes et packages à la bibliothèque standard. Depuis le J2SE1.4, l’évolution de Java est dirigée par le JCP (<span class="lang-en" lang="en"><i>Java Community Process</i></span>) qui utilise les JSR (<span class="lang-en" lang="en"><i>Java Specifications Requests</i></span>) pour proposer des ajouts et des changements sur la <a href="/wiki/Plateforme_Java" title="Plateforme Java">plateforme Java</a>. Le langage lui-même est spécifié par le JLS (<span class="lang-en" lang="en"><i>Java Language Specification</i></span>), les modifications du JLS étant gérées sous le code JSR 901<sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite_crochet">[</span>22<span class="cite_crochet">]</span></a></sup>. </p><p>Il faut noter que les évolutions successives du langage ne portent guère sur sa syntaxe -relativement stable depuis le début- mais principalement sur l'enrichissement de ses fonctions, avec l'embarquement et l'optimisation de bibliothèques logicielles (<a href="/wiki/Interface_de_programmation" title="Interface de programmation">API</a>) dans des domaines très variés de l'informatique : bases de données, gestion <a href="/wiki/Extensible_Markup_Language" title="Extensible Markup Language">XML</a>, informatique distribuée et web, multimédia, sécurité… </p> <div class="mw-heading mw-heading4"><h4 id="Numérotation_des_versions"><span id="Num.C3.A9rotation_des_versions"></span>Numérotation des versions</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=18" title="Modifier la section : Numérotation des versions" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=18" title="Modifier le code source de la section : Numérotation des versions"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Il faut distinguer la version du langage Java de celles des plateformes et du JRE : </p> <ul><li>Le numéro majeur de version du langage (<i>par exemple <b>Java 5</b></i>) spécifiée par le JLS, est ainsi le <a href="/wiki/Version_d%27un_logiciel#Forme_générale" title="Version d'un logiciel">numéro mineur</a> pour le JRE ou la plateforme (par ex JRE 1.5 ou Java SE 1.5)<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite_crochet">[</span>23<span class="cite_crochet">]</span></a></sup> ;</li> <li>Le JRE et la plateforme Java SE sont eux identifiés depuis Java 5 par un même numéro de version : ainsi Java SE 1.6.0.43, et le JRE 1.6.0.43, sont tous deux conformes au langage Java 6, mais ont fait l'objet notamment de <a href="/wiki/Correctif" class="mw-redirect" title="Correctif">correctifs</a> de sécurité<sup id="cite_ref-24" class="reference"><a href="#cite_note-24"><span class="cite_crochet">[</span>24<span class="cite_crochet">]</span></a></sup> ;</li> <li>Java FX (orienté <i><a href="/wiki/Rich_Internet_application" title="Rich Internet application">RIA</a></i>), constitué essentiellement d'un sous-ensemble de JavaSE, suit également le même numéro de version : Java FX en est ainsi sa version 2.7 pour 1.7<sup id="cite_ref-25" class="reference"><a href="#cite_note-25"><span class="cite_crochet">[</span>25<span class="cite_crochet">]</span></a></sup>(également compatible JRE 1.6) ;</li> <li>En revanche, les plateformes <i><span class="lang-en" lang="en">Enterprise Edition</span></i> (Java EE) et <i><span class="lang-en" lang="en">Mobile Edition</span></i> (Java ME) sont identifiées par le numéro de version de leur propre <a href="/wiki/Kit_de_d%C3%A9veloppement" title="Kit de développement">SDK</a> ; ainsi début 2013 : <ul><li>Java EE en était encore à la version 6 (Java EE 6 SDK Update 4), mais fonctionnait avec les JDK 6 ou 7<sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite_crochet">[</span>26<span class="cite_crochet">]</span></a></sup>; il n'est réellement passé à Java 7 que mi-<time class="nowrap" datetime="2013-06" data-sort-value="2013-06">juin 2013</time><sup id="cite_ref-27" class="reference"><a href="#cite_note-27"><span class="cite_crochet">[</span>27<span class="cite_crochet">]</span></a></sup>,</li> <li>Java ME en est à sa version 3.3 (SDK v. 3.3)<sup id="cite_ref-28" class="reference"><a href="#cite_note-28"><span class="cite_crochet">[</span>28<span class="cite_crochet">]</span></a></sup>.</li></ul></li></ul> <div class="mw-heading mw-heading4"><h4 id="Versions_successives">Versions successives</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=19" title="Modifier la section : Versions successives" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=19" title="Modifier le code source de la section : Versions successives"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Deux versions peuvent parfois être proposées simultanément, telles que 8u65 & 8u66 : la différence consiste généralement en des corrections de bugs mineurs (sans incidence de sécurité notamment), pour lesquelles la mise à jour à la toute dernière version n'est pas critique et est de ce fait laissée au choix des administrateurs (JRE) ou développeurs (JDK). </p><p>Les versions publiques de Java peuvent être suivies de versions non publiques, dites Advanced, réservées à des usages commerciaux ; ainsi Java 1.6u45 est la dernière version publique de Java6, mais 6u113 l'ultime version disponible fin <time class="nowrap" datetime="2016-03" data-sort-value="2016-03">mars 2016</time>. </p><p>En date du 13/12/2023, les versions LTS (pour Long Time Support) actuelles sont Java 8, 11, 17 et 21<sup id="cite_ref-29" class="reference"><a href="#cite_note-29"><span class="cite_crochet">[</span>29<span class="cite_crochet">]</span></a></sup>. </p> <table class="wikitable"> <tbody><tr> <th>Version</th> <th>Dernière version</th> <th>Dénomination JSE/JRE</th> <th>Nom de code</th> <th>Spécifications</th> <th>JDK</th> <th>Statut <time class="nowrap" datetime="2018-10" data-sort-value="2018-10">octobre 2018</time></th> <th>Période de maintenance</th> <th>Support étendu<sup id="cite_ref-30" class="reference"><a href="#cite_note-30"><span class="cite_crochet">[</span>30<span class="cite_crochet">]</span></a></sup> </th></tr> <tr> <td>1.0</td> <td>1.0.2</td> <td>Java 1.0</td> <td>Oak</td> <td>JSR 52</td> <td>JDK 1.0.2</td> <td>N'est plus soutenu de façon active</td> <td>1996-2000 </td> <td> </td></tr> <tr> <td>1.1</td> <td>8_16</td> <td>Java 1.1</td> <td></td> <td>JSR 52</td> <td>1.1.8_16</td> <td>N'est plus soutenu de façon active</td> <td>1997-2000 </td> <td> </td></tr> <tr> <td>1.2</td> <td>2_017</td> <td>J2SE 1.2</td> <td>Playground</td> <td>JSR 52</td> <td>1.2.2_11</td> <td>N'est plus soutenu de façon active</td> <td>2000-2006 </td> <td> </td></tr> <tr> <td>1.3</td> <td>1_29</td> <td>J2SE 1.3</td> <td>Kestrel</td> <td>JSR 58</td> <td>1.3.1_29</td> <td>Obsolète</td> <td>2000-2001 </td> <td> </td></tr> <tr> <td>1.4</td> <td>2_30</td> <td>J2SE 1.4</td> <td>Merlin</td> <td>JSR 59</td> <td>1.4.2_30</td> <td>Obsolète</td> <td>2000-2008<sup id="cite_ref-:34_31-0" class="reference"><a href="#cite_note-:34-31"><span class="cite_crochet">[</span>31<span class="cite_crochet">]</span></a></sup> </td> <td> </td></tr> <tr> <td>1.5</td> <td>0_22 à 0_85</td> <td>J2SE 5.0</td> <td>Tiger</td> <td>JSR 176</td> <td>1.5.0_22</td> <td>Obsolète, 5u51 à 5u85 uniquement disponibles avec un support Oracle spécifique<sup id="cite_ref-Oracle_releases_Java_7u25,_no_6u51_32-0" class="reference"><a href="#cite_note-Oracle_releases_Java_7u25,_no_6u51-32"><span class="cite_crochet">[</span>32<span class="cite_crochet">]</span></a></sup></td> <td>2002-2009<sup id="cite_ref-:34_31-1" class="reference"><a href="#cite_note-:34-31"><span class="cite_crochet">[</span>31<span class="cite_crochet">]</span></a></sup></td> <td><time class="nowrap" datetime="2015-05" data-sort-value="2015-05">Mai 2015</time> </td></tr> <tr> <td>1.6</td> <td>0_45 à 0_111</td> <td>Java SE 6</td> <td>Mustang</td> <td>JSR 270</td> <td>6u113</td> <td>Obsolète, 6u51 à 6u111 uniquement disponibles avec un support Oracle spécifique<sup id="cite_ref-Oracle_releases_Java_7u25,_no_6u51_32-1" class="reference"><a href="#cite_note-Oracle_releases_Java_7u25,_no_6u51-32"><span class="cite_crochet">[</span>32<span class="cite_crochet">]</span></a></sup></td> <td>2005-2013<sup id="cite_ref-:34_31-2" class="reference"><a href="#cite_note-:34-31"><span class="cite_crochet">[</span>31<span class="cite_crochet">]</span></a></sup></td> <td><time class="nowrap" datetime="2018-12" data-sort-value="2018-12">Décembre 2018</time> </td></tr> <tr> <td>1.7</td> <td>0_79 à 0_80</td> <td>Java SE 7</td> <td>Dolphin</td> <td>JSR 336</td> <td>1.7.0_79</td> <td>Stable, version 1.7.0_79<sup id="cite_ref-33" class="reference"><a href="#cite_note-33"><span class="cite_crochet">[</span>33<span class="cite_crochet">]</span></a></sup></td> <td>2011- 2015<sup id="cite_ref-:34_31-3" class="reference"><a href="#cite_note-:34-31"><span class="cite_crochet">[</span>31<span class="cite_crochet">]</span></a></sup></td> <td><time class="nowrap" datetime="2022-07" data-sort-value="2022-07">Juillet 2022</time> </td></tr> <tr> <td>1.8</td> <td>0_391</td> <td>Java SE 8</td> <td>Kenai<sup id="cite_ref-34" class="reference"><a href="#cite_note-34"><span class="cite_crochet">[</span>34<span class="cite_crochet">]</span></a></sup> puis Spider</td> <td>JSR 337</td> <td>1.8.0_391</td> <td>Stable, version 1.8.0_391<sup id="cite_ref-35" class="reference"><a href="#cite_note-35"><span class="cite_crochet">[</span>35<span class="cite_crochet">]</span></a></sup> proposée aux utilisateurs<sup id="cite_ref-36" class="reference"><a href="#cite_note-36"><span class="cite_crochet">[</span>36<span class="cite_crochet">]</span></a></sup></td> <td>Mars 2022 </td> <td><time class="nowrap" datetime="2030-12" data-sort-value="2030-12">Décembre 2030</time> </td></tr> <tr> <td>9 </td> <td>9.0.4 </td> <td>Java SE 9 </td> <td>Umbrella </td> <td>JSR 379<sup id="cite_ref-37" class="reference"><a href="#cite_note-37"><span class="cite_crochet">[</span>37<span class="cite_crochet">]</span></a></sup> </td> <td>9.0.4 </td> <td>Stable </td> <td>2018-? </td> <td> </td></tr> <tr> <td>10 </td> <td>10.0.2 </td> <td>Java SE 10 </td> <td> </td> <td>JSR 383 </td> <td>10.0.2 </td> <td>supporté 6 mois avant prochaine sortie du JDK Java11-LTS </td> <td>2018, pas une version LTS (long term support) </td> <td> </td></tr> <tr> <td>11 </td> <td>11.0.13 </td> <td>Java SE 11 </td> <td> </td> <td>JSR 384 </td> <td>11.0.13+10 </td> <td>version LTS </td> <td>Septembre 2023 </td> <td>Janvier 2032 </td></tr> <tr> <td>12 </td> <td>12.0.2 </td> <td>Java SE 12 </td> <td> </td> <td>JSR 386 </td> <td>12.0.2 </td> <td> </td> <td> </td> <td> </td></tr> <tr> <td>13 </td> <td>13.0.2 </td> <td>Java SE 13 </td> <td> </td> <td>JSR 388 </td> <td>13.0.2 </td> <td> </td> <td> </td> <td> </td></tr> <tr> <td>14 </td> <td>14.0.2 </td> <td>Java SE 14 </td> <td> </td> <td>JSR 389 </td> <td>14.0.2 </td> <td> </td> <td> </td> <td> </td></tr> <tr> <td>15 </td> <td>15.0.2 </td> <td>Java SE 15 </td> <td> </td> <td>JSR 390 </td> <td>15.0.2 </td> <td> </td> <td> </td> <td> </td></tr> <tr> <td>16 </td> <td>16.0.2 </td> <td>Java SE 16 </td> <td> </td> <td>JSR 391 </td> <td>16.0.2 </td> <td> </td> <td> </td> <td> </td></tr> <tr> <td>17 </td> <td>17.0.1+12 </td> <td>Java SE 17 </td> <td> </td> <td>JSR 392 </td> <td>17.0.1 </td> <td>version LTS </td> <td>Septembre 2026 </td> <td>Septembre 2029 </td></tr> <tr> <td>18 </td> <td>18.0.2.1 </td> <td>Java SE 18 </td> <td> </td> <td>JSR 393 </td> <td>18.0.2.1 </td> <td> </td> <td>Septembre 2022 </td> <td> </td></tr> <tr> <td>19 </td> <td>19.0.2 </td> <td>Java SE 19 </td> <td> </td> <td>JSR 394 </td> <td>19.0.2 </td> <td> </td> <td>Mars 2023 </td> <td> </td></tr> <tr> <td>20 </td> <td>20.0.2 </td> <td>Java SE 20 </td> <td> </td> <td>JSR 395 </td> <td>20.0.2 </td> <td> </td> <td>Septembre 2023 </td> <td> </td></tr> <tr> <td>21 </td> <td>21.0.1 </td> <td>Java SE 21 </td> <td> </td> <td>JSR 396 </td> <td>21.0.1 </td> <td>version LTS </td> <td>Septembre 2028 </td> <td>Septembre 2031 </td></tr> <tr> <td>22 </td> <td>22.0.1 </td> <td>Java SE 22 </td> <td> </td> <td>JSR 397 </td> <td>22.0.1 </td> <td> </td> <td> </td> <td> </td></tr> <tr> <td>23 </td> <td>23.0.1 </td> <td>Java SE 23 </td> <td> </td> <td>JSR 398 </td> <td>23.0.1 </td> <td> </td> <td> </td> <td> </td></tr></tbody></table> <div class="mw-heading mw-heading4"><h4 id="Contenu_et_évolutions"><span id="Contenu_et_.C3.A9volutions"></span>Contenu et évolutions</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=20" title="Modifier la section : Contenu et évolutions" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=20" title="Modifier le code source de la section : Contenu et évolutions"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading5"><h5 id="Du_JDK_1.0_au_J2SE_1.4">Du JDK 1.0 au J2SE 1.4</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=21" title="Modifier la section : Du JDK 1.0 au J2SE 1.4" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=21" title="Modifier le code source de la section : Du JDK 1.0 au J2SE 1.4"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><b>JDK 1.0</b> (<time class="nowrap date-lien" datetime="1996-01-23" data-sort-value="1996-01-23"><a href="/wiki/23_janvier" title="23 janvier">23</a> <a href="/wiki/Janvier_1996" title="Janvier 1996">janvier</a> <a href="/wiki/1996_en_informatique" title="1996 en informatique">1996</a></time> - 211 classes et interfaces) — Version initiale<sup id="cite_ref-38" class="reference"><a href="#cite_note-38"><span class="cite_crochet">[</span>38<span class="cite_crochet">]</span></a></sup>.</li> <li><b>JDK 1.1</b> (<time class="nowrap date-lien" datetime="1997-02-19" data-sort-value="1997-02-19"><a href="/wiki/19_f%C3%A9vrier" title="19 février">19</a> <a href="/wiki/F%C3%A9vrier_1997" title="Février 1997">février</a> <a href="/wiki/1997_en_informatique" title="1997 en informatique">1997</a></time> - 477 classes et interfaces) — De nombreux ajouts<sup id="cite_ref-39" class="reference"><a href="#cite_note-39"><span class="cite_crochet">[</span>39<span class="cite_crochet">]</span></a></sup> avec notamment : <ul><li>une refonte complète du modèle événementiel <a href="/wiki/Abstract_Window_Toolkit" title="Abstract Window Toolkit">AWT</a> ;</li> <li>les classes internes sont ajoutées au langage ;</li> <li><a href="/wiki/JavaBeans" title="JavaBeans">JavaBeans</a> ;</li> <li><a href="/wiki/Java_Database_Connectivity" title="Java Database Connectivity">JDBC</a> ;</li> <li>Java Remote Invocation (<a href="/wiki/Remote_method_invocation" title="Remote method invocation">RMI</a>).</li></ul></li> <li><b>J2SE 1.2</b> (<time class="nowrap date-lien" datetime="1998-12-09" data-sort-value="1998-12-09"><a href="/wiki/9_d%C3%A9cembre" title="9 décembre">9</a> <a href="/wiki/D%C3%A9cembre_1998" title="Décembre 1998">décembre</a> <a href="/wiki/1998_en_informatique" title="1998 en informatique">1998</a></time> - 1 524 classes et interfaces) — Nom de code <span class="lang-en" lang="en"><i>Playground</i></span>. Cette version et les suivantes jusque J2SE 7.0 sont rebaptisées <b>Java 2</b> et la version nommée J2SE (<span class="lang-en" lang="en"><i>Java 2 Platform, Standard Edition</i></span>) remplace JDK pour distinguer la plateforme de base de la version J2EE (<span class="lang-en" lang="en"><i>Java 2 Platform, Enterprise Edition</i></span>) et de la version J2ME (<span class="lang-en" lang="en"><i>Java 2 Platform, Micro Edition</i></span>). Plusieurs ajouts<sup id="cite_ref-40" class="reference"><a href="#cite_note-40"><span class="cite_crochet">[</span>40<span class="cite_crochet">]</span></a></sup> dont : <ul><li>le mot-clé <code>strictfp</code> (<span class="lang-en" lang="en">strict floating-point</span> : <a href="/wiki/Virgule_flottante" title="Virgule flottante">virgule flottante</a> stricte) ;</li> <li>la <a href="/wiki/R%C3%A9flexion_(informatique)" title="Réflexion (informatique)">réflexion</a> ;</li> <li>l’API graphique <a href="/wiki/Swing_(Java)" title="Swing (Java)">Swing</a> est intégrée ;</li> <li>pour la première fois, la machine virtuelle Java de Sun inclut un compilateur « <a href="/wiki/Compilation_%C3%A0_la_vol%C3%A9e" title="Compilation à la volée">Compilation à la volée</a> » (<span class="lang-en" lang="en"><i>Just in Time</i></span>) ;</li> <li>Java Plug-in ;</li> <li>Java IDL, une implémentation de IDL pour l’interopérabilité avec <a href="/wiki/Common_Object_Request_Broker_Architecture" title="Common Object Request Broker Architecture">CORBA</a> ;</li> <li>le <span class="lang-en" lang="en"><i>framework Collections</i></span>.</li></ul></li> <li><b>J2SE 1.3</b> (<time class="nowrap date-lien" datetime="2000-05-08" data-sort-value="2000-05-08"><a href="/wiki/8_mai" title="8 mai">8</a> <a href="/wiki/Mai_2000" title="Mai 2000">mai</a> <a href="/wiki/2000_en_informatique" title="2000 en informatique">2000</a></time> - 1 840 classes et interfaces) — Nom de code <i>Kestrel</i>. Changements principaux<sup id="cite_ref-41" class="reference"><a href="#cite_note-41"><span class="cite_crochet">[</span>41<span class="cite_crochet">]</span></a></sup> : <ul><li>HotSpot JVM inclus (La machine virtuelle HotSpot sortit en <time class="nowrap date-lien" datetime="1999-04" data-sort-value="1999-04"><a href="/wiki/Avril_1999" title="Avril 1999">avril</a> <a href="/wiki/1999_en_informatique" title="1999 en informatique">1999</a></time> pour la machine virtuelle du J2SE 1.2) ;</li> <li>changement pour les RMI pour être basé sur <a href="/wiki/Common_Object_Request_Broker_Architecture" title="Common Object Request Broker Architecture">CORBA</a> ;</li> <li>JavaSound ;</li> <li><a href="/wiki/Java_Naming_and_Directory_Interface" title="Java Naming and Directory Interface">JNDI</a> (<span class="lang-en" lang="en"><i>Java Naming and Directory Interface</i></span>) inclus de base (disponible auparavant comme <a href="/wiki/Biblioth%C3%A8que_logicielle" title="Bibliothèque logicielle">extension</a>) ;</li> <li>JPDA (<span class="lang-en" lang="en"><i>Java Platform Debugger Architecture</i></span>).</li></ul></li> <li><b>J2SE 1.4</b> (<time class="nowrap date-lien" datetime="2002-02-06" data-sort-value="2002-02-06"><a href="/wiki/6_f%C3%A9vrier" title="6 février">6</a> <a href="/wiki/F%C3%A9vrier_2002" title="Février 2002">février</a> <a href="/wiki/2002_en_informatique" title="2002 en informatique">2002</a></time> - 2 723 classes et interfaces) — Nom de code <i>Merlin</i>. Ce fut la première révision de la plateforme sous JCP (<span class="lang-en" lang="en"><i>Java Community Process</i></span>)<sup id="cite_ref-42" class="reference"><a href="#cite_note-42"><span class="cite_crochet">[</span>42<span class="cite_crochet">]</span></a></sup>. Les principaux changements<sup id="cite_ref-43" class="reference"><a href="#cite_note-43"><span class="cite_crochet">[</span>43<span class="cite_crochet">]</span></a></sup> sont : <ul><li>le mot-clé <code>assert</code> (Spécifié dans JSR 41<sup id="cite_ref-44" class="reference"><a href="#cite_note-44"><span class="cite_crochet">[</span>44<span class="cite_crochet">]</span></a></sup>) ;</li> <li>les <a href="/wiki/Expression_r%C3%A9guli%C3%A8re" title="Expression régulière">expressions rationnelles</a> modélisées en s’inspirant du <a href="/wiki/Perl_(langage)" title="Perl (langage)">langage Perl</a> ;</li> <li>le chaînage d’exception permet à une exception d’encapsuler l’exception de bas niveau d’origine. (Spécifié dans <abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.jcp.org/en/jsr/detail?id=51">JSR 51</a>) ;</li> <li>API de journalisation (Spécifiée dans <a rel="nofollow" class="external text" href="http://www.jcp.org/en/jsr/detail?id=47"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> JSR 47</a>) ;</li> <li>l’API Image I/O pour lire et écrire des images dans des formats comme JPEG et PNG ;</li> <li>l'intégration d’un parser XML et du moteur XSLT nommé JAXP (Spécifié dans <abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.jcp.org/en/jsr/detail?id=5">JSR 5</a> et <abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.jcp.org/en/jsr/detail?id=63">JSR 63</a>) ;</li> <li>l'intégration des extensions de sécurité JCE (<a href="/w/index.php?title=Java_Cryptography_Extension&action=edit&redlink=1" class="new" title="Java Cryptography Extension (page inexistante)">Java Cryptography Extension</a> <a href="https://en.wikipedia.org/wiki/Java_Cryptography_Extension" class="extiw" title="en:Java Cryptography Extension"><span class="indicateur-langue" title="Article en anglais : « Java Cryptography Extension »">(en)</span></a>), <a href="/wiki/Java_Secure_Socket_Extension" title="Java Secure Socket Extension">JSSE</a> et <a href="/wiki/Java_Authentication_and_Authorization_Service" title="Java Authentication and Authorization Service">JAAS</a> ;</li> <li><a href="/wiki/Java_Web_Start" title="Java Web Start">Java Web Start</a> (introduit pour la première fois en <time class="nowrap date-lien" datetime="2001-03" data-sort-value="2001-03"><a href="/wiki/Mars_2001" title="Mars 2001">mars</a> <a href="/wiki/2001_en_informatique" title="2001 en informatique">2001</a></time> pour J2SE 1.3 - Spécifié dans <abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.jcp.org/en/jsr/detail?id=56">JSR 56</a>).</li></ul></li></ul> <div class="mw-heading mw-heading5"><h5 id="J2SE_5.0">J2SE 5.0</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=22" title="Modifier la section : J2SE 5.0" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=22" title="Modifier le code source de la section : J2SE 5.0"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Sortie le <time class="nowrap date-lien" datetime="2004-09-30" data-sort-value="2004-09-30"><a href="/wiki/30_septembre" title="30 septembre">30</a> <a href="/wiki/Septembre_2004" title="Septembre 2004">septembre</a> <a href="/wiki/2004_en_informatique" title="2004 en informatique">2004</a></time> (3 270 classes et interfaces), son nom de code est <span class="lang-en" lang="en"><i>Tiger</i></span>. Elle est initialement numérotée 1.5, qui est toujours utilisé comme numéro de version interne<sup id="cite_ref-45" class="reference"><a href="#cite_note-45"><span class="cite_crochet">[</span>45<span class="cite_crochet">]</span></a></sup>. Développé par <a rel="nofollow" class="external text" href="http://www.jcp.org/en/jsr/detail?id=176"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> JSR 176</a>, <span class="lang-en" lang="en"><i>Tiger</i></span> ajoute un nombre significatif de nouveautés<sup id="cite_ref-46" class="reference"><a href="#cite_note-46"><span class="cite_crochet">[</span>46<span class="cite_crochet">]</span></a></sup> au langage : </p> <ul><li>intégration du composant logiciel <a href="/wiki/Java_Web_Start" title="Java Web Start">Java Web Start</a> dans l'environnement d'exécution Java (JRE)<sup id="cite_ref-47" class="reference"><a href="#cite_note-47"><span class="cite_crochet">[</span>47<span class="cite_crochet">]</span></a></sup> ;</li> <li>programmation générique — (Spécifié par <a rel="nofollow" class="external text" href="http://www.jcp.org/en/jsr/detail?id=14"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> JSR 14</a>) ;</li> <li><a href="/wiki/Annotation_(Java)" title="Annotation (Java)">metadata</a> — également appelées annotations, permet au langage de construire des classes et des méthodes étiquetées avec des données additionnelles qui peuvent être utilisées en tant que méta-données (Spécifiée dans <abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.jcp.org/en/jsr/detail?id=175">JSR 175</a>) ;</li> <li>autoboxing/unboxing — conversion automatique entre des types primitifs (comme le type <code>int</code>) et le Wrapper de classe correspondant (comme la classe Integer) (Spécifié dans <abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.jcp.org/en/jsr/detail?id=201">JSR 201</a>) ;</li> <li>énumérations — le mot-clé <code>enum</code> permet de créer une liste ordonnée de valeurs en gardant la <a href="/wiki/S%C3%BBret%C3%A9_du_typage" title="Sûreté du typage">sûreté du typage</a>. Auparavant, ceci pouvait seulement être réalisé par des entiers constants (Spécifié dans JSR 201) ;</li> <li>varargs — la syntaxe <code>Object…</code> utilisée dans une déclaration de méthode permet de spécifier un nombre variable d’arguments pour cette méthode. C’est un fonctionnement équivalent à la fonction « printf » en C ;</li> <li>imports statiques — Cette fonctionnalité permet d’utiliser les constantes d’une classe sans spécifier le nom de cette classe et sans passer par « l’<span class="lang-en" lang="en"><i>anti-pattern Constant Interface</i></span> » (c’est l’expression utilisée sur le site de Sun) ;</li> <li>extension du <code>for</code> pour les boucles — la syntaxe du <code>for</code> est étendue avec une syntaxe spéciale pour itérer sur n’importe quel objet itérable comme un tableau, ou une collection en utilisant la syntaxe :</li></ul> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">displayWidgets</span><span class="w"> </span><span class="p">(</span><span class="n">Iterable</span><span class="o"><</span><span class="n">Widget</span><span class="o">></span><span class="w"> </span><span class="n">widgets</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">Widget</span><span class="w"> </span><span class="n">w</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">widgets</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">w</span><span class="p">.</span><span class="na">display</span><span class="p">();</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">}</span> </pre></div> <p>Cet exemple parcourt le contenu de l’objet widgets de la classe Iterable et contenant uniquement des références vers des objets de la classe Widget, assignant chacun de ces éléments à la variable w et ensuite appelle la méthode display() sur l’élément w (spécifié dans JSR 201). Une syntaxe similaire sera introduite en 2011 dans <a href="/wiki/C%2B%2B11#Boucles_basées_sur_des_intervalles" title="C++11">C++11</a>. </p><p>En plus des changements au niveau du langage, des changements plus importants ont eu lieu au fil des années qui ont conduit des quelques centaines de classes dans le JDK 1.0 à plus de 3 000 dans J2SE 5.0. Des API entières, comme Swing ou Java2D, ont été ajoutées et beaucoup de méthodes de l’original JDK 1.0 ont été déclarées <span class="lang-en" lang="en"><i>deprecated</i></span> (c’est-à-dire déconseillées, elles pourraient être supprimées dans une version ultérieure de Java). </p> <div class="mw-heading mw-heading5"><h5 id="Java_SE_6">Java SE 6</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=23" title="Modifier la section : Java SE 6" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=23" title="Modifier le code source de la section : Java SE 6"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Sortie le <time class="nowrap date-lien" datetime="2006-12-11" data-sort-value="2006-12-11"><a href="/wiki/11_d%C3%A9cembre" title="11 décembre">11</a> <a href="/wiki/D%C3%A9cembre_2006" title="Décembre 2006">décembre</a> <a href="/wiki/2006_en_informatique" title="2006 en informatique">2006</a></time> (3 777 classes et interfaces dans plus de 20 paquetages), son nom de code est <a rel="nofollow" class="external text" href="https://mustang.dev.java.net/"><i>Mustang</i></a><sup id="cite_ref-48" class="reference"><a href="#cite_note-48"><span class="cite_crochet">[</span>48<span class="cite_crochet">]</span></a></sup>. Une version bêta est sortie le <time class="nowrap" datetime="2006-02-15" data-sort-value="2006-02-15">15 février 2006</time>, une autre bêta en <time class="nowrap" datetime="2006-06" data-sort-value="2006-06">juin 2006</time>, une version « <span class="lang-en" lang="en"><i>release candidate</i></span> » en <time class="nowrap" datetime="2006-11" data-sort-value="2006-11">novembre 2006</time>, et la version finale le <time class="nowrap" datetime="2006-12-12" data-sort-value="2006-12-12">12 décembre 2006</time>. Avec cette version, Sun remplace définitivement le nom J2SE par Java SE et supprime le .0 au numéro de version<sup id="cite_ref-49" class="reference"><a href="#cite_note-49"><span class="cite_crochet">[</span>49<span class="cite_crochet">]</span></a></sup>. </p><p>Cette version a été l'objet de nombreuses <a href="/wiki/Vuln%C3%A9rabilit%C3%A9_(informatique)" title="Vulnérabilité (informatique)">failles de sécurité</a> et leurs mises à jour correctives, conduisant à la version 1.6.0_45 par Oracle et même 1.6.0_51 pour sa version Mac OS. C'est d'ailleurs là la dernière version de Java fonctionnant pour Mac OS X 10.6 et antérieurs. </p> <div class="mw-heading mw-heading5"><h5 id="Java_SE_7_(LTS)"><span id="Java_SE_7_.28LTS.29"></span>Java SE 7 (LTS)</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=24" title="Modifier la section : Java SE 7 (LTS)" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=24" title="Modifier le code source de la section : Java SE 7 (LTS)"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Sortie le <time class="nowrap date-lien" datetime="2011-07-07" data-sort-value="2011-07-07"><a href="/wiki/7_juillet" title="7 juillet">7</a> <a href="/wiki/Juillet_2011" title="Juillet 2011">juillet</a> <a href="/wiki/2011_en_informatique" title="2011 en informatique">2011</a></time> (8 000<sup id="cite_ref-50" class="reference"><a href="#cite_note-50"><span class="cite_crochet">[</span>50<span class="cite_crochet">]</span></a></sup> classes et interfaces), son nom de code est <span class="lang-en" lang="en"><i>Dolphin</i></span>. Il s’agit de la première version sous la licence <a href="/wiki/Licence_publique_g%C3%A9n%C3%A9rale_GNU" title="Licence publique générale GNU">GNU GPL</a>. </p><p>Dès l'update 6 (7u6), l'édition standard Oracle de Java supportant de nouveau pleinement Mac OS X<sup id="cite_ref-51" class="reference"><a href="#cite_note-51"><span class="cite_crochet">[</span>51<span class="cite_crochet">]</span></a></sup>, les mises à jour pour cet OS ne sont plus prises en charge par Apple mais par Oracle. Toutefois cette version de Java n'est pas supportée par <a href="/wiki/Mac_OS_X_Snow_Leopard" title="Mac OS X Snow Leopard">Mac OS X v10.6</a> : En effet certaines API requises par Java 7 ont bien été incluses par Apple dans Mac OS X 10.7.3, mais il n'est pas prévu qu'elles soient implémentées sur les précédentes versions de Mac OS<sup id="cite_ref-52" class="reference"><a href="#cite_note-52"><span class="cite_crochet">[</span>52<span class="cite_crochet">]</span></a></sup>. La version 7u90 d'<time class="nowrap" datetime="2015-04" data-sort-value="2015-04">avril 2015</time> est la dernière mise à jour de Java 7 disponible publiquement<sup id="cite_ref-53" class="reference"><a href="#cite_note-53"><span class="cite_crochet">[</span>53<span class="cite_crochet">]</span></a></sup>. </p><p>Java 7 propose entre autres les nouveautés suivantes : </p> <ul><li>la notation binaire ;</li> <li>le formatage numérique pour plus de lisibilité ;</li> <li>les switch avec des string ;</li> <li>l'inférence des types à la création d'instance pour éviter une redondance de syntaxe (cf. <tt>List<String> lst = new ArrayList<b><></b>();</tt>) ;</li> <li>le multicatch permettant de concaténer les exceptions catchées via des <tt>|</tt> ;</li> <li>java.nio (JSR 203) qui propose notamment une nouvelle interface Path, un système de parcours des répertoires, un service de watch…</li> <li>les tasks pour paralléliser les calculs jugés trop lourd ou trop coûteux ;</li> <li>l'autoboxing d'objets vers les types primitifs ;</li> <li>interface utilisateur : transparence des frames, bordures arrondies, gestion des évènements asynchrones via les secondary loops, les JLayers, les Painters, le nouveau style Nimbus…</li></ul> <div class="mw-heading mw-heading5"><h5 id="Java_SE_8_(LTS)"><span id="Java_SE_8_.28LTS.29"></span>Java SE 8 (LTS)</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=25" title="Modifier la section : Java SE 8 (LTS)" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=25" title="Modifier le code source de la section : Java SE 8 (LTS)"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Nom de code Kenaï. Diverses releases en cours de développement du JDK sont disponibles au téléchargement dès l'automne 2013<sup id="cite_ref-54" class="reference"><a href="#cite_note-54"><span class="cite_crochet">[</span>54<span class="cite_crochet">]</span></a></sup>, et Java 8 sort mi-<time class="nowrap" datetime="2014-03" data-sort-value="2014-03">mars 2014</time> conformément à une <a href="/wiki/Roadmap" title="Roadmap">feuille de route</a> présentée par Oracle dès <time class="nowrap" datetime="2013-05" data-sort-value="2013-05">mai 2013</time><sup id="cite_ref-55" class="reference"><a href="#cite_note-55"><span class="cite_crochet">[</span>55<span class="cite_crochet">]</span></a></sup>. </p><p>Une des nouveautés majeures de cette version est l’ajout des <a href="/wiki/Fonction_anonyme" title="Fonction anonyme"><span class="lang-en" lang="en"><i>lambdas</i></span></a><sup id="cite_ref-56" class="reference"><a href="#cite_note-56"><span class="cite_crochet">[</span>56<span class="cite_crochet">]</span></a></sup>, entraînant une refonte d'une partie de l'API, notamment les collections et la notion de <i>stream</i>. Les autres ajouts notables incluent les optionnels, les implémentations par défaut au sein d'une interface, une refonte de l'API date, etc. En revanche la version Enterprise Edition (Java 8 EE) n'est pas attendue avant 2017. </p><p>La modularisation de la JVM avec le projet <a href="/wiki/Jigsaw_(serveur)" title="Jigsaw (serveur)">Jigsaw</a>, initialement prévue pour cette version, est quant à elle reportée à la version 9<sup id="cite_ref-57" class="reference"><a href="#cite_note-57"><span class="cite_crochet">[</span>57<span class="cite_crochet">]</span></a></sup>, du fait notamment des failles de sécurité rencontrées par Java 6 dont Oracle a privilégié la correction en 2013 par rapport aux évolutions de Java. </p> <div class="mw-heading mw-heading5"><h5 id="Java_SE_9">Java SE 9</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=26" title="Modifier la section : Java SE 9" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=26" title="Modifier le code source de la section : Java SE 9"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Initialement prévue pour 2015 mais reportée en partie à cause du projet Jigsaw, cette version est finalement sortie le <time class="nowrap" datetime="2017-09-21" data-sort-value="2017-09-21">21 septembre 2017</time><sup id="cite_ref-58" class="reference"><a href="#cite_note-58"><span class="cite_crochet">[</span>58<span class="cite_crochet">]</span></a></sup>. </p><p>Java 9 intègre : </p> <ul><li>le projet Jigsaw permettant de modulariser les modules chargés au sein du JDK ;</li> <li>JShell<sup id="cite_ref-59" class="reference"><a href="#cite_note-59"><span class="cite_crochet">[</span>59<span class="cite_crochet">]</span></a></sup>, le projet Kulla visant la création d'un shell pour Java sur le format <a href="/w/index.php?title=Read%E2%80%93eval%E2%80%93print_loop&action=edit&redlink=1" class="new" title="Read–eval–print loop (page inexistante)">read–eval–print loop</a> <a href="https://en.wikipedia.org/wiki/read%E2%80%93eval%E2%80%93print_loop" class="extiw" title="en:read–eval–print loop"><span class="indicateur-langue" title="Article en anglais : « read–eval–print loop »">(en)</span></a> ;</li> <li>le projet Valhalla visant une amélioration des types Java ;</li> <li>un support natif de <a href="/wiki/Hypertext_Transfer_Protocol#HTTP/2" title="Hypertext Transfer Protocol">HTTP/2</a><sup id="cite_ref-60" class="reference"><a href="#cite_note-60"><span class="cite_crochet">[</span>60<span class="cite_crochet">]</span></a></sup>Cf Release Note Oracle<sup id="cite_ref-61" class="reference"><a href="#cite_note-61"><span class="cite_crochet">[</span>61<span class="cite_crochet">]</span></a></sup>. Il faut utiliser des bibliothèques pour JSON<sup id="cite_ref-62" class="reference"><a href="#cite_note-62"><span class="cite_crochet">[</span>62<span class="cite_crochet">]</span></a></sup><i>.</i></li></ul> <div class="mw-heading mw-heading5"><h5 id="Java_SE_10">Java SE 10</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=27" title="Modifier la section : Java SE 10" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=27" title="Modifier le code source de la section : Java SE 10"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Cette version est sortie le <time class="nowrap" datetime="2018-03-20" data-sort-value="2018-03-20">20 mars 2018</time><sup id="cite_ref-63" class="reference"><a href="#cite_note-63"><span class="cite_crochet">[</span>63<span class="cite_crochet">]</span></a></sup>. </p><p>Cette nouvelle version intègre notamment : </p> <ul><li>JEP 286<sup id="cite_ref-64" class="reference"><a href="#cite_note-64"><span class="cite_crochet">[</span>64<span class="cite_crochet">]</span></a></sup> : inférence des types des variables locales;</li> <li>JEP 310<sup id="cite_ref-65" class="reference"><a href="#cite_note-65"><span class="cite_crochet">[</span>65<span class="cite_crochet">]</span></a></sup> : partage de binaire pour permettre un lancement plus rapide</li> <li>JEP 317<sup id="cite_ref-66" class="reference"><a href="#cite_note-66"><span class="cite_crochet">[</span>66<span class="cite_crochet">]</span></a></sup> : activation de Graal un compilateur JIT en Java</li></ul> <div class="mw-heading mw-heading5"><h5 id="Java_SE_11_(LTS)"><span id="Java_SE_11_.28LTS.29"></span>Java SE 11 (LTS)</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=28" title="Modifier la section : Java SE 11 (LTS)" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=28" title="Modifier le code source de la section : Java SE 11 (LTS)"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Cette version est sortie le <time class="nowrap" datetime="2018-09-25" data-sort-value="2018-09-25">25 septembre 2018</time><sup id="cite_ref-67" class="reference"><a href="#cite_note-67"><span class="cite_crochet">[</span>67<span class="cite_crochet">]</span></a></sup>. </p><p>Au-delà du changement du modèle de support à long terme des versions, cette version intègre notamment : </p> <ul><li>JEP 323 : amélioration sur les paramètres des lambda</li> <li>JEP 321 : un <a href="/wiki/Client_HTTP" title="Client HTTP">client HTTP</a> plus évolué</li> <li>JEP 320 : suppression des modules CORBA et EE par défaut</li></ul> <div class="mw-heading mw-heading5"><h5 id="Java_SE_12">Java SE 12</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=29" title="Modifier la section : Java SE 12" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=29" title="Modifier le code source de la section : Java SE 12"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Cette version est sortie le <time class="nowrap" datetime="2019-03-19" data-sort-value="2019-03-19">19 mars 2019</time><sup id="cite_ref-68" class="reference"><a href="#cite_note-68"><span class="cite_crochet">[</span>68<span class="cite_crochet">]</span></a></sup>. </p><p>Cette version intègre 8 évolutions : </p> <ul><li>JEP 189 : Shenandoah, un ramasse miette avec de courte pauses (Expérimentale)</li> <li>JEP 230 : suite d'outils de microbenchmark pour le code source du JDK</li> <li>JEP 325 : expressions Switch (aperçu)</li> <li>JEP 334 : API Constants, permettant d'ajouter des informations dans les métadonnées dans les fichiers .class, utile pour les langages sur la JVM)</li> <li>JEP 340 : un seul portage pour l'architecture ARM 64bits</li> <li>JEP 341 : Default CDS Archives, chargement des informations des classes de la JVM plus rapide</li> <li>JEP 344 et JEP 346 : améliorations du ramasse miette G1</li></ul> <div class="mw-heading mw-heading5"><h5 id="Java_SE_13">Java SE 13</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=30" title="Modifier la section : Java SE 13" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=30" title="Modifier le code source de la section : Java SE 13"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Cette version est sortie le <time class="nowrap" datetime="2019-09-17" data-sort-value="2019-09-17">17 septembre 2019</time><sup id="cite_ref-69" class="reference"><a href="#cite_note-69"><span class="cite_crochet">[</span>69<span class="cite_crochet">]</span></a></sup>. </p> <ul><li>JEP 355 : Text Blocks</li> <li>JEP 354 : (Switch - aperçu v2) Nouveau case <code>case...-></code> (case traditionnel <code>case...:)</code><div class="mw-highlight mw-highlight-lang-java mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="k">switch</span><span class="p">(</span><span class="n">nombre</span><span class="p">){</span> <span class="linenos" data-line="2"></span><span class="w"> </span><span class="c1">//case traditionnel</span> <span class="linenos" data-line="3"></span><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="mi">5</span><span class="p">:</span> <span class="linenos" data-line="4"></span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"La variable est égale à 5"</span><span class="p">);</span> <span class="linenos" data-line="5"></span><span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="linenos" data-line="6"></span><span class="w"> </span> <span class="linenos" data-line="7"></span><span class="w"> </span><span class="c1">//nouveau case</span> <span class="linenos" data-line="8"></span><span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="o">-></span><span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"La variable est égale à 5"</span><span class="p">);</span> <span class="linenos" data-line="9"></span><span class="p">}</span> </pre></div></li></ul> <div class="mw-heading mw-heading5"><h5 id="Java_SE_14">Java SE 14</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=31" title="Modifier la section : Java SE 14" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=31" title="Modifier le code source de la section : Java SE 14"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Cette version est sortie le 17 mars 2020<sup id="cite_ref-70" class="reference"><a href="#cite_note-70"><span class="cite_crochet">[</span>70<span class="cite_crochet">]</span></a></sup> </p> <ul><li>JEP 343 : Incubator</li></ul> <ul><li>JEP 358 : Plus de précision de la part du compilateur sur les erreurs <i>NullPointerExceptions</i></li> <li>JEP 361 : (Switch - version finale) Nouveau case <code>case...-></code> (case traditionnel <code>case...:)</code><sup id="cite_ref-71" class="reference"><a href="#cite_note-71"><span class="cite_crochet">[</span>71<span class="cite_crochet">]</span></a></sup></li> <li>JEP 362 : Dépréciation des ports Solaris et SPARC</li> <li>JEP 368 : Text Blocks</li></ul> <div class="mw-heading mw-heading5"><h5 id="Java_SE_15">Java SE 15</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=32" title="Modifier la section : Java SE 15" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=32" title="Modifier le code source de la section : Java SE 15"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Cette version est sortie le 15 septembre 2020<sup id="cite_ref-72" class="reference"><a href="#cite_note-72"><span class="cite_crochet">[</span>72<span class="cite_crochet">]</span></a></sup>. </p><p><i>? Pas de JEP ?</i> </p> <div class="mw-heading mw-heading5"><h5 id="Java_SE_16">Java SE 16</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=33" title="Modifier la section : Java SE 16" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=33" title="Modifier le code source de la section : Java SE 16"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Cette version est sortie le 16 mars 2021<sup id="cite_ref-:0_73-0" class="reference"><a href="#cite_note-:0-73"><span class="cite_crochet">[</span>73<span class="cite_crochet">]</span></a></sup>. </p><p><i>? Pas de JEP ?</i> </p> <div class="mw-heading mw-heading5"><h5 id="Java_SE_17_(LTS)"><span id="Java_SE_17_.28LTS.29"></span>Java SE 17 (LTS)</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=34" title="Modifier la section : Java SE 17 (LTS)" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=34" title="Modifier le code source de la section : Java SE 17 (LTS)"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Cette version est sortie le 14 septembre 2021<sup id="cite_ref-74" class="reference"><a href="#cite_note-74"><span class="cite_crochet">[</span>74<span class="cite_crochet">]</span></a></sup>. </p> <ul><li>JEP 306 : Restauration de la sémantique stricte permanente pour la virgule flottante</li> <li>JEP 356 : Générateur amélioré de nombre pseudo-aléatoire</li> <li>JEP 382 : Nouveau pipeline de rendu macOS</li> <li>JEP 391 : Portage macOS AArch64</li> <li>JEP 398 : Dépréciation pour suppression de l'API Applet</li> <li>JEP 403 : Encapsulation forte des internes du JDK</li> <li>JEP 406 : <a href="/wiki/Filtrage_par_motif" title="Filtrage par motif">Filtrage par motif</a> (Pattern Matching) pour switch (préversion)</li> <li>JEP 407 : Suppression de l'activation de RMI</li> <li>JEP 409 : Classes scellées</li> <li>JEP 410 : Suppression du compilateur expérimental AOT et JIT</li> <li>JEP 411 : Dépréciation pour suppression du gestionnaire de sécurité</li> <li>JEP 412 : API de fonction étrangère et de mémoire (incubation)</li> <li>JEP 414 : API vectorielle (deuxième incubation)</li> <li>JEP 415 : Filtres de désérialisation spécifiques au contexte</li></ul> <div class="mw-heading mw-heading5"><h5 id="Java_SE_18">Java SE 18</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=35" title="Modifier la section : Java SE 18" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=35" title="Modifier le code source de la section : Java SE 18"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Cette version est sortie le 22 mars 2022<sup id="cite_ref-75" class="reference"><a href="#cite_note-75"><span class="cite_crochet">[</span>75<span class="cite_crochet">]</span></a></sup>. </p><p>Liste des JEP <sup id="cite_ref-76" class="reference"><a href="#cite_note-76"><span class="cite_crochet">[</span>76<span class="cite_crochet">]</span></a></sup>: </p> <ul><li><i>JEP 400 : UTF-8 par défaut</i></li> <li><i>JEP 408 : Simple Web Server</i></li> <li><i>JEP 413 : Code Snippets dans la documentation de l'API Java</i></li> <li><i>JEP 416 : Réimplémenter la Core Reflection with Method Handles</i></li> <li><i>JEP 417 : API Vector (Troisième Incubateur)</i></li> <li><i>JEP 418 : Internet-Address Resolution SPI</i></li> <li><i>JEP 419 : Foreign Function & Memory API (deuxième incubateur)</i></li> <li><i>JEP 420 : Pattern Matching for switch (Second Preview)</i></li> <li><i>JEP 421 : Deprecate Finalization for Removal</i></li></ul> <div class="mw-heading mw-heading5"><h5 id="Java_SE_19">Java SE 19</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=36" title="Modifier la section : Java SE 19" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=36" title="Modifier le code source de la section : Java SE 19"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Cette version est sortie le 20 septembre 2022<sup id="cite_ref-77" class="reference"><a href="#cite_note-77"><span class="cite_crochet">[</span>77<span class="cite_crochet">]</span></a></sup>. </p> <ul><li>JEP 415 : le JDK est porté pour Linux sur l'architecture <a href="/wiki/RISC-V" title="RISC-V">RISC-V</a>.</li></ul> <div class="mw-heading mw-heading5"><h5 id="Java_SE_20">Java SE 20</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=37" title="Modifier la section : Java SE 20" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=37" title="Modifier le code source de la section : Java SE 20"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Cette version est sortie le 21 mars 2023<sup id="cite_ref-78" class="reference"><a href="#cite_note-78"><span class="cite_crochet">[</span>78<span class="cite_crochet">]</span></a></sup>. </p> <ul><li>JEP 429: Valeurs ciblées (incubation)</li> <li>JEP 432: Modèles d'enregistrement (deuxième aperçu)</li> <li>JEP 433: Correspondance des modèles pour switch (quatrième aperçu)</li> <li>JEP 434: API de mémoire et de fonctions étrangères (second aperçu)</li> <li>JEP 436: Fils virtuels (deuxième aperçu)</li> <li>JEP 437: Simultanéité structurée (deuxième incubation)</li> <li>JEP 438: API de vecteur (cinquième incubation)</li></ul> <div class="mw-heading mw-heading5"><h5 id="Java_SE_21_(LTS)"><span id="Java_SE_21_.28LTS.29"></span>Java SE 21 (LTS)</h5><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=38" title="Modifier la section : Java SE 21 (LTS)" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=38" title="Modifier le code source de la section : Java SE 21 (LTS)"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Cette version est sortie le 19 septembre 2023<sup id="cite_ref-79" class="reference"><a href="#cite_note-79"><span class="cite_crochet">[</span>79<span class="cite_crochet">]</span></a></sup>. </p> <div class="mw-heading mw-heading2"><h2 id="Philosophie">Philosophie</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=39" title="Modifier la section : Philosophie" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=39" title="Modifier le code source de la section : Philosophie"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Lors de la création du langage Java, il avait été décidé que ce langage devait répondre à cinq objectifs<sup id="cite_ref-80" class="reference"><a href="#cite_note-80"><span class="cite_crochet">[</span>80<span class="cite_crochet">]</span></a></sup> : </p> <ol><li>simple, orienté objet et familier ;</li> <li>robuste et sûr ;</li> <li>indépendant de la machine employée pour l'exécution ;</li> <li>très performant ;</li> <li>compilé, multi-tâches et dynamique.</li></ol> <div class="mw-heading mw-heading3"><h3 id="Langage_orienté_objet_et_familier"><span id="Langage_orient.C3.A9_objet_et_familier"></span>Langage orienté objet et familier</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=40" title="Modifier la section : Langage orienté objet et familier" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=40" title="Modifier le code source de la section : Langage orienté objet et familier"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="bandeau-container bandeau-section metadata bandeau-niveau-information"><div class="bandeau-cell bandeau-icone-css loupe">Article connexe : <a href="/wiki/Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">Programmation orientée objet</a>.</div></div> <p>La première caractéristique, le caractère orienté objet (« OO ») et familier, fait référence à une méthode de programmation et de conception du langage et le fait qu'un programme écrit en Java ressemble assez fort à un programme écrit en <a href="/wiki/C%2B%2B" title="C++">C++</a>. </p><p>Bien qu’il existe plusieurs interprétations de l’expression <b>orienté objet</b>, une idée phare dans ce type de développement est que les différents types de données doivent être directement associés avec les différentes opérations qu’on peut effectuer sur ces données. En conséquence, les données (appelées <i>Propriétés</i>) et le code les manipulant (appelé <i>Méthodes</i>) sont combinés dans une même entité appelée <i>Classe</i> d'objet. Le code devient logiquement découpé en petites entités cohérentes et devient ainsi plus simple à maintenir et plus facilement réutilisable, étant intrinsèquement modulaire. </p><p>D’autres mécanismes tels que l’<i>héritage</i> permettent d’exploiter toutes les caractéristiques d’une <i>Classe</i> précédemment écrite dans ses propres programmes sans même avoir à en connaître le fonctionnement interne — on n’en voit que l’<i>interface</i> (l'interface décrit les propriétés et les méthodes sans fournir le code associé). Java interdit la notion d'héritage depuis plusieurs classes parent sauf si elles sont des interfaces. </p><p>Dans la version 1.5 du langage ont été rajoutés les <i>génériques</i>, un mécanisme de <a href="/wiki/Polymorphisme_(informatique)" title="Polymorphisme (informatique)">polymorphisme</a> similaire (mais différent) aux <span class="lang-en" lang="en"><i>templates</i></span> du langage <a href="/wiki/C%2B%2B" title="C++">C++</a> ou aux foncteurs d’<a href="/wiki/OCaml" title="OCaml">OCaml</a>. Les génériques permettent d’exprimer d’une façon plus simple et plus sûre (du point de vue du typage) les propriétés d’objets comme des conteneurs (listes, arbres…) : le type liste est alors considéré génériquement par rapport au type d’objet contenu dans la liste. </p> <div class="mw-heading mw-heading3"><h3 id="Mécanisme_du_ramasse-miettes"><span id="M.C3.A9canisme_du_ramasse-miettes"></span>Mécanisme du ramasse-miettes</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=41" title="Modifier la section : Mécanisme du ramasse-miettes" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=41" title="Modifier le code source de la section : Mécanisme du ramasse-miettes"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="bandeau-container bandeau-section metadata bandeau-niveau-information"><div class="bandeau-cell bandeau-icone-css loupe">Article connexe : <a href="/wiki/Ramasse-miettes_(informatique)" title="Ramasse-miettes (informatique)">Ramasse-miettes en informatique</a>.</div></div> <p>Cet élément contribue à la robustesse et à la performance des programmes, le ramasse-miettes (<span class="lang-en" lang="en"><i>Garbage Collector</i></span>) est appelé régulièrement et automatiquement pendant l'exécution du programme. Sur les systèmes <a href="/wiki/Multiprocesseur" title="Multiprocesseur">multi-processeurs</a> et/ou <a href="/wiki/Microprocesseur_multi-c%C5%93ur" title="Microprocesseur multi-cœur">multi-cœurs</a>, celui-ci emploie même des <a href="/wiki/Thread_(informatique)" title="Thread (informatique)">threads</a> multiples à faible priorité afin de perturber le moins possible l'exécution du programme<sup id="cite_ref-gc_81-0" class="reference"><a href="#cite_note-gc-81"><span class="cite_crochet">[</span>81<span class="cite_crochet">]</span></a></sup>. En outre, le programmeur peut au besoin suggérer de lancer le ramasse-miettes à l’aide de la méthode <i>System.gc()</i>. </p><p>Un grief récurrent à l’encontre de langages comme C++ est la lourde tâche d’avoir à programmer manuellement la gestion de la mémoire. En C++, la mémoire allouée par le programme pour créer un objet est désallouée lors de la destruction de celui-ci (par exemple par un appel explicite à l'opérateur <span class="lang-en" lang="en"><i>delete</i></span>). Si le programmeur oublie de coder la désallocation, ceci aboutit à une « <a href="/wiki/Fuite_de_m%C3%A9moire" title="Fuite de mémoire">fuite mémoire</a> », et le programme en consomme de plus en plus. Pire encore, si par erreur un programme demande plusieurs fois une désallocation, ou emploie une zone de mémoire après avoir demandé sa désallocation, celui-ci deviendra très probablement instable et causera une erreur fatale. </p><p>En Java, une grande partie de ces problèmes est évitée grâce au <a href="/wiki/Ramasse-miettes_(informatique)" title="Ramasse-miettes (informatique)">ramasse-miettes</a>. L'espace mémoire nécessaire à chaque objet créé est géré dans un tas de mémoire (en <a href="/wiki/Anglais" title="Anglais">anglais</a> : <span class="lang-en" lang="en"><i>memory heap</i></span>) réservé à cet usage. Le programme accède à chaque objet via une référence dans le tas. Quand il n'existe plus aucune référence permettant d'atteindre un objet, le ramasse-miettes le détruit automatiquement — puisqu'il est devenu inaccessible — libérant la mémoire et prévenant ainsi toute fuite de mémoire. </p><p>Le ramasse-miettes emploie un algorithme de marquage puis libération (en <a href="/wiki/Anglais" title="Anglais">anglais</a> : <span class="lang-en" lang="en"><i>mark and sweep</i></span><sup id="cite_ref-gc_81-1" class="reference"><a href="#cite_note-gc-81"><span class="cite_crochet">[</span>81<span class="cite_crochet">]</span></a></sup>) qui permet de gérer les cas complexes d'objets se référençant mutuellement ou de boucles de références (cas d'une <a href="/wiki/Liste_cha%C3%AEn%C3%A9e" title="Liste chaînée">liste à chaînage double</a> par exemple). En pratique, il subsiste des cas d'erreur de programmation où le ramasse-miettes considère qu'un objet est encore utile alors que le programme n'y accède plus fonctionnellement (mais garde une référence sur l'objet), ce qui constitue un cas particulier de « <a href="/wiki/Fuite_de_m%C3%A9moire" title="Fuite de mémoire">fuite mémoire</a> ». </p><p>Le ramasse-miettes rend sensiblement plus simple et plus sûre la gestion de la mémoire. Les concepteurs et les utilisateurs de programmes ou bibliothèques (en anglais <i>Libraries</i>) n'ont pas à se soucier de la désallocation des objets (opérateur <span class="lang-en" lang="en"><i>delete</i></span> en C++), sauf éventuellement pour des raisons de performance. </p> <div class="mw-heading mw-heading3"><h3 id="Indépendance_vis-à-vis_de_la_plateforme"><span id="Ind.C3.A9pendance_vis-.C3.A0-vis_de_la_plateforme"></span>Indépendance vis-à-vis de la plateforme</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=42" title="Modifier la section : Indépendance vis-à-vis de la plateforme" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=42" title="Modifier le code source de la section : Indépendance vis-à-vis de la plateforme"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="bandeau-container bandeau-section metadata bandeau-niveau-information"><div class="bandeau-cell bandeau-icone-css loupe">Articles connexes : <a href="/wiki/Bytecode_Java" title="Bytecode Java">Bytecode Java</a> et <a href="/wiki/Compilation_%C3%A0_la_vol%C3%A9e" title="Compilation à la volée">Compilation à la volée</a>.</div></div> <p>L’indépendance vis-à-vis de la plateforme signifie que les programmes écrits en Java fonctionnent de manière parfaitement similaire sur différentes <a href="/wiki/Architecture_mat%C3%A9rielle" title="Architecture matérielle">architectures matérielles</a>. La licence de Sun pour Java insiste ainsi sur le fait que toutes les implémentations doivent être compatibles. On peut ainsi théoriquement effectuer le développement sur une architecture donnée et faire tourner l’application finale sur toutes les autres. </p><p>Ce résultat est obtenu par : </p> <ul><li>des bibliothèques standard fournies pour pouvoir accéder à certains éléments de la machine hôte (le graphisme, le multithreading, la programmation réseau…) exactement de la même manière sur toutes les architectures ;</li> <li>des compilateurs Java qui compilent le code source « à moitié » afin d’obtenir un <a href="/wiki/Bytecode" title="Bytecode">bytecode</a> (plus précisément le <a href="/wiki/Bytecode_Java" title="Bytecode Java">bytecode Java</a>, un langage de type <a href="/wiki/Assembleur" title="Assembleur">assembleur</a>, proche de la machine virtuelle et spécifique à la plateforme Java).</li></ul> <dl><dd>Ce bytecode a ensuite vocation à être interprété sur une <a href="/wiki/Machine_virtuelle" title="Machine virtuelle">machine virtuelle</a> Java (JVM en anglais), un programme écrit spécifiquement pour la machine cible qui interprète le <a href="/wiki/Bytecode" title="Bytecode">bytecode</a> Java et fait exécuter par la machine les <a href="/wiki/Instruction_informatique" title="Instruction informatique">instructions</a> traduites en code natif.</dd></dl> <p>Noter que même s’il y a explicitement une première phase de compilation, le bytecode Java est soit interprété, soit converti à la volée en code natif par un <a href="/wiki/Compilation_%C3%A0_la_vol%C3%A9e" title="Compilation à la volée">compilateur à la volée</a> (<span class="lang-en" lang="en"><i>just in time</i></span>, JIT). </p> <div class="mw-heading mw-heading4"><h4 id="Types_de_compilations">Types de compilations</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=43" title="Modifier la section : Types de compilations" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=43" title="Modifier le code source de la section : Types de compilations"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Les premières implémentations du langage utilisaient une machine virtuelle interprétée pour obtenir la portabilité. Ces implémentations produisaient des programmes qui s’exécutaient plus lentement que ceux écrits en langage compilé (C, C++, etc.) si bien que le langage souffrit d’une réputation de faibles performances. </p><p>Des implémentations plus récentes de la machine virtuelle Java (JVM) produisent des programmes beaucoup plus rapides qu’auparavant, en utilisant différentes techniques : </p> <ul><li>La première technique est de compiler directement en code natif comme un compilateur traditionnel, supprimant complètement la phase de bytecode. Des compilateurs Java tels que <a href="/wiki/GCJ" title="GCJ">GNU Compiler for Java</a> (GCJ) compilent ainsi directement le Java en <a href="/wiki/Code_objet" title="Code objet">code objet</a> natif pour la machine cible. On obtient ainsi de bonnes performances, mais aux dépens de la portabilité : le code final produit par ces compilateurs ne peut de ce fait être exécuté que sur une seule architecture ;</li> <li>Une autre technique appelée <a href="/wiki/Compilation_%C3%A0_la_vol%C3%A9e" title="Compilation à la volée">compilation « juste-à-temps »</a>, ou « à la volée » (<span class="lang-en" lang="en"><i>just in time</i></span>, JIT), traduit le byte code en code natif durant la phase de lancement du programme ;</li> <li>Certaines machines virtuelles plus sophistiquées utilisent une <i>recompilation dynamique</i> durant laquelle la machine virtuelle analyse le comportement du programme et en recompile sélectivement certaines parties. La recompilation dynamique permet d’obtenir de meilleurs résultats que la compilation statique car les compilateurs dynamiques peuvent optimiser en fonction de leur connaissance de l’environnement cible et des classes qui sont utilisées.</li></ul> <dl><dd>La compilation JIT et la recompilation dynamique permettent à Java de tirer profit de la rapidité du code natif sans perdre la portabilité.</dd></dl> <div class="mw-heading mw-heading4"><h4 id="Bilan_de_la_portabilité_Java"><span id="Bilan_de_la_portabilit.C3.A9_Java"></span>Bilan de la portabilité Java</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=44" title="Modifier la section : Bilan de la portabilité Java" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=44" title="Modifier le code source de la section : Bilan de la portabilité Java"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Après que Sun eut constaté que l’implémentation de Microsoft ne supportait pas les interfaces RMI et <a href="/wiki/Java_Native_Interface" title="Java Native Interface">JNI</a>, et comportait des éléments spécifiques à certaines plateformes par rapport à sa plateforme initiale, Sun déposa plainte en justice contre Microsoft<sup id="cite_ref-82" class="reference"><a href="#cite_note-82"><span class="cite_crochet">[</span>82<span class="cite_crochet">]</span></a></sup>, et obtint des dommages et intérêts (20 millions de dollars). Cet acte de justice renforça encore les termes de la licence de Sun. En réponse, Microsoft arrêta le support de Java sur ses plateformes et, sur les versions récentes de Windows, <a href="/wiki/Internet_Explorer" title="Internet Explorer">Internet Explorer</a> ne supporte pas les applets Java sans ajouter de plug-in. Cependant, Sun met à disposition gratuitement des environnements d’exécution de Java pour les différentes plateformes Microsoft. </p><p>La portabilité est techniquement un objectif difficile à atteindre et le succès de Java en ce domaine est mitigé. Quoiqu’il soit effectivement possible d’écrire des programmes pour la plateforme Java qui fonctionnent correctement sur beaucoup de machines cibles, le nombre important de plateformes avec de petites erreurs et des incohérences a abouti à un détournement du slogan de Sun « <span class="lang-en" lang="en"><i>Write once, run anywhere</i></span> » (<span class="citation">« Écrire une fois, exécuter n'importe où »</span>) en <span class="citation not_fr_quote" lang="en">« <span class="italique">Write once, debug everywhere</span> »</span> (<span class="citation">« Écrire une fois, déboguer partout »</span>) ! </p><p>L’indépendance de Java vis-à-vis de la plateforme est cependant un succès avec les applications côté serveur comme les <a href="/wiki/Service_web" title="Service web">services web</a>, les servlets et les <a href="/wiki/JavaBeans" title="JavaBeans">JavaBeans</a> aussi bien que les systèmes embarqués sur <a href="/wiki/OSGi" title="OSGi">OSGi</a>, utilisant l’environnement <span class="lang-en" lang="en"><b>Embedded Java</b></span>. </p> <div class="mw-heading mw-heading3"><h3 id="Exécution_sécurisée_de_code_distant"><span id="Ex.C3.A9cution_s.C3.A9curis.C3.A9e_de_code_distant"></span>Exécution sécurisée de code distant</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=45" title="Modifier la section : Exécution sécurisée de code distant" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=45" title="Modifier le code source de la section : Exécution sécurisée de code distant"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>La plateforme Java fut l’un des premiers systèmes à offrir le support de l’exécution du code à partir de sources distantes. Une <a href="/wiki/Appliquette" class="mw-redirect" title="Appliquette">applet</a> peut fonctionner dans le <a href="/wiki/Navigateur_web" title="Navigateur web">navigateur web</a> d’un utilisateur, exécutant du code téléchargé d’un serveur <a href="/wiki/Hypertext_Transfer_Protocol" title="Hypertext Transfer Protocol">HTTP</a>. Le code d’une applet fonctionne dans un espace très restrictif, ce qui protège l’utilisateur des codes erronés ou mal intentionnés. Cet espace est délimité par un objet appelé <i>gestionnaire de sécurité</i>. Un tel objet existe aussi pour du code local, mais il est alors par défaut inactif. </p><p>Le gestionnaire de sécurité (la classe <tt>SecurityManager</tt>) permet de définir un certain nombre d’autorisations d’utilisation des ressources du système local (<a href="/wiki/Syst%C3%A8me_de_fichiers" title="Système de fichiers">système de fichiers</a>, réseau, propriétés système…). Une autorisation définit : </p> <ol><li>Un code accesseur (typiquement, une applet — éventuellement signée — envoyée depuis un <a href="/wiki/Serveur_web" title="Serveur web">serveur web</a>) ;</li> <li>Une ressource locale concernée (par exemple un répertoire) ;</li> <li>Un ensemble de droits (par exemple lire/écrire).</li></ol> <p>Les éditeurs d’applet peuvent demander un <a href="/wiki/Certificat_%C3%A9lectronique" title="Certificat électronique">certificat</a> pour leur permettre de <a href="/wiki/Signature_num%C3%A9rique" title="Signature numérique">signer numériquement</a> une applet comme sûre, leur donnant ainsi potentiellement (moyennant l’autorisation adéquate) la permission de sortir de l’espace restrictif et d’accéder aux ressources du système local. </p> <div class="mw-heading mw-heading2"><h2 id="Éléments_du_langage"><span id=".C3.89l.C3.A9ments_du_langage"></span>Éléments du langage</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=46" title="Modifier la section : Éléments du langage" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=46" title="Modifier le code source de la section : Éléments du langage"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Voici un exemple d’un programme <span class="lang-en" lang="en"><i><a href="/wiki/Hello_world" title="Hello world">Hello world</a></i></span> typique écrit en Java : </p> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">HelloWorld</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="n">String</span><span class="o">[]</span><span class="w"> </span><span class="n">args</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">System</span><span class="p">.</span><span class="na">out</span><span class="p">.</span><span class="na">println</span><span class="p">(</span><span class="s">"Hello world!"</span><span class="p">);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="p">}</span> </pre></div> <p>Le fichier source porte presque toujours le nom de la classe avec l'extension « .java » (ici « HelloWorld.java », ce serait même obligatoire car la classe possède l'attribut <b>public</b> dans sa déclaration — la rendant alors accessible à tout autre programme). On peut compiler puis exécuter cet exemple sur le terminal avec les commandes suivantes (sous <a href="/wiki/Linux" title="Linux">Linux</a>) : </p> <pre>javac HelloWorld.java export CLASSPATH=. java HelloWorld </pre> <p>La ligne « <tt>export CLASSPATH=.</tt> » sert à indiquer à Java qu’il doit également chercher <a href="/wiki/Class_(format_de_fichier)" title="Class (format de fichier)">les programmes class</a> dans le répertoire courant. Ce chemin peut également être spécifié au lancement du programme par l’option <tt>-classpath</tt> (ou <tt>-cp</tt> en abrégé) : </p> <pre>java -cp. HelloWorld </pre> <div class="mw-heading mw-heading3"><h3 id="Mots_réservés,_primitifs_et_littéraux"><span id="Mots_r.C3.A9serv.C3.A9s.2C_primitifs_et_litt.C3.A9raux"></span>Mots réservés, primitifs et littéraux</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=47" title="Modifier la section : Mots réservés, primitifs et littéraux" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=47" title="Modifier le code source de la section : Mots réservés, primitifs et littéraux"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Les éléments syntaxiques suivants sont les <a href="/wiki/Mots-cl%C3%A9s" class="mw-redirect" title="Mots-clés">mots-clés</a> du langage Java : </p> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="kd">abstract</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">instanceof</span><span class="w"> </span><span class="kd">static</span><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="kt">boolean</span><span class="w"> </span><span class="kc">false</span> <span class="nf">assert</span><span class="w"> </span><span class="p">(</span><span class="mf">1.4</span><span class="p">)</span><span class="w"> </span><span class="kd">enum</span><span class="w"> </span><span class="p">(</span><span class="mf">5.0</span><span class="p">)</span><span class="w"> </span><span class="kd">interface</span> <span class="nf">strictfp</span><span class="w"> </span><span class="p">(</span><span class="mf">1.2</span><span class="p">)</span><span class="w"> </span><span class="kd">volatile</span><span class="w"> </span><span class="kt">byte</span><span class="w"> </span><span class="kc">true</span> <span class="k">break</span><span class="w"> </span><span class="kd">extends</span><span class="w"> </span><span class="kd">native</span><span class="w"> </span><span class="kd">super</span><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="kt">char</span> <span class="k">case</span><span class="w"> </span><span class="kd">final</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="kt">double</span> <span class="k">catch</span><span class="w"> </span><span class="k">finally</span><span class="w"> </span><span class="kn">package</span><span class="w"> </span><span class="nn">synchronized</span><span class="w"> </span><span class="kt">float</span> <span class="kd">class</span> <span class="nc">for</span><span class="w"> </span><span class="kd">private</span><span class="w"> </span><span class="k">this</span><span class="w"> </span><span class="kt">int</span> <span class="nf">const</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="k">goto</span><span class="w"> </span><span class="p">(</span><span class="o">*</span><span class="p">)</span><span class="w"> </span><span class="kd">protected</span><span class="w"> </span><span class="k">throw</span><span class="w"> </span><span class="kt">long</span> <span class="k">continue</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">throws</span><span class="w"> </span><span class="kt">short</span> <span class="k">default</span><span class="w"> </span><span class="kd">implements</span><span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="kd">transient</span><span class="w"> </span><span class="kt">void</span><span class="w"> </span><span class="kc">null</span> <span class="k">do</span><span class="w"> </span><span class="kn">import</span> </pre></div> <p>Notes : </p> <ul><li>(*) ces mots clefs sont réservés mais n'ont pas de signification pour le compilateur (il est juste interdit d'employer ce nom pour une variable par exemple) ;</li> <li>(1.2), (1.4) et (5.0) ces mots clefs ont été ajoutés avec la version indiquée du langage.</li></ul> <p><small>(<a rel="nofollow" class="external text" href="http://download.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html">source</a>)</small> </p> <div class="mw-heading mw-heading3"><h3 id="Classe,_attribut,_méthode"><span id="Classe.2C_attribut.2C_m.C3.A9thode"></span>Classe, attribut, méthode</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=48" title="Modifier la section : Classe, attribut, méthode" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=48" title="Modifier le code source de la section : Classe, attribut, méthode"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading4"><h4 id="Notion_de_classe">Notion de classe</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=49" title="Modifier la section : Notion de classe" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=49" title="Modifier le code source de la section : Notion de classe"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Une <a href="/wiki/Classe_(informatique)" title="Classe (informatique)">classe</a> est la description de données appelées attributs, et d’opérations appelées méthodes. Il s'agit d'un modèle de définition pour des objets ayant le même ensemble d’attributs, et le même ensemble d’opérations. À partir d’une classe on peut créer un ou plusieurs objets par instanciation ; chaque objet est une <a href="/wiki/Instance_(programmation)" title="Instance (programmation)">instance</a> d’une seule classe. </p><p><span style="text-decoration: underline;">Visibilité :</span> </p> <ul><li>Public : le mot <code>class</code> est alors précédé de <code>public</code>, tout utilisateur qui importe le paquetage peut utiliser la classe. Dans ce cas elle doit être définie dans un fichier qui a pour nom le nom de la classe.</li> <li>Privé : le mot <code>class</code> est alors précédé de <code>private</code>, seules des classes définies dans le même fichier peuvent utiliser cette classe.</li> <li>Paquetage : le mot <code>class</code> n’est pas précédé de mot particulier, toutes les classes du paquetage peuvent utiliser la classe.</li></ul> <div class="mw-heading mw-heading4"><h4 id="Notion_d'attribut"><span id="Notion_d.27attribut"></span>Notion d'attribut</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=50" title="Modifier la section : Notion d'attribut" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=50" title="Modifier le code source de la section : Notion d'attribut"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Un <a href="/wiki/Attribut_(informatique)" title="Attribut (informatique)">attribut</a> se définit en donnant son type, puis son nom, et éventuellement une partie initialisation. </p><p><span style="text-decoration: underline;">Visibilité :</span> </p> <ul><li>Public : sa définition est précédée de <code>public</code>, et il peut être utilisé par tout utilisateur de la classe.</li> <li>Privé : sa définition est précédée de <code>private</code>, et il ne peut être utilisé qu’à l’intérieur de la classe.</li> <li>Protégé : sa définition est précédée de <code>protected</code>, et il ne peut être utilisé qu’à l’intérieur de la classe, du paquetage, ou des classes dérivées.</li> <li>Paquetage : aucun mot particulier ne précède sa définition, ainsi il peut être utilisé dans toute classe du même paquetage.</li></ul> <div class="mw-heading mw-heading4"><h4 id="Notion_de_méthode"><span id="Notion_de_m.C3.A9thode"></span>Notion de méthode</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=51" title="Modifier la section : Notion de méthode" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=51" title="Modifier le code source de la section : Notion de méthode"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Une <a href="/wiki/M%C3%A9thode_(informatique)" title="Méthode (informatique)">méthode</a> est définie par : </p> <ul><li>son type de retour : type de la valeur retournée par la méthode. Si la méthode ne retourne pas de valeur le type spécifié est alors <code>void</code> ;</li> <li>son nom ;</li> <li>ses paramètres : les paramètres sont spécifiés par leur type et leur nom et sont séparés par des virgules.</li></ul> <p><span style="text-decoration: underline;">Visibilité :</span> </p> <ul><li>Public : sa définition est précédée de <code>public</code>, et elle peut être utilisée par tout utilisateur de la classe.</li> <li>Privé : sa définition est précédée de <code>private</code>, et elle ne peut être utilisée qu’à l’intérieur de la classe.</li> <li>Protégé : sa définition est précédée de <code>protected</code>, et elle ne peut être utilisée qu’à l’intérieur de la classe, du paquetage, ou des classes dérivées.</li> <li>Paquetage : aucun mot particulier ne précède sa définition, ainsi la méthode peut être utilisé dans toute classe du même paquetage.</li></ul> <div class="mw-heading mw-heading3"><h3 id="Types">Types</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=52" title="Modifier la section : Types" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=52" title="Modifier le code source de la section : Types"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable"> <tbody><tr> <th>Nom</th> <th>Taille en octets lors des calculs</th> <th>Valeur par défaut</th> <th>Valeurs possibles </th></tr> <tr> <td><a href="/wiki/Bool%C3%A9en" title="Booléen">boolean</a></td> <td>Un seul bit suffit, mais on réserve souvent un octet pour les stocker.</td> <td><code>false</code></td> <td><code>true</code>, <code>false</code> </td></tr> <tr> <td><a href="/wiki/Byte" title="Byte">byte</a></td> <td>1</td> <td><code>0</code></td> <td>entiers compris entre -128 et +127 (-2<sup>7</sup> et 2<sup>7</sup>-1) </td></tr> <tr> <td>short</td> <td>2</td> <td><code>0</code></td> <td>entiers compris entre −32 768 et 32 767 (-2<sup>15</sup> et 2<sup>15</sup>-1) </td></tr> <tr> <td><a href="/wiki/Entier_(informatique)" title="Entier (informatique)">int</a></td> <td>4</td> <td><code>0</code></td> <td>entiers compris entre −2 147 483 648 et +2 147 483 647 (-2<sup>31</sup> et 2<sup>31</sup>-1) </td></tr> <tr> <td>long</td> <td>8</td> <td><code>0</code></td> <td>entiers compris entre −9 223 372 036 854 775 808 et 9 223 372 036 854 775 807 (-2<sup>63</sup> et 2<sup>63</sup>-1) </td></tr> <tr> <td><a href="/wiki/Caract%C3%A8re_(informatique)" title="Caractère (informatique)">char</a></td> <td>2</td> <td><code>'\u0000'</code></td> <td>Ensemble des valeurs <a href="/wiki/Unicode" title="Unicode">Unicode</a> (valeurs de U+0000 à U+FFFF, 4 chiffres obligatoires après <code>'\u'</code>) Les 128 premiers caractères sont les codes ASCII et se notent entre apostrophes : <code>'a'</code>, <code>'1'</code>, <code>'\''</code>, <code>'\n'</code>. </td></tr> <tr> <td><a href="/wiki/Virgule_flottante" title="Virgule flottante">float</a></td> <td>4</td> <td><code>0.0</code></td> <td>Ensemble des nombres [−3,402 823 47 × 10<sup>38</sup> .. −1,402 398 46 × 10<sup>−45</sup>], 0, [1,402 398 46 × 10<sup>−45</sup> .. 3,402 823 47 × 10<sup>38</sup>] </td></tr> <tr> <td><span class="page_h"><a href="/wiki/Double#informatique" class="mw-disambig" title="Double">double</a></span></td> <td>8</td> <td><code>0.0</code></td> <td>Ensemble des nombres [−1,797 693 134 862 315 70 × 10<sup>308</sup> .. −4,940 656 458 412 465 44 × 10<sup>−324</sup>], 0, [4,940 656 458 412 465 44 × 10<sup>−324</sup> .. 1,797 693 134 862 315 70 × 10<sup>308</sup>] </td></tr> <tr> <td>Object</td> <td>Dépendant de la machine virtuelle</td> <td><code>null</code> </td></tr></tbody></table> <p>Le tableau ci-dessus recense les types de base, cependant il existe en Java d'autres types qui sont des objets et sont à utiliser en tant que tel. Par exemple pour définir un entier on peut utiliser le type 'Integer' dont la valeur d'initialisation par défaut vaudra <code>null</code> </p><p>Pour instancier une variable, la syntaxe (ici la même qu'en C) est la suivante : </p> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="n">NomDuType</span><span class="w"> </span><span class="n">maVariable</span><span class="p">;</span> </pre></div> <p><i>maVariable</i> est alors allouée sur la pile. </p> <div class="mw-heading mw-heading3"><h3 id="Les_collections_d'objets"><span id="Les_collections_d.27objets"></span>Les collections d'objets</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=53" title="Modifier la section : Les collections d'objets" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=53" title="Modifier le code source de la section : Les collections d'objets"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Il est souvent nécessaire de stocker de nombreuses données dans des collections : liste d’achats, notes des élèves, etc. Les collections peuvent être consultées, modifiées, on peut les trier, les recopier, les supprimer, etc. Elles peuvent avoir une taille fixe ou variable. </p><p>Les collections à taille fixe sont moins lourdes que les collections à taille variable. </p> <div class="mw-heading mw-heading4"><h4 id="Collections_de_taille_fixe">Collections de taille fixe</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=54" title="Modifier la section : Collections de taille fixe" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=54" title="Modifier le code source de la section : Collections de taille fixe"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li>Les tableaux :</li></ul> <dl><dd>Comme en C, les indices d'un tableau de taille <b>n</b> vont de 0 à n-1. Un des plus grands avantages des tableaux est l’accès en temps constant O(1), à chaque case du tableau.</dd> <dd>Les tableaux sont des objets en Java. Pour initialiser un tableau <code>tab</code> d’entiers de 10 cases, on peut écrire (entre autres) :</dd></dl> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">int</span><span class="o">[]</span><span class="w"> </span><span class="n">tab</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">int</span><span class="o">[</span><span class="mi">10</span><span class="o">]</span><span class="p">;</span> </pre></div> <dl><dd>ou :</dd></dl> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">int</span><span class="w"> </span><span class="n">tab</span><span class="o">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">int</span><span class="o">[</span><span class="mi">10</span><span class="o">]</span><span class="p">;</span> </pre></div> <dl><dd>ou :</dd></dl> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="kt">int</span><span class="w"> </span><span class="n">tab</span><span class="o">[]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span> <span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span><span class="w"> </span><span class="mi">0</span><span class="p">};</span> </pre></div> <dl><dd>Les indices de <code>tab</code> vont de 0 à 9, et il ne pourra pas être redimensionné.</dd> <dd>Chaque élément de <code>tab</code> est initialisé à sa valeur par défaut, ici 0 car il s'agit d'un tableau d'entiers (<code>int</code>). La valeur par défaut d'un objet est <code>null</code>, celle d'un booléen est <code>false</code>.</dd></dl> <dl><dd>Pour lire ou modifier l'élément de <code>tab</code> d'indice <b>i</b>, pour 0 ≤ i ≤ 9, on utilise <i>tab[i]</i>. <dl><dd>Exemple : Pour attribuer la valeur 2 à une case de <code>tab</code>, on écrit : <code>tab[i] = 2;</code></dd></dl></dd></dl> <dl><dd>La propriété <b>length</b> (exemple : <code>tab.length</code>) fournit le nombre d'éléments du tableau. Si on essaie de modifier un élément qui n’existe pas, par exemple avec <code>tab [10] = 4;</code>, une exception <i>IndexOutOfBoundsException</i> est déclenchée (notre tableau <code>tab</code> ne contient que 10 cases, numérotées de 0 à 9 inclus).</dd></dl> <div class="mw-heading mw-heading4"><h4 id="Collections_de_taille_variable">Collections de taille variable</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=55" title="Modifier la section : Collections de taille variable" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=55" title="Modifier le code source de la section : Collections de taille variable"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>La classe abstraite <code>AbstractList</code> est fournie pour implémenter les collections à taille variable. </p><p>Pour initialiser une ArrayList il faut importer la classe <code>java.util.ArrayList</code> et écrire <code>liste = new ArrayList<T>();</code> ou <code>liste = new ArrayList<>();</code> depuis le JDK 7.0. </p><p>Depuis le JDK 1.5, on a la possibilité d’indiquer le type des éléments contenus dans une ArrayList : Entiers, <a href="/wiki/Cha%C3%AEne_de_caract%C3%A8res" title="Chaîne de caractères">chaînes de caractères</a> ou autres objets. </p> <ul><li>Cette collection est vide après l’appel du constructeur ;</li> <li>On peut ajouter autant d’éléments que l’on veut.</li></ul> <p>Pour ajouter un élément on écrit <code>liste.add(Objet);</code> </p><p>Pour accéder à un élément de l’ArrayList : <code>liste.get(index);</code> </p><p>Pour connaître le nombre d’éléments que contient une liste : <code>liste.size();</code> </p><p>Pour supprimer un élément : <code>liste.remove(index);</code> les éléments qui suivent l’élément supprimé seront décalés à gauche. </p> <div class="mw-heading mw-heading3"><h3 id="Structures_de_contrôle"><span id="Structures_de_contr.C3.B4le"></span>Structures de contrôle</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=56" title="Modifier la section : Structures de contrôle" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=56" title="Modifier le code source de la section : Structures de contrôle"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading4"><h4 id="Boucles">Boucles</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=57" title="Modifier la section : Boucles" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=57" title="Modifier le code source de la section : Boucles"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Bien qu’elles aient toutes un rôle similaire, chaque boucle est pourtant adaptée à une situation : </p> <ul><li>Structure <b>tant que</b> (adaptée pour effectuer des opérations tant qu’une condition est remplie) :</li></ul> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="o"><</span><span class="n">expression</span><span class="w"> </span><span class="n">booléenne</span><span class="o">></span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="w"> </span><span class="p">}</span> </pre></div> <ul><li>Structure <b>faire … tant que</b> (comme la structure <b>tant que</b> mais la première <a href="/wiki/It%C3%A9ration" title="Itération">itération</a> est exécutée quelle que soit la condition, pour les autres itérations la condition doit être remplie) :</li></ul> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">do</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="o"><</span><span class="n">expression</span><span class="w"> </span><span class="n">booléenne</span><span class="o">></span><span class="p">);</span> </pre></div> <ul><li>Structure <b>pour</b> (adaptée lorsqu'une collection doit être parcourue en totalité pour traitement) :</li></ul> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="o"><</span><span class="n">initialisation</span><span class="o">></span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="o"><</span><span class="n">condition</span><span class="w"> </span><span class="n">de</span><span class="w"> </span><span class="n">poursuite</span><span class="o">></span><span class="w"> </span><span class="p">;</span><span class="w"> </span><span class="o"><</span><span class="n">expression</span><span class="w"> </span><span class="n">d</span><span class="err">’</span><span class="n">incrémentation</span><span class="o">></span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="w"> </span><span class="p">}</span> </pre></div> <ul><li>Structure <b>pour chaque</b> (simplification du for en for each, dans laquelle l'expression doit être un tableau ou une collection) :</li></ul> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">type</span><span class="w"> </span><span class="n">variable</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="o"><</span><span class="n">expression</span><span class="o">></span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="w"> </span><span class="p">}</span> </pre></div> <ul><li>Structure <b>pour</b> (Java 1.5) :</li></ul> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="o"><</span><span class="n">Objet</span><span class="w"> </span><span class="n">récupérant</span><span class="w"> </span><span class="n">l</span><span class="err">’</span><span class="n">occurrence</span><span class="w"> </span><span class="n">suivante</span><span class="w"> </span><span class="n">de</span><span class="w"> </span><span class="n">la</span><span class="w"> </span><span class="n">collection</span><span class="o">></span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="o"><</span><span class="n">collection</span><span class="w"> </span><span class="n">d</span><span class="err">’</span><span class="n">objets</span><span class="o">></span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="w"> </span><span class="p">}</span> </pre></div> <div class="mw-heading mw-heading4"><h4 id="Structures_conditionnelles">Structures conditionnelles</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=58" title="Modifier la section : Structures conditionnelles" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=58" title="Modifier le code source de la section : Structures conditionnelles"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li>Structure <b>si</b> : condition simple</li></ul> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o"><</span><span class="n">expression</span><span class="w"> </span><span class="n">booléenne</span><span class="o">></span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="w"> </span><span class="p">}</span> </pre></div> <p><br /> <b>Remarque</b> : il est possible de combiner des conditions (expressions booléennes) en utilisant des opérateurs supplémentaires : le « ET » logique <code>&&</code> (instruction exécutée si toutes les conditions sont vraies) : </p> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o"><</span><span class="n">condition</span><span class="w"> </span><span class="mi">1</span><span class="o">></span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="o"><</span><span class="n">condition</span><span class="w"> </span><span class="mi">2</span><span class="o">></span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span><span class="w"> </span><span class="n">si</span><span class="w"> </span><span class="n">les</span><span class="w"> </span><span class="n">conditions</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="n">et</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="n">sont</span><span class="w"> </span><span class="n">vraies</span> <span class="p">}</span> </pre></div> <p>Il existe aussi le « OU » logique <code>||</code> (instruction exécutée si au moins une des conditions est vraie) : </p> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o"><</span><span class="n">condition</span><span class="w"> </span><span class="mi">1</span><span class="o">></span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="o"><</span><span class="n">condition</span><span class="w"> </span><span class="mi">2</span><span class="o">></span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span><span class="w"> </span><span class="n">si</span><span class="w"> </span><span class="n">au</span><span class="w"> </span><span class="n">moins</span><span class="w"> </span><span class="n">une</span><span class="w"> </span><span class="n">des</span><span class="w"> </span><span class="n">deux</span><span class="w"> </span><span class="n">est</span><span class="w"> </span><span class="n">vraie</span> <span class="p">}</span> </pre></div> <p>Enfin, il y a le « NON » logique <code>!</code> qui permet d'inverser le résultat d'une condition. </p><p>Il est possible de combiner ces opérations pour obtenir des structures conditionnelles complexes. On peut ajouter des parenthèses pour définir les priorités des conditions (comme dans un calcul). Dans les autres cas, la JVM effectue les différentes vérifications de gauche à droite. </p><p><br /> </p> <ul><li>Structure <b>si … sinon</b> : condition avec alternative unique</li></ul> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o"><</span><span class="n">expression</span><span class="w"> </span><span class="n">booléenne</span><span class="o">></span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="w"> </span><span class="p">}</span> </pre></div> <ul><li>Structure <b>si … ou si … ou si …</b> : condition avec alternatives multiples</li></ul> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o"><</span><span class="n">expression</span><span class="w"> </span><span class="n">booléenne</span><span class="o">></span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o"><</span><span class="n">expression</span><span class="w"> </span><span class="n">booléenne</span><span class="o">></span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o"><</span><span class="n">expression</span><span class="w"> </span><span class="n">booléenne</span><span class="o">></span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="w"> </span><span class="p">}</span> </pre></div> <ul><li>Structure <b>atteindre … cas x … cas y …</b> : embranchement vers un bloc d’instructions énuméré.</li></ul> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">switch</span><span class="w"> </span><span class="p">(</span><span class="o"><</span><span class="n">expression</span><span class="o">></span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="o"><</span><span class="n">constante</span><span class="o">></span><span class="p">:</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="k">case</span><span class="w"> </span><span class="o"><</span><span class="n">constante</span><span class="o">></span><span class="p">:</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="o">[</span><span class="p">...</span><span class="o">]</span> <span class="w"> </span><span class="k">default</span><span class="p">:</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="w"> </span><span class="k">break</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> </pre></div> <p>Le choix d'exécution des instructions est déterminé par l'expression suivant <tt>switch</tt> dont le type peut être entier (<tt>int</tt>, <tt>char</tt>, <tt>byte</tt> ou <tt>short</tt> ou classes enveloppes correspondantes), énuméré (<tt>enum</tt>) ou <tt>String</tt> (chaîne de caractères, depuis Java 7 seulement). </p><p><b>Remarque :</b> <i>L'opérateur conditionnel</i> ou <i>opérateur ternaire</i> <code>? :</code> peut permettre d'éviter l'utilisation d'une instruction conditionnelle. Une expression conditionnelle aura l'une ou l'autre valeur après test de la condition booléenne : </p> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="o"><</span><span class="n">expression</span><span class="w"> </span><span class="n">booléenne</span><span class="o">></span><span class="w"> </span><span class="o">?</span><span class="w"> </span><span class="o"><</span><span class="n">valeur</span><span class="w"> </span><span class="n">si</span><span class="w"> </span><span class="n">vrai</span><span class="o">></span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="o"><</span><span class="n">valeur</span><span class="w"> </span><span class="n">si</span><span class="w"> </span><span class="n">faux</span><span class="o">></span> </pre></div> <div class="mw-heading mw-heading4"><h4 id="Branchements_inconditionnels">Branchements inconditionnels</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=59" title="Modifier la section : Branchements inconditionnels" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=59" title="Modifier le code source de la section : Branchements inconditionnels"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li>L'instruction <b><tt>break</tt></b> fait sortir immédiatement de la boucle en cours (<tt>for</tt>, <tt>while</tt>, <tt>do</tt>), mais permet également de sortir d’une clause contenue dans un <tt>switch</tt>. Si le <tt>break</tt> est omis, l'exécution du <tt>switch</tt> se poursuit de <tt>case</tt> en <tt>case</tt>.</li> <li>L'instruction <b><tt>continue</tt></b> termine l’itération en cours et continue à la prochaine. Son usage ainsi que celui de <tt>break</tt> dans les boucles est controversé (de la même manière que <tt>goto</tt> dans d'autres langages structurés). Elle tendrait à favoriser un type de programmation non structurée (<i>programmation spaghetti</i>).</li> <li>L’instruction <b><tt>return</tt></b> termine une méthode. Avec <tt>return uneValeur</tt>, uneValeur sera renvoyée à la méthode appelante.</li></ul> <div class="mw-heading mw-heading4"><h4 id="Traitement_des_exceptions">Traitement des exceptions</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=60" title="Modifier la section : Traitement des exceptions" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=60" title="Modifier le code source de la section : Traitement des exceptions"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="o"><</span><span class="n">type</span><span class="w"> </span><span class="n">exception</span><span class="o">></span><span class="w"> </span><span class="o"><</span><span class="n">variable</span><span class="o">></span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="w"> </span><span class="p">}</span><span class="w"> </span> <span class="w"> </span><span class="o">[</span><span class="p">...</span><span class="o">]</span> <span class="w"> </span><span class="k">finally</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">instruction</span><span class="p">(</span><span class="n">s</span><span class="p">)</span> <span class="w"> </span><span class="p">}</span> </pre></div> <p>Le bloc de code <b>finally</b> sera exécuté quel que soit le résultat lorsque le programme sortira du bloc <b>try-catch</b>. </p><p>Voici un exemple de capture d’une exception : </p> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span> <span class="w"> </span><span class="n">FileOutputStream</span><span class="w"> </span><span class="n">fos</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span><span class="w"> </span> <span class="w"> </span> <span class="w"> </span><span class="k">try</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="c1">//Chacune de ces deux instructions peut générer une exception</span> <span class="w"> </span><span class="c1">// création d'un flux pour écrire dans un fichier</span> <span class="w"> </span><span class="n">fos</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">FileOutputStream</span><span class="p">(...);</span> <span class="w"> </span><span class="c1">// écriture de données dans ce flux</span> <span class="w"> </span><span class="n">fos</span><span class="p">.</span><span class="na">write</span><span class="p">(...);</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">catch</span><span class="w"> </span><span class="p">(</span><span class="n">IOException</span><span class="w"> </span><span class="n">e</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="c1">//Gestion de l'erreur de création ou d'écriture dans le flux</span> <span class="w"> </span><span class="n">e</span><span class="p">.</span><span class="na">printStackTrace</span><span class="p">();</span> <span class="w"> </span><span class="p">}</span> <span class="w"> </span><span class="k">finally</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="c1">//Cette section de code est toujours exécutée, qu’il y ait une exception ou pas</span> <span class="w"> </span><span class="c1">// fermeture du flux s'il a été ouvert</span> <span class="w"> </span><span class="k">if</span><span class="p">(</span><span class="n">fos</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="kc">null</span><span class="p">)</span><span class="w"> </span><span class="n">fos</span><span class="p">.</span><span class="na">close</span><span class="p">();</span> <span class="w"> </span><span class="p">}</span> </pre></div> <p>Cet exemple permet d’illustrer le mécanisme des exceptions en Java. Dans le cas d’une erreur d’entrée/sortie dans le bloc <b>try</b>, l’exécution reprend dans le bloc <b>catch</b> correspondant à cette situation (exception de type <b>IOException</b>). </p><p>Dans ce bloc <b>catch</b>, la variable <b>e</b> référence l’exception qui s’est produite. Ici, nous invoquons la méthode <b>printStackTrace()</b> qui affiche dans la console des informations sur l’exception qui s’est produite : nom, motif, état de la pile d’appels au moment de la levée de l’exception et, éventuellement, numéro de ligne auquel l’erreur s’est produite. </p><p>Le bloc <b>finally</b> est ensuite exécuté (ici pour refermer les ressources utilisées). Il ne s’agit ici que d’un exemple, l’action à mettre en œuvre lorsqu’une exception survient dépend du fonctionnement général de l’application et de la nature de l’exception. </p> <div class="mw-heading mw-heading4"><h4 id="Types_génériques"><span id="Types_g.C3.A9n.C3.A9riques"></span>Types génériques</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=61" title="Modifier la section : Types génériques" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=61" title="Modifier le code source de la section : Types génériques"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Un type générique est autrement appelé un Template, il prend un ou plusieurs autres types en arguments. Le type passé en paramètre est déterminé lors de l'instanciation. </p><p>Cela permet notamment dans le cadre des ArrayList d'éviter les transtypages. </p> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">ArrayList</span><span class="o"><</span><span class="n">E</span><span class="o">></span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="n">ArrayList</span><span class="o"><</span><span class="n">String</span><span class="o">></span><span class="w"> </span><span class="n">al</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">ArrayList</span><span class="o"><</span><span class="n">String</span><span class="o">></span><span class="p">();</span> <span class="w"> </span><span class="p">}</span> </pre></div> <p>Ces types génériques ne sont utilisés qu'à la compilation, et non directement dans le bytecode. </p><p>Différence avec le C++ : les templates en C++ dupliquent une classe pour chaque type. Java, au contraire, agit au moment de la compilation comme si on avait dupliqué les classes de ces types intrinsèques mais ne traite en réalité qu'avec une seule classe. </p> <div class="mw-heading mw-heading4"><h4 id="Codage_du_code_source">Codage du code source</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=62" title="Modifier la section : Codage du code source" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=62" title="Modifier le code source de la section : Codage du code source"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Les spécifications du langage Java précisent qu’il est formé de caractères au format <a href="/wiki/UTF-16" title="UTF-16">UTF-16</a>, ce qui permet l’utilisation dans le code source de tous les caractères existant dans le monde : </p> <div class="mw-highlight mw-highlight-lang-java mw-content-ltr" dir="ltr"><pre><span></span><span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kd">class</span> <span class="nc">HelloWorld</span><span class="w"> </span><span class="p">{</span> <span class="w"> </span><span class="kd">private</span><span class="w"> </span><span class="n">String</span><span class="w"> </span><span class="n">text</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"hello world"</span><span class="p">;</span> <span class="w"> </span><span class="p">}</span> </pre></div> <p>Pour assurer la portabilité entre plateformes, les noms de <a href="/wiki/Classe_(informatique)" title="Classe (informatique)">classes</a> devraient néanmoins être formés uniquement de caractères <a href="/wiki/American_Standard_Code_for_Information_Interchange" title="American Standard Code for Information Interchange">ASCII</a>. </p> <div class="mw-heading mw-heading3"><h3 id="Opérateur_de_comparaison"><span id="Op.C3.A9rateur_de_comparaison"></span>Opérateur de comparaison</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=63" title="Modifier la section : Opérateur de comparaison" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=63" title="Modifier le code source de la section : Opérateur de comparaison"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <table class="wikitable"> <tbody><tr> <th>Opérateur</th> <th>Signification </th></tr> <tr> <td>==</td> <td>Égal (ne pas confondre avec <tt>=</tt> qui est l'opérateur d'assignation) </td></tr> <tr> <td>!=</td> <td>Différent </td></tr> <tr> <td><</td> <td>Inférieur </td></tr> <tr> <td>></td> <td>Supérieur </td></tr> <tr> <td><=</td> <td>Inférieur ou égal </td></tr> <tr> <td>>=</td> <td>Supérieur ou égal </td></tr></tbody></table> <div class="mw-heading mw-heading2"><h2 id="Critiques_du_langage_Java">Critiques du langage Java</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=64" title="Modifier la section : Critiques du langage Java" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=64" title="Modifier le code source de la section : Critiques du langage Java"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="Failles_de_sécurité"><span id="Failles_de_s.C3.A9curit.C3.A9"></span>Failles de sécurité</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=65" title="Modifier la section : Failles de sécurité" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=65" title="Modifier le code source de la section : Failles de sécurité"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>La plate-forme de développement Java propose un gestionnaire de sécurité<sup id="cite_ref-83" class="reference"><a href="#cite_note-83"><span class="cite_crochet">[</span>83<span class="cite_crochet">]</span></a></sup> (<i>cf. supra</i> § Exécution sécurisée de code distant) qui permet à un utilisateur de tester un exécutable douteux dans un « <a href="/w/index.php?title=Sandbox_(informatique)&action=edit&redlink=1" class="new" title="Sandbox (informatique) (page inexistante)">bac à sable</a> » pour éviter de contaminer ses périphériques de stockage. Ce mode d'exécution restreint l'accès par l'exécutable à des options et interfaces exploitées par les <a href="/wiki/Logiciel_malveillant" title="Logiciel malveillant">logiciels malveillants</a> : les manipulations sur les bases de fichiers locaux, plusieurs commandes systèmes ou de bas niveau, ou l'accès au <a href="/wiki/R%C3%A9seau_informatique" title="Réseau informatique">réseau informatique</a>. </p><p>Peu après 2010, des chercheurs ont mis au jour plusieurs failles de sécurité dans les versions de Java les plus courantes : celle d'Oracle, par exemple, laisse filtrer du code non-autorisé malgré le mécanisme d’isolation, et expose ses utilisateurs à des piratages. Ces failles n'affectent que les applications Java exécutant aléatoirement des programmes non explicitement approuvés par l'utilisateur : greffons de navigateur web exploitant des applets Java téléchargés depuis des sites ouverts. </p><p>Le 31 août 2012, une grave faille de sécurité a été détectée dans Java 6 et 7 pour <a href="/wiki/Microsoft_Windows" title="Microsoft Windows">Microsoft Windows</a>, <a href="/wiki/MacOS" title="MacOS">OS X</a> et Linux, qui permettait de <a href="/wiki/Exploit_(informatique)" title="Exploit (informatique)">prendre le contrôle à distance</a> en chargeant une <a href="/wiki/Page_web" title="Page web">page web</a> factice<sup id="cite_ref-84" class="reference"><a href="#cite_note-84"><span class="cite_crochet">[</span>84<span class="cite_crochet">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-85" class="reference"><a href="#cite_note-85"><span class="cite_crochet">[</span>85<span class="cite_crochet">]</span></a></sup>. La même faille a été retrouvée dans <span class="nowrap">Java 5</span> par la suite<sup id="cite_ref-86" class="reference"><a href="#cite_note-86"><span class="cite_crochet">[</span>86<span class="cite_crochet">]</span></a></sup>. Ainsi, le 10 janvier 2013, trois spécialistes de l'informatique prirent position contre Java, affirmant à l'Agence <a href="/wiki/Reuters" title="Reuters">Reuters</a> que ce langage n'était pas sûr et que les internautes feraient bien de le désactiver par défaut. Jaime Blasco, directeurs du laboratoire d'AlienVault Labs, a déclaré : <span class="citation">« Java est un vrai fouillis. Ce n'est pas sûr. Il faut le désactiver<sup id="cite_ref-87" class="reference"><a href="#cite_note-87"><span class="cite_crochet">[</span>87<span class="cite_crochet">]</span></a></sup>. »</span> </p><p>En 2014, compte tenu de ces problèmes de sécurité et de vulnérabilité avec Java, l'influenceur <a href="/wiki/Brian_Krebs" title="Brian Krebs">Brian Krebs</a> appelait les internautes à retirer le greffon Java de leur navigateur<sup id="cite_ref-88" class="reference"><a href="#cite_note-88"><span class="cite_crochet">[</span>88<span class="cite_crochet">]</span></a></sup>. <span class="citation">« C'était prometteur au début, mais son utilité pour la navigation sur le web a fait long feu, et c'est à présent un cauchemar qui fait les délices des cyber-criminels aux dépens des internautes<sup id="cite_ref-89" class="reference"><a href="#cite_note-89"><span class="cite_crochet">[</span>89<span class="cite_crochet">]</span></a></sup>. »</span> </p><p>Dans le cas particulier du greffon Java de <a href="/wiki/Navigateur_web" title="Navigateur web">navigateurs web</a>, comme il n'est indispensable que pour un petit nombre d'applications en ligne, plusieurs experts en sécurité informatique recommandent de limiter au maximum le recours à celui-ci<sup id="cite_ref-90" class="reference"><a href="#cite_note-90"><span class="cite_crochet">[</span>90<span class="cite_crochet">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-91" class="reference"><a href="#cite_note-91"><span class="cite_crochet">[</span>91<span class="cite_crochet">]</span></a></sup>. </p><p>Avec la disparition progressive du greffon Java de navigateur durant les années 2010, et l'évolution par des mises à jour, Java n'est plus considéré à la fin des années 2010 comme un risque majeur pour les ordinateurs de bureau<sup id="cite_ref-92" class="reference"><a href="#cite_note-92"><span class="cite_crochet">[</span>92<span class="cite_crochet">]</span></a></sup>. Il a, au début des années 2020, en tant que premier langage des applications d'entreprise, un niveau de sécurité similaire à son principal concurrent dans ce domaine, <a href="/wiki/Microsoft_.NET" title="Microsoft .NET">Microsoft .NET</a><sup id="cite_ref-93" class="reference"><a href="#cite_note-93"><span class="cite_crochet">[</span>93<span class="cite_crochet">]</span></a></sup>. </p> <div class="mw-heading mw-heading3"><h3 id="La_«_classite_»"><span id="La_.C2.AB_classite_.C2.BB"></span>La « classite »</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=66" title="Modifier la section : La « classite »" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=66" title="Modifier le code source de la section : La « classite »"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Dans son essai sur la conception des logiciels<sup id="cite_ref-94" class="reference"><a href="#cite_note-94"><span class="cite_crochet">[</span>94<span class="cite_crochet">]</span></a></sup>, <a href="/wiki/John_Ousterhout" title="John Ousterhout">J. Ousterhout</a>, l'auteur de <a href="/wiki/Tool_Command_Language" title="Tool Command Language">Tcl/Tk</a>, diagnostique chez les concepteurs de Java une forme d'<a href="/wiki/Id%C3%A9e_fixe" title="Idée fixe">idée fixe</a> qu'il appelle « classite » (<i>classitis</i>), à savoir que <span class="citation">« comme les <a href="/wiki/Classe_(informatique)" title="Classe (informatique)">classes objet</a> sont favorables à la structuration du code, plus on crée de classes, mieux c'est. »</span> Selon cet auteur, la multiplication du nombre de classes objet, si elle favorise l'écriture de routines individuellement courtes et faciles à analyser, augmente corrélativement la complexité de l'ensemble d'un programme et le rend difficile à comprendre, à corriger et à étendre. </p> <div class="mw-heading mw-heading3"><h3 id="La_généricité_du_langage_Java"><span id="La_g.C3.A9n.C3.A9ricit.C3.A9_du_langage_Java"></span>La généricité du langage Java</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=67" title="Modifier la section : La généricité du langage Java" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=67" title="Modifier le code source de la section : La généricité du langage Java"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Lorsque Java 5.0 a été doté de la <a href="/wiki/Programmation_g%C3%A9n%C3%A9rique" class="mw-redirect" title="Programmation générique">programmation générique</a>, son répertoire de classes objet (dont plusieurs étaient même déjà <a href="/wiki/D%C3%A9su%C3%A9tude_(linguistique)" title="Désuétude (linguistique)">désuètes</a>!) était très fourni. Il a été décidé d'utiliser la généricité des procédures en mode « ignorer » (<i>Type erasure</i>) pour favoriser une <a href="/wiki/Compatibilit%C3%A9_ascendante_et_descendante" title="Compatibilité ascendante et descendante">compatibilité ascendante</a> et réutiliser le code des classes existantes ; mais cette décision a limité les avantages de la programmation générique par rapport à d'autres langages<sup id="cite_ref-95" class="reference"><a href="#cite_note-95"><span class="cite_crochet">[</span>95<span class="cite_crochet">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-96" class="reference"><a href="#cite_note-96"><span class="cite_crochet">[</span>96<span class="cite_crochet">]</span></a></sup>, et l'accumulation de <a href="/wiki/M%C3%A9tacaract%C3%A8re" title="Métacaractère">métacaractères</a> dans le typage a rendu Java incohérent<sup id="cite_ref-97" class="reference"><a href="#cite_note-97"><span class="cite_crochet">[</span>97<span class="cite_crochet">]</span></a></sup>. </p> <div class="mw-heading mw-heading3"><h3 id="Types_de_données_manquants"><span id="Types_de_donn.C3.A9es_manquants"></span>Types de données manquants</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=68" title="Modifier la section : Types de données manquants" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=68" title="Modifier le code source de la section : Types de données manquants"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Java n'a pas, en propre, de type d'<a href="/wiki/Entier_(informatique)#Types_d'entiers_courants" title="Entier (informatique)">entier non signé</a> : dans ce langage, ils sont donc souvent produits par des sous-programmes écrits en <a href="/wiki/Langage_C" class="mw-redirect" title="Langage C">langage C</a>. Cette lacune s'oppose, du reste, à un passage de paramètre fluide entre les deux langages, C et Java. Enfin, on sait que les grands entiers positifs sont très utilisés, notamment pour la <a href="/wiki/Cryptographie" title="Cryptographie">cryptographie</a>, ce qui rend Java moins attractif pour ce genre de traitement<sup id="cite_ref-98" class="reference"><a href="#cite_note-98"><span class="cite_crochet">[</span>98<span class="cite_crochet">]</span></a></sup>. Bien qu'on puisse en partie contourner ce problème par conversion de code et recours à des types de données plus grands (par exemple en utilisant un entier 64 bits pour coder un entier 32 bits non signé), Java est malcommode pour la manipulation des grands entiers<sup id="cite_ref-99" class="reference"><a href="#cite_note-99"><span class="cite_crochet">[</span>99<span class="cite_crochet">]</span></a></sup>. </p> <div class="mw-heading mw-heading3"><h3 id="Écarts_aux_normes_de_codage_en_virgule_flottante"><span id=".C3.89carts_aux_normes_de_codage_en_virgule_flottante"></span>Écarts aux normes de codage en virgule flottante</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=69" title="Modifier la section : Écarts aux normes de codage en virgule flottante" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=69" title="Modifier le code source de la section : Écarts aux normes de codage en virgule flottante"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>S'il est vrai que l'arithmétique en virgule flottante de Java respecte pour l'essentiel les directives de la norme <a href="/wiki/IEEE_754" title="IEEE 754">IEEE 754</a> (<i>Standard for Binary Floating-Point Arithmetic</i>), elle s'en écarte sur quelques points (par exemple l'<a href="/wiki/Syst%C3%A8me_de_gestion_d%27exceptions" title="Système de gestion d'exceptions">indicateur binaire de débordement de type</a> ou la gestion des arrondis), même lorsque l'on active le modificateur <code>strictfp</code>. En outre, les types de flottants de précision étendue reconnus par la norme 754 et déjà disponibles sur de nombreux processeurs, n'existent pas en Java<sup id="cite_ref-100" class="reference"><a href="#cite_note-100"><span class="cite_crochet">[</span>100<span class="cite_crochet">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-101" class="reference"><a href="#cite_note-101"><span class="cite_crochet">[</span>101<span class="cite_crochet">]</span></a></sup>. </p> <div class="mw-heading mw-heading3"><h3 id="Faible_performance">Faible performance</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=70" title="Modifier la section : Faible performance" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=70" title="Modifier le code source de la section : Faible performance"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Dans les débuts de Java (c'est-à-dire avant le lancement de la <a href="/wiki/HotSpot" title="HotSpot">machine virtuelle HotSpot</a> dans Java 1.3 en 2000), la lenteur de Java était bien connue. La plate-forme comparative <i>Benchmarks</i> avait notamment relevé que Java était deux fois plus lent que le langage C<sup id="cite_ref-debchart_102-0" class="reference"><a href="#cite_note-debchart-102"><span class="cite_crochet">[</span>102<span class="cite_crochet">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-103" class="reference"><a href="#cite_note-103"><span class="cite_crochet">[</span>103<span class="cite_crochet">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-104" class="reference"><a href="#cite_note-104"><span class="cite_crochet">[</span>104<span class="cite_crochet">]</span></a></sup>. </p><p>Mais il est vrai que la vitesse d'exécution de Java s'est considérablement améliorée depuis<sup id="cite_ref-LewisNeumann_105-0" class="reference"><a href="#cite_note-LewisNeumann-105"><span class="cite_crochet">[</span>105<span class="cite_crochet">]</span></a></sup>. La <a href="/wiki/Compilation_%C3%A0_la_vol%C3%A9e" title="Compilation à la volée">compilation à la volée</a>, moyennant une certaine discipline dans l'écriture du code source, est aujourd'hui à peine inférieure à celle des compilateurs natifs<sup id="cite_ref-LewisNeumann_105-1" class="reference"><a href="#cite_note-LewisNeumann-105"><span class="cite_crochet">[</span>105<span class="cite_crochet">]</span></a></sup><sup class="reference cite_virgule">,</sup><sup id="cite_ref-Walkermere_106-0" class="reference"><a href="#cite_note-Walkermere-106"><span class="cite_crochet">[</span>106<span class="cite_crochet">]</span></a></sup>. </p> <div class="mw-heading mw-heading2"><h2 id="Environnements_de_développement"><span id="Environnements_de_d.C3.A9veloppement"></span>Environnements de développement</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=71" title="Modifier la section : Environnements de développement" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=71" title="Modifier le code source de la section : Environnements de développement"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <div class="mw-heading mw-heading3"><h3 id="JavaStyle">JavaStyle</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=72" title="Modifier la section : JavaStyle" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=72" title="Modifier le code source de la section : JavaStyle"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Les JavaStyle sont des conventions de programmation en langage Java définies par Sun. Le respect de conventions strictes assure une homogénéité dans le <a href="/wiki/Code_source" title="Code source">code source</a> d’une application développée par toute une équipe et favorise la diffusion du code source auprès d’une communauté partageant les mêmes conventions de codage. </p><p>Le <i>lower <a href="/wiki/Camel_case" title="Camel case">camel case</a></i> est utilisé pour les noms de méthodes et de variables. </p> <div class="mw-heading mw-heading3"><h3 id="Frameworks_et_API">Frameworks et API</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=73" title="Modifier la section : Frameworks et API" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=73" title="Modifier le code source de la section : Frameworks et API"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Sun fournit un grand nombre de <span class="lang-en" lang="en"><i><a href="/wiki/Framework" title="Framework">frameworks</a></i></span> et d’<a href="/wiki/Interface_de_programmation" title="Interface de programmation">API</a> afin de permettre l’utilisation de Java pour des usages très diversifiés. </p><p>On distingue essentiellement quatre grands <span class="lang-en" lang="en"><i>frameworks</i></span> : </p> <ul><li><a href="/wiki/Java_SE" title="Java SE">Java SE</a> (anciennement J2SE) : Ce <span class="lang-en" lang="en"><i>framework</i></span> est destiné aux applications pour poste de travail ;</li> <li><a href="/wiki/Java_EE" class="mw-redirect" title="Java EE">Java EE</a> (anciennement J2EE) : Ce <span class="lang-en" lang="en"><i>framework</i></span> est spécialisé dans les applications serveurs. Il contient pour ce faire un grand nombre d’API et d’extensions ;</li> <li><a href="/wiki/Java_ME" title="Java ME">Java ME</a> (anciennement J2ME) : Ce <span class="lang-en" lang="en"><i>framework</i></span> est spécialisé dans les applications mobiles ;</li> <li><a href="/wiki/JavaFX" title="JavaFX">JavaFX</a> (à ne pas confondre avec <a href="/wiki/JavaFX" title="JavaFX">JavaFX</a>) : Ce <span class="lang-en" lang="en"><i>framework</i></span> est spécialisé dans les applications liées aux cartes à puces et autres SmartCards. Il recouvre notamment l'ancien <a href="/wiki/Java_Card" title="Java Card">Java Card</a>.</li></ul> <p>La persistance est fondée sur les standards : </p> <ul><li><a href="/wiki/Java_Database_Connectivity" title="Java Database Connectivity">JDBC</a> (<span class="lang-en" lang="en"><i>Java DataBase Connectivity</i></span>) ;</li> <li><a href="/wiki/Java_Data_Objects" title="Java Data Objects">JDO</a> (<span class="lang-en" lang="en"><i>Java Data Objects</i></span>) ;</li> <li><a href="/wiki/Enterprise_JavaBeans" title="Enterprise JavaBeans">EJB</a> (<span class="lang-en" lang="en"><i>Enterprise JavaBeans</i></span>).</li></ul> <p>On trouve toutefois de nombreuses autres technologies, API et extensions optionnelles pour Java : </p> <ul><li><a href="/w/index.php?title=Java_Media_Framework&action=edit&redlink=1" class="new" title="Java Media Framework (page inexistante)">Java Media Framework</a> <a href="https://en.wikipedia.org/wiki/Java_Media_Framework" class="extiw" title="en:Java Media Framework"><span class="indicateur-langue" title="Article en anglais : « Java Media Framework »">(en)</span></a> : <a href="/wiki/Framework_multim%C3%A9dia" title="Framework multimédia">framework multimédia</a>, contenant notamment les API Java2D, <a href="/wiki/Java_3D" title="Java 3D">Java 3D</a>, <a href="/w/index.php?title=JavaSound&action=edit&redlink=1" class="new" title="JavaSound (page inexistante)">JavaSound</a>, <a href="/w/index.php?title=Java_advanced_Imaging&action=edit&redlink=1" class="new" title="Java advanced Imaging (page inexistante)">Java advanced Imaging</a> ;</li> <li><a href="/w/index.php?title=Java_Telephony_API&action=edit&redlink=1" class="new" title="Java Telephony API (page inexistante)">Java Telephony API</a> <a href="https://en.wikipedia.org/wiki/Java_Telephony_API" class="extiw" title="en:Java Telephony API"><span class="indicateur-langue" title="Article en anglais : « Java Telephony API »">(en)</span></a> ;</li> <li><a href="/w/index.php?title=Java_TV&action=edit&redlink=1" class="new" title="Java TV (page inexistante)">Java TV</a> <a href="https://en.wikipedia.org/wiki/Java_TV" class="extiw" title="en:Java TV"><span class="indicateur-langue" title="Article en anglais : « Java TV »">(en)</span></a> ;</li> <li><a href="/wiki/JXTA" title="JXTA">JXTA</a> : Système de <a href="/wiki/Pair_%C3%A0_pair" class="mw-redirect" title="Pair à pair">peer-to-peer</a> reposant sur Java ;</li> <li><a href="/wiki/Jini" title="Jini">Jini</a> ;</li> <li><a href="/wiki/Java_API_for_Integrated_Networks" title="Java API for Integrated Networks">JAIN</a> ;</li> <li><a href="/w/index.php?title=Java_Dynamic_Management_Kit&action=edit&redlink=1" class="new" title="Java Dynamic Management Kit (page inexistante)">Java Dynamic Management Kit</a> <a href="https://es.wikipedia.org/wiki/JDMK" class="extiw" title="es:JDMK"><span class="indicateur-langue" title="Article en espagnol : « JDMK »">(es)</span></a> (JMDK) ;</li> <li><a href="/wiki/Java_Speech_API" title="Java Speech API">Java Speech</a> ;</li> <li><a href="/wiki/Java_Metadata_Interface" title="Java Metadata Interface">JMI</a> ;</li> <li><a href="/w/index.php?title=JavaSpaces&action=edit&redlink=1" class="new" title="JavaSpaces (page inexistante)">JavaSpaces</a>.</li></ul> <div class="mw-heading mw-heading3"><h3 id="Outils_de_développement"><span id="Outils_de_d.C3.A9veloppement"></span>Outils de développement</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=74" title="Modifier la section : Outils de développement" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=74" title="Modifier le code source de la section : Outils de développement"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>La programmation peut se faire depuis une <a href="/wiki/Interface_en_ligne_de_commande" title="Interface en ligne de commande">invite de commande</a> en lançant un compilateur Java (souvent nommé <tt>javac</tt>), mais pour avoir plus de confort, il est préférable d’utiliser un <a href="/wiki/Environnement_de_d%C3%A9veloppement_int%C3%A9gr%C3%A9" class="mw-redirect" title="Environnement de développement intégré">environnement de développement intégré</a> ou IDE (qui permet de compiler automatiquement), certains sont gratuits. Par exemple : </p> <div style="column-width:15em;column-gap:1em;" class="colonnes"> <ul><li><a href="/wiki/BlueJ" title="BlueJ">BlueJ</a> ;</li> <li><a href="/wiki/CodeWarrior" title="CodeWarrior">CodeWarrior</a> ;</li> <li><a href="/wiki/Eclipse_(projet)" title="Eclipse (projet)">Eclipse</a> ;</li> <li><a href="/wiki/IntelliJ_IDEA" title="IntelliJ IDEA">IntelliJ IDEA</a> ;</li> <li><a href="/wiki/JBuilder" title="JBuilder">JBuilder</a> ;</li> <li><a href="/wiki/JCreator" title="JCreator">JCreator</a> ;</li> <li><a href="/wiki/JDeveloper" title="JDeveloper">jDeveloper</a> 2 ;</li> <li><a href="/wiki/NetBeans" title="NetBeans">NetBeans</a>.</li></ul> </div> <div class="mw-heading mw-heading4"><h4 id="Automatisation">Automatisation</h4><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=75" title="Modifier la section : Automatisation" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=75" title="Modifier le code source de la section : Automatisation"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Un programme Java peut être produit avec des outils qui automatisent le processus de construction (c'est-à-dire l'automatisation de certaines tâches faisant appel à un nombre potentiellement grand de dépendances comme l'utilisation de bibliothèques, la compilation, la génération d'archives, de documentation, le déploiement, etc.). Les plus utilisés sont : </p> <ul><li><a href="/wiki/Apache_Ant" title="Apache Ant">Apache Ant</a> (génération portable, décrite en XML) ;</li> <li><a href="/wiki/Apache_Maven" title="Apache Maven">Apache Maven</a> (génération portable, décrite en XML) ;</li> <li><a href="/wiki/Gradle" title="Gradle">Gradle</a> (génération portable, en utilisant le langage <a href="/wiki/Groovy_(langage)" title="Groovy (langage)">Groovy</a>) ;</li> <li><a href="/wiki/SCons" title="SCons">SCons</a> (génération portable, en utilisant le langage <a href="/wiki/Python_(langage)" title="Python (langage)">Python</a>). Exemple :</li></ul> <pre>Java(target = 'classes', source = 'src') Jar(target = 'test.jar', source = 'classes') </pre> <p>Résultats : </p> <pre>  % scons -Q javac -d classes -sourcepath src src/Exemple1.java src/Exemple2.java src/Exemple3.java jar cf test.jar classes </pre> <div class="mw-heading mw-heading2"><h2 id="Notes_et_références"><span id="Notes_et_r.C3.A9f.C3.A9rences"></span>Notes et références</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=76" title="Modifier la section : Notes et références" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=76" title="Modifier le code source de la section : Notes et références"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Cet article est partiellement ou en totalité issu de l’article de Wikipédia en anglais intitulé <span class="plainlinks">« <a href="https://en.wikipedia.org/wiki/Java_(software_platform)" class="extiw" title="en:Java (software platform)">Java (software platform)</a> » <small>(<a class="external text" href="https://en.wikipedia.org/wiki/Java_(software_platform)?action=history">voir la liste des auteurs</a>)</small></span>.</li></ul> <div class="references-small decimal" style=""><div class="mw-references-wrap mw-references-columns"><ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="https://www.oracle.com/news/announcement/oracle-releases-java-23-2024-09-17/">Oracle Releases Java 23</a></span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a> </span><span class="reference-text"><span class="lang-en" lang="en"><i>In Java 5.0, several features (the <a href="/w/index.php?title=Foreach&action=edit&redlink=1" class="new" title="Foreach (page inexistante)">enhanced for loop</a>, <a href="/w/index.php?title=Autoboxing&action=edit&redlink=1" class="new" title="Autoboxing (page inexistante)">autoboxing</a>, <a href="/w/index.php?title=Varargs&action=edit&redlink=1" class="new" title="Varargs (page inexistante)">varargs</a>, <a href="/wiki/Annotation_(Java)" title="Annotation (Java)">annotations</a> and <a href="/w/index.php?title=Enumerated_type&action=edit&redlink=1" class="new" title="Enumerated type (page inexistante)">enums</a>) were introduced, after proving themselves useful in the similar (and competing) language <a rel="nofollow" class="external autonumber" href="http://www.barrycornelius.com/papers/java5/">[1]</a><a rel="nofollow" class="external autonumber" href="http://www.levenez.com/lang/">[2]</a><a rel="nofollow" class="external autonumber" href="http://eclipsezone.com/eclipse/forums/t54318.html">[3]</a></i></span></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://www.python.org/dev/peps/pep-0318/"><cite style="font-style:normal;">PEP 318 -- Decorators for Functions and Methods</cite></a> », sur <span class="italique">Python.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2020-08-01" data-sort-value="2020-08-01"><abbr class="abbr" title="premier">1<sup>er</sup></abbr> août 2020</time>)</small></span>.</span> </li> <li id="cite_note-:1-4"><span class="mw-cite-backlink"><a href="#cite_ref-:1_4-0">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Bienfait2024"><span class="ouvrage" id="Guillaume_Bienfait2024">Guillaume Bienfait, « <a rel="nofollow" class="external text" href="https://www.sqli.com/fr-fr/insights-news/blog/java-23"><cite style="font-style:normal;">Java 23 : quelles sont les nouveautés ?</cite></a> », <time class="nowrap" datetime="2024-09-17" data-sort-value="2024-09-17">17 septembre 2024</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2024-09-25" data-sort-value="2024-09-25">25 septembre 2024</time>)</small></span></span></span> </li> <li id="cite_note-5"><span class="mw-cite-backlink"><a href="#cite_ref-5">↑</a> </span><span class="reference-text"><span class="ouvrage" id="1996">« <a rel="nofollow" class="external text" href="http://www.javaworld.com/article/2077265/core-java/so-why-did-they-decide-to-call-it-java-.html"><cite style="font-style:normal;">So why did they decide to call it Java?</cite></a> », sur <span class="italique">JavaWorld</span>, <time class="nowrap" datetime="1996-10-04" data-sort-value="1996-10-04">4 octobre 1996</time></span></span> </li> <li id="cite_note-6"><span class="mw-cite-backlink"><a href="#cite_ref-6">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="https://books.google.fr/books?id=q45_UDI77PoC&pg=PA162&dq=java+language+coffee&hl=fr&sa=X&ved=0ahUKEwiK3Pq6qLfPAhWGSRoKHWnGDUoQ6AEIRzAE#v=onepage&q=java%20language%20coffee&f=false"><i>Core Web Programming</i></a>, Marty Hall, Larry Brown</span> </li> <li id="cite_note-7"><span class="mw-cite-backlink"><a href="#cite_ref-7">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="https://books.google.fr/books?id=271wpK2CQ0EC&pg=PA2&dq=java+language+coffee&hl=fr&sa=X&ved=0ahUKEwiK3Pq6qLfPAhWGSRoKHWnGDUoQ6AEIKjAA#v=onepage&q=coffee&f=false"><i>Object-oriented Programming with Java</i></a>, Barry J. Holmes, Daniel T. Joyce</span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><a href="#cite_ref-8">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20100105045840/http://java.sun.com/features/1998/05/birthday.html"><i><span class="lang-en" lang="en">Java Technology: The Early Years</span></i></a>.</span> </li> <li id="cite_note-9"><span class="mw-cite-backlink"><a href="#cite_ref-9">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.sun.com/smi/Press/sunflash/1996-01/sunflash.960109.14048.html"><span class="lang-en" lang="en"><i>Sun Microsystems Announces Formation Of Javasoft</i></span></a>.</span> </li> <li id="cite_note-10"><span class="mw-cite-backlink"><a href="#cite_ref-10">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="http://riastats.com/"><cite style="font-style:normal;" lang="en">HugeDomains</cite></a> », sur <span class="italique">HugeDomains</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2023-04-12" data-sort-value="2023-04-12">12 avril 2023</time>)</small></span>.</span> </li> <li id="cite_note-11"><span class="mw-cite-backlink"><a href="#cite_ref-11">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.microej.com/">MicroEJ</a></span> </li> <li id="cite_note-12"><span class="mw-cite-backlink"><a href="#cite_ref-12">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.stm32java.com">Java sur STM32</a></span> </li> <li id="cite_note-13"><span class="mw-cite-backlink"><a href="#cite_ref-13">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.java.com/fr/download/faq/java_6.xml">Apple Java 6 pour Mac OS X</a> FAQ <a rel="nofollow" class="external free" href="http://www.java.com/fr/download">http://www.java.com/fr/download</a></span> </li> <li id="cite_note-14"><span class="mw-cite-backlink"><a href="#cite_ref-14">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="https://developer.apple.com/library/mac/#technotes/tn2002/tn2110.html#TABLES">Technical Notes TN2110</a> developer.apple.com</span> </li> <li id="cite_note-15"><span class="mw-cite-backlink"><a href="#cite_ref-15">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <span class="lang-en" lang="en"><i>"Q: What components of the JDK software are you open sourcing today? A: We’re open sourcing the Java programming language compiler ("javac"), and the Java HotSpot virtual machine."</i></span><a rel="nofollow" class="external text" href="http://www.sun.com/software/opensource/java/faq.jsp#b2"><span class="lang-en" lang="en"><i>Free and Open Source Java FAQ</i></span></a>; <span class="lang-en" lang="en">the source is being released via the <a rel="nofollow" class="external text" href="https://openjdk.dev.java.net/">OpenJDK</a> project</span>.</span> </li> <li id="cite_note-16"><span class="mw-cite-backlink"><a href="#cite_ref-16">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2006">« <a rel="nofollow" class="external text" href="http://www.sun.com/smi/Press/sunflash/2006-11/sunflash.20061113.1.xml"><cite style="font-style:normal;">Sun Open Sources Java Platform</cite></a> », Sun Microsystems, <time class="nowrap" datetime="2006-11-13" data-sort-value="2006-11-13">13 novembre 2006</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2006-11-13" data-sort-value="2006-11-13">13 novembre 2006</time>)</small></span></span> </li> <li id="cite_note-17"><span class="mw-cite-backlink"><a href="#cite_ref-17">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://archive.wikiwix.com/cache/20110223125200/http://blog.softwhere.org/archives/196"><cite style="font-style:normal;">Rich Sharples’ Blog  » Blog Archive  » Java is finally Free and Open</cite></a> », sur <span class="italique">softwhere.org via <a href="/wiki/Wikiwix" title="Wikiwix">Wikiwix</a></span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2023-10-08" data-sort-value="2023-10-08">8 octobre 2023</time>)</small></span>.</span> </li> <li id="cite_note-18"><span class="mw-cite-backlink"><a href="#cite_ref-18">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.itassetmanagement.net/2018/05/01/oracle-to-charge-for-java-from-jan-2019/"><cite style="font-style:normal;" lang="en">Oracle to charge for Java from Jan 2019</cite></a> », sur <span class="italique">itassetmanagement.net</span></span></span> </li> <li id="cite_note-19"><span class="mw-cite-backlink"><a href="#cite_ref-19">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2023"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://palisadecompliance.com/resource/java-licensing-change-january-2023/"><cite style="font-style:normal;" lang="en">Oracle Java Licensing Changes</cite></a> », sur <span class="italique">Palisadecompliance</span>, <time class="nowrap" datetime="2023-01" data-sort-value="2023-01">janvier 2023</time></span></span> </li> <li id="cite_note-20"><span class="mw-cite-backlink"><a href="#cite_ref-20">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2023"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.techzine.eu/news/applications/101214/oracle-changes-its-java-pricing-as-customers-brace-for-higher-costs/"><cite style="font-style:normal;" lang="en">Oracle changes its Java pricing as customers brace for higher costs</cite></a> », sur <span class="italique">techzine.eu</span>, <time class="nowrap" datetime="2023-01-31" data-sort-value="2023-01-31">31 janvier 2023</time></span></span> </li> <li id="cite_note-21"><span class="mw-cite-backlink"><a href="#cite_ref-21">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2023"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://sdtimes.com/java/oracle-makes-significant-change-to-its-java-license/"><cite style="font-style:normal;" lang="en">Oracle makes significant change to its Java license</cite></a> », sur <span class="italique">SDTimes</span>, <time class="nowrap" datetime="2023-02-08" data-sort-value="2023-02-08">8 février 2023</time></span></span> </li> <li id="cite_note-22"><span class="mw-cite-backlink"><a href="#cite_ref-22">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.jcp.org/en/jsr/detail?id=901"><span class="lang-en" lang="en"><i>The Java Community Process(SM) Program - JSRs : Java Specification Requests - detail JSR# 901</i></span></a></span> </li> <li id="cite_note-23"><span class="mw-cite-backlink"><a href="#cite_ref-23">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.java.com/en/about/brand/naming.jsp">Java Naming</a> <a rel="nofollow" class="external free" href="http://www.java.com">http://www.java.com</a>.</span> </li> <li id="cite_note-24"><span class="mw-cite-backlink"><a href="#cite_ref-24">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="https://www.java.com/fr/download/faq/release_dates.xml">Versions de Java et correctifs de sécurité</a>.</span> </li> <li id="cite_note-25"><span class="mw-cite-backlink"><a href="#cite_ref-25">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.oracle.com/technetwork/java/javafx/downloads/index.html">« <span class="lang-en" lang="en">JavaFX GA downloads</span> »</a>.</span> </li> <li id="cite_note-26"><span class="mw-cite-backlink"><a href="#cite_ref-26">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external free" href="http://www.oracle.com/technetwork/java/javaee/downloads/index.html">http://www.oracle.com/technetwork/java/javaee/downloads/index.html</a></span> </li> <li id="cite_note-27"><span class="mw-cite-backlink"><a href="#cite_ref-27">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.oracle.com/us/corporate/press/1957557"><span class="lang-en" lang="en">Oracle Announces Availability of Java Platform Enterprise Edition 7</span></a> Oracle Press Release June 12, 2013.</span> </li> <li id="cite_note-28"><span class="mw-cite-backlink"><a href="#cite_ref-28">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.oracle.com/technetwork/java/javame/javamobile/download/sdk/index.html">« <span class="lang-en" lang="en">Java ME SDK Downloads</span> »</a>.</span> </li> <li id="cite_note-29"><span class="mw-cite-backlink"><a href="#cite_ref-29">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.oracle.com/java/technologies/java-se-support-roadmap.html"><cite style="font-style:normal;" lang="en">Oracle Java SE Support Roadmap</cite></a> » <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2022-09-07" data-sort-value="2022-09-07">7 septembre 2022</time>)</small></span></span> </li> <li id="cite_note-30"><span class="mw-cite-backlink"><a href="#cite_ref-30">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.oracle.com/technetwork/java/javase/eol-135779.html#java-commercial-offerings">Oracle Java SE Commercial Offering Releases</a> oracle.com java commercial offerings</span> </li> <li id="cite_note-:34-31"><span class="mw-cite-backlink noprint">↑ <sup><a href="#cite_ref-:34_31-0">a</a> <a href="#cite_ref-:34_31-1">b</a> <a href="#cite_ref-:34_31-2">c</a> et <a href="#cite_ref-:34_31-3">d</a></sup> </span><span class="reference-text">Oracle Java SE Support Roadmap, 13 mai 2013, <a rel="nofollow" class="external free" href="http://www.oracle.com/technetwork/java/eol-135779.html">http://www.oracle.com/technetwork/java/eol-135779.html</a></span> </li> <li id="cite_note-Oracle_releases_Java_7u25,_no_6u51-32"><span class="mw-cite-backlink noprint">↑ <sup><a href="#cite_ref-Oracle_releases_Java_7u25,_no_6u51_32-0">a</a> et <a href="#cite_ref-Oracle_releases_Java_7u25,_no_6u51_32-1">b</a></sup> </span><span class="reference-text"><a rel="nofollow" class="external text" href="https://www.404techsupport.com/2013/06/java-7u25">Oracle releases Java 7u25, no 6u51</a></span> </li> <li id="cite_note-33"><span class="mw-cite-backlink"><a href="#cite_ref-33">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external free" href="http://www.oracle.com/technetwork/java/javase/7u79-relnotes-2494161.html">http://www.oracle.com/technetwork/java/javase/7u79-relnotes-2494161.html</a></span> </li> <li id="cite_note-34"><span class="mw-cite-backlink"><a href="#cite_ref-34">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external free" href="https://jdk8.java.net">https://jdk8.java.net</a> <span class="noarchive">« <a rel="nofollow" class="external text" href="https://web.archive.org/web/20140829134921/https://jdk8.java.net/">Copie archivée</a> »</span> <small>(version du <time class="nowrap" datetime="2014-08-29" data-sort-value="2014-08-29">29 août 2014</time> sur <i><a href="/wiki/Internet_Archive" title="Internet Archive">Internet Archive</a></i>)</small></span> </li> <li id="cite_note-35"><span class="mw-cite-backlink"><a href="#cite_ref-35">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2023"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.oracle.com/java/technologies/javase/8u391-relnotes.html"><cite style="font-style:normal;" lang="en">JDK 8u391 Release Notes</cite></a> », sur <span class="italique">oracle.com</span>, <time class="nowrap" datetime="2023-11-06" data-sort-value="2023-11-06">6 novembre 2023</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2023-11-18" data-sort-value="2023-11-18">18 novembre 2023</time>)</small></span></span> </li> <li id="cite_note-36"><span class="mw-cite-backlink"><a href="#cite_ref-36">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="https://blogs.oracle.com/java/java-se-8-is-now-available">18/03/2014</a></span> </li> <li id="cite_note-37"><span class="mw-cite-backlink"><a href="#cite_ref-37">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2017"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="http://openjdk.java.net/projects/jdk9/spec/"><cite style="font-style:normal;" lang="en">Java SE 9 Platform Umbrella JSR (379)</cite></a> », sur <span class="italique">openjdk.java.net</span>, <time class="nowrap" datetime="2017-09-25" data-sort-value="2017-09-25">25 septembre 2017</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2018-05-25" data-sort-value="2018-05-25">25 mai 2018</time>)</small></span></span> </li> <li id="cite_note-38"><span class="mw-cite-backlink"><a href="#cite_ref-38">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.sun.com/smi/Press/sunflash/1996-01/sunflash.960123.10561.html">communiqué de presse</a></span> </li> <li id="cite_note-39"><span class="mw-cite-backlink"><a href="#cite_ref-39">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.sun.com/smi/Press/sunflash/1997-02/sunflash.970219.0001.html">communiqué de presse</a></span> </li> <li id="cite_note-40"><span class="mw-cite-backlink"><a href="#cite_ref-40">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.sun.com/smi/Press/sunflash/1998-12/sunflash.981208.9.html">communiqué de presse</a></span> </li> <li id="cite_note-41"><span class="mw-cite-backlink"><a href="#cite_ref-41">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.sun.com/smi/Press/sunflash/2000-05/sunflash.20000508.3.html">communiqué de presse</a> - <abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://java.sun.com/j2se/1.3/docs/relnotes/features.html">liste complète des changements</a></span> </li> <li id="cite_note-42"><span class="mw-cite-backlink"><a href="#cite_ref-42">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.jcp.org/en/jsr/detail?id=59">JSR 59</a></span> </li> <li id="cite_note-43"><span class="mw-cite-backlink"><a href="#cite_ref-43">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.sun.com/smi/Press/sunflash/2002-02/sunflash.20020206.5.html">communiqué de presse</a> - <abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://java.sun.com/j2se/1.4.2/docs/relnotes/features.html">liste complète des changements</a></span> </li> <li id="cite_note-44"><span class="mw-cite-backlink"><a href="#cite_ref-44">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.jcp.org/en/jsr/detail?id=41">JSR 41</a></span> </li> <li id="cite_note-45"><span class="mw-cite-backlink"><a href="#cite_ref-45">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://java.sun.com/j2se/1.5.0/docs/relnotes/version-5.0.html">Version 1.5.0 or 5.0?</a></span> </li> <li id="cite_note-46"><span class="mw-cite-backlink"><a href="#cite_ref-46">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.sun.com/smi/Press/sunflash/2004-09/sunflash.20040930.1.html">communiqué de presse</a></span> </li> <li id="cite_note-47"><span class="mw-cite-backlink"><a href="#cite_ref-47">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.java.com/fr/download/faq/java_webstart.xml">Qu'est-ce que le logiciel Java Web Start</a> <a rel="nofollow" class="external free" href="http://www.java.com">http://www.java.com</a></span> </li> <li id="cite_note-48"><span class="mw-cite-backlink"><a href="#cite_ref-48">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.jcp.org/en/jsr/detail?id=270">JSR 270</a></span> </li> <li id="cite_note-49"><span class="mw-cite-backlink"><a href="#cite_ref-49">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://www.java.com/en/about/brand/naming.jsp">Java Naming</a></span> </li> <li id="cite_note-50"><span class="mw-cite-backlink"><a href="#cite_ref-50">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="http://docs.oracle.com/javase/7/docs/api"><cite style="font-style:normal;" lang="en">Java Platform SE 7</cite></a> », sur <span class="italique">oracle.com</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2023-04-12" data-sort-value="2023-04-12">12 avril 2023</time>)</small></span>.</span> </li> <li id="cite_note-51"><span class="mw-cite-backlink"><a href="#cite_ref-51">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.lemondeinformatique.fr/actualites/lire-oracle-met-a-jour-java-se-et-javafx-pour-os-x-arm-et-linux-50072.html">Oracle met à jour Java SE et JavaFX pour OS X, ARM et Linux</a> Le Monde Informatique</span> </li> <li id="cite_note-52"><span class="mw-cite-backlink"><a href="#cite_ref-52">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.java.com/fr/download/faq/java_mac.xml#java%20available">Informations et configuration minimale requise pour l'installation et l'utilisation de Java 7 pour Mac</a> <a rel="nofollow" class="external free" href="http://www.java.com">http://www.java.com</a></span> </li> <li id="cite_note-53"><span class="mw-cite-backlink"><a href="#cite_ref-53">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.oracle.com/technetwork/java/eol-135779.html">Auto-update Notice and End of Public Updates for Oracle JDK 7</a> oracle.com, May 14, 2015</span> </li> <li id="cite_note-54"><span class="mw-cite-backlink"><a href="#cite_ref-54">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="https://jdk8.java.net/download.html">JDK™ 8 Early Access Releases</a> java.net.</span> </li> <li id="cite_note-55"><span class="mw-cite-backlink"><a href="#cite_ref-55">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://openjdk.java.net/projects/jdk8">JDK8 Schedule and status</a> OpenJDK.</span> </li> <li id="cite_note-56"><span class="mw-cite-backlink"><a href="#cite_ref-56">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.infoq.com/fr/news/2013/09/everything-about-java-8">Everything about Java 8</a></span> </li> <li id="cite_note-57"><span class="mw-cite-backlink"><a href="#cite_ref-57">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external autonumber" href="http://www.lemondeinformatique.fr/actualites/lire-oracle-reporte-le-projet-jigsaw-systeme-de-modules-pour-java-49797.html">[4]</a></span> </li> <li id="cite_note-58"><span class="mw-cite-backlink"><a href="#cite_ref-58">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Baron2017"><span class="ouvrage" id="Mickael_Baron2017">Mickael <span class="nom_auteur">Baron</span>, « <cite style="font-style:normal">Java 9 est disponible, la plateforme se met aux modules : tour d'horizon des nouveautés</cite> », <i>Developpez.com</i>,‎ <time class="nowrap" datetime="2017-09-21" data-sort-value="2017-09-21">21 septembre 2017</time> <small style="line-height:1em;">(<a rel="nofollow" class="external text" href="https://java.developpez.com/actu/160955/Java-9-est-disponible-la-plateforme-se-met-aux-modules-tour-d-horizon-des-nouveautes/">lire en ligne</a>, consulté le <time class="nowrap" datetime="2018-01-03" data-sort-value="2018-01-03">3 janvier 2018</time>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Java+9+est+disponible%2C+la+plateforme+se+met+aux+modules+%3A+tour+d%27horizon+des+nouveaut%C3%A9s&rft.jtitle=Developpez.com&rft.aulast=Baron&rft.aufirst=Mickael&rft.date=2017-09-21&rfr_id=info%3Asid%2Ffr.wikipedia.org%3AJava+%28langage%29"></span></span></span></span> </li> <li id="cite_note-59"><span class="mw-cite-backlink"><a href="#cite_ref-59">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Doudoux"><span class="ouvrage" id="JM_Doudoux">JM Doudoux, « <a rel="nofollow" class="external text" href="https://blog.oxiane.com/2018/03/06/java-9-jshell/"><cite style="font-style:normal;">Java 9 – JShell</cite></a> » <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2022-09-20" data-sort-value="2022-09-20">20 septembre 2022</time>)</small></span></span></span> </li> <li id="cite_note-60"><span class="mw-cite-backlink"><a href="#cite_ref-60">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.journaldunet.com/developpeur/java-j2ee/java-9-0814.shtml">Java 9 : ce que l'on sait</a> Journal du net - 16 juin 2015.</span> </li> <li id="cite_note-61"><span class="mw-cite-backlink"><a href="#cite_ref-61">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.oracle.com/java/technologies/javase/9-all-relnotes.html"><cite style="font-style:normal;" lang="en">Consolidated JDK 9 Release Notes</cite></a> »</span></span> </li> <li id="cite_note-62"><span class="mw-cite-backlink"><a href="#cite_ref-62">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Mkyong"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Mkyong, « <a rel="nofollow" class="external text" href="https://mkyong.com/tutorials/java-json-tutorials/"><cite style="font-style:normal;" lang="en">Java JSON Tutorials</cite></a> » <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2022-09-20" data-sort-value="2022-09-20">20 septembre 2022</time>)</small></span></span> </li> <li id="cite_note-63"><span class="mw-cite-backlink"><a href="#cite_ref-63">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="http://openjdk.java.net/projects/jdk/10/"><cite style="font-style:normal;">JDK 10</cite></a> », sur <span class="italique">openjdk.java.net</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2018-04-01" data-sort-value="2018-04-01"><abbr class="abbr" title="premier">1<sup>er</sup></abbr> avril 2018</time>)</small></span></span> </li> <li id="cite_note-64"><span class="mw-cite-backlink"><a href="#cite_ref-64">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="http://openjdk.java.net/jeps/286"><cite style="font-style:normal;">JEP 286: Local-Variable Type Inference</cite></a> », sur <span class="italique">openjdk.java.net</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2018-04-01" data-sort-value="2018-04-01"><abbr class="abbr" title="premier">1<sup>er</sup></abbr> avril 2018</time>)</small></span></span> </li> <li id="cite_note-65"><span class="mw-cite-backlink"><a href="#cite_ref-65">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="http://openjdk.java.net/jeps/310"><cite style="font-style:normal;">JEP 310: Application Class-Data Sharing</cite></a> », sur <span class="italique">openjdk.java.net</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2018-04-01" data-sort-value="2018-04-01"><abbr class="abbr" title="premier">1<sup>er</sup></abbr> avril 2018</time>)</small></span></span> </li> <li id="cite_note-66"><span class="mw-cite-backlink"><a href="#cite_ref-66">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="http://openjdk.java.net/jeps/317"><cite style="font-style:normal;">JEP 317: Experimental Java-Based JIT Compiler</cite></a> », sur <span class="italique">openjdk.java.net</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2018-04-01" data-sort-value="2018-04-01"><abbr class="abbr" title="premier">1<sup>er</sup></abbr> avril 2018</time>)</small></span></span> </li> <li id="cite_note-67"><span class="mw-cite-backlink"><a href="#cite_ref-67">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="http://openjdk.java.net/projects/jdk/11/"><cite style="font-style:normal;">JDK 11</cite></a> », sur <span class="italique">openjdk.java.net</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2018-11-07" data-sort-value="2018-11-07">7 novembre 2018</time>)</small></span></span> </li> <li id="cite_note-68"><span class="mw-cite-backlink"><a href="#cite_ref-68">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="http://openjdk.java.net/projects/jdk/12/"><cite style="font-style:normal;">JDK 12</cite></a> », sur <span class="italique">openjdk.java.net</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2018-11-07" data-sort-value="2018-11-07">7 novembre 2018</time>)</small></span></span> </li> <li id="cite_note-69"><span class="mw-cite-backlink"><a href="#cite_ref-69">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="http://openjdk.java.net/projects/jdk/13/"><cite style="font-style:normal;" lang="en">JDK 13</cite></a> », sur <span class="italique">openjdk.java.net</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2019-04-25" data-sort-value="2019-04-25">25 avril 2019</time>)</small></span></span> </li> <li id="cite_note-70"><span class="mw-cite-backlink"><a href="#cite_ref-70">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://openjdk.java.net/projects/jdk/14/"><cite style="font-style:normal;">JDK 14</cite></a> », sur <span class="italique">openjdk.java.net</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2020-04-26" data-sort-value="2020-04-26">26 avril 2020</time>)</small></span></span> </li> <li id="cite_note-71"><span class="mw-cite-backlink"><a href="#cite_ref-71">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Doudoux2020"><span class="ouvrage" id="Jean-Michel_Doudoux2020">Jean-Michel <span class="nom_auteur">Doudoux</span>, « <cite style="font-style:normal">Java 14 : Switch expression</cite> », <i>Blog OXiane</i>,‎ <time class="nowrap" datetime="2020-06-05" data-sort-value="2020-06-05">5 juin 2020</time> <small style="line-height:1em;">(<a rel="nofollow" class="external text" href="https://blog.oxiane.com/2020/06/05/java-14-switch-expression/">lire en ligne</a>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Java+14+%3A+Switch+expression&rft.jtitle=Blog+OXiane&rft.aulast=Doudoux&rft.aufirst=Jean-Michel&rft.date=2020-06-05&rfr_id=info%3Asid%2Ffr.wikipedia.org%3AJava+%28langage%29"></span></span></span></span> </li> <li id="cite_note-72"><span class="mw-cite-backlink"><a href="#cite_ref-72">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2020">« <a rel="nofollow" class="external text" href="https://blogs.oracle.com/java-platform-group/the-arrival-of-java-15"><cite style="font-style:normal;">The Arrival of Java 15!</cite></a> », <a href="/wiki/Oracle_Corporation" class="mw-redirect" title="Oracle Corporation">Oracle</a>, <time class="nowrap" datetime="2020-09-15" data-sort-value="2020-09-15">15 septembre 2020</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2020-09-15" data-sort-value="2020-09-15">15 septembre 2020</time>)</small></span></span> </li> <li id="cite_note-:0-73"><span class="mw-cite-backlink"><a href="#cite_ref-:0_73-0">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2021">« <cite style="font-style:normal">Oracle annonce Java 16</cite> », <i>Oracle France</i>,‎ <time class="nowrap" datetime="2021-04-16" data-sort-value="2021-04-16">16 avril 2021</time> <small style="line-height:1em;">(<a rel="nofollow" class="external text" href="https://www.oracle.com/fr/news/announcement/oracle-announces-java-16-2021-03-16.html">lire en ligne</a>, consulté le <time class="nowrap" datetime="2021-04-22" data-sort-value="2021-04-22">22 avril 2021</time>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Oracle+annonce+Java+16&rft.jtitle=Oracle+France&rft.date=2021-04-16&rfr_id=info%3Asid%2Ffr.wikipedia.org%3AJava+%28langage%29"></span></span></span> </li> <li id="cite_note-74"><span class="mw-cite-backlink"><a href="#cite_ref-74">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2021">« <cite style="font-style:normal">Oracle annonce Java 17</cite> », <i>Oracle France</i>,‎ <time class="nowrap" datetime="2021-09-14" data-sort-value="2021-09-14">14 septembre 2021</time> <small style="line-height:1em;">(<a rel="nofollow" class="external text" href="https://www.oracle.com/fr/news/announcement/oracle-releases-java-17-2021-09-14/">lire en ligne</a>, consulté le <time class="nowrap" datetime="2021-10-06" data-sort-value="2021-10-06">6 octobre 2021</time>)</small><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=article&rft.atitle=Oracle+annonce+Java+17&rft.jtitle=Oracle+France&rft.date=2021-09-14&rfr_id=info%3Asid%2Ffr.wikipedia.org%3AJava+%28langage%29"></span></span></span> </li> <li id="cite_note-75"><span class="mw-cite-backlink"><a href="#cite_ref-75">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://www.oracle.com/news/announcement/oracle-releases-java-18-2022-03-22/"><cite style="font-style:normal;" lang="en">Oracle Announces Java 18</cite></a> »</span></span> </li> <li id="cite_note-76"><span class="mw-cite-backlink"><a href="#cite_ref-76">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="https://openjdk.org/projects/jdk/18/">JDK 18</a></span> </li> <li id="cite_note-77"><span class="mw-cite-backlink"><a href="#cite_ref-77">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://openjdk.org/projects/jdk/19/"><cite style="font-style:normal;" lang="en">JDK 19</cite></a> »</span></span> </li> <li id="cite_note-78"><span class="mw-cite-backlink"><a href="#cite_ref-78">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://openjdk.org/projects/jdk/20/"><cite style="font-style:normal;">JDK 20</cite></a> », sur <span class="italique">openjdk.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2023-04-13" data-sort-value="2023-04-13">13 avril 2023</time>)</small></span></span> </li> <li id="cite_note-79"><span class="mw-cite-backlink"><a href="#cite_ref-79">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Oracle2023"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> Oracle, « <a rel="nofollow" class="external text" href="https://blogs.oracle.com/java/post/the-arrival-of-java-21"><cite style="font-style:normal;" lang="en">The Arrival of Java 21</cite></a> » <span class="skin-invert-image" typeof="mw:File"><span title="Accès libre au document"><img alt="Accès libre" src="//upload.wikimedia.org/wikipedia/commons/thumb/6/65/Lock-green.svg/9px-Lock-green.svg.png" decoding="async" width="9" height="14" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/65/Lock-green.svg/14px-Lock-green.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/65/Lock-green.svg/18px-Lock-green.svg.png 2x" data-file-width="512" data-file-height="813" /></span></span>, sur <span class="italique">Oracle</span>, <time class="nowrap" datetime="2023-09-19" data-sort-value="2023-09-19">19 septembre 2023</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2023-12-13" data-sort-value="2023-12-13">13 décembre 2023</time>)</small></span></span> </li> <li id="cite_note-80"><span class="mw-cite-backlink"><a href="#cite_ref-80">↑</a> </span><span class="reference-text"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://java.sun.com/docs/white/langenv/Intro.doc2.html"><span class="lang-en" lang="en">Design Goals of the Java Programming Language</span></a>.</span> </li> <li id="cite_note-gc-81"><span class="mw-cite-backlink noprint">↑ <sup><a href="#cite_ref-gc_81-0">a</a> et <a href="#cite_ref-gc_81-1">b</a></sup> </span><span class="reference-text">Voir par exemple les détails du fonctionnement et la description des options <i>-XX:+UseParallelGC</i> et <i>-XX:+UseConcMarkSweepGC</i> de la JRE de <a href="/wiki/Sun_Microsystems" title="Sun Microsystems">Sun</a> <abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external text" href="http://java.sun.com/javase/technologies/hotspot/gc/gc_tuning_6.html">Java SE Virtual Machine Garbage Collection Tuning</a></span> </li> <li id="cite_note-82"><span class="mw-cite-backlink"><a href="#cite_ref-82">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://www.liberation.fr/economie/0101435135-microsoft-pousse-a-parler-java">Microsoft poussé à parler Java</a> Libération - 26/12/2002</span> </li> <li id="cite_note-83"><span class="mw-cite-backlink"><a href="#cite_ref-83">↑</a> </span><span class="reference-text"><span class="ouvrage" id="1998">« <a rel="nofollow" class="external text" href="http://docs.oracle.com/javase/7/docs/technotes/guides/security/spec/security-spec.doc.html"><cite style="font-style:normal;">Java Security Architecture: Contents</cite></a> », sur <span class="italique">Docs.oracle.com</span>, <time class="nowrap" datetime="1998-10-02" data-sort-value="1998-10-02">2 octobre 1998</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2016-02-09" data-sort-value="2016-02-09">9 février 2016</time>)</small></span></span> </li> <li id="cite_note-84"><span class="mw-cite-backlink"><a href="#cite_ref-84">↑</a> </span><span class="reference-text">Michael Horowitz, <span class="noarchive">« <a rel="nofollow" class="external text" href="https://web.archive.org/web/20140724212538/http://blogs.computerworld.com/cybercrime-and-hacking/20921/java-security-flaw-yada-yada-yada">Java security flaw: yada yada yada | Computerworld</a> »</span>, sur <i>Blogs.computerworld.com</i>, <time class="nowrap" datetime="2012-08-01" data-sort-value="2012-08-01"><abbr class="abbr" title="premier">1<sup>er</sup></abbr> août 2012</time> <small>(version du <time class="nowrap" datetime="2014-07-24" data-sort-value="2014-07-24">24 juillet 2014</time> sur <i><a href="/wiki/Internet_Archive" title="Internet Archive">Internet Archive</a></i>)</small></span> </li> <li id="cite_note-85"><span class="mw-cite-backlink"><a href="#cite_ref-85">↑</a> </span><span class="reference-text">Chris Brook, <span class="noarchive">« <a rel="nofollow" class="external text" href="https://web.archive.org/web/20130409083307/http://threatpost.com/en_us/blogs/nasty-new-java-zero-day-found-exploit-kits-already-have-it-011013">The first stop for security news</a> »</span>, sur <i>Threatpost</i> <small>(version du <time class="nowrap" datetime="2013-04-09" data-sort-value="2013-04-09">9 avril 2013</time> sur <i><a href="/wiki/Internet_Archive" title="Internet Archive">Internet Archive</a></i>)</small></span> </li> <li id="cite_note-86"><span class="mw-cite-backlink"><a href="#cite_ref-86">↑</a> </span><span class="reference-text">Chris Brook, <span class="noarchive">« <a rel="nofollow" class="external text" href="https://web.archive.org/web/20130308043441/http://threatpost.com/en_us/blogs/new-zero-day-vulnerability-found-java-5-6-and-7-11-billion-desktops-affected-092612">The first stop for security news</a> »</span>, sur <i>Threatpost</i> <small>(version du <time class="nowrap" datetime="2013-03-08" data-sort-value="2013-03-08">8 mars 2013</time> sur <i><a href="/wiki/Internet_Archive" title="Internet Archive">Internet Archive</a></i>)</small></span> </li> <li id="cite_note-87"><span class="mw-cite-backlink"><a href="#cite_ref-87">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2013">« <a rel="nofollow" class="external text" href="http://www.nbcnews.com/id/50438206/ns/technology_and_science-innovation/t/why-how-disable-java-your-computer-now#.UhJ652RrMdg"><cite style="font-style:normal;">Why and How to Disable Java on Your Computer Now - Technology & science - Innovation</cite></a> », sur <span class="italique">NBC News</span>, <time class="nowrap" datetime="2013-01-12" data-sort-value="2013-01-12">12 janvier 2013</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2016-02-09" data-sort-value="2016-02-09">9 février 2016</time>)</small></span></span> </li> <li id="cite_note-88"><span class="mw-cite-backlink"><a href="#cite_ref-88">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Krebs2016"><span class="ouvrage" id="Brian_Krebs2016">Brian <span class="nom_auteur">Krebs</span>, « <a rel="nofollow" class="external text" href="http://krebsonsecurity.com/2016/02/good-riddance-to-oracles-java-plugin/"><cite style="font-style:normal;">Good Riddance to Oracle's Java Plugin</cite></a> », sur <span class="italique">KrebsOnSecurity</span>, <time class="nowrap" datetime="2016-02-16" data-sort-value="2016-02-16">16 février 2016</time></span></span></span> </li> <li id="cite_note-89"><span class="mw-cite-backlink"><a href="#cite_ref-89">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Gonsalves2012"><span class="ouvrage" id="Antone_Gonsalves2012">Antone <span class="nom_auteur">Gonsalves</span>, « <a rel="nofollow" class="external text" href="http://readwrite.com/2012/09/05/java-is-no-longer-needed-pull-the-plug-in"><cite style="font-style:normal;">Java Is No Longer Needed. Pull The Plug-In</cite></a> », sur <span class="italique">Wearable World</span>, <time class="nowrap" datetime="2012-09-05" data-sort-value="2012-09-05">5 septembre 2012</time></span></span></span> </li> <li id="cite_note-90"><span class="mw-cite-backlink"><a href="#cite_ref-90">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://www.forbes.com/sites/eliseackerman/2013/01/11/us-department-of-homeland-security-calls-on-computer-users-to-disable-java/"><cite style="font-style:normal;">US Department of Homeland Security Calls On Computer Users To Disable Java</cite></a> », sur <span class="italique">Forbes.com</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2016-02-09" data-sort-value="2016-02-09">9 février 2016</time>)</small></span></span> </li> <li id="cite_note-91"><span class="mw-cite-backlink"><a href="#cite_ref-91">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Cluley2013"><span class="ouvrage" id="Graham_Cluley2013">Graham <span class="nom_auteur">Cluley</span>, « <a rel="nofollow" class="external text" href="https://nakedsecurity.sophos.com/2013/01/15/disable-java-browsers-homeland-security/"><cite style="font-style:normal;">"Unless it is absolutely necessary to run Java in web browsers, disable it", DHS-sponsored CERT team says – Naked Security</cite></a> », sur <span class="italique">Nakedsecurity.sophos.com</span>, <time class="nowrap" datetime="2013-01-15" data-sort-value="2013-01-15">15 janvier 2013</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2016-02-09" data-sort-value="2016-02-09">9 février 2016</time>)</small></span></span></span> </li> <li id="cite_note-92"><span class="mw-cite-backlink"><a href="#cite_ref-92">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2019">« <a rel="nofollow" class="external text" href="https://www.moyens.net/securite/pourquoi-java-presente-moins-de-risques-pour-la-securite-maintenant-sur-windows-mac-et-linux/"><cite style="font-style:normal;">Pourquoi Java présente moins de risques pour la sécurité maintenant sur Windows, Mac et Linux</cite></a> », sur <span class="italique">moyens.net</span>, <time>2019</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2023-12-04" data-sort-value="2023-12-04">4 décembre 2023</time>)</small></span>.</span> </li> <li id="cite_note-93"><span class="mw-cite-backlink"><a href="#cite_ref-93">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2023"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://devclass.com/2023/01/17/application-security-survey-finds-javascript-beats-java-and-net-with-fewer-flaws-faster-fixes/"><cite style="font-style:normal;" lang="en">Application security: Survey finds JavaScript beats Java and .NET with fewer flaws, faster fixes</cite></a> », sur <span class="italique">devclass.com</span>, <time class="nowrap" datetime="2023-01-17" data-sort-value="2023-01-17">17 janvier 2023</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2023-12-04" data-sort-value="2023-12-04">4 décembre 2023</time>)</small></span>.</span> </li> <li id="cite_note-94"><span class="mw-cite-backlink"><a href="#cite_ref-94">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Ousterhout2018"><span class="ouvrage" id="John_Ousterhout2018"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> John Ousterhout, <cite class="italique" lang="en">A Philosophy of Software Design</cite>, Yaknyam Press, <time>2018</time> <small style="line-height:1em;">(<a href="/wiki/International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <a href="/wiki/Sp%C3%A9cial:Ouvrages_de_r%C3%A9f%C3%A9rence/9781732102217" title="Spécial:Ouvrages de référence/9781732102217"><span class="nowrap">9781732102217</span></a>)</small><span class="lang-en" lang="en">, « Modules should be deep »</span><span class="Z3988" title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=A+Philosophy+of+Software+Design&rft.pub=Yaknyam+Press&rft.aulast=Ousterhout&rft.aufirst=John&rft.date=2018&rft.isbn=9781732102217&rfr_id=info%3Asid%2Ffr.wikipedia.org%3AJava+%28langage%29"></span></span></span></span> </li> <li id="cite_note-95"><span class="mw-cite-backlink"><a href="#cite_ref-95">↑</a> </span><span class="reference-text"><span class="noarchive">« <a rel="nofollow" class="external text" href="https://web.archive.org/web/20070102132948/http://www.ociweb.com/jnb/jnbJul2003.html">Generics in Java</a> »</span>, sur <i>Object Computing, Inc.</i> <small>(version du <time class="nowrap" datetime="2007-01-02" data-sort-value="2007-01-02">2 janvier 2007</time> sur <i><a href="/wiki/Internet_Archive" title="Internet Archive">Internet Archive</a></i>)</small></span> </li> <li id="cite_note-96"><span class="mw-cite-backlink"><a href="#cite_ref-96">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2006">« <a rel="nofollow" class="external text" href="http://www.safalra.com/programming/java/wrong-type-erasure/"><cite style="font-style:normal;">What's Wrong With Java: Type Erasure</cite></a> », <time class="nowrap" datetime="2006-12-06" data-sort-value="2006-12-06">6 décembre 2006</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2006-12-09" data-sort-value="2006-12-09">9 décembre 2006</time>)</small></span></span> </li> <li id="cite_note-97"><span class="mw-cite-backlink"><a href="#cite_ref-97">↑</a> </span><span class="reference-text"><span class="ouvrage">« <a rel="nofollow" class="external text" href="https://raw.githubusercontent.com/namin/unsound/master/doc/unsound-oopsla16.pdf"><cite style="font-style:normal;">Java and Scala's Type Systems are Unsound</cite></a> », sur <span class="italique">Github User's Content</span></span></span> </li> <li id="cite_note-98"><span class="mw-cite-backlink"><a href="#cite_ref-98">↑</a> </span><span class="reference-text"> <span class="ouvrage">« <a rel="nofollow" class="external text" href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4504839"><cite style="font-style:normal;">Java libraries should provide support for unsigned integer arithmetic</cite></a> », sur <span class="italique">Oracle/Bug Database, Sun Developer Network</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2011-01-18" data-sort-value="2011-01-18">18 janvier 2011</time>)</small></span></span> </li> <li id="cite_note-99"><span class="mw-cite-backlink"><a href="#cite_ref-99">↑</a> </span><span class="reference-text"><span class="ouvrage" id="Owens2009"><span class="ouvrage" id="Sean_R._Owens2009">Sean R. <span class="nom_auteur">Owens</span>, « <a rel="nofollow" class="external text" href="http://darksleep.com/player/JavaAndUnsignedTypes.html"><cite style="font-style:normal;">Java and unsigned int, unsigned short, unsigned byte, unsigned long, etc. (Or rather, the lack thereof)</cite></a> », sur <span class="italique">darksleep.com</span>, <time class="nowrap" datetime="2009-11-05" data-sort-value="2009-11-05">5 novembre 2009</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2010-10-09" data-sort-value="2010-10-09">9 octobre 2010</time>)</small></span></span></span> </li> <li id="cite_note-100"><span class="mw-cite-backlink"><a href="#cite_ref-100">↑</a> </span><span class="reference-text"><span class="ouvrage" id="KahanDarcy1998"><span class="ouvrage" id="W._KahanJoseph_D._Darcy1998"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> W. <span class="nom_auteur">Kahan</span> et Joseph D. <span class="nom_auteur">Darcy</span>, « <a rel="nofollow" class="external text" href="http://www.cs.berkeley.edu/~wkahan/JAVAhurt.pdf"><cite style="font-style:normal;" lang="en">How Java's Floating-Point Hurts Everyone Everywhere</cite></a> », <time class="nowrap" datetime="1998-03-01" data-sort-value="1998-03-01"><abbr class="abbr" title="premier">1<sup>er</sup></abbr> mars 1998</time> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2006-12-09" data-sort-value="2006-12-09">9 décembre 2006</time>)</small></span></span></span> </li> <li id="cite_note-101"><span class="mw-cite-backlink"><a href="#cite_ref-101">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> « <a rel="nofollow" class="external text" href="https://java.sun.com/docs/books/jls/third_edition/html/typesValues.html#4.2.3"><cite style="font-style:normal;" lang="en">Types, Values, and Variables</cite></a> », sur <span class="italique">Sun Microsystems</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2006-12-09" data-sort-value="2006-12-09">9 décembre 2006</time>)</small></span></span> </li> <li id="cite_note-debchart-102"><span class="mw-cite-backlink"><a href="#cite_ref-debchart_102-0">↑</a> </span><span class="reference-text"> <span class="noarchive">« <a rel="nofollow" class="external text" href="https://web.archive.org/web/20110814034947/http://shootout.alioth.debian.org/u64q/which-programming-languages-are-fastest.php">Which programming languages are fastest?</a> »</span>, sur <i>Computer Language Benchmarks Game</i>, <time class="nowrap" datetime="2011-08-14" data-sort-value="2011-08-14">14 août 2011</time> <small>(version du <time class="nowrap" datetime="2011-08-14" data-sort-value="2011-08-14">14 août 2011</time> sur <i><a href="/wiki/Internet_Archive" title="Internet Archive">Internet Archive</a></i>)</small></span> </li> <li id="cite_note-103"><span class="mw-cite-backlink"><a href="#cite_ref-103">↑</a> </span><span class="reference-text"><span class="noarchive">« <a rel="nofollow" class="external text" href="https://web.archive.org/web/20110926210432/http://shootout.alioth.debian.org/u64q/benchmark.php?test=all&lang=javasteady&lang2=gpp">speed ÷ C++ GNU g++ speed</a> »</span>, sur <i>Computer Language Benchmarks Game</i>, <time class="nowrap" datetime="2011-09-26" data-sort-value="2011-09-26">26 septembre 2011</time> <small>(version du <time class="nowrap" datetime="2011-09-26" data-sort-value="2011-09-26">26 septembre 2011</time> sur <i><a href="/wiki/Internet_Archive" title="Internet Archive">Internet Archive</a></i>)</small></span> </li> <li id="cite_note-104"><span class="mw-cite-backlink"><a href="#cite_ref-104">↑</a> </span><span class="reference-text"><span class="ouvrage" id="2010">« <a rel="nofollow" class="external text" href="http://blog.cfelde.com/2010/06/c-vs-java-performance/"><cite style="font-style:normal;">C++ vs Java performance; It's a tie! | Blog of Christian Felde</cite></a> », sur <span class="italique">Blog.cfelde.com</span>, 27 juin 2010 <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2016-02-09" data-sort-value="2016-02-09">9 février 2016</time>)</small></span></span> </li> <li id="cite_note-LewisNeumann-105"><span class="mw-cite-backlink noprint">↑ <sup><a href="#cite_ref-LewisNeumann_105-0">a</a> et <a href="#cite_ref-LewisNeumann_105-1">b</a></sup> </span><span class="reference-text"><span class="ouvrage" id="LewisNeumann"><span class="ouvrage" id="J._P._LewisUlrich_Neumann">J. P. <span class="nom_auteur">Lewis</span> et Ulrich <span class="nom_auteur">Neumann</span>, « <a rel="nofollow" class="external text" href="http://scribblethink.org/Computer/javaCbenchmark.html"><cite style="font-style:normal;">Performance of Java versus C++</cite></a> », sur <span class="italique">Graphics and Immersive Technology Lab, <a href="/wiki/Universit%C3%A9_du_Sud_de_la_Californie" class="mw-redirect" title="Université du Sud de la Californie">université du Sud de la Californie</a></span></span></span></span> </li> <li id="cite_note-Walkermere-106"><span class="mw-cite-backlink"><a href="#cite_ref-Walkermere_106-0">↑</a> </span><span class="reference-text"><a rel="nofollow" class="external text" href="http://research.sun.com/techrep/2002/smli_tr-2002-114.pdf">FreeTTS – A Performance Case Study</a> <span class="error">erreur modèle <a href="/wiki/Mod%C3%A8le:Lien_archive" title="Modèle:Lien archive">{{Lien archive}}</a> : renseignez un paramètre « <code>|url=</code> »</span>.</span> </li> </ol></div> </div> <div class="mw-heading mw-heading2"><h2 id="Voir_aussi">Voir aussi</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=77" title="Modifier la section : Voir aussi" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=77" title="Modifier le code source de la section : Voir aussi"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r194021218">.mw-parser-output .autres-projets>.titre{text-align:center;margin:0.2em 0}.mw-parser-output .autres-projets>ul{margin:0;padding:0}.mw-parser-output .autres-projets>ul>li{list-style:none;margin:0.2em 0;text-indent:0;padding-left:24px;min-height:20px;text-align:left;display:block}.mw-parser-output .autres-projets>ul>li>a{font-style:italic}@media(max-width:720px){.mw-parser-output .autres-projets{float:none}}</style><div class="autres-projets boite-grise boite-a-droite noprint js-interprojets"> <p class="titre">Sur les autres projets Wikimedia :</p> <ul class="noarchive plainlinks"> <li class="commons"><a class="external text" href="https://commons.wikimedia.org/wiki/Category:Java_(programming_language)?uselang=fr">Java</a>, sur <span class="project">Wikimedia Commons</span></li><li class="wikiversity"><a href="https://fr.wikiversity.org/wiki/Java" class="extiw" title="v:Java">Java</a>, <span class="nowrap">sur <span class="project">Wikiversity</span></span></li><li class="wikibooks"><a href="https://fr.wikibooks.org/wiki/Java" class="extiw" title="b:Java">Java</a>, <span class="nowrap">sur <span class="project">Wikibooks</span></span></li> </ul> </div> <div class="mw-heading mw-heading3"><h3 id="Bibliographie">Bibliographie</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=78" title="Modifier la section : Bibliographie" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=78" title="Modifier le code source de la section : Bibliographie"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li>Ken Arnold, James Gosling et David Holmes, <i>Le Langage Java</i>, 2001 <small style="line-height:1em;">(<a href="/wiki/International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <a href="/wiki/Sp%C3%A9cial:Ouvrages_de_r%C3%A9f%C3%A9rence/978-2-7117-8671-8" title="Spécial:Ouvrages de référence/978-2-7117-8671-8"><span class="nowrap">978-2-7117-8671-8</span></a>)</small></li> <li><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a href="/wiki/Bruce_Eckel" title="Bruce Eckel">Bruce Eckel</a>, <span class="lang-en" lang="en"><i>Thinking in Java</i></span>, Prentice-Hall, 2002 <small style="line-height:1em;">(<a href="/wiki/International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <a href="/wiki/Sp%C3%A9cial:Ouvrages_de_r%C3%A9f%C3%A9rence/978-0-13-100287-6" title="Spécial:Ouvrages de référence/978-0-13-100287-6"><span class="nowrap">978-0-13-100287-6</span></a>)</small>. <a rel="nofollow" class="external text" href="http://www.mindviewinc.com/downloads/TIJ-3rd-edition4.0.zip">version téléchargeable</a> <a rel="nofollow" class="external text" href="ftp://ftp.irisa.fr/pub/mirrors/Java/index.html">version électronique en ligne</a> <a rel="nofollow" class="external text" href="http://penserenjava.free.fr/">traduction francophone : penser en java</a></li> <li>Alexandre Brillant, <i>Java 5</i>, 2006 <small style="line-height:1em;">(<a href="/wiki/International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <a href="/wiki/Sp%C3%A9cial:Ouvrages_de_r%C3%A9f%C3%A9rence/978-2-7460-3170-8" title="Spécial:Ouvrages de référence/978-2-7460-3170-8"><span class="nowrap">978-2-7460-3170-8</span></a>)</small></li> <li>Jean Brondeau, <i>Introduction à la programmation objet en Java</i>, <a href="/wiki/%C3%89ditions_Dunod" title="Éditions Dunod">Dunod</a>, Paris, 1999 <small style="line-height:1em;">(<a href="/wiki/International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <a href="/wiki/Sp%C3%A9cial:Ouvrages_de_r%C3%A9f%C3%A9rence/978-2-10-004106-0" title="Spécial:Ouvrages de référence/978-2-10-004106-0"><span class="nowrap">978-2-10-004106-0</span></a>)</small></li> <li>Annick Fron, <i>Architectures réparties en Java</i>, 2007 <small style="line-height:1em;">(<a href="/wiki/International_Standard_Book_Number" title="International Standard Book Number">ISBN</a> <a href="/wiki/Sp%C3%A9cial:Ouvrages_de_r%C3%A9f%C3%A9rence/978-2-10-051141-9" title="Spécial:Ouvrages de référence/978-2-10-051141-9"><span class="nowrap">978-2-10-051141-9</span></a>)</small></li> <li>Le <a href="/wiki/Tutoriel" title="Tutoriel">tutoriel</a> en ligne <span class="lang-en" lang="en">How To Program In JAVA</span> <small>[<a rel="nofollow" class="external text" href="http://how-to-program-in-java.com">lire en ligne</a>]</small></li></ul> <div class="mw-heading mw-heading3"><h3 id="Articles_connexes">Articles connexes</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=79" title="Modifier la section : Articles connexes" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=79" title="Modifier le code source de la section : Articles connexes"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <div style="column-count:2;column-gap:1em;" class="colonnes"> <ul><li><a href="/wiki/Plateforme_Java" title="Plateforme Java">Plateforme Java</a></li> <li><a href="/wiki/Machine_virtuelle_Java" title="Machine virtuelle Java">Machine virtuelle Java</a></li> <li><a href="/wiki/Bytecode_Java" title="Bytecode Java">Bytecode Java</a></li> <li><a href="/wiki/Servlet" title="Servlet">Servlet</a></li> <li>Navigateur <a href="/wiki/HotJava" title="HotJava">HotJava</a></li> <li><a href="/wiki/GNU_Compiler_Collection" title="GNU Compiler Collection">GNU Compiler Collection</a> (inclut un compilateur de code Java vers code natif, <a href="/wiki/GCJ" title="GCJ">GCJ</a>)</li> <li><a href="/wiki/.properties" title=".properties">.properties</a>, manière de stocker les variables de configuration</li> <li><a href="/wiki/Processing" title="Processing">Processing</a></li> <li><a href="/w/index.php?title=Java_version_history&action=edit&redlink=1" class="new" title="Java version history (page inexistante)">Java version history</a> <a href="https://en.wikipedia.org/wiki/Java_version_history" class="extiw" title="en:Java version history"><span class="indicateur-langue" title="Article en anglais : « Java version history »">(en)</span></a></li></ul> </div> <div class="mw-heading mw-heading3"><h3 id="Liens_externes">Liens externes</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Java_(langage)&veaction=edit&section=80" title="Modifier la section : Liens externes" class="mw-editsection-visualeditor"><span>modifier</span></a><span class="mw-editsection-divider"> | </span><a href="/w/index.php?title=Java_(langage)&action=edit&section=80" title="Modifier le code source de la section : Liens externes"><span>modifier le code</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><cite class="ouvrage" id="site_officiel" style="font-style: normal;"><a rel="nofollow" class="external text" href="http://www.java.com/fr/">Site officiel</a></cite></li> <li><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> <a rel="nofollow" class="external free" href="http://docs.oracle.com/javase/1.5.0/docs">http://docs.oracle.com/javase/1.5.0/docs</a> : Schéma de l'architecture logicielle de Java</li></ul> <div class="navbox-container" style="clear:both;"> <table class="navbox collapsible noprint autocollapse" style=""> <tbody><tr><th class="navbox-title" colspan="2" style=""><div style="float:left; width:6em; text-align:left"><div class="noprint plainlinks nowrap tnavbar" style="padding:0; font-size:xx-small; color:var(--color-emphasized, #000000);"><a href="/wiki/Mod%C3%A8le:Palette_Java_(Oracle)" title="Modèle:Palette Java (Oracle)"><abbr class="abbr" title="Voir ce modèle.">v</abbr></a> · <a class="external text" href="https://fr.wikipedia.org/w/index.php?title=Mod%C3%A8le:Palette_Java_(Oracle)&action=edit"><abbr class="abbr" title="Modifier ce modèle. Merci de prévisualiser avant de sauvegarder.">m</abbr></a></div></div><div style="font-size:110%"><a href="/wiki/Java_(technique)" title="Java (technique)">Java</a></div></th> </tr> <tr> <td class="navbox-banner" style="" colspan="2"><div class="liste-horizontale"> <ul><li><b><a href="/wiki/Oracle_(entreprise)" title="Oracle (entreprise)">Oracle</a></b></li> <li><a href="/wiki/Sun_Microsystems" title="Sun Microsystems">Sun Microsystems</a></li></ul> </div></td> </tr> <tr> <th class="navbox-group" style="">Technologie</th> <td class="navbox-list" style=""><div class="liste-horizontale"> <ul><li><a class="mw-selflink selflink">Langage Java</a></li> <li><a href="/wiki/Plateforme_Java" title="Plateforme Java">Plateforme</a></li> <li><a href="/wiki/Java_Development_Kit" title="Java Development Kit">Environnement de développement (JDK)</a></li> <li><a href="/wiki/Machine_virtuelle_Java" title="Machine virtuelle Java">Machine virtuelle Java (JVM)</a></li> <li><a href="/wiki/Environnement_d%27ex%C3%A9cution_Java" title="Environnement d'exécution Java">Environnement d’exécution (JRE)</a></li></ul> </div></td> </tr> <tr> <th class="navbox-group" style="">Général</th> <td class="navbox-list navbox-even" style=""><div class="liste-horizontale"> <ul><li><a href="/wiki/Java_Community_Process" title="Java Community Process">Java Community Process</a></li></ul> </div></td> </tr> <tr> <th class="navbox-group" style="">Framework</th> <td class="navbox-list" style=""><div class="liste-horizontale"> <ul><li><a href="/wiki/Java_ME" title="Java ME">Micro Edition (ME)</a></li> <li><a href="/wiki/Java_SE" title="Java SE">Standard Edition (SE)</a></li> <li><a href="/wiki/Jakarta_EE" title="Jakarta EE">Jakarta EE</a></li> <li><a href="/wiki/Java_Card" title="Java Card">Java Card</a></li> <li><a href="/wiki/JavaFX" title="JavaFX">JavaFX</a></li></ul> </div></td> </tr> <tr> <th class="navbox-group" style="">Techniques</th> <td class="navbox-list navbox-even" style=""><div class="liste-horizontale"> <ul><li><a href="/wiki/Bytecode_Java" title="Bytecode Java">Bytecode</a></li> <li><a href="/wiki/Applet_Java" title="Applet Java">Applets</a></li> <li><a href="/wiki/Servlet" title="Servlet">Servlets</a></li> <li><a href="/wiki/Scriptlet" title="Scriptlet">Scriptlets</a></li> <li><a href="/wiki/Jakarta_Server_Pages" title="Jakarta Server Pages">JavaServer Pages</a></li> <li><a href="/wiki/Class_(format_de_fichier)" title="Class (format de fichier)">.class</a></li> <li><a href="/wiki/Javadoc" title="Javadoc">Javadoc</a></li></ul> </div></td> </tr> <tr> <th class="navbox-group" style="">Langages de programmation</th> <td class="navbox-list" style=""><div class="liste-horizontale"> <ul><li><a href="/wiki/Ceylon" title="Ceylon">Ceylon</a></li> <li><a href="/wiki/Fortress_(langage)" title="Fortress (langage)">Fortress</a></li> <li><a href="/wiki/Groovy_(langage)" title="Groovy (langage)">Groovy</a></li> <li><a class="mw-selflink selflink">Java</a></li> <li><a href="/wiki/Kotlin_(langage)" title="Kotlin (langage)">Kotlin</a></li> <li><a href="/w/index.php?title=Oxygene_(langage)&action=edit&redlink=1" class="new" title="Oxygene (langage) (page inexistante)">Oxygene</a> <a href="https://en.wikipedia.org/wiki/Oxygene_(programming_language)" class="extiw" title="en:Oxygene (programming language)"><span class="indicateur-langue" title="Article en anglais : « Oxygene (programming language) »">(en)</span></a></li> <li><a href="/wiki/Python_(langage)" title="Python (langage)">Python</a> (<a href="/wiki/Jython" title="Jython">Jython</a>)</li> <li><a href="/wiki/Ruby" title="Ruby">Ruby</a> (<a href="/wiki/JRuby" title="JRuby">JRuby</a>)</li> <li><a href="/wiki/Scala_(langage)" title="Scala (langage)">Scala</a></li> <li><a href="/wiki/Xtend" title="Xtend">Xtend</a></li></ul> </div></td> </tr> </tbody></table> <table class="navbox collapsible noprint collapsed" style=""> <tbody><tr><th class="navbox-title" colspan="2" style=""><div style="float:left; width:6em; text-align:left"><div class="noprint plainlinks nowrap tnavbar" style="padding:0; font-size:xx-small; color:var(--color-emphasized, #000000);"><a href="/wiki/Mod%C3%A8le:Palette_Langages_de_programmation" title="Modèle:Palette Langages de programmation"><abbr class="abbr" title="Voir ce modèle.">v</abbr></a> · <a class="external text" href="https://fr.wikipedia.org/w/index.php?title=Mod%C3%A8le:Palette_Langages_de_programmation&action=edit"><abbr class="abbr" title="Modifier ce modèle. Merci de prévisualiser avant de sauvegarder.">m</abbr></a></div></div><div style="font-size:110%"><a href="/wiki/Langage_de_programmation" title="Langage de programmation">Langages de programmation</a></div></th> </tr> <tr> <th class="navbox-group" style=""><a href="/wiki/Programmation_concurrente" title="Programmation concurrente">Concurrents</a></th> <td class="navbox-list" style=""><div class="liste-horizontale"> <ul><li><a href="/wiki/Ada_(langage)" title="Ada (langage)">Ada</a></li> <li><a href="/wiki/Erlang_(langage)" title="Erlang (langage)">Erlang</a></li> <li><a href="/wiki/Go_(langage)" title="Go (langage)">Go</a></li> <li><a href="/wiki/Modula-2" title="Modula-2">Modula-2</a></li></ul> </div></td> </tr> <tr> <th class="navbox-group" style=""><a href="/wiki/Programmation_d%C3%A9clarative" title="Programmation déclarative">Déclaratifs</a></th> <td class="navbox-list navbox-even" style=""><div class="liste-horizontale"> <ul><li><a href="/wiki/Clips_(langage)" title="Clips (langage)">Clips</a></li> <li><a href="/wiki/Prolog" title="Prolog">Prolog</a></li> <li><a href="/wiki/Mercury_(langage)" title="Mercury (langage)">Mercury</a></li></ul> </div></td> </tr> <tr> <th class="navbox-group" style=""><a href="/wiki/Programmation_fonctionnelle" title="Programmation fonctionnelle">Fonctionnels</a></th> <td class="navbox-list" style=""><div class="liste-horizontale"> <ul><li><a href="/wiki/Common_Lisp" title="Common Lisp">Common Lisp</a></li> <li><a href="/wiki/Erlang_(langage)" title="Erlang (langage)">Erlang</a></li> <li><a href="/wiki/F_Sharp" title="F Sharp">F#</a></li> <li><a href="/wiki/Gallina" title="Gallina">Gallina</a></li> <li><a href="/wiki/Haskell" title="Haskell">Haskell</a></li> <li><a href="/wiki/Lisp" title="Lisp">Lisp</a></li> <li><a href="/wiki/ML_(langage)" title="ML (langage)">ML</a></li> <li><a href="/wiki/OCaml" title="OCaml">OCaml</a></li> <li><a href="/wiki/Opa_(logiciel)" title="Opa (logiciel)">Opa</a></li> <li><a href="/wiki/Scheme" title="Scheme">Scheme</a></li> <li><a href="/wiki/Standard_ML" title="Standard ML">Standard ML</a></li></ul> </div></td> </tr> <tr> <th class="navbox-group" style=""><a href="/wiki/Programmation_imp%C3%A9rative" title="Programmation impérative">Impératifs</a></th> <td class="navbox-list navbox-even" style=""><div class="liste-horizontale"> <ul><li><a href="/wiki/Algol_(langage)" title="Algol (langage)">Algol</a></li> <li><a href="/wiki/APL_(langage)" title="APL (langage)">APL</a></li> <li><a href="/wiki/Assembleur" title="Assembleur">Assembleur</a></li> <li><a href="/wiki/Basic_(langage)" title="Basic (langage)">Basic</a></li> <li><a href="/wiki/BCPL" title="BCPL">BCPL</a></li> <li><a href="/wiki/C_(langage)" title="C (langage)">C</a></li> <li><a href="/wiki/Cobol" title="Cobol">Cobol</a></li> <li><a href="/wiki/DOPE_(langage)" title="DOPE (langage)">DOPE</a></li> <li><a href="/wiki/Forth_(langage)" title="Forth (langage)">Forth</a></li> <li><a href="/wiki/Fortran" title="Fortran">Fortran</a></li> <li><a href="/wiki/Julia_(langage)" title="Julia (langage)">Julia</a></li> <li><a href="/wiki/Limbo_(langage)" title="Limbo (langage)">Limbo</a></li> <li><a href="/wiki/Lua" title="Lua">Lua</a></li> <li><a href="/wiki/Modula-2" title="Modula-2">Modula-2</a></li> <li><a href="/wiki/MUMPS" title="MUMPS">MUMPS</a></li> <li><a href="/wiki/Natural" title="Natural">Natural</a></li> <li><a href="/wiki/Not_Quite_C" title="Not Quite C">NQC</a></li> <li><a href="/wiki/Not_eXactly_C" title="Not eXactly C">NXC</a></li> <li><a href="/wiki/Open_Programming_Language" title="Open Programming Language">OPL</a></li> <li><a href="/wiki/Pascal_(langage)" title="Pascal (langage)">Pascal</a></li> <li><a href="/wiki/Perl_(langage)" title="Perl (langage)">Perl</a></li> <li><a href="/wiki/PL/I" title="PL/I">PL/I</a></li> <li><a href="/wiki/G%C3%A9n%C3%A9rateur_automatique_de_programmes" title="Générateur automatique de programmes">RPG</a></li> <li><a href="/wiki/Windows_PowerShell" title="Windows PowerShell">PowerShell</a></li> <li><a href="/wiki/Rust_(langage)" title="Rust (langage)">Rust</a></li> <li><a href="/wiki/Tool_Command_Language" title="Tool Command Language">Tcl</a></li> <li><a href="/wiki/WLangage" title="WLangage">WLangage</a></li></ul> </div></td> </tr> <tr> <th class="navbox-group" style=""><a href="/wiki/Programmation_orient%C3%A9e_objet" title="Programmation orientée objet">Orientés objet</a></th> <td class="navbox-list" style=""><div class="liste-horizontale"> <ul><li><a href="/wiki/ActionScript" title="ActionScript">ActionScript</a></li> <li><a href="/wiki/AppleScript" title="AppleScript">AppleScript</a></li> <li><a href="/wiki/C%2B%2B" title="C++">C++</a></li> <li><a href="/wiki/C_Sharp" title="C Sharp">C#</a></li> <li><a href="/wiki/CoffeeScript" title="CoffeeScript">CoffeeScript</a></li> <li><a href="/wiki/D_(langage)" title="D (langage)">D</a></li> <li><a href="/wiki/Delphi_(langage)" title="Delphi (langage)">Delphi</a></li> <li><a href="/wiki/Eiffel_(langage)" title="Eiffel (langage)">Eiffel</a></li> <li><a href="/wiki/Groovy_(langage)" title="Groovy (langage)">Groovy</a></li> <li><a href="/wiki/Haxe" title="Haxe">Haxe</a></li> <li><a class="mw-selflink selflink">Java</a></li> <li><a href="/wiki/JavaScript" title="JavaScript">JavaScript</a></li> <li><a href="/wiki/Lisaac" title="Lisaac">Lisaac</a></li> <li><a href="/wiki/Logo_(langage)" title="Logo (langage)">Logo</a></li> <li><a href="/wiki/Objective-C" title="Objective-C">Objective-C</a></li> <li><a href="/wiki/PHP" title="PHP">PHP</a></li> <li><a href="/wiki/Python_(langage)" title="Python (langage)">Python</a></li> <li><a href="/wiki/Ruby" title="Ruby">Ruby</a></li> <li><a href="/wiki/Scala_(langage)" title="Scala (langage)">Scala</a></li> <li><a href="/wiki/Scratch_(langage)" title="Scratch (langage)">Scratch</a></li> <li><a href="/wiki/Simula" title="Simula">Simula</a></li> <li><a href="/wiki/Smalltalk" title="Smalltalk">Smalltalk</a></li> <li><a href="/wiki/Swift_(langage_d%27Apple)" title="Swift (langage d'Apple)">Swift</a></li> <li><a href="/wiki/Kotlin_(langage)" title="Kotlin (langage)">Kotlin</a></li> <li><a href="/wiki/Visual_Basic" title="Visual Basic">Visual Basic</a></li></ul> </div></td> </tr> <tr> <td class="navbox-banner" style="" colspan="2"><div class="liste-horizontale"> <ul><li><a href="/wiki/Liste_de_langages_de_programmation" title="Liste de langages de programmation">Liste de langages de programmation</a></li></ul> </div></td></tr></tbody></table> </div> <ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"><a href="/wiki/Portail:Programmation_informatique" title="Portail de la programmation informatique"><img alt="icône décorative" src="//upload.wikimedia.org/wikipedia/commons/thumb/c/cc/Circle-icons-dev.svg/24px-Circle-icons-dev.svg.png" decoding="async" width="24" height="24" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/c/cc/Circle-icons-dev.svg/36px-Circle-icons-dev.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/c/cc/Circle-icons-dev.svg/48px-Circle-icons-dev.svg.png 2x" data-file-width="512" data-file-height="512" /></a></span></span> <span class="bandeau-portail-texte"><a href="/wiki/Portail:Programmation_informatique" title="Portail:Programmation informatique">Portail de la programmation informatique</a></span> </span></li> </ul> <!-- NewPP limit report Parsed by mw‐web.eqiad.main‐64f8f8dcdb‐k8r56 Cached time: 20250223180017 Cache expiry: 2592000 Reduced expiry: false Complications: [show‐toc] CPU time usage: 0.785 seconds Real time usage: 1.102 seconds Preprocessor visited node count: 12325/1000000 Post‐expand include size: 176465/2097152 bytes Template argument size: 24622/2097152 bytes Highest expansion depth: 15/100 Expensive parser function count: 39/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 111072/5000000 bytes Lua time usage: 0.251/10.000 seconds Lua memory usage: 7775144/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 878.196 1 -total 24.39% 214.149 1 Modèle:Références 15.75% 138.305 1 Modèle:Infobox_Langage_de_programmation 11.11% 97.588 18 Modèle:Wikidata 8.08% 70.966 8 Modèle:Lien_archive 7.40% 64.973 46 Modèle:Lien_web 6.44% 56.521 2 Modèle:Infobox/Image_optionnelle 5.66% 49.691 21 Modèle:Infobox/Ligne_mixte_optionnelle 4.12% 36.194 59 Modèle:Lang 3.46% 30.360 1 Modèle:Palette --> <!-- Saved in parser cache with key frwiki:pcache:6469:|#|:idhash:canonical and timestamp 20250223180017 and revision id 223275134. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?useformat=desktop&type=1x1&usesul3=0" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Ce document provient de « <a dir="ltr" href="https://fr.wikipedia.org/w/index.php?title=Java_(langage)&oldid=223275134">https://fr.wikipedia.org/w/index.php?title=Java_(langage)&oldid=223275134</a> ».</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Cat%C3%A9gorie:Accueil" title="Catégorie:Accueil">Catégories</a> : <ul><li><a href="/wiki/Cat%C3%A9gorie:Java_(langage)" title="Catégorie:Java (langage)">Java (langage)</a></li><li><a href="/wiki/Cat%C3%A9gorie:Langage_de_programmation" title="Catégorie:Langage de programmation">Langage de programmation</a></li><li><a href="/wiki/Cat%C3%A9gorie:Langage_orient%C3%A9_objet" title="Catégorie:Langage orienté objet">Langage orienté objet</a></li><li><a href="/wiki/Cat%C3%A9gorie:Plateforme_Java" title="Catégorie:Plateforme Java">Plateforme Java</a></li><li><a href="/wiki/Cat%C3%A9gorie:Langage_pour_la_machine_virtuelle_Java" title="Catégorie:Langage pour la machine virtuelle Java">Langage pour la machine virtuelle Java</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Catégories cachées : <ul><li><a href="/wiki/Cat%C3%A9gorie:Page_utilisant_P571" title="Catégorie:Page utilisant P571">Page utilisant P571</a></li><li><a href="/wiki/Cat%C3%A9gorie:Page_utilisant_P1195" title="Catégorie:Page utilisant P1195">Page utilisant P1195</a></li><li><a href="/wiki/Cat%C3%A9gorie:Article_utilisant_une_Infobox" title="Catégorie:Article utilisant une Infobox">Article utilisant une Infobox</a></li><li><a href="/wiki/Cat%C3%A9gorie:Article_contenant_un_appel_%C3%A0_traduction_en_anglais" title="Catégorie:Article contenant un appel à traduction en anglais">Article contenant un appel à traduction en anglais</a></li><li><a href="/wiki/Cat%C3%A9gorie:Article_%C3%A0_r%C3%A9f%C3%A9rence_souhait%C3%A9e" title="Catégorie:Article à référence souhaitée">Article à référence souhaitée</a></li><li><a href="/wiki/Cat%C3%A9gorie:Article_%C3%A0_r%C3%A9f%C3%A9rence_n%C3%A9cessaire" title="Catégorie:Article à référence nécessaire">Article à référence nécessaire</a></li><li><a href="/wiki/Cat%C3%A9gorie:Article_contenant_un_appel_%C3%A0_traduction_en_espagnol" title="Catégorie:Article contenant un appel à traduction en espagnol">Article contenant un appel à traduction en espagnol</a></li><li><a href="/wiki/Cat%C3%A9gorie:Page_avec_un_oldid_invalide" title="Catégorie:Page avec un oldid invalide">Page avec un oldid invalide</a></li><li><a href="/wiki/Cat%C3%A9gorie:Cat%C3%A9gorie_Commons_avec_lien_local_identique_sur_Wikidata" title="Catégorie:Catégorie Commons avec lien local identique sur Wikidata">Catégorie Commons avec lien local identique sur Wikidata</a></li><li><a href="/wiki/Cat%C3%A9gorie:Portail:Programmation_informatique/Articles_li%C3%A9s" title="Catégorie:Portail:Programmation informatique/Articles liés">Portail:Programmation informatique/Articles liés</a></li><li><a href="/wiki/Cat%C3%A9gorie:Portail:Informatique/Articles_li%C3%A9s" title="Catégorie:Portail:Informatique/Articles liés">Portail:Informatique/Articles liés</a></li><li><a href="/wiki/Cat%C3%A9gorie:Article_de_qualit%C3%A9_en_malay%C3%A2lam" title="Catégorie:Article de qualité en malayâlam">Article de qualité en malayâlam</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> La dernière modification de cette page a été faite le 23 février 2025 à 00:30.</li> <li id="footer-info-copyright"><span style="white-space: normal"><a href="/wiki/Wikip%C3%A9dia:Citation_et_r%C3%A9utilisation_du_contenu_de_Wikip%C3%A9dia" title="Wikipédia:Citation et réutilisation du contenu de Wikipédia">Droit d'auteur</a> : les textes sont disponibles sous <a rel="nofollow" class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">licence Creative Commons attribution, partage dans les mêmes conditions</a> ; d’autres conditions peuvent s’appliquer. Voyez les <a class="external text" href="https://foundation.wikimedia.org/wiki/Policy:Terms_of_Use/fr">conditions d’utilisation</a> pour plus de détails, ainsi que les <a href="/wiki/Wikip%C3%A9dia:Cr%C3%A9dits_graphiques" title="Wikipédia:Crédits graphiques">crédits graphiques</a>. En cas de réutilisation des textes de cette page, voyez <a href="/wiki/Sp%C3%A9cial:Citer/Java_(langage)" title="Spécial:Citer/Java (langage)">comment citer les auteurs et mentionner la licence</a>.<br /> Wikipedia® est une marque déposée de la <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, organisation de bienfaisance régie par le paragraphe <a href="/wiki/501c" title="501c">501(c)(3)</a> du code fiscal des États-Unis.</span><br /></li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy/fr">Politique de confidentialité</a></li> <li id="footer-places-about"><a href="/wiki/Wikip%C3%A9dia:%C3%80_propos_de_Wikip%C3%A9dia">À propos de Wikipédia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikip%C3%A9dia:Avertissements_g%C3%A9n%C3%A9raux">Avertissements</a></li> <li id="footer-places-contact"><a href="//fr.wikipedia.org/wiki/Wikipédia:Contact">Contact</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code de conduite</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Développeurs</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/fr.wikipedia.org">Statistiques</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Déclaration sur les témoins (cookies)</a></li> <li id="footer-places-mobileview"><a href="//fr.m.wikipedia.org/w/index.php?title=Java_(langage)&section=12&veaction=edit&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Version mobile</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><picture><source media="(min-width: 500px)" srcset="/static/images/footer/wikimedia-button.svg" width="84" height="29"><img src="/static/images/footer/wikimedia.svg" width="25" height="25" alt="Wikimedia Foundation" lang="en" loading="lazy"></picture></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><picture><source media="(min-width: 500px)" srcset="/w/resources/assets/poweredby_mediawiki.svg" width="88" height="31"><img src="/w/resources/assets/mediawiki_compact.svg" alt="Powered by MediaWiki" lang="en" width="25" height="25" loading="lazy"></picture></a></li> </ul> </footer> </div> </div> </div> <div class="vector-header-container vector-sticky-header-container"> <div id="vector-sticky-header" class="vector-sticky-header"> <div class="vector-sticky-header-start"> <div class="vector-sticky-header-icon-start vector-button-flush-left vector-button-flush-right" aria-hidden="true"> <button class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-sticky-header-search-toggle" tabindex="-1" data-event-name="ui.vector-sticky-search-form.icon"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Rechercher</span> </button> </div> <div role="search" class="vector-search-box-vue vector-search-box-show-thumbnail vector-search-box"> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail"> <form action="/w/index.php" id="vector-sticky-search-form" class="cdx-search-input cdx-search-input--has-end-button"> <div class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Rechercher sur Wikipédia"> <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Spécial:Recherche"> </div> <button class="cdx-button cdx-search-input__end-button">Rechercher</button> </form> </div> </div> </div> <div class="vector-sticky-header-context-bar"> <nav aria-label="Sommaire" class="vector-toc-landmark"> <div id="vector-sticky-header-toc" class="vector-dropdown mw-portlet mw-portlet-sticky-header-toc vector-sticky-header-toc vector-button-flush-left" > <input type="checkbox" id="vector-sticky-header-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-sticky-header-toc" class="vector-dropdown-checkbox " aria-label="Basculer la table des matières" > <label id="vector-sticky-header-toc-label" for="vector-sticky-header-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Basculer la table des matières</span> </label> <div class="vector-dropdown-content"> <div id="vector-sticky-header-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div class="vector-sticky-header-context-bar-primary" aria-hidden="true" ><span class="mw-page-title-main">Java (langage)</span></div> </div> </div> <div class="vector-sticky-header-end" aria-hidden="true"> <div class="vector-sticky-header-icons"> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-talk-sticky-header" tabindex="-1" data-event-name="talk-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbles mw-ui-icon-wikimedia-speechBubbles"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-subject-sticky-header" tabindex="-1" data-event-name="subject-sticky-header"><span class="vector-icon mw-ui-icon-article mw-ui-icon-wikimedia-article"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-history-sticky-header" tabindex="-1" data-event-name="history-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-history mw-ui-icon-wikimedia-wikimedia-history"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only mw-watchlink" id="ca-watchstar-sticky-header" tabindex="-1" data-event-name="watch-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-star mw-ui-icon-wikimedia-wikimedia-star"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-ve-edit-sticky-header" tabindex="-1" data-event-name="ve-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-edit mw-ui-icon-wikimedia-wikimedia-edit"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-edit-sticky-header" tabindex="-1" data-event-name="wikitext-edit-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-wikiText mw-ui-icon-wikimedia-wikimedia-wikiText"></span> <span></span> </a> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only" id="ca-viewsource-sticky-header" tabindex="-1" data-event-name="ve-edit-protected-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-editLock mw-ui-icon-wikimedia-wikimedia-editLock"></span> <span></span> </a> </div> <div class="vector-sticky-header-buttons"> <button class="cdx-button cdx-button--weight-quiet mw-interlanguage-selector" id="p-lang-btn-sticky-header" tabindex="-1" data-event-name="ui.dropdown-p-lang-btn-sticky-header"><span class="vector-icon mw-ui-icon-wikimedia-language mw-ui-icon-wikimedia-wikimedia-language"></span> <span>117 langues</span> </button> <a href="#" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive" id="ca-addsection-sticky-header" tabindex="-1" data-event-name="addsection-sticky-header"><span class="vector-icon mw-ui-icon-speechBubbleAdd-progressive mw-ui-icon-wikimedia-speechBubbleAdd-progressive"></span> <span>Ajouter un sujet</span> </a> </div> <div class="vector-sticky-header-icon-end"> <div class="vector-user-links"> </div> </div> </div> </div> </div> <div class="mw-portlet mw-portlet-dock-bottom emptyPortlet" id="p-dock-bottom"> <ul> </ul> </div> <script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-6455b7c8bf-vfbq5","wgBackendResponseTime":238,"wgPageParseReport":{"limitreport":{"cputime":"0.785","walltime":"1.102","ppvisitednodes":{"value":12325,"limit":1000000},"postexpandincludesize":{"value":176465,"limit":2097152},"templateargumentsize":{"value":24622,"limit":2097152},"expansiondepth":{"value":15,"limit":100},"expensivefunctioncount":{"value":39,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":111072,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 878.196 1 -total"," 24.39% 214.149 1 Modèle:Références"," 15.75% 138.305 1 Modèle:Infobox_Langage_de_programmation"," 11.11% 97.588 18 Modèle:Wikidata"," 8.08% 70.966 8 Modèle:Lien_archive"," 7.40% 64.973 46 Modèle:Lien_web"," 6.44% 56.521 2 Modèle:Infobox/Image_optionnelle"," 5.66% 49.691 21 Modèle:Infobox/Ligne_mixte_optionnelle"," 4.12% 36.194 59 Modèle:Lang"," 3.46% 30.360 1 Modèle:Palette"]},"scribunto":{"limitreport-timeusage":{"value":"0.251","limit":"10.000"},"limitreport-memusage":{"value":7775144,"limit":52428800}},"cachereport":{"origin":"mw-web.eqiad.main-64f8f8dcdb-k8r56","timestamp":"20250223180017","ttl":2592000,"transientcontent":false}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Java (langage)","url":"https:\/\/fr.wikipedia.org\/wiki\/Java_(langage)","sameAs":"http:\/\/www.wikidata.org\/entity\/Q251","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q251","author":{"@type":"Organization","name":"Contributeurs aux projets Wikimedia"},"publisher":{"@type":"Organization","name":"Fondation Wikimedia, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2002-12-13T01:09:24Z","dateModified":"2025-02-22T23:30:21Z","image":"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/3\/3e\/Metodo_Astratto.png","headline":"langage de programmation informatique orient\u00e9 objet"}</script> </body> </html>