JavaのMath.multiplyExact()メソッドとは?使い方と実行例をわかりやすく解説
Math.multiplyExact()は、Javaに標準で用意されている組み込みメソッドの一つで、引数として渡された2つの値を乗算(掛け算)するために使用されます。通常の乗算演算子「*」との大きな違いは、計算結果がデータ型の範囲を超えてオーバーフローした場合にArithmeticExceptionをスローする点です。これにより、気づきにくいオーバーフローバグを防ぐことができます。
multiplyExact()の基本的な使い方
以下は、int型とlong型の値に対してmultiplyExact()を使用し、積を求めるサンプルコードです。
サンプルコード
import java.lang.Math;
public class Demo{
public static void main(String args[]){
int a = 12, b = 34;
System.out.printf("Product is : ");
System.out.println(Math.multiplyExact(a, b));
long c = 78, d = 93;
System.out.printf("Product is : ");
System.out.println(Math.multiplyExact(c, d));
}
}
実行結果
Product is : 408 Product is : 7254
コードの解説
Demoという名前のクラスの中にmainメソッドが定義されています。まず、2つのint型変数aとbを宣言し、multiplyExact()メソッドを使ってその積を計算しています。続いて、2つのlong型変数cとdを宣言し、同じくmultiplyExact()メソッドで積を求めています。最後に、それぞれの計算結果がコンソールに出力されます。
押さえておきたいポイント
- int型同士の乗算ではint型の結果が、long型同士の乗算ではlong型の結果が返されます。
- 計算結果が各データ型の表現範囲を超えるとArithmeticExceptionが発生するため、安全な数値計算を行いたい場面で特に有効です。
- 同様のメソッドとして、加算を行うaddExact()や減算を行うsubtractExact()もMathクラスに用意されています。
-
JavaのIterator(イテレータ)とCollection(コレクション)の違いと使い方を徹底解説
Javaのコレクションフレームワークにおいて、Iterator(イテレータ)とCollection(コレクション)はデータを扱う上で非常に重要なインターフェースです。本記事では、それぞれの特徴や役割の違いを、実際のコード例とともにわかりやすく解説します。 Iterator(イテレータ)とは Iteratorは、コレクションフレームワーク内で必要なタイミングで要素を1つずつ取り出すために使用されるインターフェースです。 public interface Iterator next()メソッドを使うことで、次の要素へ移動しながらアクセスできます。また、remove()メソッドを使用すれば、データ
-
JavaのIntUnaryOperatorインターフェースとは?主要メソッドと使用例を解説
Javaで関数型プログラミングを行う際に活用できるのが、java.util.functionパッケージに含まれる「IntUnaryOperator」インターフェースです。IntUnaryOperatorは、int型の引数を1つ受け取り、int型の結果を返す操作を表す関数型インターフェースで、Java 8から導入されました。ここでは、IntUnaryOperatorの基本的な使い方をサンプルコードとともに見ていきましょう。 IntUnaryOperatorの使用例 a * 9); System.out.println(op_4.applyAsInt(56)); } }