diff --git a/.gitignore b/.gitignore
index a8f09b4135..08f570ad06 100644
--- a/.gitignore
+++ b/.gitignore
@@ -41,4 +41,5 @@ SpringDataInjectionDemo/.mvn/wrapper/maven-wrapper.properties
spring-call-getters-using-reflection/.mvn/wrapper/maven-wrapper.properties
spring-check-if-a-property-is-null/.mvn/wrapper/maven-wrapper.properties
-/vertx-and-rxjava/.vertx/
+*.springBeans
+
diff --git a/core-java/pom.xml b/core-java/pom.xml
index d4d249934b..0e57b35ab8 100644
--- a/core-java/pom.xml
+++ b/core-java/pom.xml
@@ -372,6 +372,31 @@
+
+
+ org.codehaus.mojo
+ exec-maven-plugin
+
+
+
+ run-benchmarks
+ integration-test
+
+ exec
+
+
+ test
+ java
+
+ -classpath
+
+ org.openjdk.jmh.Main
+ .*
+
+
+
+
+
@@ -448,4 +473,4 @@
3.6.0
2.19.1
-
+
\ No newline at end of file
diff --git a/core-java/src/main/java/com/baeldung/string/StringBufferStringBuilder.java b/core-java/src/main/java/com/baeldung/string/StringBufferStringBuilder.java
new file mode 100644
index 0000000000..74f489d57f
--- /dev/null
+++ b/core-java/src/main/java/com/baeldung/string/StringBufferStringBuilder.java
@@ -0,0 +1,46 @@
+package com.baeldung.string;
+
+import org.openjdk.jmh.annotations.Benchmark;
+import org.openjdk.jmh.annotations.Scope;
+import org.openjdk.jmh.annotations.State;
+import org.openjdk.jmh.runner.Runner;
+import org.openjdk.jmh.runner.RunnerException;
+import org.openjdk.jmh.runner.options.Options;
+import org.openjdk.jmh.runner.options.OptionsBuilder;
+
+public class StringBufferStringBuilder {
+
+ public static void main(String[] args) throws RunnerException {
+
+ Options opt = new OptionsBuilder()
+ .include(StringBufferStringBuilder.class.getSimpleName())
+ .build();
+
+ new Runner(opt).run();
+ }
+
+ @State(Scope.Benchmark)
+ public static class MyState {
+ int iterations = 1000;
+ String initial = "abc";
+ String suffix = "def";
+ }
+
+ @Benchmark
+ public StringBuffer benchmarkStringBuffer(MyState state) {
+ StringBuffer stringBuffer = new StringBuffer(state.initial);
+ for (int i = 0; i < state.iterations; i++) {
+ stringBuffer.append(state.suffix);
+ }
+ return stringBuffer;
+ }
+
+ @Benchmark
+ public StringBuilder benchmarkStringBuilder(MyState state) {
+ StringBuilder stringBuilder = new StringBuilder(state.initial);
+ for (int i = 0; i < state.iterations; i++) {
+ stringBuilder.append(state.suffix);
+ }
+ return stringBuilder;
+ }
+}
\ No newline at end of file
diff --git a/core-java/src/test/java/com/baeldung/maths/RoundTest.java b/core-java/src/test/java/com/baeldung/maths/RoundTest.java
index 9e3c049c96..5ce9523e21 100644
--- a/core-java/src/test/java/com/baeldung/maths/RoundTest.java
+++ b/core-java/src/test/java/com/baeldung/maths/RoundTest.java
@@ -15,56 +15,56 @@ public class RoundTest {
private double expected = 2.03d;
@Test
- public void givenDecimalNumber_whenRoundToNDecimalPlaces_thenGetExpectedResult() {
+ public void givenDecimalNumber_whenRoundToNDecimalPlaces_thenGetExpectedResult() {
Assert.assertEquals(expected, Round.round(value, places), delta);
Assert.assertEquals(expected, Round.roundNotPrecise(value, places), delta);
Assert.assertEquals(expected, Round.roundAvoid(value, places), delta);
Assert.assertEquals(expected, Precision.round(value, places), delta);
Assert.assertEquals(expected, DoubleRounder.round(value, places), delta);
-
+
places = 3;
expected = 2.035d;
-
+
Assert.assertEquals(expected, Round.round(value, places), delta);
Assert.assertEquals(expected, Round.roundNotPrecise(value, places), delta);
Assert.assertEquals(expected, Round.roundAvoid(value, places), delta);
Assert.assertEquals(expected, Precision.round(value, places), delta);
Assert.assertEquals(expected, DoubleRounder.round(value, places), delta);
-
+
value = 1000.0d;
places = 17;
expected = 1000.0d;
-
+
Assert.assertEquals(expected, Round.round(value, places), delta);
Assert.assertEquals(expected, Round.roundNotPrecise(value, places), delta);
Assert.assertNotEquals(expected, Round.roundAvoid(value, places), delta); // Returns: 92.23372036854776 !
Assert.assertEquals(expected, Precision.round(value, places), delta);
Assert.assertEquals(expected, DoubleRounder.round(value, places), delta);
-
+
value = 256.025d;
places = 2;
expected = 256.03d;
-
+
Assert.assertEquals(expected, Round.round(value, places), delta);
Assert.assertNotEquals(expected, Round.roundNotPrecise(value, places), delta); // Returns: 256.02 !
Assert.assertNotEquals(expected, Round.roundAvoid(value, places), delta); // Returns: 256.02 !
Assert.assertEquals(expected, Precision.round(value, places), delta);
Assert.assertNotEquals(expected, DoubleRounder.round(value, places), delta); // Returns: 256.02 !
-
- value = 260.775d;
+
+ value = 260.775d;
places = 2;
expected = 260.78d;
-
+
Assert.assertEquals(expected, Round.round(value, places), delta);
Assert.assertNotEquals(expected, Round.roundNotPrecise(value, places), delta); // Returns: 260.77 !
Assert.assertNotEquals(expected, Round.roundAvoid(value, places), delta); // Returns: 260.77 !
Assert.assertEquals(expected, Precision.round(value, places), delta);
Assert.assertNotEquals(expected, DoubleRounder.round(value, places), delta); // Returns: 260.77 !
-
+
value = 90080070060.1d;
places = 9;
expected = 90080070060.1d;
-
+
Assert.assertEquals(expected, Round.round(value, places), delta);
Assert.assertEquals(expected, Round.roundNotPrecise(value, places), delta);
Assert.assertNotEquals(expected, Round.roundAvoid(value, places), delta); // Returns: 9.223372036854776E9 !