Maison  >  Article  >  Java  >  Strictfp en Java

Strictfp en Java

WBOY
WBOYoriginal
2024-08-30 15:36:00388parcourir

La fonction principale de strictfp en Java est de fournir le même résultat sur chaque plate-forme lorsque des variables à virgule flottante sont en cours d'exécution. À l’époque où James Gosling et son équipe développaient Java, l’un des principaux aspects du langage était l’indépendance de la plate-forme. Compiler, interpréter et exécuter le même code sur différentes machines et s'assurer que le résultat est le même et non manipulé par le processeur.

Lors du calcul des virgules flottantes sur différentes plates-formes, les résultats peuvent varier en raison de la capacité du matériel à traiter les virgules flottantes par le processeur. Strictfp garantit que vous obtenez la sortie exacte en virgule flottante sur toutes les plates-formes. Avec IEEE 754, norme pour l'arithmétique à virgule flottante, strictfp a été introduit dans la version JVM 1.2.

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

Pour une variété de processeurs, les précisions standard peuvent varier ; La précision de 32 bits est différente de celle de 62 bits et ainsi de suite pour les machines x86. L'utilisation de strictfp garantit que lorsque le même code est exécuté sur différentes plates-formes, la sortie ne sera pas manipulée en raison d'une précision différente, ce qui fonctionne bien avec des plates-formes de plus grande précision. Comprenez strictfp comme FP Strict, ce qui signifie Floating Point Strict.

Syntaxe dans Strictfp

Le strictfp est simple et commence par le mot-clé strictfp. Ci-dessous les syntaxes d'une classe, d'une interface et d'une méthode :

1. Classe

strictfp class sample1{
// code here will me implicitly strictfp.
}

2. Une Interface

strictfp interface sample2 {
// methods here will be implicitly strictfp
}

3. Méthode

class India {
strictfp void population()
}

Dans les exemples ci-dessus, nous avons simplement ajouté le mot-clé strictfp pour la classe et l'interface. Les exemples ci-dessus montrent comment strictfp le mot-clé doit être utilisé et vous trouverez ci-dessous un exemple de l'endroit où ne pas utiliser le mot-clé strictfp.

class sample1{
strictfp float a;
}

Ici, attribuer un mot-clé strictfp à la variable ne fonctionnera pas. Il doit être strictement transmis avec une classe ou une interface.

Exemple à implémenter dans Strictfp

Vous trouverez ci-dessous les exemples d'implémentation dans Strictfp :

Exemple n°1

Nous allons maintenant démontrer le fonctionnement du mot-clé strictfp en l'implémentant dans un exemple de code.  Ci-dessous le programme pour le même :

Code :

public class Test  {
public strictfp double add()
{
double number1 = 10e+10;
double number2 = 6e+08;
return (number1+number2);
}
public static strictfp void main(String[] args)
{
Test example = new Test();
System.out.println(example.add());
}
}

Sortie :

Strictfp en Java

Explication du code ci-dessus : Nous avons commencé avec la définition de la classe Test, puis nous avons créé une méthode avec un type de données double et lui avons attribué le mot-clé strictfp. Dans add(), nous avons créé deux variables nommées number1 et number2 de type de données double, et dans la ligne suivante, la méthode renvoie l'addition de ces deux variables. Plus tard, nous avons notre classe principale, qui est également équipée de strictfp, et le bloc de code à l'intérieur hérite des propriétés strictfp. Nous avons créé un nouvel objet de notre classe, et à la fin, nous avons notre instruction d'impression de sortie, qui imprime simplement la valeur ajoutée des deux variables.

Exemple n°2

Démontrons maintenant le même mot-clé strictfp dans différents programmes. Ici, nous ne ferons aucun calcul ; à la place, nous passerons une valeur dans la variable float et l'imprimerons avec un mot-clé strictfp.

Code :

public class new_strictfp {
float f = 9.381f;
strictfp public void displayValue(){
System.out.println(f);
}
public static void main(String[] args) {
new_strictfp Demo = new new_strictfp ();
Demo.displayValue();
}
}

Sortie :

Strictfp en Java

Explication du code ci-dessus : Ceci est un autre exemple où nous avons implémenté le mot-clé strictfp. J'ai commencé avec la classe publique et créé une nouvelle variable avec un type de données et une valeur float. Nous avons ensuite créé une méthode pour imprimer la valeur float, et dans notre classe principale, nous avons initialisé un objet de notre classe. Après l'objet, nous avons notre instruction de sortie, qui appelle notre méthode créée précédemment. Ici, notre méthode créée est strictementfp activée, ce qui signifie que la valeur à virgule flottante attribuée sera imprimée telle quelle.

Règles à retenir

Comme tout autre mot-clé dans n'importe quel langage de programmation, strictfp en Java a ses utilisations et ses règles et pour obtenir les résultats escomptés, les règles spécifiées doivent être suivies.  Comprenons maintenant quelques règles avant d'implémenter le mot-clé.

  • Le mot-clé strictfp ne peut pas être implémenté avec les constructeurs ; cela fonctionne bien avec les classes, les interfaces et les méthodes.
  • Lorsque strictfp est déclaré avec une interface ou une classe, il implémentera implicitement strictfp pour toutes les méthodes et types imbriqués qu'il contient.
  • strictfp peut être implémenté avec une classe ou une interface abstraite mais pas avec des méthodes abstraites.
  • Avec les constructeurs, strictfp ne peut pas être utilisé avec des variables ; reportez-vous à l'exemple de code mentionné précédemment.

Le respect des règles mentionnées ci-dessus garantira la bonne utilisation de strictfp, et la différence possible entre une précision en virgule flottante donnant des résultats différents sera évitée.

Avantages de Strictfp en Java

Vous trouverez ci-dessous les avantages associés au mot-clé. Les avantages de l’utilisation de strictfp sont variés du point de vue du développeur ; quelques-uns sont répertoriés ci-dessous :

  • Précision avec résultat en virgule flottante sur diverses machines.
  • strictfp exploite la précision et la vitesse des opérations en virgule flottante.
  • Il est totalement impartial pour les versions 32 bits et 64 bits et se concentre clairement sur de meilleurs résultats.
  • Enfin, utiliser ce mot-clé comme aucun inconvénient, aucune augmentation de la compressibilité temporelle ou de la vitesse d'exécution.
  • Il est important de comprendre que sans le mot-clé strictfp et sa fonction, la sortie en virgule flottante peut être manipulée en fonction du point de précision du CPU de la machine cible par le compilateur JVM et JIT.
  • C'est juste une autre meilleure façon de garantir les bases du langage de programmation Java, qui est « Ecrire une fois, exécuté n'importe où », et de ne pas obtenir de résultats différents ou erronés partout, sauf sur la machine source.

Conclusion – Strictfp en Java

nous avons compris ce qu'est un mot-clé Strictfp en Java, puis nous avons exploré les utilisations et ne devions pas utiliser ce mot-clé. Il a été introduit dans JVM 1.2 conformément aux normes de virgule flottante de l'IEE 754. Nous avons démontré le mot-clé strictfp avec des syntaxes et les avons ensuite implémentés dans des exemples. C'est un modificateur qui garantit les mêmes résultats.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Fonction substring() en JavaArticle suivant:Fonction substring() en Java