diff --git a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/IntProvider.java b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/IntProvider.java
index b358fbd..9a4ab7a 100644
--- a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/IntProvider.java
+++ b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source32/IntProvider.java
@@ -85,8 +85,8 @@
     /** {@inheritDoc} */
     @Override
     protected byte[] getStateInternal() {
-        final int[] state = new int[] {booleanSource,
-                                       booleanBitMask};
+        final int[] state = {booleanSource,
+                             booleanBitMask};
         return composeStateInternal(NumberFactory.makeByteArray(state),
                                     super.getStateInternal());
     }
diff --git a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/LongProvider.java b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/LongProvider.java
index d1c2941..278c5bb 100644
--- a/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/LongProvider.java
+++ b/commons-rng-core/src/main/java/org/apache/commons/rng/core/source64/LongProvider.java
@@ -101,10 +101,10 @@
     @Override
     protected byte[] getStateInternal() {
         // Pack the boolean inefficiently as a long
-        final long[] state = new long[] {booleanSource,
-                                         booleanBitMask,
-                                         intSource,
-                                         cachedIntSource ? 1 : 0 };
+        final long[] state = {booleanSource,
+                              booleanBitMask,
+                              intSource,
+                              cachedIntSource ? 1 : 0 };
         return composeStateInternal(NumberFactory.makeByteArray(state),
                                     super.getStateInternal());
     }
diff --git a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InternalUtils.java b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InternalUtils.java
index 3807001..bd55384 100644
--- a/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InternalUtils.java
+++ b/commons-rng-sampling/src/main/java/org/apache/commons/rng/sampling/distribution/InternalUtils.java
@@ -27,7 +27,7 @@
  */
 final class InternalUtils { // Class is package-private on purpose; do not make it public.
     /** All long-representable factorials. */
-    private static final long[] FACTORIALS = new long[] {
+    private static final long[] FACTORIALS = {
         1L,                1L,                  2L,
         6L,                24L,                 120L,
         720L,              5040L,               40320L,
