Em Java o 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 enquanto executa operações na variável de ponto flutuante.
Os cálculos de ponto flutuante dependem da plataforma, ou seja, resultados diferentes (valores de ponto flutuante) são obtidos quando um arquivo de classe é executado em plataformas diferentes (processadores de 16/32/64 bits). Para resolver este tipo de problema a palavra-chave strictfp foi introduzida na versão JDK 1.2 seguindo IEEE 754 padrões para cálculos de ponto flutuante.
tipos de dados SQL
Observação: O modificador strictfp é usado apenas com interfaces de classes e métodos, mas não é aplicável para aplicação 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 método abstrato em uma interface
padrões de design java
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, 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.
- A partir da versão Java 17, a palavra-chave strictfp NÃO é necessária explicitamente, pois todas as expressões de ponto flutuante são avaliadas estritamente.
Exemplo:
Java// 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 putting strictfp and // error is not found public static void main method System.out.println(t.sum()); } }
Saída
1.006E11
Saída:
Abaixo podemos ver a saída no console.
como selecionar colunas de tabelas diferentes no sql