palavra-chave strictfp em java
strictfp é um modificador que significa ponto flutuante estrito que não foi introduzido na versão base do java como foi introduzido na versão 1.2 do Java. É usado em java para restringir cálculos de ponto flutuante e garantir o mesmo resultado em todas as plataformas durante a execução de operações na variável de ponto flutuante.
Os cálculos de ponto flutuante dependem da plataforma, ou seja, uma saída diferente (valores de ponto flutuante) é obtida quando um arquivo de classe é executado em plataformas diferentes (processadores de 16/32/64 bits). Para resolver esse tipo de problema, a palavra-chave strictfp foi introduzida na versão JDK 1.2 seguindo os padrões IEEE 754 para cálculos de ponto flutuante.
Observação: o modificador strictfp é usado apenas com classes, interfaces e métodos, mas não é aplicável para aplicar com variáveis conforme ilustrado abaixo:
Ilustração 1: Uso de palavras - chave com classes
strictfp class Test { // All concrete methods here are implicitly strictfp. }
Ilustração 2: Uso de palavras - chave com interfaces
strictfp interface Test { // All methods here becomes implicitly // strictfp when used during inheritance. } class Car { // strictfp applied on a concrete method strictfp void calculateSpeed(){} }
Ilustração 3: Uso de palavras - chave com variáveis
strictfp interface Test { double sum(); // Compile-time error here strictfp double mul(); }
Algumas conclusões podem ser tiradas das ilustrações acima como segue:
- Quando uma classe ou interface é declarada com o modificador strictfp, todos os métodos declarados na classe / interface e todos os tipos aninhados declarados na classe são implicitamente strictfp.
- strictfp não pode ser usado com métodos abstratos. No entanto, ele pode ser usado com classes / interfaces abstratas.
- Como os métodos de uma interface são implicitamente abstratos, strictfp não pode ser usado com nenhum método dentro de uma interface.
Exemplo
// Java program to illustrate strictfp modifier
// Usage in Classes
// Main class
class GFG {
// Method 1
// Calculating sum using strictfp modifier
public strictfp double sum()
{
double num1 = 10e+10;
double num2 = 6e+08;
// Returning the sum
return (num1 + num2);
}
// Method 2
// Main driver method
public static void main(String[] args)
{
// Creating object of class in main() method
GFG t = new GFG();
// Here we have error of puting strictfp and
// error is not found public static void main method
System.out.println(t.sum());
}
}
Saída:
Este artigo é uma contribuição de Gaurav Miglani . Se você gosta de GeeksforGeeks e gostaria de contribuir, você também pode escrever um artigo usando write.geeksforgeeks.org ou enviar seu artigo para review-team@geeksforgeeks.org. Veja o seu artigo na página principal do GeeksforGeeks e ajude outros Geeks.
Escreva comentários se encontrar algo incorreto ou se quiser compartilhar mais informações sobre o tópico discutido acima.
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva