You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by li...@apache.org on 2024/01/23 14:55:46 UTC

(arrow) branch main updated: GH-39330: [Java][CI] Fix or suppress spurious errorprone warnings (#39529)

This is an automated email from the ASF dual-hosted git repository.

lidavidm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/main by this push:
     new ae9c0a96a0 GH-39330: [Java][CI] Fix or suppress spurious errorprone warnings (#39529)
ae9c0a96a0 is described below

commit ae9c0a96a0a7dbf4710bb16cf043269a1bc33aa7
Author: Vibhatha Lakmal Abeykoon <vi...@users.noreply.github.com>
AuthorDate: Tue Jan 23 20:25:39 2024 +0530

    GH-39330: [Java][CI] Fix or suppress spurious errorprone warnings (#39529)
    
    ### Rationale for this change
    
    This PR fixes the warnings generated by the errorprone library.
    
    ### What changes are included in this PR?
    
    Updating the code to remove warnings.
    
    Covered modules
    - [x] algorithm
    - [x] compression
    - [x] flight
    - [x] tools
    - [x] vector
    
    ### Are these changes tested?
    
    Tested by existing test cases.
    
    ### Are there any user-facing changes?
    
    No
    * Closes: #39330
    
    Lead-authored-by: Vibhatha Lakmal Abeykoon <vi...@gmail.com>
    Co-authored-by: vibhatha <vi...@gmail.com>
    Signed-off-by: David Li <li...@gmail.com>
---
 .../arrow/algorithm/search/ParallelSearcher.java   |   5 +-
 .../sort/FixedWidthOutOfPlaceVectorSorter.java     |   6 +-
 .../sort/VariableWidthOutOfPlaceVectorSorter.java  |  11 +-
 .../deduplicate/TestDeduplicationUtils.java        |   6 +-
 .../deduplicate/TestVectorRunDeduplicator.java     |   8 +-
 .../TestHashTableBasedDictionaryBuilder.java       |  59 +++++-----
 .../dictionary/TestHashTableDictionaryEncoder.java |  20 ++--
 .../dictionary/TestLinearDictionaryEncoder.java    |  20 ++--
 .../dictionary/TestSearchDictionaryEncoder.java    |  20 ++--
 .../TestSearchTreeBasedDictionaryBuilder.java      |  59 +++++-----
 .../arrow/algorithm/misc/TestPartialSumUtils.java  |   2 +-
 .../arrow/algorithm/rank/TestVectorRank.java       |  22 ++--
 .../algorithm/search/TestParallelSearcher.java     |   5 +-
 .../algorithm/search/TestVectorRangeSearcher.java  |   2 +-
 .../arrow/algorithm/search/TestVectorSearcher.java |   6 +-
 .../sort/TestCompositeVectorComparator.java        |   8 +-
 .../sort/TestDefaultVectorComparator.java          |   8 +-
 .../algorithm/sort/TestFixedWidthSorting.java      |  12 +-
 .../arrow/algorithm/sort/TestSortingUtil.java      |   3 +-
 .../algorithm/sort/TestStableVectorComparator.java |  56 ++++-----
 .../TestVariableWidthOutOfPlaceVectorSorter.java   |  35 +++---
 .../algorithm/sort/TestVariableWidthSorting.java   |  11 +-
 .../arrow/compression/TestCompressionCodec.java    |   4 +-
 java/flight/flight-core/pom.xml                    |   4 +
 .../java/org/apache/arrow/flight/ArrowMessage.java |  15 +--
 .../arrow/flight/CancelFlightInfoResult.java       |   2 +-
 .../apache/arrow/flight/ErrorFlightMetadata.java   |   2 +-
 .../org/apache/arrow/flight/FlightCallHeaders.java |  12 +-
 .../java/org/apache/arrow/flight/FlightClient.java |  21 ++--
 .../org/apache/arrow/flight/FlightDescriptor.java  |   2 +-
 .../org/apache/arrow/flight/FlightEndpoint.java    |   7 +-
 .../java/org/apache/arrow/flight/FlightInfo.java   |   2 +-
 .../java/org/apache/arrow/flight/FlightServer.java |  28 +++--
 .../org/apache/arrow/flight/FlightService.java     |  30 ++---
 .../java/org/apache/arrow/flight/FlightStream.java |  24 ++--
 .../java/org/apache/arrow/flight/Location.java     |   4 +-
 .../java/org/apache/arrow/flight/PollInfo.java     |   6 +-
 .../main/java/org/apache/arrow/flight/Ticket.java  |   2 +-
 .../apache/arrow/flight/auth/AuthConstants.java    |   4 +-
 .../flight/auth2/BearerTokenAuthenticator.java     |   1 -
 .../flight/grpc/ClientInterceptorAdapter.java      |   7 +-
 .../apache/arrow/flight/grpc/MetadataAdapter.java  |  20 ++--
 .../flight/grpc/ServerInterceptorAdapter.java      |   2 +-
 .../org/apache/arrow/flight/grpc/StatusUtils.java  |   3 +-
 .../org/apache/arrow/flight/FlightTestUtil.java    |   3 -
 .../arrow/flight/TestApplicationMetadata.java      |   3 +-
 .../org/apache/arrow/flight/TestBackPressure.java  |   6 +-
 .../apache/arrow/flight/TestBasicOperation.java    |  10 +-
 .../org/apache/arrow/flight/TestCallOptions.java   |   7 +-
 .../apache/arrow/flight/TestDictionaryUtils.java   |   7 +-
 .../org/apache/arrow/flight/TestDoExchange.java    |  14 +--
 .../org/apache/arrow/flight/TestErrorMetadata.java |   4 +-
 .../apache/arrow/flight/TestFlightGrpcUtils.java   |   2 +-
 .../org/apache/arrow/flight/TestFlightService.java |   5 +-
 .../org/apache/arrow/flight/TestLargeMessage.java  |   3 +-
 .../apache/arrow/flight/TestServerMiddleware.java  |  32 +++--
 .../test/java/org/apache/arrow/flight/TestTls.java |   6 +-
 .../arrow/flight/client/TestCookieHandling.java    |   1 +
 .../arrow/flight/perf/PerformanceTestServer.java   |  35 +++---
 .../org/apache/arrow/flight/perf/TestPerf.java     |  16 +--
 .../integration/tests/IntegrationTestClient.java   |   4 +-
 .../arrow/driver/jdbc/ArrowFlightJdbcDriver.java   |   2 +
 .../arrow/driver/jdbc/ArrowFlightMetaImpl.java     |   5 -
 .../ArrowFlightJdbcBaseIntVectorAccessor.java      |  22 ++--
 .../numeric/ArrowFlightJdbcBitVectorAccessor.java  |   1 -
 .../utils/ArrowFlightConnectionConfigImpl.java     |   1 +
 .../arrow/driver/jdbc/utils/ConnectionWrapper.java |   8 +-
 .../arrow/driver/jdbc/utils/ConvertUtils.java      |   7 +-
 .../apache/arrow/driver/jdbc/utils/UrlParser.java  |   3 +-
 .../driver/jdbc/ArrowFlightJdbcArrayTest.java      |   2 +-
 .../driver/jdbc/ArrowFlightJdbcDriverTest.java     |   4 +-
 .../arrow/driver/jdbc/ConnectionMutualTlsTest.java |   4 -
 .../apache/arrow/driver/jdbc/ResultSetTest.java    |  12 +-
 .../jdbc/accessor/ArrowFlightJdbcAccessorTest.java |   8 +-
 ...ArrowFlightJdbcTimeStampVectorAccessorTest.java |   6 +-
 .../AbstractArrowFlightJdbcListAccessorTest.java   |   6 +-
 .../ArrowFlightJdbcStructVectorAccessorTest.java   |   4 +-
 .../ArrowFlightJdbcBitVectorAccessorTest.java      |   2 +-
 .../driver/jdbc/utils/MockFlightSqlProducer.java   |   4 +-
 .../driver/jdbc/utils/RootAllocatorTestRule.java   |  19 +--
 .../driver/jdbc/utils/ThrowableAssertionUtils.java |   2 +-
 .../apache/arrow/flight/sql/FlightSqlProducer.java |   2 +-
 .../apache/arrow/flight/sql/SqlInfoBuilder.java    |   5 +-
 .../arrow/flight/sql/example/FlightSqlExample.java |   8 +-
 .../java/org/apache/arrow/tools/FileRoundtrip.java |   6 +-
 .../apache/arrow/tools/ArrowFileTestFixtures.java  |   2 -
 .../org/apache/arrow/tools/EchoServerTest.java     |   1 -
 .../org/apache/arrow/tools/TestFileRoundtrip.java  |   2 +-
 .../apache/arrow/vector/BaseFixedWidthVector.java  |   9 +-
 .../arrow/vector/BaseLargeVariableWidthVector.java |  10 ++
 .../org/apache/arrow/vector/BaseValueVector.java   |   6 +-
 .../arrow/vector/BaseVariableWidthVector.java      |  21 +++-
 .../java/org/apache/arrow/vector/BigIntVector.java |   1 +
 .../java/org/apache/arrow/vector/BitVector.java    |  13 +--
 .../java/org/apache/arrow/vector/BufferLayout.java |   2 +-
 .../org/apache/arrow/vector/DateDayVector.java     |   1 +
 .../org/apache/arrow/vector/DateMilliVector.java   |   1 +
 .../org/apache/arrow/vector/Decimal256Vector.java  |   1 +
 .../org/apache/arrow/vector/DecimalVector.java     |   1 +
 .../org/apache/arrow/vector/DurationVector.java    |   1 +
 .../java/org/apache/arrow/vector/Float4Vector.java |   1 +
 .../java/org/apache/arrow/vector/Float8Vector.java |   1 +
 .../apache/arrow/vector/GenerateSampleData.java    |   4 +-
 .../java/org/apache/arrow/vector/IntVector.java    |   1 +
 .../org/apache/arrow/vector/IntervalDayVector.java |  17 +--
 .../arrow/vector/IntervalMonthDayNanoVector.java   |   1 +
 .../apache/arrow/vector/IntervalYearVector.java    |   5 +-
 .../apache/arrow/vector/LargeVarBinaryVector.java  |   1 +
 .../apache/arrow/vector/LargeVarCharVector.java    |   1 +
 .../org/apache/arrow/vector/SmallIntVector.java    |   1 +
 .../org/apache/arrow/vector/TimeMicroVector.java   |   1 +
 .../org/apache/arrow/vector/TimeMilliVector.java   |   1 +
 .../org/apache/arrow/vector/TimeNanoVector.java    |   1 +
 .../org/apache/arrow/vector/TimeSecVector.java     |   1 +
 .../arrow/vector/TimeStampMicroTZVector.java       |   1 +
 .../apache/arrow/vector/TimeStampMicroVector.java  |   1 +
 .../arrow/vector/TimeStampMilliTZVector.java       |   1 +
 .../apache/arrow/vector/TimeStampMilliVector.java  |   1 +
 .../apache/arrow/vector/TimeStampNanoTZVector.java |   1 +
 .../apache/arrow/vector/TimeStampNanoVector.java   |   1 +
 .../apache/arrow/vector/TimeStampSecVector.java    |   1 +
 .../org/apache/arrow/vector/TinyIntVector.java     |   1 +
 .../java/org/apache/arrow/vector/TypeLayout.java   |   5 +-
 .../java/org/apache/arrow/vector/UInt1Vector.java  |   1 +
 .../java/org/apache/arrow/vector/UInt2Vector.java  |   1 +
 .../java/org/apache/arrow/vector/UInt4Vector.java  |   1 +
 .../java/org/apache/arrow/vector/UInt8Vector.java  |   1 +
 .../org/apache/arrow/vector/VarBinaryVector.java   |  11 +-
 .../org/apache/arrow/vector/VarCharVector.java     |  11 +-
 .../vector/complex/AbstractContainerVector.java    |   1 +
 .../arrow/vector/complex/AbstractStructVector.java |   6 +-
 .../vector/complex/BaseRepeatedValueVector.java    |  20 ++--
 .../arrow/vector/complex/FixedSizeListVector.java  |  12 +-
 .../arrow/vector/complex/LargeListVector.java      |  24 ++--
 .../apache/arrow/vector/complex/ListVector.java    |  33 +++---
 .../apache/arrow/vector/complex/StructVector.java  |  29 +++--
 .../vector/complex/impl/AbstractBaseReader.java    |   1 +
 .../vector/complex/impl/PromotableWriter.java      |   5 +-
 .../complex/impl/StructOrListWriterImpl.java       |   3 +-
 .../complex/impl/UnionFixedSizeListReader.java     |   1 +
 .../vector/complex/impl/UnionLargeListReader.java  |   1 -
 .../arrow/vector/complex/impl/UnionListReader.java |   5 +-
 .../apache/arrow/vector/dictionary/Dictionary.java |   2 +-
 .../apache/arrow/vector/table/package-info.java    |   2 +-
 .../arrow/vector/types/FloatingPointPrecision.java |   2 +-
 .../apache/arrow/vector/types/IntervalUnit.java    |   2 +-
 .../vector/types/pojo/DictionaryEncoding.java      |   2 +-
 .../org/apache/arrow/vector/types/pojo/Field.java  |  16 +--
 .../apache/arrow/vector/types/pojo/FieldType.java  |   2 +-
 .../org/apache/arrow/vector/types/pojo/Schema.java |   9 +-
 .../arrow/vector/util/MapWithOrdinalImpl.java      |   9 +-
 .../java/org/apache/arrow/vector/util/Text.java    |   2 +-
 .../org/apache/arrow/vector/ITTestLargeVector.java |  11 +-
 .../apache/arrow/vector/TestBitVectorHelper.java   |   6 +-
 .../arrow/vector/TestBufferOwnershipTransfer.java  |   4 +-
 .../java/org/apache/arrow/vector/TestCopyFrom.java |  17 +--
 .../apache/arrow/vector/TestDecimal256Vector.java  |   4 +-
 .../org/apache/arrow/vector/TestDecimalVector.java |   4 +-
 .../apache/arrow/vector/TestDenseUnionVector.java  |  14 +--
 .../apache/arrow/vector/TestDictionaryVector.java  |  41 +++----
 .../arrow/vector/TestFixedSizeListVector.java      |  71 +++++------
 .../apache/arrow/vector/TestLargeListVector.java   | 123 ++++++++++---------
 .../arrow/vector/TestLargeVarBinaryVector.java     |  20 ++--
 .../arrow/vector/TestLargeVarCharVector.java       |  49 ++++----
 .../org/apache/arrow/vector/TestListVector.java    | 130 ++++++++++-----------
 .../org/apache/arrow/vector/TestMapVector.java     |  34 +++---
 .../apache/arrow/vector/TestSplitAndTransfer.java  |   7 +-
 .../org/apache/arrow/vector/TestUnionVector.java   |  10 +-
 .../org/apache/arrow/vector/TestValueVector.java   |  61 ++++------
 .../apache/arrow/vector/TestVarCharListVector.java |  10 +-
 .../org/apache/arrow/vector/TestVectorAlloc.java   |   4 +-
 .../org/apache/arrow/vector/TestVectorReAlloc.java |   4 +-
 .../apache/arrow/vector/TestVectorSchemaRoot.java  |   2 +-
 .../vector/compare/TestTypeEqualsVisitor.java      |   6 -
 .../vector/complex/impl/TestPromotableWriter.java  |  90 +++++++-------
 .../vector/complex/writer/TestComplexWriter.java   | 122 ++++++++++---------
 .../org/apache/arrow/vector/ipc/BaseFileTest.java  |  14 +--
 .../apache/arrow/vector/ipc/TestArrowStream.java   |   4 +-
 .../org/apache/arrow/vector/ipc/TestJSONFile.java  |   4 +-
 .../vector/ipc/TestUIntDictionaryRoundTrip.java    |   3 +-
 .../ipc/message/TestMessageMetadataResult.java     |   2 +-
 .../apache/arrow/vector/table/BaseTableTest.java   |  14 ++-
 .../org/apache/arrow/vector/table/RowTest.java     |  14 +--
 .../org/apache/arrow/vector/table/TestUtils.java   |  21 ++--
 .../vector/testing/TestValueVectorPopulator.java   |  18 +--
 .../arrow/vector/types/pojo/TestExtensionType.java |   4 +-
 .../util/TestElementAddressableVectorIterator.java |   6 +-
 .../arrow/vector/util/TestReusableByteArray.java   |  46 ++++----
 .../arrow/vector/util/TestVectorAppender.java      |   2 -
 189 files changed, 1189 insertions(+), 1031 deletions(-)

diff --git a/java/algorithm/src/main/java/org/apache/arrow/algorithm/search/ParallelSearcher.java b/java/algorithm/src/main/java/org/apache/arrow/algorithm/search/ParallelSearcher.java
index e62ebdecb1..6226921b22 100644
--- a/java/algorithm/src/main/java/org/apache/arrow/algorithm/search/ParallelSearcher.java
+++ b/java/algorithm/src/main/java/org/apache/arrow/algorithm/search/ParallelSearcher.java
@@ -20,6 +20,7 @@ package org.apache.arrow.algorithm.search;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Future;
 
 import org.apache.arrow.algorithm.sort.VectorValueComparator;
 import org.apache.arrow.vector.ValueVector;
@@ -95,7 +96,7 @@ public class ParallelSearcher<V extends ValueVector> {
     final int valueCount = vector.getValueCount();
     for (int i = 0; i < numThreads; i++) {
       final int tid = i;
-      threadPool.submit(() -> {
+      Future<?> unused = threadPool.submit(() -> {
         // convert to long to avoid overflow
         int start = (int) (((long) valueCount) * tid / numThreads);
         int end = (int) ((long) valueCount) * (tid + 1) / numThreads;
@@ -153,7 +154,7 @@ public class ParallelSearcher<V extends ValueVector> {
     final int valueCount = vector.getValueCount();
     for (int i = 0; i < numThreads; i++) {
       final int tid = i;
-      threadPool.submit(() -> {
+      Future<?> unused = threadPool.submit(() -> {
         // convert to long to avoid overflow
         int start = (int) (((long) valueCount) * tid / numThreads);
         int end = (int) ((long) valueCount) * (tid + 1) / numThreads;
diff --git a/java/algorithm/src/main/java/org/apache/arrow/algorithm/sort/FixedWidthOutOfPlaceVectorSorter.java b/java/algorithm/src/main/java/org/apache/arrow/algorithm/sort/FixedWidthOutOfPlaceVectorSorter.java
index c3b68facfd..05a4585792 100644
--- a/java/algorithm/src/main/java/org/apache/arrow/algorithm/sort/FixedWidthOutOfPlaceVectorSorter.java
+++ b/java/algorithm/src/main/java/org/apache/arrow/algorithm/sort/FixedWidthOutOfPlaceVectorSorter.java
@@ -54,7 +54,7 @@ public class FixedWidthOutOfPlaceVectorSorter<V extends BaseFixedWidthVector> im
             "Expected capacity %s, actual capacity %s",
         (srcVector.getValueCount() + 7) / 8, dstValidityBuffer.capacity());
     Preconditions.checkArgument(
-        dstValueBuffer.capacity() >= srcVector.getValueCount() * srcVector.getTypeWidth(),
+        dstValueBuffer.capacity() >= srcVector.getValueCount() * ((long) srcVector.getTypeWidth()),
         "Not enough capacity for the data buffer of the dst vector. " +
             "Expected capacity %s, actual capacity %s",
         srcVector.getValueCount() * srcVector.getTypeWidth(), dstValueBuffer.capacity());
@@ -73,8 +73,8 @@ public class FixedWidthOutOfPlaceVectorSorter<V extends BaseFixedWidthVector> im
         } else {
           BitVectorHelper.setBit(dstValidityBuffer, dstIndex);
           MemoryUtil.UNSAFE.copyMemory(
-                  srcValueBuffer.memoryAddress() + srcIndex * valueWidth,
-                  dstValueBuffer.memoryAddress() + dstIndex * valueWidth,
+                  srcValueBuffer.memoryAddress() + srcIndex * ((long) valueWidth),
+                  dstValueBuffer.memoryAddress() + dstIndex * ((long) valueWidth),
                   valueWidth);
         }
       }
diff --git a/java/algorithm/src/main/java/org/apache/arrow/algorithm/sort/VariableWidthOutOfPlaceVectorSorter.java b/java/algorithm/src/main/java/org/apache/arrow/algorithm/sort/VariableWidthOutOfPlaceVectorSorter.java
index c60e273e9e..863b07c348 100644
--- a/java/algorithm/src/main/java/org/apache/arrow/algorithm/sort/VariableWidthOutOfPlaceVectorSorter.java
+++ b/java/algorithm/src/main/java/org/apache/arrow/algorithm/sort/VariableWidthOutOfPlaceVectorSorter.java
@@ -51,12 +51,12 @@ public class VariableWidthOutOfPlaceVectorSorter<V extends BaseVariableWidthVect
             "Expected capacity %s, actual capacity %s",
         (srcVector.getValueCount() + 7) / 8, dstValidityBuffer.capacity());
     Preconditions.checkArgument(
-        dstOffsetBuffer.capacity() >= (srcVector.getValueCount() + 1) * BaseVariableWidthVector.OFFSET_WIDTH,
+        dstOffsetBuffer.capacity() >= (srcVector.getValueCount() + 1) * ((long) BaseVariableWidthVector.OFFSET_WIDTH),
         "Not enough capacity for the offset buffer of the dst vector. " +
             "Expected capacity %s, actual capacity %s",
         (srcVector.getValueCount() + 1) * BaseVariableWidthVector.OFFSET_WIDTH, dstOffsetBuffer.capacity());
     long dataSize = srcVector.getOffsetBuffer().getInt(
-        srcVector.getValueCount() * BaseVariableWidthVector.OFFSET_WIDTH);
+        srcVector.getValueCount() * ((long) BaseVariableWidthVector.OFFSET_WIDTH));
     Preconditions.checkArgument(
         dstValueBuffer.capacity() >= dataSize, "No enough capacity for the data buffer of the dst vector. " +
             "Expected capacity %s, actual capacity %s", dataSize, dstValueBuffer.capacity());
@@ -77,15 +77,16 @@ public class VariableWidthOutOfPlaceVectorSorter<V extends BaseVariableWidthVect
           BitVectorHelper.unsetBit(dstValidityBuffer, dstIndex);
         } else {
           BitVectorHelper.setBit(dstValidityBuffer, dstIndex);
-          int srcOffset = srcOffsetBuffer.getInt(srcIndex * BaseVariableWidthVector.OFFSET_WIDTH);
-          int valueLength = srcOffsetBuffer.getInt((srcIndex + 1) * BaseVariableWidthVector.OFFSET_WIDTH) - srcOffset;
+          int srcOffset = srcOffsetBuffer.getInt(srcIndex * ((long) BaseVariableWidthVector.OFFSET_WIDTH));
+          int valueLength =
+              srcOffsetBuffer.getInt((srcIndex + 1) * ((long) BaseVariableWidthVector.OFFSET_WIDTH)) - srcOffset;
           MemoryUtil.UNSAFE.copyMemory(
                   srcValueBuffer.memoryAddress() + srcOffset,
                   dstValueBuffer.memoryAddress() + dstOffset,
                   valueLength);
           dstOffset += valueLength;
         }
-        dstOffsetBuffer.setInt((dstIndex + 1) * BaseVariableWidthVector.OFFSET_WIDTH, dstOffset);
+        dstOffsetBuffer.setInt((dstIndex + 1) * ((long) BaseVariableWidthVector.OFFSET_WIDTH), dstOffset);
       }
     }
   }
diff --git a/java/algorithm/src/test/java/org/apache/arrow/algorithm/deduplicate/TestDeduplicationUtils.java b/java/algorithm/src/test/java/org/apache/arrow/algorithm/deduplicate/TestDeduplicationUtils.java
index def83fba7b..ac083b84f1 100644
--- a/java/algorithm/src/test/java/org/apache/arrow/algorithm/deduplicate/TestDeduplicationUtils.java
+++ b/java/algorithm/src/test/java/org/apache/arrow/algorithm/deduplicate/TestDeduplicationUtils.java
@@ -20,6 +20,8 @@ package org.apache.arrow.algorithm.deduplicate;
 import static org.junit.Assert.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 
+import java.nio.charset.StandardCharsets;
+
 import org.apache.arrow.memory.ArrowBuf;
 import org.apache.arrow.memory.BufferAllocator;
 import org.apache.arrow.memory.RootAllocator;
@@ -107,7 +109,7 @@ public class TestDeduplicationUtils {
       for (int i = 0; i < VECTOR_LENGTH; i++) {
         String str = String.valueOf(i * i);
         for (int j = 0; j < REPETITION_COUNT; j++) {
-          origVec.set(i * REPETITION_COUNT + j, str.getBytes());
+          origVec.set(i * REPETITION_COUNT + j, str.getBytes(StandardCharsets.UTF_8));
         }
       }
 
@@ -120,7 +122,7 @@ public class TestDeduplicationUtils {
       assertEquals(VECTOR_LENGTH, dedupVec.getValueCount());
 
       for (int i = 0; i < VECTOR_LENGTH; i++) {
-        assertArrayEquals(String.valueOf(i * i).getBytes(), dedupVec.get(i));
+        assertArrayEquals(String.valueOf(i * i).getBytes(StandardCharsets.UTF_8), dedupVec.get(i));
       }
 
       DeduplicationUtils.populateRunLengths(
diff --git a/java/algorithm/src/test/java/org/apache/arrow/algorithm/deduplicate/TestVectorRunDeduplicator.java b/java/algorithm/src/test/java/org/apache/arrow/algorithm/deduplicate/TestVectorRunDeduplicator.java
index 4bfa6e2555..788213b162 100644
--- a/java/algorithm/src/test/java/org/apache/arrow/algorithm/deduplicate/TestVectorRunDeduplicator.java
+++ b/java/algorithm/src/test/java/org/apache/arrow/algorithm/deduplicate/TestVectorRunDeduplicator.java
@@ -20,6 +20,8 @@ package org.apache.arrow.algorithm.deduplicate;
 import static org.junit.Assert.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 
+import java.nio.charset.StandardCharsets;
+
 import org.apache.arrow.memory.BufferAllocator;
 import org.apache.arrow.memory.RootAllocator;
 import org.apache.arrow.vector.IntVector;
@@ -104,20 +106,20 @@ public class TestVectorRunDeduplicator {
       for (int i = 0; i < VECTOR_LENGTH; i++) {
         String str = String.valueOf(i * i);
         for (int j = 0; j < REPETITION_COUNT; j++) {
-          origVec.set(i * REPETITION_COUNT + j, str.getBytes());
+          origVec.set(i * REPETITION_COUNT + j, str.getBytes(StandardCharsets.UTF_8));
         }
       }
 
       int distinctCount = deduplicator.getRunCount();
       assertEquals(VECTOR_LENGTH, distinctCount);
 
-      dedupVec.allocateNew(distinctCount * 10, distinctCount);
+      dedupVec.allocateNew(distinctCount * 10L, distinctCount);
 
       deduplicator.populateDeduplicatedValues(dedupVec);
       assertEquals(VECTOR_LENGTH, dedupVec.getValueCount());
 
       for (int i = 0; i < VECTOR_LENGTH; i++) {
-        assertArrayEquals(String.valueOf(i * i).getBytes(), dedupVec.get(i));
+        assertArrayEquals(String.valueOf(i * i).getBytes(StandardCharsets.UTF_8), dedupVec.get(i));
       }
 
       deduplicator.populateRunLengths(lengthVec);
diff --git a/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestHashTableBasedDictionaryBuilder.java b/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestHashTableBasedDictionaryBuilder.java
index 0a3314535f..45c47626b7 100644
--- a/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestHashTableBasedDictionaryBuilder.java
+++ b/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestHashTableBasedDictionaryBuilder.java
@@ -21,6 +21,9 @@ import static junit.framework.TestCase.assertTrue;
 import static org.junit.Assert.assertNull;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
+import java.nio.charset.StandardCharsets;
+import java.util.Objects;
+
 import org.apache.arrow.memory.BufferAllocator;
 import org.apache.arrow.memory.RootAllocator;
 import org.apache.arrow.vector.IntVector;
@@ -57,16 +60,16 @@ public class TestHashTableBasedDictionaryBuilder {
       dictionary.allocateNew();
 
       // fill data
-      vec.set(0, "hello".getBytes());
-      vec.set(1, "abc".getBytes());
+      vec.set(0, "hello".getBytes(StandardCharsets.UTF_8));
+      vec.set(1, "abc".getBytes(StandardCharsets.UTF_8));
       vec.setNull(2);
-      vec.set(3, "world".getBytes());
-      vec.set(4, "12".getBytes());
-      vec.set(5, "dictionary".getBytes());
+      vec.set(3, "world".getBytes(StandardCharsets.UTF_8));
+      vec.set(4, "12".getBytes(StandardCharsets.UTF_8));
+      vec.set(5, "dictionary".getBytes(StandardCharsets.UTF_8));
       vec.setNull(6);
-      vec.set(7, "hello".getBytes());
-      vec.set(8, "good".getBytes());
-      vec.set(9, "abc".getBytes());
+      vec.set(7, "hello".getBytes(StandardCharsets.UTF_8));
+      vec.set(8, "good".getBytes(StandardCharsets.UTF_8));
+      vec.set(9, "abc".getBytes(StandardCharsets.UTF_8));
 
       HashTableBasedDictionaryBuilder<VarCharVector> dictionaryBuilder =
               new HashTableBasedDictionaryBuilder<>(dictionary, true);
@@ -76,13 +79,13 @@ public class TestHashTableBasedDictionaryBuilder {
       assertEquals(7, result);
       assertEquals(7, dictionary.getValueCount());
 
-      assertEquals("hello", new String(dictionary.get(0)));
-      assertEquals("abc", new String(dictionary.get(1)));
+      assertEquals("hello", new String(Objects.requireNonNull(dictionary.get(0)), StandardCharsets.UTF_8));
+      assertEquals("abc", new String(Objects.requireNonNull(dictionary.get(1)), StandardCharsets.UTF_8));
       assertNull(dictionary.get(2));
-      assertEquals("world", new String(dictionary.get(3)));
-      assertEquals("12", new String(dictionary.get(4)));
-      assertEquals("dictionary", new String(dictionary.get(5)));
-      assertEquals("good", new String(dictionary.get(6)));
+      assertEquals("world", new String(Objects.requireNonNull(dictionary.get(3)), StandardCharsets.UTF_8));
+      assertEquals("12", new String(Objects.requireNonNull(dictionary.get(4)), StandardCharsets.UTF_8));
+      assertEquals("dictionary", new String(Objects.requireNonNull(dictionary.get(5)), StandardCharsets.UTF_8));
+      assertEquals("good", new String(Objects.requireNonNull(dictionary.get(6)), StandardCharsets.UTF_8));
     }
   }
 
@@ -97,16 +100,16 @@ public class TestHashTableBasedDictionaryBuilder {
       dictionary.allocateNew();
 
       // fill data
-      vec.set(0, "hello".getBytes());
-      vec.set(1, "abc".getBytes());
+      vec.set(0, "hello".getBytes(StandardCharsets.UTF_8));
+      vec.set(1, "abc".getBytes(StandardCharsets.UTF_8));
       vec.setNull(2);
-      vec.set(3, "world".getBytes());
-      vec.set(4, "12".getBytes());
-      vec.set(5, "dictionary".getBytes());
+      vec.set(3, "world".getBytes(StandardCharsets.UTF_8));
+      vec.set(4, "12".getBytes(StandardCharsets.UTF_8));
+      vec.set(5, "dictionary".getBytes(StandardCharsets.UTF_8));
       vec.setNull(6);
-      vec.set(7, "hello".getBytes());
-      vec.set(8, "good".getBytes());
-      vec.set(9, "abc".getBytes());
+      vec.set(7, "hello".getBytes(StandardCharsets.UTF_8));
+      vec.set(8, "good".getBytes(StandardCharsets.UTF_8));
+      vec.set(9, "abc".getBytes(StandardCharsets.UTF_8));
 
       HashTableBasedDictionaryBuilder<VarCharVector> dictionaryBuilder =
               new HashTableBasedDictionaryBuilder<>(dictionary, false);
@@ -116,12 +119,12 @@ public class TestHashTableBasedDictionaryBuilder {
       assertEquals(6, result);
       assertEquals(6, dictionary.getValueCount());
 
-      assertEquals("hello", new String(dictionary.get(0)));
-      assertEquals("abc", new String(dictionary.get(1)));
-      assertEquals("world", new String(dictionary.get(2)));
-      assertEquals("12", new String(dictionary.get(3)));
-      assertEquals("dictionary", new String(dictionary.get(4)));
-      assertEquals("good", new String(dictionary.get(5)));
+      assertEquals("hello", new String(Objects.requireNonNull(dictionary.get(0)), StandardCharsets.UTF_8));
+      assertEquals("abc", new String(Objects.requireNonNull(dictionary.get(1)), StandardCharsets.UTF_8));
+      assertEquals("world", new String(Objects.requireNonNull(dictionary.get(2)), StandardCharsets.UTF_8));
+      assertEquals("12", new String(Objects.requireNonNull(dictionary.get(3)), StandardCharsets.UTF_8));
+      assertEquals("dictionary", new String(Objects.requireNonNull(dictionary.get(4)), StandardCharsets.UTF_8));
+      assertEquals("good", new String(Objects.requireNonNull(dictionary.get(5)), StandardCharsets.UTF_8));
 
     }
   }
diff --git a/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestHashTableDictionaryEncoder.java b/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestHashTableDictionaryEncoder.java
index dd22ac96fa..60efbf58be 100644
--- a/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestHashTableDictionaryEncoder.java
+++ b/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestHashTableDictionaryEncoder.java
@@ -76,7 +76,7 @@ public class TestHashTableDictionaryEncoder {
       dictionary.allocateNew();
       for (int i = 0; i < DICTIONARY_LENGTH; i++) {
         // encode "i" as i
-        dictionary.setSafe(i, String.valueOf(i).getBytes());
+        dictionary.setSafe(i, String.valueOf(i).getBytes(StandardCharsets.UTF_8));
       }
       dictionary.setValueCount(DICTIONARY_LENGTH);
 
@@ -84,7 +84,7 @@ public class TestHashTableDictionaryEncoder {
       rawVector.allocateNew(10 * VECTOR_LENGTH, VECTOR_LENGTH);
       for (int i = 0; i < VECTOR_LENGTH; i++) {
         int val = (random.nextInt() & Integer.MAX_VALUE) % DICTIONARY_LENGTH;
-        rawVector.set(i, String.valueOf(val).getBytes());
+        rawVector.set(i, String.valueOf(val).getBytes(StandardCharsets.UTF_8));
       }
       rawVector.setValueCount(VECTOR_LENGTH);
 
@@ -98,7 +98,7 @@ public class TestHashTableDictionaryEncoder {
       // verify encoding results
       assertEquals(rawVector.getValueCount(), encodedVector.getValueCount());
       for (int i = 0; i < VECTOR_LENGTH; i++) {
-        assertArrayEquals(rawVector.get(i), String.valueOf(encodedVector.get(i)).getBytes());
+        assertArrayEquals(rawVector.get(i), String.valueOf(encodedVector.get(i)).getBytes(StandardCharsets.UTF_8));
       }
 
       // perform decoding
@@ -108,7 +108,8 @@ public class TestHashTableDictionaryEncoder {
         // verify decoding results
         assertEquals(encodedVector.getValueCount(), decodedVector.getValueCount());
         for (int i = 0; i < VECTOR_LENGTH; i++) {
-          assertArrayEquals(String.valueOf(encodedVector.get(i)).getBytes(), decodedVector.get(i));
+          assertArrayEquals(String.valueOf(encodedVector.get(i)).getBytes(StandardCharsets.UTF_8),
+              decodedVector.get(i));
         }
       }
     }
@@ -126,7 +127,7 @@ public class TestHashTableDictionaryEncoder {
       dictionary.setNull(0);
       for (int i = 1; i < DICTIONARY_LENGTH; i++) {
         // encode "i" as i
-        dictionary.setSafe(i, String.valueOf(i).getBytes());
+        dictionary.setSafe(i, String.valueOf(i).getBytes(StandardCharsets.UTF_8));
       }
       dictionary.setValueCount(DICTIONARY_LENGTH);
 
@@ -137,7 +138,7 @@ public class TestHashTableDictionaryEncoder {
           rawVector.setNull(i);
         } else {
           int val = (random.nextInt() & Integer.MAX_VALUE) % (DICTIONARY_LENGTH - 1) + 1;
-          rawVector.set(i, String.valueOf(val).getBytes());
+          rawVector.set(i, String.valueOf(val).getBytes(StandardCharsets.UTF_8));
         }
       }
       rawVector.setValueCount(VECTOR_LENGTH);
@@ -155,7 +156,7 @@ public class TestHashTableDictionaryEncoder {
         if (i % 10 == 0) {
           assertEquals(0, encodedVector.get(i));
         } else {
-          assertArrayEquals(rawVector.get(i), String.valueOf(encodedVector.get(i)).getBytes());
+          assertArrayEquals(rawVector.get(i), String.valueOf(encodedVector.get(i)).getBytes(StandardCharsets.UTF_8));
         }
       }
 
@@ -168,7 +169,8 @@ public class TestHashTableDictionaryEncoder {
           if (i % 10 == 0) {
             assertTrue(decodedVector.isNull(i));
           } else {
-            assertArrayEquals(String.valueOf(encodedVector.get(i)).getBytes(), decodedVector.get(i));
+            assertArrayEquals(String.valueOf(encodedVector.get(i)).getBytes(StandardCharsets.UTF_8),
+                decodedVector.get(i));
           }
         }
       }
@@ -185,7 +187,7 @@ public class TestHashTableDictionaryEncoder {
       dictionary.allocateNew();
       for (int i = 0; i < DICTIONARY_LENGTH; i++) {
         // encode "i" as i
-        dictionary.setSafe(i, String.valueOf(i).getBytes());
+        dictionary.setSafe(i, String.valueOf(i).getBytes(StandardCharsets.UTF_8));
       }
       dictionary.setValueCount(DICTIONARY_LENGTH);
 
diff --git a/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestLinearDictionaryEncoder.java b/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestLinearDictionaryEncoder.java
index 104d1b35b0..a76aedffa3 100644
--- a/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestLinearDictionaryEncoder.java
+++ b/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestLinearDictionaryEncoder.java
@@ -77,7 +77,7 @@ public class TestLinearDictionaryEncoder {
       dictionary.allocateNew();
       for (int i = 0; i < DICTIONARY_LENGTH; i++) {
         // encode "i" as i
-        dictionary.setSafe(i, String.valueOf(i).getBytes());
+        dictionary.setSafe(i, String.valueOf(i).getBytes(StandardCharsets.UTF_8));
       }
       dictionary.setValueCount(DICTIONARY_LENGTH);
 
@@ -85,7 +85,7 @@ public class TestLinearDictionaryEncoder {
       rawVector.allocateNew(10 * VECTOR_LENGTH, VECTOR_LENGTH);
       for (int i = 0; i < VECTOR_LENGTH; i++) {
         int val = (random.nextInt() & Integer.MAX_VALUE) % DICTIONARY_LENGTH;
-        rawVector.set(i, String.valueOf(val).getBytes());
+        rawVector.set(i, String.valueOf(val).getBytes(StandardCharsets.UTF_8));
       }
       rawVector.setValueCount(VECTOR_LENGTH);
 
@@ -99,7 +99,7 @@ public class TestLinearDictionaryEncoder {
       // verify encoding results
       assertEquals(rawVector.getValueCount(), encodedVector.getValueCount());
       for (int i = 0; i < VECTOR_LENGTH; i++) {
-        assertArrayEquals(rawVector.get(i), String.valueOf(encodedVector.get(i)).getBytes());
+        assertArrayEquals(rawVector.get(i), String.valueOf(encodedVector.get(i)).getBytes(StandardCharsets.UTF_8));
       }
 
       // perform decoding
@@ -109,7 +109,8 @@ public class TestLinearDictionaryEncoder {
         // verify decoding results
         assertEquals(encodedVector.getValueCount(), decodedVector.getValueCount());
         for (int i = 0; i < VECTOR_LENGTH; i++) {
-          assertArrayEquals(String.valueOf(encodedVector.get(i)).getBytes(), decodedVector.get(i));
+          assertArrayEquals(String.valueOf(encodedVector.get(i)).getBytes(StandardCharsets.UTF_8),
+              decodedVector.get(i));
         }
       }
     }
@@ -127,7 +128,7 @@ public class TestLinearDictionaryEncoder {
       dictionary.setNull(0);
       for (int i = 1; i < DICTIONARY_LENGTH; i++) {
         // encode "i" as i
-        dictionary.setSafe(i, String.valueOf(i).getBytes());
+        dictionary.setSafe(i, String.valueOf(i).getBytes(StandardCharsets.UTF_8));
       }
       dictionary.setValueCount(DICTIONARY_LENGTH);
 
@@ -138,7 +139,7 @@ public class TestLinearDictionaryEncoder {
           rawVector.setNull(i);
         } else {
           int val = (random.nextInt() & Integer.MAX_VALUE) % (DICTIONARY_LENGTH - 1) + 1;
-          rawVector.set(i, String.valueOf(val).getBytes());
+          rawVector.set(i, String.valueOf(val).getBytes(StandardCharsets.UTF_8));
         }
       }
       rawVector.setValueCount(VECTOR_LENGTH);
@@ -156,7 +157,7 @@ public class TestLinearDictionaryEncoder {
         if (i % 10 == 0) {
           assertEquals(0, encodedVector.get(i));
         } else {
-          assertArrayEquals(rawVector.get(i), String.valueOf(encodedVector.get(i)).getBytes());
+          assertArrayEquals(rawVector.get(i), String.valueOf(encodedVector.get(i)).getBytes(StandardCharsets.UTF_8));
         }
       }
 
@@ -170,7 +171,8 @@ public class TestLinearDictionaryEncoder {
           if (i % 10 == 0) {
             assertTrue(decodedVector.isNull(i));
           } else {
-            assertArrayEquals(String.valueOf(encodedVector.get(i)).getBytes(), decodedVector.get(i));
+            assertArrayEquals(String.valueOf(encodedVector.get(i)).getBytes(StandardCharsets.UTF_8),
+                decodedVector.get(i));
           }
         }
       }
@@ -187,7 +189,7 @@ public class TestLinearDictionaryEncoder {
       dictionary.allocateNew();
       for (int i = 0; i < DICTIONARY_LENGTH; i++) {
         // encode "i" as i
-        dictionary.setSafe(i, String.valueOf(i).getBytes());
+        dictionary.setSafe(i, String.valueOf(i).getBytes(StandardCharsets.UTF_8));
       }
       dictionary.setValueCount(DICTIONARY_LENGTH);
 
diff --git a/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestSearchDictionaryEncoder.java b/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestSearchDictionaryEncoder.java
index a156e987c2..e01c2e7905 100644
--- a/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestSearchDictionaryEncoder.java
+++ b/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestSearchDictionaryEncoder.java
@@ -78,7 +78,7 @@ public class TestSearchDictionaryEncoder {
       dictionary.allocateNew();
       for (int i = 0; i < DICTIONARY_LENGTH; i++) {
         // encode "i" as i
-        dictionary.setSafe(i, String.valueOf(i).getBytes());
+        dictionary.setSafe(i, String.valueOf(i).getBytes(StandardCharsets.UTF_8));
       }
       dictionary.setValueCount(DICTIONARY_LENGTH);
 
@@ -86,7 +86,7 @@ public class TestSearchDictionaryEncoder {
       rawVector.allocateNew(10 * VECTOR_LENGTH, VECTOR_LENGTH);
       for (int i = 0; i < VECTOR_LENGTH; i++) {
         int val = (random.nextInt() & Integer.MAX_VALUE) % DICTIONARY_LENGTH;
-        rawVector.set(i, String.valueOf(val).getBytes());
+        rawVector.set(i, String.valueOf(val).getBytes(StandardCharsets.UTF_8));
       }
       rawVector.setValueCount(VECTOR_LENGTH);
 
@@ -101,7 +101,7 @@ public class TestSearchDictionaryEncoder {
       // verify encoding results
       assertEquals(rawVector.getValueCount(), encodedVector.getValueCount());
       for (int i = 0; i < VECTOR_LENGTH; i++) {
-        assertArrayEquals(rawVector.get(i), String.valueOf(encodedVector.get(i)).getBytes());
+        assertArrayEquals(rawVector.get(i), String.valueOf(encodedVector.get(i)).getBytes(StandardCharsets.UTF_8));
       }
 
       // perform decoding
@@ -111,7 +111,8 @@ public class TestSearchDictionaryEncoder {
         // verify decoding results
         assertEquals(encodedVector.getValueCount(), decodedVector.getValueCount());
         for (int i = 0; i < VECTOR_LENGTH; i++) {
-          assertArrayEquals(String.valueOf(encodedVector.get(i)).getBytes(), decodedVector.get(i));
+          assertArrayEquals(String.valueOf(encodedVector.get(i)).getBytes(StandardCharsets.UTF_8),
+              decodedVector.get(i));
         }
       }
     }
@@ -129,7 +130,7 @@ public class TestSearchDictionaryEncoder {
       dictionary.setNull(0);
       for (int i = 1; i < DICTIONARY_LENGTH; i++) {
         // encode "i" as i
-        dictionary.setSafe(i, String.valueOf(i).getBytes());
+        dictionary.setSafe(i, String.valueOf(i).getBytes(StandardCharsets.UTF_8));
       }
       dictionary.setValueCount(DICTIONARY_LENGTH);
 
@@ -140,7 +141,7 @@ public class TestSearchDictionaryEncoder {
           rawVector.setNull(i);
         } else {
           int val = (random.nextInt() & Integer.MAX_VALUE) % (DICTIONARY_LENGTH - 1) + 1;
-          rawVector.set(i, String.valueOf(val).getBytes());
+          rawVector.set(i, String.valueOf(val).getBytes(StandardCharsets.UTF_8));
         }
       }
       rawVector.setValueCount(VECTOR_LENGTH);
@@ -159,7 +160,7 @@ public class TestSearchDictionaryEncoder {
         if (i % 10 == 0) {
           assertEquals(0, encodedVector.get(i));
         } else {
-          assertArrayEquals(rawVector.get(i), String.valueOf(encodedVector.get(i)).getBytes());
+          assertArrayEquals(rawVector.get(i), String.valueOf(encodedVector.get(i)).getBytes(StandardCharsets.UTF_8));
         }
       }
 
@@ -173,7 +174,8 @@ public class TestSearchDictionaryEncoder {
           if (i % 10 == 0) {
             assertTrue(decodedVector.isNull(i));
           } else {
-            assertArrayEquals(String.valueOf(encodedVector.get(i)).getBytes(), decodedVector.get(i));
+            assertArrayEquals(String.valueOf(encodedVector.get(i)).getBytes(StandardCharsets.UTF_8),
+                decodedVector.get(i));
           }
         }
       }
@@ -190,7 +192,7 @@ public class TestSearchDictionaryEncoder {
       dictionary.allocateNew();
       for (int i = 0; i < DICTIONARY_LENGTH; i++) {
         // encode "i" as i
-        dictionary.setSafe(i, String.valueOf(i).getBytes());
+        dictionary.setSafe(i, String.valueOf(i).getBytes(StandardCharsets.UTF_8));
       }
       dictionary.setValueCount(DICTIONARY_LENGTH);
 
diff --git a/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestSearchTreeBasedDictionaryBuilder.java b/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestSearchTreeBasedDictionaryBuilder.java
index d8e9edce83..340b7e67e8 100644
--- a/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestSearchTreeBasedDictionaryBuilder.java
+++ b/java/algorithm/src/test/java/org/apache/arrow/algorithm/dictionary/TestSearchTreeBasedDictionaryBuilder.java
@@ -20,6 +20,9 @@ package org.apache.arrow.algorithm.dictionary;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
+import java.nio.charset.StandardCharsets;
+import java.util.Objects;
+
 import org.apache.arrow.algorithm.sort.DefaultVectorComparators;
 import org.apache.arrow.algorithm.sort.VectorValueComparator;
 import org.apache.arrow.memory.BufferAllocator;
@@ -60,16 +63,16 @@ public class TestSearchTreeBasedDictionaryBuilder {
       sortedDictionary.allocateNew();
 
       // fill data
-      vec.set(0, "hello".getBytes());
-      vec.set(1, "abc".getBytes());
+      vec.set(0, "hello".getBytes(StandardCharsets.UTF_8));
+      vec.set(1, "abc".getBytes(StandardCharsets.UTF_8));
       vec.setNull(2);
-      vec.set(3, "world".getBytes());
-      vec.set(4, "12".getBytes());
-      vec.set(5, "dictionary".getBytes());
+      vec.set(3, "world".getBytes(StandardCharsets.UTF_8));
+      vec.set(4, "12".getBytes(StandardCharsets.UTF_8));
+      vec.set(5, "dictionary".getBytes(StandardCharsets.UTF_8));
       vec.setNull(6);
-      vec.set(7, "hello".getBytes());
-      vec.set(8, "good".getBytes());
-      vec.set(9, "abc".getBytes());
+      vec.set(7, "hello".getBytes(StandardCharsets.UTF_8));
+      vec.set(8, "good".getBytes(StandardCharsets.UTF_8));
+      vec.set(9, "abc".getBytes(StandardCharsets.UTF_8));
 
       VectorValueComparator<VarCharVector> comparator = DefaultVectorComparators.createDefaultComparator(vec);
       SearchTreeBasedDictionaryBuilder<VarCharVector> dictionaryBuilder =
@@ -83,12 +86,12 @@ public class TestSearchTreeBasedDictionaryBuilder {
       dictionaryBuilder.populateSortedDictionary(sortedDictionary);
 
       assertTrue(sortedDictionary.isNull(0));
-      assertEquals("12", new String(sortedDictionary.get(1)));
-      assertEquals("abc", new String(sortedDictionary.get(2)));
-      assertEquals("dictionary", new String(sortedDictionary.get(3)));
-      assertEquals("good", new String(sortedDictionary.get(4)));
-      assertEquals("hello", new String(sortedDictionary.get(5)));
-      assertEquals("world", new String(sortedDictionary.get(6)));
+      assertEquals("12", new String(Objects.requireNonNull(sortedDictionary.get(1)), StandardCharsets.UTF_8));
+      assertEquals("abc", new String(Objects.requireNonNull(sortedDictionary.get(2)), StandardCharsets.UTF_8));
+      assertEquals("dictionary", new String(Objects.requireNonNull(sortedDictionary.get(3)), StandardCharsets.UTF_8));
+      assertEquals("good", new String(Objects.requireNonNull(sortedDictionary.get(4)), StandardCharsets.UTF_8));
+      assertEquals("hello", new String(Objects.requireNonNull(sortedDictionary.get(5)), StandardCharsets.UTF_8));
+      assertEquals("world", new String(Objects.requireNonNull(sortedDictionary.get(6)), StandardCharsets.UTF_8));
     }
   }
 
@@ -105,16 +108,16 @@ public class TestSearchTreeBasedDictionaryBuilder {
       sortedDictionary.allocateNew();
 
       // fill data
-      vec.set(0, "hello".getBytes());
-      vec.set(1, "abc".getBytes());
+      vec.set(0, "hello".getBytes(StandardCharsets.UTF_8));
+      vec.set(1, "abc".getBytes(StandardCharsets.UTF_8));
       vec.setNull(2);
-      vec.set(3, "world".getBytes());
-      vec.set(4, "12".getBytes());
-      vec.set(5, "dictionary".getBytes());
+      vec.set(3, "world".getBytes(StandardCharsets.UTF_8));
+      vec.set(4, "12".getBytes(StandardCharsets.UTF_8));
+      vec.set(5, "dictionary".getBytes(StandardCharsets.UTF_8));
       vec.setNull(6);
-      vec.set(7, "hello".getBytes());
-      vec.set(8, "good".getBytes());
-      vec.set(9, "abc".getBytes());
+      vec.set(7, "hello".getBytes(StandardCharsets.UTF_8));
+      vec.set(8, "good".getBytes(StandardCharsets.UTF_8));
+      vec.set(9, "abc".getBytes(StandardCharsets.UTF_8));
 
       VectorValueComparator<VarCharVector> comparator = DefaultVectorComparators.createDefaultComparator(vec);
       SearchTreeBasedDictionaryBuilder<VarCharVector> dictionaryBuilder =
@@ -127,12 +130,12 @@ public class TestSearchTreeBasedDictionaryBuilder {
 
       dictionaryBuilder.populateSortedDictionary(sortedDictionary);
 
-      assertEquals("12", new String(sortedDictionary.get(0)));
-      assertEquals("abc", new String(sortedDictionary.get(1)));
-      assertEquals("dictionary", new String(sortedDictionary.get(2)));
-      assertEquals("good", new String(sortedDictionary.get(3)));
-      assertEquals("hello", new String(sortedDictionary.get(4)));
-      assertEquals("world", new String(sortedDictionary.get(5)));
+      assertEquals("12", new String(Objects.requireNonNull(sortedDictionary.get(0)), StandardCharsets.UTF_8));
+      assertEquals("abc", new String(Objects.requireNonNull(sortedDictionary.get(1)), StandardCharsets.UTF_8));
+      assertEquals("dictionary", new String(Objects.requireNonNull(sortedDictionary.get(2)), StandardCharsets.UTF_8));
+      assertEquals("good", new String(Objects.requireNonNull(sortedDictionary.get(3)), StandardCharsets.UTF_8));
+      assertEquals("hello", new String(Objects.requireNonNull(sortedDictionary.get(4)), StandardCharsets.UTF_8));
+      assertEquals("world", new String(Objects.requireNonNull(sortedDictionary.get(5)), StandardCharsets.UTF_8));
     }
   }
 
diff --git a/java/algorithm/src/test/java/org/apache/arrow/algorithm/misc/TestPartialSumUtils.java b/java/algorithm/src/test/java/org/apache/arrow/algorithm/misc/TestPartialSumUtils.java
index 4e2d5900f8..630dd80b44 100644
--- a/java/algorithm/src/test/java/org/apache/arrow/algorithm/misc/TestPartialSumUtils.java
+++ b/java/algorithm/src/test/java/org/apache/arrow/algorithm/misc/TestPartialSumUtils.java
@@ -67,7 +67,7 @@ public class TestPartialSumUtils {
       // verify results
       assertEquals(PARTIAL_SUM_VECTOR_LENGTH, partialSum.getValueCount());
       for (int i = 0; i < partialSum.getValueCount(); i++) {
-        assertEquals(i * 3 + sumBase, partialSum.get(i));
+        assertEquals(i * 3L + sumBase, partialSum.get(i));
       }
     }
   }
diff --git a/java/algorithm/src/test/java/org/apache/arrow/algorithm/rank/TestVectorRank.java b/java/algorithm/src/test/java/org/apache/arrow/algorithm/rank/TestVectorRank.java
index f372a809ba..0e6627eb48 100644
--- a/java/algorithm/src/test/java/org/apache/arrow/algorithm/rank/TestVectorRank.java
+++ b/java/algorithm/src/test/java/org/apache/arrow/algorithm/rank/TestVectorRank.java
@@ -20,6 +20,8 @@ package org.apache.arrow.algorithm.rank;
 import static org.junit.Assert.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 
+import java.nio.charset.StandardCharsets;
+
 import org.apache.arrow.algorithm.sort.DefaultVectorComparators;
 import org.apache.arrow.algorithm.sort.VectorValueComparator;
 import org.apache.arrow.memory.BufferAllocator;
@@ -89,16 +91,16 @@ public class TestVectorRank {
       vector.allocateNew(VECTOR_LENGTH * 5, VECTOR_LENGTH);
       vector.setValueCount(VECTOR_LENGTH);
 
-      vector.set(0, String.valueOf(1).getBytes());
-      vector.set(1, String.valueOf(5).getBytes());
-      vector.set(2, String.valueOf(3).getBytes());
-      vector.set(3, String.valueOf(7).getBytes());
-      vector.set(4, String.valueOf(9).getBytes());
-      vector.set(5, String.valueOf(8).getBytes());
-      vector.set(6, String.valueOf(2).getBytes());
-      vector.set(7, String.valueOf(0).getBytes());
-      vector.set(8, String.valueOf(4).getBytes());
-      vector.set(9, String.valueOf(6).getBytes());
+      vector.set(0, String.valueOf(1).getBytes(StandardCharsets.UTF_8));
+      vector.set(1, String.valueOf(5).getBytes(StandardCharsets.UTF_8));
+      vector.set(2, String.valueOf(3).getBytes(StandardCharsets.UTF_8));
+      vector.set(3, String.valueOf(7).getBytes(StandardCharsets.UTF_8));
+      vector.set(4, String.valueOf(9).getBytes(StandardCharsets.UTF_8));
+      vector.set(5, String.valueOf(8).getBytes(StandardCharsets.UTF_8));
+      vector.set(6, String.valueOf(2).getBytes(StandardCharsets.UTF_8));
+      vector.set(7, String.valueOf(0).getBytes(StandardCharsets.UTF_8));
+      vector.set(8, String.valueOf(4).getBytes(StandardCharsets.UTF_8));
+      vector.set(9, String.valueOf(6).getBytes(StandardCharsets.UTF_8));
 
       VectorValueComparator<VarCharVector> comparator =
               DefaultVectorComparators.createDefaultComparator(vector);
diff --git a/java/algorithm/src/test/java/org/apache/arrow/algorithm/search/TestParallelSearcher.java b/java/algorithm/src/test/java/org/apache/arrow/algorithm/search/TestParallelSearcher.java
index 767935aaa4..9ccecfa84a 100644
--- a/java/algorithm/src/test/java/org/apache/arrow/algorithm/search/TestParallelSearcher.java
+++ b/java/algorithm/src/test/java/org/apache/arrow/algorithm/search/TestParallelSearcher.java
@@ -19,6 +19,7 @@ package org.apache.arrow.algorithm.search;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -130,8 +131,8 @@ public class TestParallelSearcher {
           : DefaultVectorComparators.createDefaultComparator(targetVector);
 
       for (int i = 0; i < VECTOR_LENGTH; i++) {
-        targetVector.setSafe(i, String.valueOf(i).getBytes());
-        keyVector.setSafe(i, String.valueOf(i * 2).getBytes());
+        targetVector.setSafe(i, String.valueOf(i).getBytes(StandardCharsets.UTF_8));
+        keyVector.setSafe(i, String.valueOf(i * 2).getBytes(StandardCharsets.UTF_8));
       }
       targetVector.setValueCount(VECTOR_LENGTH);
       keyVector.setValueCount(VECTOR_LENGTH);
diff --git a/java/algorithm/src/test/java/org/apache/arrow/algorithm/search/TestVectorRangeSearcher.java b/java/algorithm/src/test/java/org/apache/arrow/algorithm/search/TestVectorRangeSearcher.java
index d7659dc4cf..18f4fa0355 100644
--- a/java/algorithm/src/test/java/org/apache/arrow/algorithm/search/TestVectorRangeSearcher.java
+++ b/java/algorithm/src/test/java/org/apache/arrow/algorithm/search/TestVectorRangeSearcher.java
@@ -81,7 +81,7 @@ public class TestVectorRangeSearcher {
       VectorValueComparator<IntVector> comparator = DefaultVectorComparators.createDefaultComparator(intVector);
       for (int i = 0; i < maxValue; i++) {
         int result = VectorRangeSearcher.getFirstMatch(intVector, comparator, intVector, i * repeat);
-        assertEquals(i * repeat, result);
+        assertEquals(i * ((long) repeat), result);
       }
     }
   }
diff --git a/java/algorithm/src/test/java/org/apache/arrow/algorithm/search/TestVectorSearcher.java b/java/algorithm/src/test/java/org/apache/arrow/algorithm/search/TestVectorSearcher.java
index 2847ddbb8a..32fa10bbd9 100644
--- a/java/algorithm/src/test/java/org/apache/arrow/algorithm/search/TestVectorSearcher.java
+++ b/java/algorithm/src/test/java/org/apache/arrow/algorithm/search/TestVectorSearcher.java
@@ -20,6 +20,8 @@ package org.apache.arrow.algorithm.search;
 import static org.apache.arrow.vector.complex.BaseRepeatedValueVector.OFFSET_WIDTH;
 import static org.junit.Assert.assertEquals;
 
+import java.nio.charset.StandardCharsets;
+
 import org.apache.arrow.algorithm.sort.DefaultVectorComparators;
 import org.apache.arrow.algorithm.sort.VectorValueComparator;
 import org.apache.arrow.memory.BufferAllocator;
@@ -142,7 +144,7 @@ public class TestVectorSearcher {
           rawVector.set(i, content);
         }
       }
-      negVector.set(0, "abcd".getBytes());
+      negVector.set(0, "abcd".getBytes(StandardCharsets.UTF_8));
 
       // do search
       VectorValueComparator<BaseVariableWidthVector> comparator =
@@ -181,7 +183,7 @@ public class TestVectorSearcher {
           rawVector.set(i, content);
         }
       }
-      negVector.set(0, "abcd".getBytes());
+      negVector.set(0, "abcd".getBytes(StandardCharsets.UTF_8));
 
       // do search
       VectorValueComparator<BaseVariableWidthVector> comparator =
diff --git a/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestCompositeVectorComparator.java b/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestCompositeVectorComparator.java
index cac9933cc0..9624432924 100644
--- a/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestCompositeVectorComparator.java
+++ b/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestCompositeVectorComparator.java
@@ -17,8 +17,10 @@
 
 package org.apache.arrow.algorithm.sort;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 
 import org.apache.arrow.memory.BufferAllocator;
@@ -67,9 +69,9 @@ public class TestCompositeVectorComparator {
 
       for (int i = 0; i < vectorLength; i++) {
         intVec1.set(i, i);
-        strVec1.set(i, new String("a" + i).getBytes());
+        strVec1.set(i, ("a" + i).getBytes(StandardCharsets.UTF_8));
         intVec2.set(i, i);
-        strVec2.set(i, new String("a5").getBytes());
+        strVec2.set(i, "a5".getBytes(StandardCharsets.UTF_8));
       }
 
       VectorValueComparator<IntVector> innerComparator1 =
@@ -86,7 +88,7 @@ public class TestCompositeVectorComparator {
       // verify results
 
       // both elements are equal, the result is equal
-      assertTrue(comparator.compare(5, 5) == 0);
+      assertEquals(0, comparator.compare(5, 5));
 
       // the first element being equal, the second is smaller, and the result is smaller
       assertTrue(comparator.compare(1, 1) < 0);
diff --git a/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestDefaultVectorComparator.java b/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestDefaultVectorComparator.java
index 43c634b764..c40854fb17 100644
--- a/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestDefaultVectorComparator.java
+++ b/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestDefaultVectorComparator.java
@@ -65,6 +65,7 @@ import org.apache.arrow.vector.types.pojo.FieldType;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
 
 /**
  * Test cases for {@link DefaultVectorComparators}.
@@ -258,7 +259,8 @@ public class TestDefaultVectorComparator {
       vec.allocateNew(10);
 
       ValueVectorDataPopulator.setVector(
-          vec, null, (char) -2, (char) -1, (char) 0, (char) 1, (char) 2, (char) -2, null,
+          vec, null, (char) (Character.MAX_VALUE - 1), Character.MAX_VALUE, (char) 0, (char) 1,
+          (char) 2, (char) (Character.MAX_VALUE - 1), null,
           '\u7FFF', // value for the max 16-byte signed integer
           '\u8000' // value for the min 16-byte signed integer
       );
@@ -272,8 +274,8 @@ public class TestDefaultVectorComparator {
       assertTrue(comparator.compare(1, 3) > 0);
       assertTrue(comparator.compare(2, 5) > 0);
       assertTrue(comparator.compare(4, 5) < 0);
-      assertTrue(comparator.compare(1, 6) == 0);
-      assertTrue(comparator.compare(0, 7) == 0);
+      Assertions.assertEquals(0, comparator.compare(1, 6));
+      Assertions.assertEquals(0, comparator.compare(0, 7));
       assertTrue(comparator.compare(8, 9) < 0);
       assertTrue(comparator.compare(4, 8) < 0);
       assertTrue(comparator.compare(5, 9) < 0);
diff --git a/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestFixedWidthSorting.java b/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestFixedWidthSorting.java
index ba2a341bf4..80c72b4e21 100644
--- a/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestFixedWidthSorting.java
+++ b/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestFixedWidthSorting.java
@@ -131,37 +131,37 @@ public class TestFixedWidthSorting<V extends BaseFixedWidthVector, U extends Com
         for (boolean inPlace : new boolean[] {true, false}) {
           params.add(new Object[] {
               length, nullFrac, inPlace, "TinyIntVector",
-              (Function<BufferAllocator, TinyIntVector>) (allocator -> new TinyIntVector("vector", allocator)),
+              (Function<BufferAllocator, TinyIntVector>) allocator -> new TinyIntVector("vector", allocator),
               TestSortingUtil.TINY_INT_GENERATOR
           });
 
           params.add(new Object[] {
               length, nullFrac, inPlace, "SmallIntVector",
-              (Function<BufferAllocator, SmallIntVector>) (allocator -> new SmallIntVector("vector", allocator)),
+              (Function<BufferAllocator, SmallIntVector>) allocator -> new SmallIntVector("vector", allocator),
               TestSortingUtil.SMALL_INT_GENERATOR
           });
 
           params.add(new Object[] {
               length, nullFrac, inPlace, "IntVector",
-              (Function<BufferAllocator, IntVector>) (allocator -> new IntVector("vector", allocator)),
+              (Function<BufferAllocator, IntVector>) allocator -> new IntVector("vector", allocator),
               TestSortingUtil.INT_GENERATOR
           });
 
           params.add(new Object[] {
               length, nullFrac, inPlace, "BigIntVector",
-              (Function<BufferAllocator, BigIntVector>) (allocator -> new BigIntVector("vector", allocator)),
+              (Function<BufferAllocator, BigIntVector>) allocator -> new BigIntVector("vector", allocator),
               TestSortingUtil.LONG_GENERATOR
           });
 
           params.add(new Object[] {
               length, nullFrac, inPlace, "Float4Vector",
-              (Function<BufferAllocator, Float4Vector>) (allocator -> new Float4Vector("vector", allocator)),
+              (Function<BufferAllocator, Float4Vector>) allocator -> new Float4Vector("vector", allocator),
               TestSortingUtil.FLOAT_GENERATOR
           });
 
           params.add(new Object[] {
               length, nullFrac, inPlace, "Float8Vector",
-              (Function<BufferAllocator, Float8Vector>) (allocator -> new Float8Vector("vector", allocator)),
+              (Function<BufferAllocator, Float8Vector>) allocator -> new Float8Vector("vector", allocator),
               TestSortingUtil.DOUBLE_GENERATOR
           });
         }
diff --git a/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestSortingUtil.java b/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestSortingUtil.java
index ea86551061..e22b22d4e6 100644
--- a/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestSortingUtil.java
+++ b/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestSortingUtil.java
@@ -20,6 +20,7 @@ package org.apache.arrow.algorithm.sort;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 
 import java.lang.reflect.Array;
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.Random;
 import java.util.function.BiConsumer;
@@ -122,7 +123,7 @@ public class TestSortingUtil {
       str[i] = (byte) (r % (upper - lower + 1) + lower);
     }
 
-    return new String(str);
+    return new String(str, StandardCharsets.UTF_8);
   }
 
   /**
diff --git a/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestStableVectorComparator.java b/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestStableVectorComparator.java
index 0741935942..f2de5d23fc 100644
--- a/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestStableVectorComparator.java
+++ b/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestStableVectorComparator.java
@@ -20,12 +20,16 @@ package org.apache.arrow.algorithm.sort;
 import static org.junit.Assert.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
+import java.nio.charset.StandardCharsets;
+import java.util.Objects;
+
 import org.apache.arrow.memory.BufferAllocator;
 import org.apache.arrow.memory.RootAllocator;
 import org.apache.arrow.vector.VarCharVector;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
+import org.junit.jupiter.api.Assertions;
 
 /**
  * Test cases for {@link StableVectorComparator}.
@@ -51,11 +55,11 @@ public class TestStableVectorComparator {
       vec.setValueCount(10);
 
       // fill data to sort
-      vec.set(0, "ba".getBytes());
-      vec.set(1, "abc".getBytes());
-      vec.set(2, "aa".getBytes());
-      vec.set(3, "abc".getBytes());
-      vec.set(4, "a".getBytes());
+      vec.set(0, "ba".getBytes(StandardCharsets.UTF_8));
+      vec.set(1, "abc".getBytes(StandardCharsets.UTF_8));
+      vec.set(2, "aa".getBytes(StandardCharsets.UTF_8));
+      vec.set(3, "abc".getBytes(StandardCharsets.UTF_8));
+      vec.set(4, "a".getBytes(StandardCharsets.UTF_8));
 
       VectorValueComparator<VarCharVector> comparator = new TestVarCharSorter();
       VectorValueComparator<VarCharVector> stableComparator = new StableVectorComparator<>(comparator);
@@ -66,7 +70,7 @@ public class TestStableVectorComparator {
       assertTrue(stableComparator.compare(2, 3) < 0);
       assertTrue(stableComparator.compare(1, 3) < 0);
       assertTrue(stableComparator.compare(3, 1) > 0);
-      assertTrue(stableComparator.compare(3, 3) == 0);
+      Assertions.assertEquals(0, stableComparator.compare(3, 3));
     }
   }
 
@@ -77,16 +81,16 @@ public class TestStableVectorComparator {
       vec.setValueCount(10);
 
       // fill data to sort
-      vec.set(0, "a".getBytes());
-      vec.set(1, "abc".getBytes());
-      vec.set(2, "aa".getBytes());
-      vec.set(3, "a1".getBytes());
-      vec.set(4, "abcdefg".getBytes());
-      vec.set(5, "accc".getBytes());
-      vec.set(6, "afds".getBytes());
-      vec.set(7, "0".getBytes());
-      vec.set(8, "01".getBytes());
-      vec.set(9, "0c".getBytes());
+      vec.set(0, "a".getBytes(StandardCharsets.UTF_8));
+      vec.set(1, "abc".getBytes(StandardCharsets.UTF_8));
+      vec.set(2, "aa".getBytes(StandardCharsets.UTF_8));
+      vec.set(3, "a1".getBytes(StandardCharsets.UTF_8));
+      vec.set(4, "abcdefg".getBytes(StandardCharsets.UTF_8));
+      vec.set(5, "accc".getBytes(StandardCharsets.UTF_8));
+      vec.set(6, "afds".getBytes(StandardCharsets.UTF_8));
+      vec.set(7, "0".getBytes(StandardCharsets.UTF_8));
+      vec.set(8, "01".getBytes(StandardCharsets.UTF_8));
+      vec.set(9, "0c".getBytes(StandardCharsets.UTF_8));
 
       // sort the vector
       VariableWidthOutOfPlaceVectorSorter sorter = new VariableWidthOutOfPlaceVectorSorter();
@@ -103,16 +107,16 @@ public class TestStableVectorComparator {
 
         // verify results
         // the results are stable
-        assertEquals("0", new String(sortedVec.get(0)));
-        assertEquals("01", new String(sortedVec.get(1)));
-        assertEquals("0c", new String(sortedVec.get(2)));
-        assertEquals("a", new String(sortedVec.get(3)));
-        assertEquals("abc", new String(sortedVec.get(4)));
-        assertEquals("aa", new String(sortedVec.get(5)));
-        assertEquals("a1", new String(sortedVec.get(6)));
-        assertEquals("abcdefg", new String(sortedVec.get(7)));
-        assertEquals("accc", new String(sortedVec.get(8)));
-        assertEquals("afds", new String(sortedVec.get(9)));
+        assertEquals("0", new String(Objects.requireNonNull(sortedVec.get(0)), StandardCharsets.UTF_8));
+        assertEquals("01", new String(Objects.requireNonNull(sortedVec.get(1)), StandardCharsets.UTF_8));
+        assertEquals("0c", new String(Objects.requireNonNull(sortedVec.get(2)), StandardCharsets.UTF_8));
+        assertEquals("a", new String(Objects.requireNonNull(sortedVec.get(3)), StandardCharsets.UTF_8));
+        assertEquals("abc", new String(Objects.requireNonNull(sortedVec.get(4)), StandardCharsets.UTF_8));
+        assertEquals("aa", new String(Objects.requireNonNull(sortedVec.get(5)), StandardCharsets.UTF_8));
+        assertEquals("a1", new String(Objects.requireNonNull(sortedVec.get(6)), StandardCharsets.UTF_8));
+        assertEquals("abcdefg", new String(Objects.requireNonNull(sortedVec.get(7)), StandardCharsets.UTF_8));
+        assertEquals("accc", new String(Objects.requireNonNull(sortedVec.get(8)), StandardCharsets.UTF_8));
+        assertEquals("afds", new String(Objects.requireNonNull(sortedVec.get(9)), StandardCharsets.UTF_8));
       }
     }
   }
diff --git a/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestVariableWidthOutOfPlaceVectorSorter.java b/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestVariableWidthOutOfPlaceVectorSorter.java
index 8f4e3b8e19..2486034f1f 100644
--- a/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestVariableWidthOutOfPlaceVectorSorter.java
+++ b/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestVariableWidthOutOfPlaceVectorSorter.java
@@ -20,6 +20,9 @@ package org.apache.arrow.algorithm.sort;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
+import java.nio.charset.StandardCharsets;
+import java.util.Objects;
+
 import org.apache.arrow.memory.BufferAllocator;
 import org.apache.arrow.memory.RootAllocator;
 import org.apache.arrow.vector.BaseVariableWidthVector;
@@ -62,16 +65,16 @@ public class TestVariableWidthOutOfPlaceVectorSorter extends TestOutOfPlaceVecto
       vec.setValueCount(10);
 
       // fill data to sort
-      vec.set(0, "hello".getBytes());
-      vec.set(1, "abc".getBytes());
+      vec.set(0, "hello".getBytes(StandardCharsets.UTF_8));
+      vec.set(1, "abc".getBytes(StandardCharsets.UTF_8));
       vec.setNull(2);
-      vec.set(3, "world".getBytes());
-      vec.set(4, "12".getBytes());
-      vec.set(5, "dictionary".getBytes());
+      vec.set(3, "world".getBytes(StandardCharsets.UTF_8));
+      vec.set(4, "12".getBytes(StandardCharsets.UTF_8));
+      vec.set(5, "dictionary".getBytes(StandardCharsets.UTF_8));
       vec.setNull(6);
-      vec.set(7, "hello".getBytes());
-      vec.set(8, "good".getBytes());
-      vec.set(9, "yes".getBytes());
+      vec.set(7, "hello".getBytes(StandardCharsets.UTF_8));
+      vec.set(8, "good".getBytes(StandardCharsets.UTF_8));
+      vec.set(9, "yes".getBytes(StandardCharsets.UTF_8));
 
       // sort the vector
       OutOfPlaceVectorSorter<BaseVariableWidthVector> sorter = getSorter();
@@ -93,14 +96,14 @@ public class TestVariableWidthOutOfPlaceVectorSorter extends TestOutOfPlaceVecto
 
       assertTrue(sortedVec.isNull(0));
       assertTrue(sortedVec.isNull(1));
-      assertEquals("12", new String(sortedVec.get(2)));
-      assertEquals("abc", new String(sortedVec.get(3)));
-      assertEquals("dictionary", new String(sortedVec.get(4)));
-      assertEquals("good", new String(sortedVec.get(5)));
-      assertEquals("hello", new String(sortedVec.get(6)));
-      assertEquals("hello", new String(sortedVec.get(7)));
-      assertEquals("world", new String(sortedVec.get(8)));
-      assertEquals("yes", new String(sortedVec.get(9)));
+      assertEquals("12", new String(Objects.requireNonNull(sortedVec.get(2)), StandardCharsets.UTF_8));
+      assertEquals("abc", new String(Objects.requireNonNull(sortedVec.get(3)), StandardCharsets.UTF_8));
+      assertEquals("dictionary", new String(Objects.requireNonNull(sortedVec.get(4)), StandardCharsets.UTF_8));
+      assertEquals("good", new String(Objects.requireNonNull(sortedVec.get(5)), StandardCharsets.UTF_8));
+      assertEquals("hello", new String(Objects.requireNonNull(sortedVec.get(6)), StandardCharsets.UTF_8));
+      assertEquals("hello", new String(Objects.requireNonNull(sortedVec.get(7)), StandardCharsets.UTF_8));
+      assertEquals("world", new String(Objects.requireNonNull(sortedVec.get(8)), StandardCharsets.UTF_8));
+      assertEquals("yes", new String(Objects.requireNonNull(sortedVec.get(9)), StandardCharsets.UTF_8));
 
       sortedVec.close();
     }
diff --git a/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestVariableWidthSorting.java b/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestVariableWidthSorting.java
index 068fe8b69a..7951c39d55 100644
--- a/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestVariableWidthSorting.java
+++ b/java/algorithm/src/test/java/org/apache/arrow/algorithm/sort/TestVariableWidthSorting.java
@@ -21,6 +21,7 @@ import static org.junit.jupiter.api.Assertions.assertArrayEquals;
 import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -94,7 +95,7 @@ public class TestVariableWidthSorting<V extends BaseVariableWidthVector, U exten
       VectorValueComparator<V> comparator = DefaultVectorComparators.createDefaultComparator(vector);
 
       try (V sortedVec = (V) vector.getField().getFieldType().createNewSingleVector("", allocator, null)) {
-        int dataSize = vector.getOffsetBuffer().getInt(vector.getValueCount() * 4);
+        int dataSize = vector.getOffsetBuffer().getInt(vector.getValueCount() * 4L);
         sortedVec.allocateNew(dataSize, vector.getValueCount());
         sortedVec.setValueCount(vector.getValueCount());
 
@@ -113,7 +114,7 @@ public class TestVariableWidthSorting<V extends BaseVariableWidthVector, U exten
       for (double nullFrac : NULL_FRACTIONS) {
         params.add(new Object[]{
             length, nullFrac, "VarCharVector",
-            (Function<BufferAllocator, VarCharVector>) (allocator -> new VarCharVector("vector", allocator)),
+            (Function<BufferAllocator, VarCharVector>) allocator -> new VarCharVector("vector", allocator),
             TestSortingUtil.STRING_GENERATOR
         });
       }
@@ -130,7 +131,7 @@ public class TestVariableWidthSorting<V extends BaseVariableWidthVector, U exten
       if (expected[i] == null) {
         assertTrue(vector.isNull(i));
       } else {
-        assertArrayEquals(((Text) vector.getObject(i)).getBytes(), expected[i].getBytes());
+        assertArrayEquals(((Text) vector.getObject(i)).getBytes(), expected[i].getBytes(StandardCharsets.UTF_8));
       }
     }
   }
@@ -151,8 +152,8 @@ public class TestVariableWidthSorting<V extends BaseVariableWidthVector, U exten
         return str1 == null ? -1 : 1;
       }
 
-      byte[] bytes1 = str1.getBytes();
-      byte[] bytes2 = str2.getBytes();
+      byte[] bytes1 = str1.getBytes(StandardCharsets.UTF_8);
+      byte[] bytes2 = str2.getBytes(StandardCharsets.UTF_8);
 
       for (int i = 0; i < bytes1.length && i < bytes2.length; i++) {
         if (bytes1[i] != bytes2[i]) {
diff --git a/java/compression/src/test/java/org/apache/arrow/compression/TestCompressionCodec.java b/java/compression/src/test/java/org/apache/arrow/compression/TestCompressionCodec.java
index 01156fa2b0..5fff4fafd6 100644
--- a/java/compression/src/test/java/org/apache/arrow/compression/TestCompressionCodec.java
+++ b/java/compression/src/test/java/org/apache/arrow/compression/TestCompressionCodec.java
@@ -175,7 +175,7 @@ class TestCompressionCodec {
       if (i % 10 == 0) {
         origVec.setNull(i);
       } else {
-        origVec.setSafe(i, String.valueOf(i).getBytes());
+        origVec.setSafe(i, String.valueOf(i).getBytes(StandardCharsets.UTF_8));
       }
     }
     origVec.setValueCount(vectorLength);
@@ -199,7 +199,7 @@ class TestCompressionCodec {
       if (i % 10 == 0) {
         assertTrue(newVec.isNull(i));
       } else {
-        assertArrayEquals(String.valueOf(i).getBytes(), newVec.get(i));
+        assertArrayEquals(String.valueOf(i).getBytes(StandardCharsets.UTF_8), newVec.get(i));
       }
     }
 
diff --git a/java/flight/flight-core/pom.xml b/java/flight/flight-core/pom.xml
index b7624d7748..0346172f61 100644
--- a/java/flight/flight-core/pom.xml
+++ b/java/flight/flight-core/pom.xml
@@ -86,6 +86,10 @@
       <groupId>com.google.protobuf</groupId>
       <artifactId>protobuf-java</artifactId>
     </dependency>
+    <dependency>
+      <groupId>com.google.protobuf</groupId>
+      <artifactId>protobuf-java-util</artifactId>
+    </dependency>
     <dependency>
       <groupId>io.grpc</groupId>
       <artifactId>grpc-api</artifactId>
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/ArrowMessage.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/ArrowMessage.java
index b4ee835dee..46cb282e9f 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/ArrowMessage.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/ArrowMessage.java
@@ -35,8 +35,6 @@ import org.apache.arrow.memory.ArrowBuf;
 import org.apache.arrow.memory.BufferAllocator;
 import org.apache.arrow.util.AutoCloseables;
 import org.apache.arrow.util.Preconditions;
-import org.apache.arrow.vector.compression.NoCompressionCodec;
-import org.apache.arrow.vector.ipc.message.ArrowBodyCompression;
 import org.apache.arrow.vector.ipc.message.ArrowDictionaryBatch;
 import org.apache.arrow.vector.ipc.message.ArrowRecordBatch;
 import org.apache.arrow.vector.ipc.message.IpcOption;
@@ -144,7 +142,6 @@ class ArrowMessage implements AutoCloseable {
   private final MessageMetadataResult message;
   private final ArrowBuf appMetadata;
   private final List<ArrowBuf> bufs;
-  private final ArrowBodyCompression bodyCompression;
   private final boolean tryZeroCopyWrite;
 
   public ArrowMessage(FlightDescriptor descriptor, Schema schema, IpcOption option) {
@@ -155,7 +152,6 @@ class ArrowMessage implements AutoCloseable {
     bufs = ImmutableList.of();
     this.descriptor = descriptor;
     this.appMetadata = null;
-    this.bodyCompression = NoCompressionCodec.DEFAULT_BODY_COMPRESSION;
     this.tryZeroCopyWrite = false;
   }
 
@@ -172,7 +168,6 @@ class ArrowMessage implements AutoCloseable {
     this.bufs = ImmutableList.copyOf(batch.getBuffers());
     this.descriptor = null;
     this.appMetadata = appMetadata;
-    this.bodyCompression = batch.getBodyCompression();
     this.tryZeroCopyWrite = tryZeroCopy;
   }
 
@@ -186,7 +181,6 @@ class ArrowMessage implements AutoCloseable {
     this.bufs = ImmutableList.copyOf(batch.getDictionary().getBuffers());
     this.descriptor = null;
     this.appMetadata = null;
-    this.bodyCompression = batch.getDictionary().getBodyCompression();
     this.tryZeroCopyWrite = false;
   }
 
@@ -201,7 +195,6 @@ class ArrowMessage implements AutoCloseable {
     this.bufs = ImmutableList.of();
     this.descriptor = null;
     this.appMetadata = appMetadata;
-    this.bodyCompression = NoCompressionCodec.DEFAULT_BODY_COMPRESSION;
     this.tryZeroCopyWrite = false;
   }
 
@@ -212,7 +205,6 @@ class ArrowMessage implements AutoCloseable {
     this.bufs = ImmutableList.of();
     this.descriptor = descriptor;
     this.appMetadata = null;
-    this.bodyCompression = NoCompressionCodec.DEFAULT_BODY_COMPRESSION;
     this.tryZeroCopyWrite = false;
   }
 
@@ -227,7 +219,6 @@ class ArrowMessage implements AutoCloseable {
     this.descriptor = descriptor;
     this.appMetadata = appMetadata;
     this.bufs = buf == null ? ImmutableList.of() : ImmutableList.of(buf);
-    this.bodyCompression = NoCompressionCodec.DEFAULT_BODY_COMPRESSION;
     this.tryZeroCopyWrite = false;
   }
 
@@ -370,7 +361,7 @@ class ArrowMessage implements AutoCloseable {
    *
    * @return InputStream
    */
-  private InputStream asInputStream(BufferAllocator allocator) {
+  private InputStream asInputStream() {
     if (message == null) {
       // If we have no IPC message, it's a pure-metadata message
       final FlightData.Builder builder = FlightData.newBuilder();
@@ -422,7 +413,7 @@ class ArrowMessage implements AutoCloseable {
         // Arrow buffer. This is susceptible to use-after-free, so we subclass CompositeByteBuf
         // below to tie the Arrow buffer refcnt to the Netty buffer refcnt
         allBufs.add(Unpooled.wrappedBuffer(b.nioBuffer()).retain());
-        size += b.readableBytes();
+        size += (int) b.readableBytes();
         // [ARROW-4213] These buffers must be aligned to an 8-byte boundary in order to be readable from C++.
         if (b.readableBytes() % 8 != 0) {
           int paddingBytes = (int) (8 - (b.readableBytes() % 8));
@@ -543,7 +534,7 @@ class ArrowMessage implements AutoCloseable {
 
     @Override
     public InputStream stream(ArrowMessage value) {
-      return value.asInputStream(allocator);
+      return value.asInputStream();
     }
 
     @Override
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/CancelFlightInfoResult.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/CancelFlightInfoResult.java
index eff5afdeeb..165afdff55 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/CancelFlightInfoResult.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/CancelFlightInfoResult.java
@@ -105,7 +105,7 @@ public class CancelFlightInfoResult {
     if (this == o) {
       return true;
     }
-    if (o == null || getClass() != o.getClass()) {
+    if (!(o instanceof CancelFlightInfoResult)) {
       return false;
     }
     CancelFlightInfoResult that = (CancelFlightInfoResult) o;
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/ErrorFlightMetadata.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/ErrorFlightMetadata.java
index 6669ce4655..6e19d2750c 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/ErrorFlightMetadata.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/ErrorFlightMetadata.java
@@ -61,7 +61,7 @@ public class ErrorFlightMetadata implements CallHeaders {
 
   @Override
   public void insert(String key, String value) {
-    metadata.put(key, value.getBytes());
+    metadata.put(key, value.getBytes(StandardCharsets.UTF_8));
   }
 
   @Override
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightCallHeaders.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightCallHeaders.java
index dd26d19087..93b89e7755 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightCallHeaders.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightCallHeaders.java
@@ -17,6 +17,7 @@
 
 package org.apache.arrow.flight;
 
+import java.nio.charset.StandardCharsets;
 import java.util.Collection;
 import java.util.Set;
 import java.util.stream.Collectors;
@@ -46,7 +47,7 @@ public class FlightCallHeaders implements CallHeaders {
     }
 
     if (key.endsWith(Metadata.BINARY_HEADER_SUFFIX)) {
-      return new String((byte[]) Iterables.get(values, 0));
+      return new String((byte[]) Iterables.get(values, 0), StandardCharsets.UTF_8);
     }
 
     return (String) Iterables.get(values, 0);
@@ -63,13 +64,14 @@ public class FlightCallHeaders implements CallHeaders {
       return (byte[]) Iterables.get(values, 0);
     }
 
-    return ((String) Iterables.get(values, 0)).getBytes();
+    return ((String) Iterables.get(values, 0)).getBytes(StandardCharsets.UTF_8);
   }
 
   @Override
   public Iterable<String> getAll(String key) {
     if (key.endsWith(Metadata.BINARY_HEADER_SUFFIX)) {
-      return this.keysAndValues.get(key).stream().map(o -> new String((byte[]) o)).collect(Collectors.toList());
+      return this.keysAndValues.get(key).stream().map(o -> new String((byte[]) o, StandardCharsets.UTF_8))
+          .collect(Collectors.toList());
     }
     return (Collection<String>) (Collection<?>) this.keysAndValues.get(key);
   }
@@ -79,7 +81,8 @@ public class FlightCallHeaders implements CallHeaders {
     if (key.endsWith(Metadata.BINARY_HEADER_SUFFIX)) {
       return (Collection<byte[]>) (Collection<?>) this.keysAndValues.get(key);
     }
-    return this.keysAndValues.get(key).stream().map(o -> ((String) o).getBytes()).collect(Collectors.toList());
+    return this.keysAndValues.get(key).stream().map(o -> ((String) o).getBytes(StandardCharsets.UTF_8))
+        .collect(Collectors.toList());
   }
 
   @Override
@@ -105,6 +108,7 @@ public class FlightCallHeaders implements CallHeaders {
     return this.keysAndValues.containsKey(key);
   }
 
+  @Override
   public String toString() {
     return this.keysAndValues.toString();
   }
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightClient.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightClient.java
index 91e3b4d052..fc491ebe0d 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightClient.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightClient.java
@@ -19,6 +19,7 @@ package org.apache.arrow.flight;
 
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
 import java.net.URISyntaxException;
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
@@ -627,6 +628,7 @@ public class FlightClient implements AutoCloseable {
   /**
    * Shut down this client.
    */
+  @Override
   public void close() throws InterruptedException {
     channel.shutdown().awaitTermination(5, TimeUnit.SECONDS);
     allocator.close();
@@ -746,19 +748,24 @@ public class FlightClient implements AutoCloseable {
             try {
               // Linux
               builder.channelType(
-                  (Class<? extends ServerChannel>) Class.forName("io.netty.channel.epoll.EpollDomainSocketChannel"));
-              final EventLoopGroup elg = (EventLoopGroup) Class.forName("io.netty.channel.epoll.EpollEventLoopGroup")
-                  .newInstance();
+                  Class.forName("io.netty.channel.epoll.EpollDomainSocketChannel")
+                      .asSubclass(ServerChannel.class));
+              final EventLoopGroup elg =
+                  Class.forName("io.netty.channel.epoll.EpollEventLoopGroup").asSubclass(EventLoopGroup.class)
+                  .getDeclaredConstructor().newInstance();
               builder.eventLoopGroup(elg);
             } catch (ClassNotFoundException e) {
               // BSD
               builder.channelType(
-                  (Class<? extends ServerChannel>) Class.forName("io.netty.channel.kqueue.KQueueDomainSocketChannel"));
-              final EventLoopGroup elg = (EventLoopGroup) Class.forName("io.netty.channel.kqueue.KQueueEventLoopGroup")
-                  .newInstance();
+                  Class.forName("io.netty.channel.kqueue.KQueueDomainSocketChannel")
+                      .asSubclass(ServerChannel.class));
+              final EventLoopGroup elg = Class.forName("io.netty.channel.kqueue.KQueueEventLoopGroup")
+                  .asSubclass(EventLoopGroup.class)
+                  .getDeclaredConstructor().newInstance();
               builder.eventLoopGroup(elg);
             }
-          } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
+          } catch (ClassNotFoundException | InstantiationException | IllegalAccessException |
+                   NoSuchMethodException | InvocationTargetException e) {
             throw new UnsupportedOperationException(
                 "Could not find suitable Netty native transport implementation for domain socket address.");
           }
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightDescriptor.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightDescriptor.java
index 3eff011d9f..1836f2edd9 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightDescriptor.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightDescriptor.java
@@ -152,7 +152,7 @@ public class FlightDescriptor {
     if (obj == null) {
       return false;
     }
-    if (getClass() != obj.getClass()) {
+    if (!(obj instanceof FlightDescriptor)) {
       return false;
     }
     FlightDescriptor other = (FlightDescriptor) obj;
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightEndpoint.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightEndpoint.java
index 1967fe1d91..41ead8e1fc 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightEndpoint.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightEndpoint.java
@@ -33,6 +33,7 @@ import org.apache.arrow.flight.impl.Flight;
 
 import com.google.protobuf.ByteString;
 import com.google.protobuf.Timestamp;
+import com.google.protobuf.util.Timestamps;
 
 /**
  * POJO to convert to/from the underlying protobuf FlightEndpoint.
@@ -85,11 +86,11 @@ public class FlightEndpoint {
     }
     if (flt.hasExpirationTime()) {
       this.expirationTime = Instant.ofEpochSecond(
-          flt.getExpirationTime().getSeconds(), flt.getExpirationTime().getNanos());
+          flt.getExpirationTime().getSeconds(), Timestamps.toNanos(flt.getExpirationTime()));
     } else {
       this.expirationTime = null;
     }
-    this.appMetadata = (flt.getAppMetadata().size() == 0 ? null : flt.getAppMetadata().toByteArray());
+    this.appMetadata = (flt.getAppMetadata().isEmpty() ? null : flt.getAppMetadata().toByteArray());
     this.ticket = new Ticket(flt.getTicket());
   }
 
@@ -163,7 +164,7 @@ public class FlightEndpoint {
     if (this == o) {
       return true;
     }
-    if (o == null || getClass() != o.getClass()) {
+    if (!(o instanceof FlightEndpoint)) {
       return false;
     }
     FlightEndpoint that = (FlightEndpoint) o;
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightInfo.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightInfo.java
index b5279a304c..39e5f5e3a3 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightInfo.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightInfo.java
@@ -249,7 +249,7 @@ public class FlightInfo {
     if (this == o) {
       return true;
     }
-    if (o == null || getClass() != o.getClass()) {
+    if (!(o instanceof FlightInfo)) {
       return false;
     }
     FlightInfo that = (FlightInfo) o;
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightServer.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightServer.java
index 234c9bdcaa..d873f7d282 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightServer.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightServer.java
@@ -21,6 +21,7 @@ import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
 import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.ArrayList;
@@ -134,6 +135,7 @@ public class FlightServer implements AutoCloseable {
   }
 
   /** Shutdown the server, waits for up to 6 seconds for successful shutdown before returning. */
+  @Override
   public void close() throws InterruptedException {
     shutdown();
     final boolean terminated = awaitTermination(3000, TimeUnit.MILLISECONDS);
@@ -146,7 +148,7 @@ public class FlightServer implements AutoCloseable {
     server.shutdownNow();
 
     int count = 0;
-    while (!server.isTerminated() & count < 30) {
+    while (!server.isTerminated() && count < 30) {
       count++;
       logger.debug("Waiting for termination");
       Thread.sleep(100);
@@ -216,22 +218,23 @@ public class FlightServer implements AutoCloseable {
           try {
             try {
               // Linux
-              builder.channelType(
-                  (Class<? extends ServerChannel>) Class
-                      .forName("io.netty.channel.epoll.EpollServerDomainSocketChannel"));
-              final EventLoopGroup elg = (EventLoopGroup) Class.forName("io.netty.channel.epoll.EpollEventLoopGroup")
-                  .newInstance();
+              builder.channelType(Class
+                      .forName("io.netty.channel.epoll.EpollServerDomainSocketChannel")
+                      .asSubclass(ServerChannel.class));
+              final EventLoopGroup elg = Class.forName("io.netty.channel.epoll.EpollEventLoopGroup")
+                      .asSubclass(EventLoopGroup.class).getConstructor().newInstance();
               builder.bossEventLoopGroup(elg).workerEventLoopGroup(elg);
             } catch (ClassNotFoundException e) {
               // BSD
               builder.channelType(
-                  (Class<? extends ServerChannel>) Class
-                      .forName("io.netty.channel.kqueue.KQueueServerDomainSocketChannel"));
-              final EventLoopGroup elg = (EventLoopGroup) Class.forName("io.netty.channel.kqueue.KQueueEventLoopGroup")
-                  .newInstance();
+                      Class.forName("io.netty.channel.kqueue.KQueueServerDomainSocketChannel")
+                              .asSubclass(ServerChannel.class));
+              final EventLoopGroup elg = Class.forName("io.netty.channel.kqueue.KQueueEventLoopGroup")
+                      .asSubclass(EventLoopGroup.class).getConstructor().newInstance();
               builder.bossEventLoopGroup(elg).workerEventLoopGroup(elg);
             }
-          } catch (ClassNotFoundException | InstantiationException | IllegalAccessException e) {
+          } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | NoSuchMethodException |
+                   InvocationTargetException e) {
             throw new UnsupportedOperationException(
                 "Could not find suitable Netty native transport implementation for domain socket address.");
           }
@@ -342,7 +345,8 @@ public class FlightServer implements AutoCloseable {
       if (stream != null) {
         try {
           stream.close();
-        } catch (IOException ignored) {
+        } catch (IOException expected) {
+          // stream closes gracefully, doesn't expect an exception.
         }
       }
     }
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightService.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightService.java
index 5231a7aaf7..f55b47d2a9 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightService.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightService.java
@@ -20,6 +20,7 @@ package org.apache.arrow.flight;
 import java.util.Collections;
 import java.util.Map;
 import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Future;
 import java.util.function.BooleanSupplier;
 import java.util.function.Consumer;
 
@@ -142,7 +143,7 @@ class FlightService extends FlightServiceImplBase {
   }
 
   private static class GetListener extends OutboundStreamListenerImpl implements ServerStreamListener {
-    private ServerCallStreamObserver<ArrowMessage> responseObserver;
+    private final ServerCallStreamObserver<ArrowMessage> serverCallResponseObserver;
     private final Consumer<Throwable> errorHandler;
     private Runnable onCancelHandler = null;
     private Runnable onReadyHandler = null;
@@ -152,10 +153,10 @@ class FlightService extends FlightServiceImplBase {
       super(null, responseObserver);
       this.errorHandler = errorHandler;
       this.completed = false;
-      this.responseObserver = responseObserver;
-      this.responseObserver.setOnCancelHandler(this::onCancel);
-      this.responseObserver.setOnReadyHandler(this::onReady);
-      this.responseObserver.disableAutoInboundFlowControl();
+      this.serverCallResponseObserver = responseObserver;
+      this.serverCallResponseObserver.setOnCancelHandler(this::onCancel);
+      this.serverCallResponseObserver.setOnReadyHandler(this::onReady);
+      this.serverCallResponseObserver.disableAutoInboundFlowControl();
     }
 
     private void onCancel() {
@@ -183,7 +184,7 @@ class FlightService extends FlightServiceImplBase {
 
     @Override
     public boolean isCancelled() {
-      return responseObserver.isCancelled();
+      return serverCallResponseObserver.isCancelled();
     }
 
     @Override
@@ -228,7 +229,7 @@ class FlightService extends FlightServiceImplBase {
     // When the ackStream is completed, the FlightStream will be closed with it
     ackStream.setAutoCloseable(fs);
     final StreamObserver<ArrowMessage> observer = fs.asObserver();
-    executors.submit(() -> {
+    Future<?> unused = executors.submit(() -> {
       try {
         producer.acceptPut(makeContext(responseObserver), fs, ackStream).run();
       } catch (Throwable ex) {
@@ -277,7 +278,8 @@ class FlightService extends FlightServiceImplBase {
    * Broadcast the given exception to all registered middleware.
    */
   private void handleExceptionWithMiddleware(Throwable t) {
-    final Map<Key<?>, FlightServerMiddleware> middleware = ServerInterceptorAdapter.SERVER_MIDDLEWARE_KEY.get();
+    final Map<FlightServerMiddleware.Key<?>, FlightServerMiddleware> middleware = ServerInterceptorAdapter
+            .SERVER_MIDDLEWARE_KEY.get();
     if (middleware == null || middleware.isEmpty()) {
       logger.error("Uncaught exception in Flight method body", t);
       return;
@@ -377,7 +379,7 @@ class FlightService extends FlightServiceImplBase {
     responseObserver.request(1);
     final StreamObserver<ArrowMessage> observer = fs.asObserver();
     try {
-      executors.submit(() -> {
+      Future<?> unused = executors.submit(() -> {
         try {
           producer.doExchange(makeContext(responseObserver), fs, listener);
         } catch (Exception ex) {
@@ -416,8 +418,9 @@ class FlightService extends FlightServiceImplBase {
     }
 
     @Override
-    public <T extends FlightServerMiddleware> T getMiddleware(Key<T> key) {
-      final Map<Key<?>, FlightServerMiddleware> middleware = ServerInterceptorAdapter.SERVER_MIDDLEWARE_KEY.get();
+    public <T extends FlightServerMiddleware> T getMiddleware(FlightServerMiddleware.Key<T> key) {
+      final Map<FlightServerMiddleware.Key<?>, FlightServerMiddleware> middleware = ServerInterceptorAdapter
+              .SERVER_MIDDLEWARE_KEY.get();
       if (middleware == null) {
         return null;
       }
@@ -430,8 +433,9 @@ class FlightService extends FlightServiceImplBase {
     }
 
     @Override
-    public Map<Key<?>, FlightServerMiddleware> getMiddleware() {
-      final Map<Key<?>, FlightServerMiddleware> middleware = ServerInterceptorAdapter.SERVER_MIDDLEWARE_KEY.get();
+    public Map<FlightServerMiddleware.Key<?>, FlightServerMiddleware> getMiddleware() {
+      final Map<FlightServerMiddleware.Key<?>, FlightServerMiddleware> middleware =
+          ServerInterceptorAdapter.SERVER_MIDDLEWARE_KEY.get();
       if (middleware == null) {
         return Collections.emptyMap();
       }
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightStream.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightStream.java
index ad4ffcbebd..7a5a941603 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightStream.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/FlightStream.java
@@ -27,6 +27,7 @@ import java.util.Objects;
 import java.util.concurrent.CompletableFuture;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.atomic.AtomicInteger;
 
 import org.apache.arrow.flight.ArrowMessage.HeaderType;
 import org.apache.arrow.flight.grpc.StatusUtils;
@@ -56,9 +57,17 @@ import io.grpc.stub.StreamObserver;
  */
 public class FlightStream implements AutoCloseable {
   // Use AutoCloseable sentinel objects to simplify logic in #close
-  private final AutoCloseable DONE = () -> {
+  private final AutoCloseable DONE = new AutoCloseable() {
+    @Override
+    public void close() throws Exception {
+
+    }
   };
-  private final AutoCloseable DONE_EX = () -> {
+  private final AutoCloseable DONE_EX = new AutoCloseable() {
+    @Override
+    public void close() throws Exception {
+
+    }
   };
 
   private final BufferAllocator allocator;
@@ -76,7 +85,7 @@ public class FlightStream implements AutoCloseable {
   // we don't block forever trying to write to a server that has rejected a call.
   final CompletableFuture<Void> cancelled;
 
-  private volatile int pending = 1;
+  private final AtomicInteger pending = new AtomicInteger();
   private volatile VectorSchemaRoot fulfilledRoot;
   private DictionaryProvider.MapDictionaryProvider dictionaries;
   private volatile VectorLoader loader;
@@ -169,6 +178,7 @@ public class FlightStream implements AutoCloseable {
    *
    * <p>If the stream isn't complete and is cancellable, this method will cancel and drain the stream first.
    */
+  @Override
   public void close() throws Exception {
     final List<AutoCloseable> closeables = new ArrayList<>();
     Throwable suppressor = null;
@@ -227,7 +237,7 @@ public class FlightStream implements AutoCloseable {
         return false;
       }
 
-      pending--;
+      pending.decrementAndGet();
       requestOutstanding();
 
       Object data = queue.take();
@@ -359,9 +369,9 @@ public class FlightStream implements AutoCloseable {
   }
 
   private synchronized void requestOutstanding() {
-    if (pending < pendingTarget) {
-      requestor.request(pendingTarget - pending);
-      pending = pendingTarget;
+    if (pending.get() < pendingTarget) {
+      requestor.request(pendingTarget - pending.get());
+      pending.set(pendingTarget);
     }
   }
 
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/Location.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/Location.java
index 9dba773bf3..fe192aa0c3 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/Location.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/Location.java
@@ -71,7 +71,7 @@ public class Location {
       case LocationSchemes.GRPC_DOMAIN_SOCKET: {
         try {
           // This dependency is not available on non-Unix platforms.
-          return (SocketAddress) Class.forName("io.netty.channel.unix.DomainSocketAddress")
+          return Class.forName("io.netty.channel.unix.DomainSocketAddress").asSubclass(SocketAddress.class)
               .getConstructor(String.class)
               .newInstance(uri.getPath());
         } catch (InstantiationException | ClassNotFoundException | InvocationTargetException |
@@ -144,7 +144,7 @@ public class Location {
     if (this == o) {
       return true;
     }
-    if (o == null || getClass() != o.getClass()) {
+    if (!(o instanceof Location)) {
       return false;
     }
     Location location = (Location) o;
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/PollInfo.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/PollInfo.java
index 2bb3c6db69..59150d8814 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/PollInfo.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/PollInfo.java
@@ -27,6 +27,7 @@ import java.util.Optional;
 import org.apache.arrow.flight.impl.Flight;
 
 import com.google.protobuf.Timestamp;
+import com.google.protobuf.util.Timestamps;
 
 /**
  * A POJO representation of the execution of a long-running query.
@@ -57,7 +58,7 @@ public class PollInfo {
     this.flightDescriptor = flt.hasFlightDescriptor() ? new FlightDescriptor(flt.getFlightDescriptor()) : null;
     this.progress = flt.hasProgress() ? flt.getProgress() : null;
     this.expirationTime = flt.hasExpirationTime() ?
-        Instant.ofEpochSecond(flt.getExpirationTime().getSeconds(), flt.getExpirationTime().getNanos()) :
+        Instant.ofEpochSecond(flt.getExpirationTime().getSeconds(), Timestamps.toNanos(flt.getExpirationTime())) :
         null;
   }
 
@@ -133,7 +134,8 @@ public class PollInfo {
     if (this == o) {
       return true;
     }
-    if (o == null || getClass() != o.getClass()) {
+
+    if (!(o instanceof PollInfo)) {
       return false;
     }
     PollInfo pollInfo = (PollInfo) o;
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/Ticket.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/Ticket.java
index a93cd08790..eb2f4af70d 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/Ticket.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/Ticket.java
@@ -88,7 +88,7 @@ public class Ticket {
     if (obj == null) {
       return false;
     }
-    if (getClass() != obj.getClass()) {
+    if (!(obj instanceof Ticket)) {
       return false;
     }
     Ticket other = (Ticket) obj;
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/auth/AuthConstants.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/auth/AuthConstants.java
index ac55872e5b..e3ccdc626d 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/auth/AuthConstants.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/auth/AuthConstants.java
@@ -20,8 +20,8 @@ package org.apache.arrow.flight.auth;
 import org.apache.arrow.flight.FlightConstants;
 
 import io.grpc.Context;
+import io.grpc.Metadata;
 import io.grpc.Metadata.BinaryMarshaller;
-import io.grpc.Metadata.Key;
 import io.grpc.MethodDescriptor;
 
 /**
@@ -32,7 +32,7 @@ public final class AuthConstants {
   public static final String HANDSHAKE_DESCRIPTOR_NAME = MethodDescriptor
       .generateFullMethodName(FlightConstants.SERVICE, "Handshake");
   public static final String TOKEN_NAME = "Auth-Token-bin";
-  public static final Key<byte[]> TOKEN_KEY = Key.of(TOKEN_NAME, new BinaryMarshaller<byte[]>() {
+  public static final Metadata.Key<byte[]> TOKEN_KEY = Metadata.Key.of(TOKEN_NAME, new BinaryMarshaller<byte[]>() {
 
     @Override
     public byte[] toBytes(byte[] value) {
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/auth2/BearerTokenAuthenticator.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/auth2/BearerTokenAuthenticator.java
index 2006e0a2b1..5eb5863e79 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/auth2/BearerTokenAuthenticator.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/auth2/BearerTokenAuthenticator.java
@@ -55,7 +55,6 @@ public abstract class BearerTokenAuthenticator implements CallHeaderAuthenticato
    * Validate the bearer token.
    * @param bearerToken The bearer token to validate.
    * @return A successful AuthResult if validation succeeded.
-   * @throws Exception If the token validation fails.
    */
   protected abstract AuthResult validateBearer(String bearerToken);
 
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/ClientInterceptorAdapter.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/ClientInterceptorAdapter.java
index ae11e52605..db27aa481e 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/ClientInterceptorAdapter.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/ClientInterceptorAdapter.java
@@ -23,7 +23,6 @@ import java.util.List;
 import org.apache.arrow.flight.CallInfo;
 import org.apache.arrow.flight.CallStatus;
 import org.apache.arrow.flight.FlightClientMiddleware;
-import org.apache.arrow.flight.FlightClientMiddleware.Factory;
 import org.apache.arrow.flight.FlightMethod;
 import org.apache.arrow.flight.FlightRuntimeException;
 import org.apache.arrow.flight.FlightStatusCode;
@@ -46,9 +45,9 @@ import io.grpc.StatusRuntimeException;
  */
 public class ClientInterceptorAdapter implements ClientInterceptor {
 
-  private final List<Factory> factories;
+  private final List<FlightClientMiddleware.Factory> factories;
 
-  public ClientInterceptorAdapter(List<Factory> factories) {
+  public ClientInterceptorAdapter(List<FlightClientMiddleware.Factory> factories) {
     this.factories = factories;
   }
 
@@ -59,7 +58,7 @@ public class ClientInterceptorAdapter implements ClientInterceptor {
     final CallInfo info = new CallInfo(FlightMethod.fromProtocol(method.getFullMethodName()));
 
     try {
-      for (final Factory factory : factories) {
+      for (final FlightClientMiddleware.Factory factory : factories) {
         middleware.add(factory.onCallStarted(info));
       }
     } catch (FlightRuntimeException e) {
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/MetadataAdapter.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/MetadataAdapter.java
index 4327f0ca85..25e4fb0197 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/MetadataAdapter.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/MetadataAdapter.java
@@ -17,6 +17,7 @@
 
 package org.apache.arrow.flight.grpc;
 
+import java.nio.charset.StandardCharsets;
 import java.util.HashSet;
 import java.util.Set;
 import java.util.stream.Collectors;
@@ -42,26 +43,26 @@ public class MetadataAdapter implements CallHeaders {
 
   @Override
   public String get(String key) {
-    return this.metadata.get(Key.of(key, Metadata.ASCII_STRING_MARSHALLER));
+    return this.metadata.get(Metadata.Key.of(key, Metadata.ASCII_STRING_MARSHALLER));
   }
 
   @Override
   public byte[] getByte(String key) {
     if (key.endsWith(Metadata.BINARY_HEADER_SUFFIX)) {
-      return this.metadata.get(Key.of(key, Metadata.BINARY_BYTE_MARSHALLER));
+      return this.metadata.get(Metadata.Key.of(key, Metadata.BINARY_BYTE_MARSHALLER));
     }
-    return get(key).getBytes();
+    return get(key).getBytes(StandardCharsets.UTF_8);
   }
 
   @Override
   public Iterable<String> getAll(String key) {
-    return this.metadata.getAll(Key.of(key, Metadata.ASCII_STRING_MARSHALLER));
+    return this.metadata.getAll(Metadata.Key.of(key, Metadata.ASCII_STRING_MARSHALLER));
   }
 
   @Override
   public Iterable<byte[]> getAllByte(String key) {
     if (key.endsWith(Metadata.BINARY_HEADER_SUFFIX)) {
-      return this.metadata.getAll(Key.of(key, Metadata.BINARY_BYTE_MARSHALLER));
+      return this.metadata.getAll(Metadata.Key.of(key, Metadata.BINARY_BYTE_MARSHALLER));
     }
     return StreamSupport.stream(getAll(key).spliterator(), false)
         .map(String::getBytes).collect(Collectors.toList());
@@ -69,12 +70,12 @@ public class MetadataAdapter implements CallHeaders {
 
   @Override
   public void insert(String key, String value) {
-    this.metadata.put(Key.of(key, Metadata.ASCII_STRING_MARSHALLER), value);
+    this.metadata.put(Metadata.Key.of(key, Metadata.ASCII_STRING_MARSHALLER), value);
   }
 
   @Override
   public void insert(String key, byte[] value) {
-    this.metadata.put(Key.of(key, Metadata.BINARY_BYTE_MARSHALLER), value);
+    this.metadata.put(Metadata.Key.of(key, Metadata.BINARY_BYTE_MARSHALLER), value);
   }
 
   @Override
@@ -85,13 +86,14 @@ public class MetadataAdapter implements CallHeaders {
   @Override
   public boolean containsKey(String key) {
     if (key.endsWith("-bin")) {
-      final Key<?> grpcKey = Key.of(key, Metadata.BINARY_BYTE_MARSHALLER);
+      final Metadata.Key<?> grpcKey = Metadata.Key.of(key, Metadata.BINARY_BYTE_MARSHALLER);
       return this.metadata.containsKey(grpcKey);
     }
-    final Key<?> grpcKey = Key.of(key, Metadata.ASCII_STRING_MARSHALLER);
+    final Metadata.Key<?> grpcKey = Metadata.Key.of(key, Metadata.ASCII_STRING_MARSHALLER);
     return this.metadata.containsKey(grpcKey);
   }
 
+  @Override
   public String toString() {
     return this.metadata.toString();
   }
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/ServerInterceptorAdapter.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/ServerInterceptorAdapter.java
index 9b038b9d49..70c667df56 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/ServerInterceptorAdapter.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/ServerInterceptorAdapter.java
@@ -61,7 +61,7 @@ public class ServerInterceptorAdapter implements ServerInterceptor {
     private final FlightServerMiddleware.Key<T> key;
     private final FlightServerMiddleware.Factory<T> factory;
 
-    public KeyFactory(Key<T> key, Factory<T> factory) {
+    public KeyFactory(FlightServerMiddleware.Key<T> key, FlightServerMiddleware.Factory<T> factory) {
       this.key = key;
       this.factory = factory;
     }
diff --git a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/StatusUtils.java b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/StatusUtils.java
index 55e8418642..7f0dcf2da3 100644
--- a/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/StatusUtils.java
+++ b/java/flight/flight-core/src/main/java/org/apache/arrow/flight/grpc/StatusUtils.java
@@ -17,6 +17,7 @@
 
 package org.apache.arrow.flight.grpc;
 
+import java.nio.charset.StandardCharsets;
 import java.util.Iterator;
 import java.util.Objects;
 import java.util.function.Function;
@@ -171,7 +172,7 @@ public class StatusUtils {
       if (key.endsWith(Metadata.BINARY_HEADER_SUFFIX)) {
         metadata.insert(key, trailers.get(keyOfBinary(key)));
       } else {
-        metadata.insert(key, Objects.requireNonNull(trailers.get(keyOfAscii(key))).getBytes());
+        metadata.insert(key, Objects.requireNonNull(trailers.get(keyOfAscii(key))).getBytes(StandardCharsets.UTF_8));
       }
     }
     return metadata;
diff --git a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/FlightTestUtil.java b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/FlightTestUtil.java
index 11510dbd32..393fa08677 100644
--- a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/FlightTestUtil.java
+++ b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/FlightTestUtil.java
@@ -23,7 +23,6 @@ import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.Arrays;
 import java.util.List;
-import java.util.Random;
 
 import org.apache.arrow.vector.test.util.ArrowTestDataUtil;
 import org.junit.jupiter.api.Assertions;
@@ -34,8 +33,6 @@ import org.junit.jupiter.api.function.Executable;
  */
 public class FlightTestUtil {
 
-  private static final Random RANDOM = new Random();
-
   public static final String LOCALHOST = "localhost";
 
   static Path getFlightTestDataRoot() {
diff --git a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestApplicationMetadata.java b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestApplicationMetadata.java
index 07db301309..77c039afd8 100644
--- a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestApplicationMetadata.java
+++ b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestApplicationMetadata.java
@@ -20,6 +20,7 @@ package org.apache.arrow.flight;
 import static org.apache.arrow.flight.FlightTestUtil.LOCALHOST;
 import static org.apache.arrow.flight.Location.forGrpcInsecure;
 
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.concurrent.ExecutionException;
@@ -45,7 +46,7 @@ import org.junit.jupiter.api.Test;
 public class TestApplicationMetadata {
 
   // The command used to trigger the test for ARROW-6136.
-  private static final byte[] COMMAND_ARROW_6136 = "ARROW-6136".getBytes();
+  private static final byte[] COMMAND_ARROW_6136 = "ARROW-6136".getBytes(StandardCharsets.UTF_8);
   // The expected error message.
   private static final String MESSAGE_ARROW_6136 = "The stream should not be double-closed.";
 
diff --git a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestBackPressure.java b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestBackPressure.java
index 7586d50c8e..596debcf89 100644
--- a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestBackPressure.java
+++ b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestBackPressure.java
@@ -22,6 +22,7 @@ import static org.apache.arrow.flight.Location.forGrpcInsecure;
 
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
 import java.util.concurrent.atomic.AtomicLong;
 import java.util.function.Function;
 
@@ -153,7 +154,7 @@ public class TestBackPressure {
             loadData.run();
           } else {
             final ExecutorService service = Executors.newSingleThreadExecutor();
-            service.submit(loadData);
+            Future<?> unused = service.submit(loadData);
             service.shutdown();
           }
         }
@@ -237,7 +238,8 @@ public class TestBackPressure {
         try {
           Thread.sleep(1);
           sleepTime.addAndGet(1L);
-        } catch (InterruptedException ignore) {
+        } catch (InterruptedException expected) {
+          // it is expected and no action needed
         }
       }
       return WaitResult.READY;
diff --git a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestBasicOperation.java b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestBasicOperation.java
index 41b3a4693e..ae520ee9b9 100644
--- a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestBasicOperation.java
+++ b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestBasicOperation.java
@@ -17,6 +17,7 @@
 
 package org.apache.arrow.flight;
 
+
 import static org.apache.arrow.flight.FlightTestUtil.LOCALHOST;
 import static org.apache.arrow.flight.Location.forGrpcInsecure;
 
@@ -114,11 +115,11 @@ public class TestBasicOperation {
         Field.nullable("b", new ArrowType.FixedSizeBinary(32))
     ), metadata);
     final FlightInfo info1 = FlightInfo.builder(schema, FlightDescriptor.path(), Collections.emptyList())
-            .setAppMetadata("foo".getBytes()).build();
+            .setAppMetadata("foo".getBytes(StandardCharsets.UTF_8)).build();
     final FlightInfo info2 = new FlightInfo(schema, FlightDescriptor.command(new byte[2]),
         Collections.singletonList(
                 FlightEndpoint.builder(new Ticket(new byte[10]), Location.forGrpcDomainSocket("/tmp/test.sock"))
-                        .setAppMetadata("bar".getBytes()).build()
+                        .setAppMetadata("bar".getBytes(StandardCharsets.UTF_8)).build()
         ), 200, 500);
     final FlightInfo info3 = new FlightInfo(schema, FlightDescriptor.path("a", "b"),
         Arrays.asList(new FlightEndpoint(
@@ -160,7 +161,7 @@ public class TestBasicOperation {
   public void getDescriptors() throws Exception {
     test(c -> {
       int count = 0;
-      for (FlightInfo i : c.listFlights(Criteria.ALL)) {
+      for (FlightInfo unused : c.listFlights(Criteria.ALL)) {
         count += 1;
       }
       Assertions.assertEquals(1, count);
@@ -171,7 +172,8 @@ public class TestBasicOperation {
   public void getDescriptorsWithCriteria() throws Exception {
     test(c -> {
       int count = 0;
-      for (FlightInfo i : c.listFlights(new Criteria(new byte[]{1}))) {
+      for (FlightInfo unused : c.listFlights(new Criteria(new byte[]{1}))) {
+
         count += 1;
       }
       Assertions.assertEquals(0, count);
diff --git a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestCallOptions.java b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestCallOptions.java
index 8b1a897467..41df36c863 100644
--- a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestCallOptions.java
+++ b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestCallOptions.java
@@ -21,6 +21,7 @@ import static org.apache.arrow.flight.FlightTestUtil.LOCALHOST;
 import static org.apache.arrow.flight.Location.forGrpcInsecure;
 
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.time.Duration;
 import java.time.Instant;
 import java.util.Iterator;
@@ -87,8 +88,8 @@ public class TestCallOptions {
   @Test
   public void binaryProperties() {
     final FlightCallHeaders headers = new FlightCallHeaders();
-    headers.insert("key-bin", "value".getBytes());
-    headers.insert("key3-bin", "ëfßæ".getBytes());
+    headers.insert("key-bin", "value".getBytes(StandardCharsets.UTF_8));
+    headers.insert("key3-bin", "ëfßæ".getBytes(StandardCharsets.UTF_8));
     testHeaders(headers);
   }
 
@@ -96,7 +97,7 @@ public class TestCallOptions {
   public void mixedProperties() {
     final FlightCallHeaders headers = new FlightCallHeaders();
     headers.insert("key", "value");
-    headers.insert("key3-bin", "ëfßæ".getBytes());
+    headers.insert("key3-bin", "ëfßæ".getBytes(StandardCharsets.UTF_8));
     testHeaders(headers);
   }
 
diff --git a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestDictionaryUtils.java b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestDictionaryUtils.java
index b3a716ab3c..40930131e0 100644
--- a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestDictionaryUtils.java
+++ b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestDictionaryUtils.java
@@ -18,7 +18,8 @@
 package org.apache.arrow.flight;
 
 import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertTrue;
+import static org.junit.jupiter.api.Assertions.assertNotSame;
+import static org.junit.jupiter.api.Assertions.assertSame;
 
 import java.util.TreeSet;
 
@@ -54,7 +55,7 @@ public class TestDictionaryUtils {
     Schema newSchema = DictionaryUtils.generateSchema(schema, null, new TreeSet<>());
 
     // assert that no new schema is created.
-    assertTrue(schema == newSchema);
+    assertSame(schema, newSchema);
   }
 
   @Test
@@ -78,7 +79,7 @@ public class TestDictionaryUtils {
       Schema newSchema = DictionaryUtils.generateSchema(schema, dictProvider, dictionaryUsed);
 
       // assert that a new schema is created.
-      assertTrue(schema != newSchema);
+      assertNotSame(schema, newSchema);
 
       // assert the column is converted as expected
       ArrowType newColType = newSchema.getFields().get(0).getType();
diff --git a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestDoExchange.java b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestDoExchange.java
index f9db9bfd23..b70353df8e 100644
--- a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestDoExchange.java
+++ b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestDoExchange.java
@@ -476,7 +476,7 @@ public class TestDoExchange {
     }
 
     /** Emulate DoGet. */
-    private void doGet(CallContext context, FlightStream reader, ServerStreamListener writer) {
+    private void doGet(CallContext unusedContext, FlightStream unusedReader, ServerStreamListener writer) {
       try (VectorSchemaRoot root = VectorSchemaRoot.create(SCHEMA, allocator)) {
         writer.start(root);
         root.allocateNew();
@@ -493,7 +493,7 @@ public class TestDoExchange {
     }
 
     /** Emulate DoPut. */
-    private void doPut(CallContext context, FlightStream reader, ServerStreamListener writer) {
+    private void doPut(CallContext unusedContext, FlightStream reader, ServerStreamListener writer) {
       int counter = 0;
       while (reader.next()) {
         if (!reader.hasRoot()) {
@@ -510,7 +510,7 @@ public class TestDoExchange {
     }
 
     /** Exchange metadata without ever exchanging data. */
-    private void metadataOnly(CallContext context, FlightStream reader, ServerStreamListener writer) {
+    private void metadataOnly(CallContext unusedContext, FlightStream reader, ServerStreamListener writer) {
       final ArrowBuf buf = allocator.buffer(4);
       buf.writeInt(42);
       writer.putMetadata(buf);
@@ -522,7 +522,7 @@ public class TestDoExchange {
     }
 
     /** Echo the client's response back to it. */
-    private void echo(CallContext context, FlightStream reader, ServerStreamListener writer) {
+    private void echo(CallContext unusedContext, FlightStream reader, ServerStreamListener writer) {
       VectorSchemaRoot root = null;
       VectorLoader loader = null;
       while (reader.next()) {
@@ -555,7 +555,7 @@ public class TestDoExchange {
     }
 
     /** Accept a set of messages, then return some result. */
-    private void transform(CallContext context, FlightStream reader, ServerStreamListener writer) {
+    private void transform(CallContext unusedContext, FlightStream reader, ServerStreamListener writer) {
       final Schema schema = reader.getSchema();
       for (final Field field : schema.getFields()) {
         if (!(field.getType() instanceof ArrowType.Int)) {
@@ -597,11 +597,11 @@ public class TestDoExchange {
     }
 
     /** Immediately cancel the call. */
-    private void cancel(CallContext context, FlightStream reader, ServerStreamListener writer) {
+    private void cancel(CallContext unusedContext, FlightStream unusedReader, ServerStreamListener writer) {
       writer.error(CallStatus.CANCELLED.withDescription("expected").toRuntimeException());
     }
 
-    private void error(CallContext context, FlightStream reader, ServerStreamListener writer) {
+    private void error(CallContext unusedContext, FlightStream reader, ServerStreamListener writer) {
       VectorSchemaRoot root = null;
       VectorLoader loader = null;
       while (reader.next()) {
diff --git a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestErrorMetadata.java b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestErrorMetadata.java
index 1987d98196..4ec7301466 100644
--- a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestErrorMetadata.java
+++ b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestErrorMetadata.java
@@ -20,6 +20,8 @@ package org.apache.arrow.flight;
 import static org.apache.arrow.flight.FlightTestUtil.LOCALHOST;
 import static org.apache.arrow.flight.Location.forGrpcInsecure;
 
+import java.nio.charset.StandardCharsets;
+
 import org.apache.arrow.flight.perf.impl.PerfOuterClass;
 import org.apache.arrow.memory.BufferAllocator;
 import org.apache.arrow.memory.RootAllocator;
@@ -53,7 +55,7 @@ public class TestErrorMetadata {
              .start();
          final FlightClient client = FlightClient.builder(allocator, s.getLocation()).build()) {
       final CallStatus flightStatus = FlightTestUtil.assertCode(FlightStatusCode.CANCELLED, () -> {
-        FlightStream stream = client.getStream(new Ticket("abs".getBytes()));
+        FlightStream stream = client.getStream(new Ticket("abs".getBytes(StandardCharsets.UTF_8)));
         stream.next();
       });
       PerfOuterClass.Perf newPerf = null;
diff --git a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestFlightGrpcUtils.java b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestFlightGrpcUtils.java
index 9010f2d4a9..2569d2ac2b 100644
--- a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestFlightGrpcUtils.java
+++ b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestFlightGrpcUtils.java
@@ -176,7 +176,7 @@ public class TestFlightGrpcUtils {
   /**
    * Private class used for testing purposes that overrides service behavior.
    */
-  private class TestServiceAdapter extends TestServiceGrpc.TestServiceImplBase {
+  private static class TestServiceAdapter extends TestServiceGrpc.TestServiceImplBase {
 
     /**
      * gRPC service that receives an empty object & returns and empty protobuf object.
diff --git a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestFlightService.java b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestFlightService.java
index 0e4669f29c..de1b7750da 100644
--- a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestFlightService.java
+++ b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestFlightService.java
@@ -21,6 +21,7 @@ import static org.apache.arrow.flight.FlightTestUtil.LOCALHOST;
 import static org.apache.arrow.flight.Location.forGrpcInsecure;
 import static org.junit.jupiter.api.Assertions.fail;
 
+import java.nio.charset.StandardCharsets;
 import java.util.Collections;
 import java.util.Optional;
 
@@ -139,7 +140,7 @@ public class TestFlightService {
       public FlightInfo getFlightInfo(CallContext context,
               FlightDescriptor descriptor) {
         return new FlightInfo(null, descriptor, Collections.emptyList(),
-                0, 0, false, IpcOption.DEFAULT, "foo".getBytes());
+                0, 0, false, IpcOption.DEFAULT, "foo".getBytes(StandardCharsets.UTF_8));
       }
     };
 
@@ -149,7 +150,7 @@ public class TestFlightService {
       FlightInfo flightInfo = client.getInfo(FlightDescriptor.path("test"));
       Assertions.assertEquals(Optional.empty(), flightInfo.getSchemaOptional());
       Assertions.assertEquals(new Schema(Collections.emptyList()), flightInfo.getSchema());
-      Assertions.assertArrayEquals(flightInfo.getAppMetadata(), "foo".getBytes());
+      Assertions.assertArrayEquals(flightInfo.getAppMetadata(), "foo".getBytes(StandardCharsets.UTF_8));
 
       Exception e = Assertions.assertThrows(
           FlightRuntimeException.class,
diff --git a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestLargeMessage.java b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestLargeMessage.java
index 1feb6afcf8..430dc29a7d 100644
--- a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestLargeMessage.java
+++ b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestLargeMessage.java
@@ -17,6 +17,7 @@
 
 package org.apache.arrow.flight;
 
+import static com.google.common.collect.ImmutableList.toImmutableList;
 import static org.apache.arrow.flight.FlightTestUtil.LOCALHOST;
 import static org.apache.arrow.flight.Location.forGrpcInsecure;
 
@@ -89,7 +90,7 @@ public class TestLargeMessage {
     final Stream<Field> fields = fieldNames
         .stream()
         .map(fieldName -> new Field(fieldName, FieldType.nullable(new ArrowType.Int(32, true)), null));
-    final Schema schema = new Schema(fields::iterator, null);
+    final Schema schema = new Schema(fields.collect(toImmutableList()), null);
 
     final VectorSchemaRoot root = VectorSchemaRoot.create(schema, allocator);
     root.allocateNew();
diff --git a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestServerMiddleware.java b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestServerMiddleware.java
index 0e19468d2b..3bc8f2f90a 100644
--- a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestServerMiddleware.java
+++ b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestServerMiddleware.java
@@ -38,15 +38,13 @@ import org.junit.jupiter.api.Test;
 
 public class TestServerMiddleware {
 
-  private static final RuntimeException EXPECTED_EXCEPTION = new RuntimeException("test");
-
   /**
    * Make sure errors in DoPut are intercepted.
    */
   @Test
   public void doPutErrors() {
     test(
-        new ErrorProducer(EXPECTED_EXCEPTION),
+        new ErrorProducer(new RuntimeException("test")),
         (allocator, client) -> {
           final FlightDescriptor descriptor = FlightDescriptor.path("test");
           try (final VectorSchemaRoot root = VectorSchemaRoot.create(new Schema(Collections.emptyList()), allocator)) {
@@ -91,7 +89,7 @@ public class TestServerMiddleware {
    */
   @Test
   public void doPutUncaught() {
-    test(new ServerErrorProducer(EXPECTED_EXCEPTION),
+    test(new ServerErrorProducer(new RuntimeException("test")),
         (allocator, client) -> {
           final FlightDescriptor descriptor = FlightDescriptor.path("test");
           try (final VectorSchemaRoot root = VectorSchemaRoot.create(new Schema(Collections.emptyList()), allocator)) {
@@ -106,13 +104,13 @@ public class TestServerMiddleware {
           Assertions.assertEquals(FlightStatusCode.OK, status.code());
           Assertions.assertNull(status.cause());
           Assertions.assertNotNull(err);
-          Assertions.assertEquals(EXPECTED_EXCEPTION.getMessage(), err.getMessage());
+          Assertions.assertEquals("test", err.getMessage());
         });
   }
 
   @Test
   public void listFlightsUncaught() {
-    test(new ServerErrorProducer(EXPECTED_EXCEPTION),
+    test(new ServerErrorProducer(new RuntimeException("test")),
         (allocator, client) -> client.listFlights(new Criteria(new byte[0])).forEach((action) -> {
         }), (recorder) -> {
           final CallStatus status = recorder.statusFuture.get();
@@ -121,13 +119,13 @@ public class TestServerMiddleware {
           Assertions.assertEquals(FlightStatusCode.OK, status.code());
           Assertions.assertNull(status.cause());
           Assertions.assertNotNull(err);
-          Assertions.assertEquals(EXPECTED_EXCEPTION.getMessage(), err.getMessage());
+          Assertions.assertEquals("test", err.getMessage());
         });
   }
 
   @Test
   public void doActionUncaught() {
-    test(new ServerErrorProducer(EXPECTED_EXCEPTION),
+    test(new ServerErrorProducer(new RuntimeException("test")),
         (allocator, client) -> client.doAction(new Action("test")).forEachRemaining(result -> {
         }), (recorder) -> {
           final CallStatus status = recorder.statusFuture.get();
@@ -136,13 +134,13 @@ public class TestServerMiddleware {
           Assertions.assertEquals(FlightStatusCode.OK, status.code());
           Assertions.assertNull(status.cause());
           Assertions.assertNotNull(err);
-          Assertions.assertEquals(EXPECTED_EXCEPTION.getMessage(), err.getMessage());
+          Assertions.assertEquals("test", err.getMessage());
         });
   }
 
   @Test
   public void listActionsUncaught() {
-    test(new ServerErrorProducer(EXPECTED_EXCEPTION),
+    test(new ServerErrorProducer(new RuntimeException("test")),
         (allocator, client) -> client.listActions().forEach(result -> {
         }), (recorder) -> {
           final CallStatus status = recorder.statusFuture.get();
@@ -151,13 +149,13 @@ public class TestServerMiddleware {
           Assertions.assertEquals(FlightStatusCode.OK, status.code());
           Assertions.assertNull(status.cause());
           Assertions.assertNotNull(err);
-          Assertions.assertEquals(EXPECTED_EXCEPTION.getMessage(), err.getMessage());
+          Assertions.assertEquals("test", err.getMessage());
         });
   }
 
   @Test
   public void getFlightInfoUncaught() {
-    test(new ServerErrorProducer(EXPECTED_EXCEPTION),
+    test(new ServerErrorProducer(new RuntimeException("test")),
         (allocator, client) -> {
           FlightTestUtil.assertCode(FlightStatusCode.INTERNAL, () -> client.getInfo(FlightDescriptor.path("test")));
         }, (recorder) -> {
@@ -165,13 +163,13 @@ public class TestServerMiddleware {
           Assertions.assertNotNull(status);
           Assertions.assertEquals(FlightStatusCode.INTERNAL, status.code());
           Assertions.assertNotNull(status.cause());
-          Assertions.assertEquals(EXPECTED_EXCEPTION.getMessage(), status.cause().getMessage());
+          Assertions.assertEquals(new RuntimeException("test").getMessage(), status.cause().getMessage());
         });
   }
 
   @Test
   public void doGetUncaught() {
-    test(new ServerErrorProducer(EXPECTED_EXCEPTION),
+    test(new ServerErrorProducer(new RuntimeException("test")),
         (allocator, client) -> {
           try (final FlightStream stream = client.getStream(new Ticket(new byte[0]))) {
             while (stream.next()) {
@@ -186,7 +184,7 @@ public class TestServerMiddleware {
           Assertions.assertEquals(FlightStatusCode.OK, status.code());
           Assertions.assertNull(status.cause());
           Assertions.assertNotNull(err);
-          Assertions.assertEquals(EXPECTED_EXCEPTION.getMessage(), err.getMessage());
+          Assertions.assertEquals("test", err.getMessage());
         });
   }
 
@@ -305,7 +303,7 @@ public class TestServerMiddleware {
     final FlightServerMiddleware.Key<T> key;
     final FlightServerMiddleware.Factory<T> factory;
 
-    ServerMiddlewarePair(Key<T> key, Factory<T> factory) {
+    ServerMiddlewarePair(FlightServerMiddleware.Key<T> key, FlightServerMiddleware.Factory<T> factory) {
       this.key = key;
       this.factory = factory;
     }
@@ -339,7 +337,7 @@ public class TestServerMiddleware {
       ErrorConsumer<ErrorRecorder> verify) {
     final ErrorRecorder.Factory factory = new ErrorRecorder.Factory();
     final List<ServerMiddlewarePair<ErrorRecorder>> middleware = Collections
-        .singletonList(new ServerMiddlewarePair<>(Key.of("m"), factory));
+        .singletonList(new ServerMiddlewarePair<>(FlightServerMiddleware.Key.of("m"), factory));
     test(producer, middleware, (allocator, client) -> {
       body.accept(allocator, client);
       try {
diff --git a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestTls.java b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestTls.java
index 0f6697a8e5..75bc5f6e61 100644
--- a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestTls.java
+++ b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/TestTls.java
@@ -27,7 +27,6 @@ import java.nio.charset.StandardCharsets;
 import java.util.Iterator;
 import java.util.function.Consumer;
 
-import org.apache.arrow.flight.FlightClient.Builder;
 import org.apache.arrow.memory.BufferAllocator;
 import org.apache.arrow.memory.RootAllocator;
 import org.junit.jupiter.api.Assertions;
@@ -105,7 +104,7 @@ public class TestTls {
     });
   }
 
-  void test(Consumer<Builder> testFn) {
+  void test(Consumer<FlightClient.Builder> testFn) {
     final FlightTestUtil.CertKeyPair certKey = FlightTestUtil.exampleTlsCerts().get(0);
     try (
         BufferAllocator a = new RootAllocator(Long.MAX_VALUE);
@@ -113,7 +112,8 @@ public class TestTls {
         FlightServer s = FlightServer.builder(a, forGrpcInsecure(LOCALHOST, 0), producer)
             .useTls(certKey.cert, certKey.key)
             .build().start()) {
-      final Builder builder = FlightClient.builder(a, Location.forGrpcTls(FlightTestUtil.LOCALHOST, s.getPort()));
+      final FlightClient.Builder builder = FlightClient.builder(a, Location.forGrpcTls(FlightTestUtil.LOCALHOST,
+              s.getPort()));
       testFn.accept(builder);
     } catch (InterruptedException | IOException e) {
       throw new RuntimeException(e);
diff --git a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/client/TestCookieHandling.java b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/client/TestCookieHandling.java
index 4b8a11870d..d34a3a2d3a 100644
--- a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/client/TestCookieHandling.java
+++ b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/client/TestCookieHandling.java
@@ -251,6 +251,7 @@ public class TestCookieHandling {
 
   private void startServerAndClient() throws IOException {
     final FlightProducer flightProducer = new NoOpFlightProducer() {
+      @Override
       public void listFlights(CallContext context, Criteria criteria,
                               StreamListener<FlightInfo> listener) {
         listener.onCompleted();
diff --git a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/perf/PerformanceTestServer.java b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/perf/PerformanceTestServer.java
index 0ded2f7065..b1e83ea61e 100644
--- a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/perf/PerformanceTestServer.java
+++ b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/perf/PerformanceTestServer.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
 
 import org.apache.arrow.flight.BackpressureStrategy;
 import org.apache.arrow.flight.FlightDescriptor;
@@ -48,10 +49,7 @@ import com.google.protobuf.InvalidProtocolBufferException;
 
 public class PerformanceTestServer implements AutoCloseable {
 
-  private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(PerformanceTestServer.class);
-
   private final FlightServer flightServer;
-  private final Location location;
   private final BufferAllocator allocator;
   private final PerfProducer producer;
   private final boolean isNonBlocking;
@@ -78,7 +76,6 @@ public class PerformanceTestServer implements AutoCloseable {
   public PerformanceTestServer(BufferAllocator incomingAllocator, Location location, BackpressureStrategy bpStrategy,
                                boolean isNonBlocking) {
     this.allocator = incomingAllocator.newChildAllocator("perf-server", 0, Long.MAX_VALUE);
-    this.location = location;
     this.producer = new PerfProducer(bpStrategy);
     this.flightServer = FlightServer.builder(this.allocator, location, producer).build();
     this.isNonBlocking = isNonBlocking;
@@ -110,16 +107,18 @@ public class PerformanceTestServer implements AutoCloseable {
         ServerStreamListener listener) {
       bpStrategy.register(listener);
       final Runnable loadData = () -> {
-        VectorSchemaRoot root = null;
+        Token token = null;
         try {
-          Token token = Token.parseFrom(ticket.getBytes());
-          Perf perf = token.getDefinition();
-          Schema schema = Schema.deserializeMessage(perf.getSchema().asReadOnlyByteBuffer());
-          root = VectorSchemaRoot.create(schema, allocator);
-          BigIntVector a = (BigIntVector) root.getVector("a");
-          BigIntVector b = (BigIntVector) root.getVector("b");
-          BigIntVector c = (BigIntVector) root.getVector("c");
-          BigIntVector d = (BigIntVector) root.getVector("d");
+          token = Token.parseFrom(ticket.getBytes());
+        } catch (InvalidProtocolBufferException e) {
+          throw new RuntimeException(e);
+        }
+        Perf perf = token.getDefinition();
+        Schema schema = Schema.deserializeMessage(perf.getSchema().asReadOnlyByteBuffer());
+        try (
+            VectorSchemaRoot root = VectorSchemaRoot.create(schema, allocator);
+            BigIntVector a = (BigIntVector) root.getVector("a")
+        ) {
           listener.setUseZeroCopy(true);
           listener.start(root);
           root.allocateNew();
@@ -158,14 +157,6 @@ public class PerformanceTestServer implements AutoCloseable {
             listener.putNext();
           }
           listener.completed();
-        } catch (InvalidProtocolBufferException e) {
-          throw new RuntimeException(e);
-        } finally {
-          try {
-            AutoCloseables.close(root);
-          } catch (Exception e) {
-            throw new RuntimeException(e);
-          }
         }
       };
 
@@ -173,7 +164,7 @@ public class PerformanceTestServer implements AutoCloseable {
         loadData.run();
       } else {
         final ExecutorService service = Executors.newSingleThreadExecutor();
-        service.submit(loadData);
+        Future<?> unused = service.submit(loadData);
         service.shutdown();
       }
     }
diff --git a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/perf/TestPerf.java b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/perf/TestPerf.java
index 17c83c205f..290e82de36 100644
--- a/java/flight/flight-core/src/test/java/org/apache/arrow/flight/perf/TestPerf.java
+++ b/java/flight/flight-core/src/test/java/org/apache/arrow/flight/perf/TestPerf.java
@@ -110,14 +110,14 @@ public class TestPerf {
 
         double seconds = r.nanos * 1.0d / 1000 / 1000 / 1000;
         throughPuts[i] = (r.bytes * 1.0d / 1024 / 1024) / seconds;
-        System.out.println(String.format(
-            "Transferred %d records totaling %s bytes at %f MiB/s. %f record/s. %f batch/s.",
+        System.out.printf(
+                "Transferred %d records totaling %s bytes at %f MiB/s. %f record/s. %f batch/s.%n",
             r.rows,
             r.bytes,
             throughPuts[i],
             (r.rows * 1.0d) / seconds,
             (r.batches * 1.0d) / seconds
-        ));
+        );
       }
     }
     pool.shutdown();
@@ -126,11 +126,11 @@ public class TestPerf {
     double average = Arrays.stream(throughPuts).sum() / numRuns;
     double sqrSum = Arrays.stream(throughPuts).map(val -> val - average).map(val -> val * val).sum();
     double stddev = Math.sqrt(sqrSum / numRuns);
-    System.out.println(String.format("Average throughput: %f MiB/s, standard deviation: %f MiB/s",
-            average, stddev));
+    System.out.printf("Average throughput: %f MiB/s, standard deviation: %f MiB/s%n",
+            average, stddev);
   }
 
-  private final class Consumer implements Callable<Result> {
+  private static final class Consumer implements Callable<Result> {
 
     private final FlightClient client;
     private final Ticket ticket;
@@ -157,7 +157,7 @@ public class TestPerf {
                 aSum += a.get(i);
               }
             }
-            r.bytes += rows * 32;
+            r.bytes += rows * 32L;
             r.rows += rows;
             r.aSum = aSum;
             r.batches++;
@@ -173,7 +173,7 @@ public class TestPerf {
 
   }
 
-  private final class Result {
+  private static final class Result {
     private long rows;
     private long aSum;
     private long bytes;
diff --git a/java/flight/flight-integration-tests/src/main/java/org/apache/arrow/flight/integration/tests/IntegrationTestClient.java b/java/flight/flight-integration-tests/src/main/java/org/apache/arrow/flight/integration/tests/IntegrationTestClient.java
index 2ea9874f3d..64b5882c0f 100644
--- a/java/flight/flight-integration-tests/src/main/java/org/apache/arrow/flight/integration/tests/IntegrationTestClient.java
+++ b/java/flight/flight-integration-tests/src/main/java/org/apache/arrow/flight/integration/tests/IntegrationTestClient.java
@@ -98,14 +98,14 @@ class IntegrationTestClient {
         Scenarios.getScenario(cmd.getOptionValue("scenario")).client(allocator, defaultLocation, client);
       } else {
         final String inputPath = cmd.getOptionValue("j");
-        testStream(allocator, defaultLocation, client, inputPath);
+        testStream(allocator, client, inputPath);
       }
     } catch (InterruptedException e) {
       throw new RuntimeException(e);
     }
   }
 
-  private static void testStream(BufferAllocator allocator, Location server, FlightClient client, String inputPath)
+  private static void testStream(BufferAllocator allocator, FlightClient client, String inputPath)
       throws IOException {
     // 1. Read data from JSON and upload to server.
     FlightDescriptor descriptor = FlightDescriptor.path(inputPath);
diff --git a/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/ArrowFlightJdbcDriver.java b/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/ArrowFlightJdbcDriver.java
index aa1b460fc1..183e3d5c7b 100644
--- a/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/ArrowFlightJdbcDriver.java
+++ b/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/ArrowFlightJdbcDriver.java
@@ -43,6 +43,7 @@ import org.apache.calcite.avatica.DriverVersion;
 import org.apache.calcite.avatica.Meta;
 import org.apache.calcite.avatica.UnregisteredDriver;
 
+
 /**
  * JDBC driver for querying data from an Apache Arrow Flight server.
  */
@@ -99,6 +100,7 @@ public class ArrowFlightJdbcDriver extends UnregisteredDriver {
   }
 
   @Override
+  @SuppressWarnings("StringSplitter")
   protected DriverVersion createDriverVersion() {
     if (version == null) {
       final InputStream flightProperties = this.getClass().getResourceAsStream("/properties/flight.properties");
diff --git a/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/ArrowFlightMetaImpl.java b/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/ArrowFlightMetaImpl.java
index 3827509149..d25f03ac27 100644
--- a/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/ArrowFlightMetaImpl.java
+++ b/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/ArrowFlightMetaImpl.java
@@ -255,11 +255,6 @@ public class ArrowFlightMetaImpl extends MetaImpl {
     public final String connectionId;
     public final int id;
 
-    StatementHandleKey(String connectionId, int id) {
-      this.connectionId = connectionId;
-      this.id = id;
-    }
-
     StatementHandleKey(StatementHandle statementHandle) {
       this.connectionId = statementHandle.connectionId;
       this.id = statementHandle.id;
diff --git a/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/impl/numeric/ArrowFlightJdbcBaseIntVectorAccessor.java b/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/impl/numeric/ArrowFlightJdbcBaseIntVectorAccessor.java
index aea9b75fa6..8d2fe1cc70 100644
--- a/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/impl/numeric/ArrowFlightJdbcBaseIntVectorAccessor.java
+++ b/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/impl/numeric/ArrowFlightJdbcBaseIntVectorAccessor.java
@@ -46,59 +46,57 @@ public class ArrowFlightJdbcBaseIntVectorAccessor extends ArrowFlightJdbcAccesso
 
   private final MinorType type;
   private final boolean isUnsigned;
-  private final int bytesToAllocate;
   private final Getter getter;
   private final NumericHolder holder;
 
   public ArrowFlightJdbcBaseIntVectorAccessor(UInt1Vector vector, IntSupplier currentRowSupplier,
                                               ArrowFlightJdbcAccessorFactory.WasNullConsumer setCursorWasNull) {
-    this(vector, currentRowSupplier, true, UInt1Vector.TYPE_WIDTH, setCursorWasNull);
+    this(vector, currentRowSupplier, true, setCursorWasNull);
   }
 
   public ArrowFlightJdbcBaseIntVectorAccessor(UInt2Vector vector, IntSupplier currentRowSupplier,
                                               ArrowFlightJdbcAccessorFactory.WasNullConsumer setCursorWasNull) {
-    this(vector, currentRowSupplier, true, UInt2Vector.TYPE_WIDTH, setCursorWasNull);
+    this(vector, currentRowSupplier, true, setCursorWasNull);
   }
 
   public ArrowFlightJdbcBaseIntVectorAccessor(UInt4Vector vector, IntSupplier currentRowSupplier,
                                               ArrowFlightJdbcAccessorFactory.WasNullConsumer setCursorWasNull) {
-    this(vector, currentRowSupplier, true, UInt4Vector.TYPE_WIDTH, setCursorWasNull);
+    this(vector, currentRowSupplier, true, setCursorWasNull);
   }
 
   public ArrowFlightJdbcBaseIntVectorAccessor(UInt8Vector vector, IntSupplier currentRowSupplier,
                                               ArrowFlightJdbcAccessorFactory.WasNullConsumer setCursorWasNull) {
-    this(vector, currentRowSupplier, true, UInt8Vector.TYPE_WIDTH, setCursorWasNull);
+    this(vector, currentRowSupplier, true, setCursorWasNull);
   }
 
   public ArrowFlightJdbcBaseIntVectorAccessor(TinyIntVector vector, IntSupplier currentRowSupplier,
                                               ArrowFlightJdbcAccessorFactory.WasNullConsumer setCursorWasNull) {
-    this(vector, currentRowSupplier, false, TinyIntVector.TYPE_WIDTH, setCursorWasNull);
+    this(vector, currentRowSupplier, false, setCursorWasNull);
   }
 
   public ArrowFlightJdbcBaseIntVectorAccessor(SmallIntVector vector, IntSupplier currentRowSupplier,
                                               ArrowFlightJdbcAccessorFactory.WasNullConsumer setCursorWasNull) {
-    this(vector, currentRowSupplier, false, SmallIntVector.TYPE_WIDTH, setCursorWasNull);
+    this(vector, currentRowSupplier, false, setCursorWasNull);
   }
 
   public ArrowFlightJdbcBaseIntVectorAccessor(IntVector vector, IntSupplier currentRowSupplier,
                                               ArrowFlightJdbcAccessorFactory.WasNullConsumer setCursorWasNull) {
-    this(vector, currentRowSupplier, false, IntVector.TYPE_WIDTH, setCursorWasNull);
+    this(vector, currentRowSupplier, false, setCursorWasNull);
   }
 
   public ArrowFlightJdbcBaseIntVectorAccessor(BigIntVector vector, IntSupplier currentRowSupplier,
                                               ArrowFlightJdbcAccessorFactory.WasNullConsumer setCursorWasNull) {
-    this(vector, currentRowSupplier, false, BigIntVector.TYPE_WIDTH, setCursorWasNull);
+    this(vector, currentRowSupplier, false, setCursorWasNull);
   }
 
   private ArrowFlightJdbcBaseIntVectorAccessor(BaseIntVector vector, IntSupplier currentRowSupplier,
-                                               boolean isUnsigned, int bytesToAllocate,
-                                               ArrowFlightJdbcAccessorFactory.WasNullConsumer setCursorWasNull) {
+                                               boolean isUnsigned,
+      ArrowFlightJdbcAccessorFactory.WasNullConsumer setCursorWasNull) {
     super(currentRowSupplier, setCursorWasNull);
     this.type = vector.getMinorType();
     this.holder = new NumericHolder();
     this.getter = createGetter(vector);
     this.isUnsigned = isUnsigned;
-    this.bytesToAllocate = bytesToAllocate;
   }
 
   @Override
diff --git a/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/impl/numeric/ArrowFlightJdbcBitVectorAccessor.java b/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/impl/numeric/ArrowFlightJdbcBitVectorAccessor.java
index f55fd12f9a..67d98c2e69 100644
--- a/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/impl/numeric/ArrowFlightJdbcBitVectorAccessor.java
+++ b/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/accessor/impl/numeric/ArrowFlightJdbcBitVectorAccessor.java
@@ -32,7 +32,6 @@ public class ArrowFlightJdbcBitVectorAccessor extends ArrowFlightJdbcAccessor {
 
   private final BitVector vector;
   private final NullableBitHolder holder;
-  private static final int BYTES_T0_ALLOCATE = 1;
 
   /**
    * Constructor for the BitVectorAccessor.
diff --git a/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/ArrowFlightConnectionConfigImpl.java b/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/ArrowFlightConnectionConfigImpl.java
index 6237a8b58d..e95cf00bc7 100644
--- a/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/ArrowFlightConnectionConfigImpl.java
+++ b/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/ArrowFlightConnectionConfigImpl.java
@@ -33,6 +33,7 @@ import org.apache.calcite.avatica.ConnectionConfig;
 import org.apache.calcite.avatica.ConnectionConfigImpl;
 import org.apache.calcite.avatica.ConnectionProperty;
 
+
 /**
  * A {@link ConnectionConfig} for the {@link ArrowFlightConnection}.
  */
diff --git a/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/ConnectionWrapper.java b/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/ConnectionWrapper.java
index 5ee43ce012..c28071490c 100644
--- a/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/ConnectionWrapper.java
+++ b/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/ConnectionWrapper.java
@@ -248,13 +248,13 @@ public class ConnectionWrapper implements Connection {
   }
 
   @Override
-  public PreparedStatement prepareStatement(final String sqlQuery, final int... columnIndices)
+  public PreparedStatement prepareStatement(final String sqlQuery, final int[] columnIndices)
       throws SQLException {
     return realConnection.prepareStatement(sqlQuery, columnIndices);
   }
 
   @Override
-  public PreparedStatement prepareStatement(final String sqlQuery, final String... columnNames)
+  public PreparedStatement prepareStatement(final String sqlQuery, final String[] columnNames)
       throws SQLException {
     return realConnection.prepareStatement(sqlQuery, columnNames);
   }
@@ -306,12 +306,12 @@ public class ConnectionWrapper implements Connection {
   }
 
   @Override
-  public Array createArrayOf(final String typeName, final Object... elements) throws SQLException {
+  public Array createArrayOf(final String typeName, final Object[] elements) throws SQLException {
     return realConnection.createArrayOf(typeName, elements);
   }
 
   @Override
-  public Struct createStruct(final String typeName, final Object... attributes)
+  public Struct createStruct(final String typeName, final Object[] attributes)
       throws SQLException {
     return realConnection.createStruct(typeName, attributes);
   }
diff --git a/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/ConvertUtils.java b/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/ConvertUtils.java
index b21b03340e..843fe0cb89 100644
--- a/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/ConvertUtils.java
+++ b/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/ConvertUtils.java
@@ -49,7 +49,6 @@ import org.apache.arrow.vector.types.pojo.Field;
 import org.apache.calcite.avatica.AvaticaParameter;
 import org.apache.calcite.avatica.ColumnMetaData;
 import org.apache.calcite.avatica.proto.Common;
-import org.apache.calcite.avatica.proto.Common.ColumnMetaData.Builder;
 
 /**
  * Convert objects between Arrow and Avatica.
@@ -71,7 +70,7 @@ public final class ConvertUtils {
           final Field field = fields.get(index);
           final ArrowType fieldType = field.getType();
 
-          final Builder builder = Common.ColumnMetaData.newBuilder()
+          final Common.ColumnMetaData.Builder builder = Common.ColumnMetaData.newBuilder()
               .setOrdinal(index)
               .setColumnName(field.getName())
               .setLabel(field.getName());
@@ -90,10 +89,10 @@ public final class ConvertUtils {
   /**
    * Set on Column MetaData Builder.
    *
-   * @param builder     {@link Builder}
+   * @param builder     {@link Common.ColumnMetaData.Builder}
    * @param metadataMap {@link Map}
    */
-  public static void setOnColumnMetaDataBuilder(final Builder builder,
+  public static void setOnColumnMetaDataBuilder(final Common.ColumnMetaData.Builder builder,
                                                 final Map<String, String> metadataMap) {
     final FlightSqlColumnMetadata columnMetadata = new FlightSqlColumnMetadata(metadataMap);
     final String catalogName = columnMetadata.getCatalogName();
diff --git a/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/UrlParser.java b/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/UrlParser.java
index e52251f539..64255e2213 100644
--- a/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/UrlParser.java
+++ b/java/flight/flight-sql-jdbc-core/src/main/java/org/apache/arrow/driver/jdbc/utils/UrlParser.java
@@ -21,10 +21,10 @@ import java.io.UnsupportedEncodingException;
 import java.net.URLDecoder;
 import java.util.HashMap;
 import java.util.Map;
-
 /**
  * URL Parser for extracting key values from a connection string.
  */
+
 public final class UrlParser {
   private UrlParser() {
   }
@@ -37,6 +37,7 @@ public final class UrlParser {
    * @param url {@link String}
    * @return {@link Map}
    */
+  @SuppressWarnings("StringSplitter")
   public static Map<String, String> parse(String url, String separator) {
     Map<String, String> resultMap = new HashMap<>();
     if (url != null) {
diff --git a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/ArrowFlightJdbcArrayTest.java b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/ArrowFlightJdbcArrayTest.java
index 90c926612f..76f01514c9 100644
--- a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/ArrowFlightJdbcArrayTest.java
+++ b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/ArrowFlightJdbcArrayTest.java
@@ -140,7 +140,7 @@ public class ArrowFlightJdbcArrayTest {
         Assert.assertEquals((Object) resultSet.getInt(1), dataVector.getObject(count + 3));
         count++;
       }
-      Assert.assertEquals(count, 5);
+      Assert.assertEquals(5, count);
     }
   }
 
diff --git a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/ArrowFlightJdbcDriverTest.java b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/ArrowFlightJdbcDriverTest.java
index 784fd5b292..e1f64c9dd8 100644
--- a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/ArrowFlightJdbcDriverTest.java
+++ b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/ArrowFlightJdbcDriverTest.java
@@ -181,6 +181,8 @@ public class ArrowFlightJdbcDriverTest {
   /**
    * Tests whether an exception is thrown upon attempting to connect to a
    * malformed URI.
+   *
+   * @throws SQLException If an error occurs.
    */
   @Test(expected = SQLException.class)
   public void testShouldThrowExceptionWhenAttemptingToConnectToMalformedUrl() throws SQLException {
@@ -194,7 +196,7 @@ public class ArrowFlightJdbcDriverTest {
    * Tests whether an exception is thrown upon attempting to connect to a
    * malformed URI.
    *
-   * @throws Exception If an error occurs.
+   * @throws SQLException If an error occurs.
    */
   @Test(expected = SQLException.class)
   public void testShouldThrowExceptionWhenAttemptingToConnectToUrlNoPrefix() throws SQLException {
diff --git a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/ConnectionMutualTlsTest.java b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/ConnectionMutualTlsTest.java
index cc44cc57be..03f15d77ad 100644
--- a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/ConnectionMutualTlsTest.java
+++ b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/ConnectionMutualTlsTest.java
@@ -50,8 +50,6 @@ public class ConnectionMutualTlsTest {
   @ClassRule
   public static final FlightServerTestRule FLIGHT_SERVER_TEST_RULE;
   private static final String tlsRootCertsPath;
-
-  private static final String serverMTlsCACertPath;
   private static final String clientMTlsCertPath;
   private static final String badClientMTlsCertPath;
   private static final String clientMTlsKeyPath;
@@ -68,8 +66,6 @@ public class ConnectionMutualTlsTest {
 
     final File serverMTlsCACert = FlightSqlTestCertificates.exampleCACert();
 
-    serverMTlsCACertPath = serverMTlsCACert.getPath();
-
     final FlightSqlTestCertificates.CertKeyPair
         clientMTlsCertKey = FlightSqlTestCertificates.exampleTlsCerts().get(1);
 
diff --git a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/ResultSetTest.java b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/ResultSetTest.java
index 231371a923..0e3e015a04 100644
--- a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/ResultSetTest.java
+++ b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/ResultSetTest.java
@@ -94,10 +94,6 @@ public class ResultSetTest {
     }
   }
 
-  private static void setMaxRowsLimit(int maxRowsLimit, Statement statement) throws SQLException {
-    statement.setLargeMaxRows(maxRowsLimit);
-  }
-
   /**
    * Tests whether the {@link ArrowFlightJdbcDriver} can run a query successfully.
    *
@@ -411,9 +407,9 @@ public class ResultSetTest {
 
       // Construct the data-only nodes first.
       FlightProducer firstProducer = new PartitionedFlightSqlProducer.DataOnlyFlightSqlProducer(
-          new Ticket("first".getBytes()), firstPartition);
+          new Ticket("first".getBytes(StandardCharsets.UTF_8)), firstPartition);
       FlightProducer secondProducer = new PartitionedFlightSqlProducer.DataOnlyFlightSqlProducer(
-          new Ticket("second".getBytes()), secondPartition);
+          new Ticket("second".getBytes(StandardCharsets.UTF_8)), secondPartition);
 
       final FlightServer.Builder firstBuilder = FlightServer.builder(
           allocator, forGrpcInsecure("localhost", 0), firstProducer);
@@ -427,10 +423,10 @@ public class ResultSetTest {
         firstServer.start();
         secondServer.start();
         final FlightEndpoint firstEndpoint =
-            new FlightEndpoint(new Ticket("first".getBytes()), firstServer.getLocation());
+            new FlightEndpoint(new Ticket("first".getBytes(StandardCharsets.UTF_8)), firstServer.getLocation());
 
         final FlightEndpoint secondEndpoint =
-            new FlightEndpoint(new Ticket("second".getBytes()), secondServer.getLocation());
+            new FlightEndpoint(new Ticket("second".getBytes(StandardCharsets.UTF_8)), secondServer.getLocation());
 
         // Finally start the root node.
         try (final PartitionedFlightSqlProducer rootProducer = new PartitionedFlightSqlProducer(
diff --git a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/ArrowFlightJdbcAccessorTest.java b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/ArrowFlightJdbcAccessorTest.java
index 099b012217..a9b5c46e01 100644
--- a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/ArrowFlightJdbcAccessorTest.java
+++ b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/ArrowFlightJdbcAccessorTest.java
@@ -123,7 +123,7 @@ public class ArrowFlightJdbcAccessorTest {
 
     when(accessor.getObject(Boolean.class)).thenCallRealMethod();
 
-    Assert.assertEquals(accessor.getObject(Boolean.class), true);
+    Assert.assertEquals(true, accessor.getObject(Boolean.class));
     verify(accessor).getBoolean();
   }
 
@@ -134,7 +134,7 @@ public class ArrowFlightJdbcAccessorTest {
 
     when(accessor.getObject(BigDecimal.class)).thenCallRealMethod();
 
-    Assert.assertEquals(accessor.getObject(BigDecimal.class), expected);
+    Assert.assertEquals(expected, accessor.getObject(BigDecimal.class));
     verify(accessor).getBigDecimal();
   }
 
@@ -145,7 +145,7 @@ public class ArrowFlightJdbcAccessorTest {
 
     when(accessor.getObject(String.class)).thenCallRealMethod();
 
-    Assert.assertEquals(accessor.getObject(String.class), expected);
+    Assert.assertEquals(expected, accessor.getObject(String.class));
     verify(accessor).getString();
   }
 
@@ -167,7 +167,7 @@ public class ArrowFlightJdbcAccessorTest {
 
     when(accessor.getObject(Object.class)).thenCallRealMethod();
 
-    Assert.assertEquals(accessor.getObject(Object.class), expected);
+    Assert.assertEquals(expected, accessor.getObject(Object.class));
     verify(accessor).getObject();
   }
 
diff --git a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/calendar/ArrowFlightJdbcTimeStampVectorAccessorTest.java b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/calendar/ArrowFlightJdbcTimeStampVectorAccessorTest.java
index 38d842724b..e2c17b2f08 100644
--- a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/calendar/ArrowFlightJdbcTimeStampVectorAccessorTest.java
+++ b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/calendar/ArrowFlightJdbcTimeStampVectorAccessorTest.java
@@ -179,7 +179,7 @@ public class ArrowFlightJdbcTimeStampVectorAccessorTest {
       final Timestamp resultWithoutCalendar = accessor.getTimestamp(null);
       final Timestamp result = accessor.getTimestamp(calendar);
 
-      long offset = timeZone.getOffset(resultWithoutCalendar.getTime()) -
+      long offset = (long) timeZone.getOffset(resultWithoutCalendar.getTime()) -
           timeZoneForVector.getOffset(resultWithoutCalendar.getTime());
 
       collector.checkThat(resultWithoutCalendar.getTime() - result.getTime(), is(offset));
@@ -212,7 +212,7 @@ public class ArrowFlightJdbcTimeStampVectorAccessorTest {
       final Date resultWithoutCalendar = accessor.getDate(null);
       final Date result = accessor.getDate(calendar);
 
-      long offset = timeZone.getOffset(resultWithoutCalendar.getTime()) -
+      long offset = (long) timeZone.getOffset(resultWithoutCalendar.getTime()) -
           timeZoneForVector.getOffset(resultWithoutCalendar.getTime());
 
       collector.checkThat(resultWithoutCalendar.getTime() - result.getTime(), is(offset));
@@ -245,7 +245,7 @@ public class ArrowFlightJdbcTimeStampVectorAccessorTest {
       final Time resultWithoutCalendar = accessor.getTime(null);
       final Time result = accessor.getTime(calendar);
 
-      long offset = timeZone.getOffset(resultWithoutCalendar.getTime()) -
+      long offset = (long) timeZone.getOffset(resultWithoutCalendar.getTime()) -
           timeZoneForVector.getOffset(resultWithoutCalendar.getTime());
 
       collector.checkThat(resultWithoutCalendar.getTime() - result.getTime(), is(offset));
diff --git a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/complex/AbstractArrowFlightJdbcListAccessorTest.java b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/complex/AbstractArrowFlightJdbcListAccessorTest.java
index b2eb8f1dbe..e958fb60ba 100644
--- a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/complex/AbstractArrowFlightJdbcListAccessorTest.java
+++ b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/complex/AbstractArrowFlightJdbcListAccessorTest.java
@@ -114,7 +114,7 @@ public class AbstractArrowFlightJdbcListAccessorTest {
     accessorIterator.assertAccessorGetter(vector,
         AbstractArrowFlightJdbcListVectorAccessor::getObject,
         (accessor, currentRow) -> equalTo(
-            Arrays.asList(0, (currentRow), (currentRow) * 2, (currentRow) * 3, (currentRow) * 4)));
+            Arrays.asList(0, currentRow, currentRow * 2, currentRow * 3, currentRow * 4)));
   }
 
   @Test
@@ -137,7 +137,7 @@ public class AbstractArrowFlightJdbcListAccessorTest {
       Object[] arrayObject = (Object[]) array.getArray();
 
       collector.checkThat(arrayObject, equalTo(
-          new Object[] {0, currentRow, (currentRow) * 2, (currentRow) * 3, (currentRow) * 4}));
+          new Object[] {0, currentRow, currentRow * 2, currentRow * 3, currentRow * 4}));
     });
   }
 
@@ -161,7 +161,7 @@ public class AbstractArrowFlightJdbcListAccessorTest {
       Object[] arrayObject = (Object[]) array.getArray(1, 3);
 
       collector.checkThat(arrayObject, equalTo(
-          new Object[] {currentRow, (currentRow) * 2, (currentRow) * 3}));
+          new Object[] {currentRow, currentRow * 2, currentRow * 3}));
     });
   }
 
diff --git a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/complex/ArrowFlightJdbcStructVectorAccessorTest.java b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/complex/ArrowFlightJdbcStructVectorAccessorTest.java
index b3c85fc0ab..735fe9f40b 100644
--- a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/complex/ArrowFlightJdbcStructVectorAccessorTest.java
+++ b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/complex/ArrowFlightJdbcStructVectorAccessorTest.java
@@ -202,8 +202,8 @@ public class ArrowFlightJdbcStructVectorAccessorTest {
           new ArrowFlightJdbcStructVectorAccessor(rootVector, () -> 0, (boolean wasNull) -> {
           });
 
-      Assert.assertEquals(accessor.getObject(), expected);
-      Assert.assertEquals(accessor.getString(), expected.toString());
+      Assert.assertEquals(expected, accessor.getObject());
+      Assert.assertEquals(expected.toString(), accessor.getString());
     }
   }
 }
diff --git a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/numeric/ArrowFlightJdbcBitVectorAccessorTest.java b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/numeric/ArrowFlightJdbcBitVectorAccessorTest.java
index 809d6e8d35..00537bfa02 100644
--- a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/numeric/ArrowFlightJdbcBitVectorAccessorTest.java
+++ b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/accessor/impl/numeric/ArrowFlightJdbcBitVectorAccessorTest.java
@@ -68,7 +68,7 @@ public class ArrowFlightJdbcBitVectorAccessorTest {
                            final T result,
                            final T resultIfFalse, final BitVector vector) throws Exception {
     accessorIterator.assertAccessorGetter(vector, function,
-        ((accessor, currentRow) -> is(arrayToAssert[currentRow] ? result : resultIfFalse))
+        (accessor, currentRow) -> is(arrayToAssert[currentRow] ? result : resultIfFalse)
     );
   }
 
diff --git a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/MockFlightSqlProducer.java b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/MockFlightSqlProducer.java
index c165bfb7ce..52a397edab 100644
--- a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/MockFlightSqlProducer.java
+++ b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/MockFlightSqlProducer.java
@@ -159,7 +159,7 @@ public final class MockFlightSqlProducer implements FlightSqlProducer {
    * @param updatedRows the number of rows affected.
    */
   public void addUpdateQuery(final String sqlCommand, final long updatedRows) {
-    addUpdateQuery(sqlCommand, ((flightStream, putResultStreamListener) -> {
+    addUpdateQuery(sqlCommand, (flightStream, putResultStreamListener) -> {
       final DoPutUpdateResult result =
           DoPutUpdateResult.newBuilder().setRecordCount(updatedRows).build();
       try (final BufferAllocator allocator = new RootAllocator(Long.MAX_VALUE);
@@ -171,7 +171,7 @@ public final class MockFlightSqlProducer implements FlightSqlProducer {
       } finally {
         putResultStreamListener.onCompleted();
       }
-    }));
+    });
   }
 
   /**
diff --git a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/RootAllocatorTestRule.java b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/RootAllocatorTestRule.java
index a200fc8d39..fd8fb57fca 100644
--- a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/RootAllocatorTestRule.java
+++ b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/RootAllocatorTestRule.java
@@ -18,6 +18,7 @@
 package org.apache.arrow.driver.jdbc.utils;
 
 import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
 import java.util.Random;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.IntStream;
@@ -456,9 +457,9 @@ public class RootAllocatorTestRule implements TestRule, AutoCloseable {
   public VarBinaryVector createVarBinaryVector(final String fieldName) {
     VarBinaryVector valueVector = new VarBinaryVector(fieldName, this.getRootAllocator());
     valueVector.allocateNew(3);
-    valueVector.setSafe(0, (fieldName + "__BINARY_DATA_0001").getBytes());
-    valueVector.setSafe(1, (fieldName + "__BINARY_DATA_0002").getBytes());
-    valueVector.setSafe(2, (fieldName + "__BINARY_DATA_0003").getBytes());
+    valueVector.setSafe(0, (fieldName + "__BINARY_DATA_0001").getBytes(StandardCharsets.UTF_8));
+    valueVector.setSafe(1, (fieldName + "__BINARY_DATA_0002").getBytes(StandardCharsets.UTF_8));
+    valueVector.setSafe(2, (fieldName + "__BINARY_DATA_0003").getBytes(StandardCharsets.UTF_8));
     valueVector.setValueCount(3);
 
     return valueVector;
@@ -472,9 +473,9 @@ public class RootAllocatorTestRule implements TestRule, AutoCloseable {
   public LargeVarBinaryVector createLargeVarBinaryVector() {
     LargeVarBinaryVector valueVector = new LargeVarBinaryVector("", this.getRootAllocator());
     valueVector.allocateNew(3);
-    valueVector.setSafe(0, "BINARY_DATA_0001".getBytes());
-    valueVector.setSafe(1, "BINARY_DATA_0002".getBytes());
-    valueVector.setSafe(2, "BINARY_DATA_0003".getBytes());
+    valueVector.setSafe(0, "BINARY_DATA_0001".getBytes(StandardCharsets.UTF_8));
+    valueVector.setSafe(1, "BINARY_DATA_0002".getBytes(StandardCharsets.UTF_8));
+    valueVector.setSafe(2, "BINARY_DATA_0003".getBytes(StandardCharsets.UTF_8));
     valueVector.setValueCount(3);
 
     return valueVector;
@@ -488,9 +489,9 @@ public class RootAllocatorTestRule implements TestRule, AutoCloseable {
   public FixedSizeBinaryVector createFixedSizeBinaryVector() {
     FixedSizeBinaryVector valueVector = new FixedSizeBinaryVector("", this.getRootAllocator(), 16);
     valueVector.allocateNew(3);
-    valueVector.setSafe(0, "BINARY_DATA_0001".getBytes());
-    valueVector.setSafe(1, "BINARY_DATA_0002".getBytes());
-    valueVector.setSafe(2, "BINARY_DATA_0003".getBytes());
+    valueVector.setSafe(0, "BINARY_DATA_0001".getBytes(StandardCharsets.UTF_8));
+    valueVector.setSafe(1, "BINARY_DATA_0002".getBytes(StandardCharsets.UTF_8));
+    valueVector.setSafe(2, "BINARY_DATA_0003".getBytes(StandardCharsets.UTF_8));
     valueVector.setValueCount(3);
 
     return valueVector;
diff --git a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/ThrowableAssertionUtils.java b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/ThrowableAssertionUtils.java
index f1bd44539a..48334dc0f9 100644
--- a/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/ThrowableAssertionUtils.java
+++ b/java/flight/flight-sql-jdbc-core/src/test/java/org/apache/arrow/driver/jdbc/utils/ThrowableAssertionUtils.java
@@ -25,7 +25,7 @@ public class ThrowableAssertionUtils {
   private ThrowableAssertionUtils() {
   }
 
-  public static <T extends Throwable> void simpleAssertThrowableClass(
+  public static void simpleAssertThrowableClass(
       final Class<? extends Throwable> expectedThrowable, final ThrowingRunnable runnable) {
     try {
       runnable.run();
diff --git a/java/flight/flight-sql/src/main/java/org/apache/arrow/flight/sql/FlightSqlProducer.java b/java/flight/flight-sql/src/main/java/org/apache/arrow/flight/sql/FlightSqlProducer.java
index e2d79129c1..dbe39ab1d0 100644
--- a/java/flight/flight-sql/src/main/java/org/apache/arrow/flight/sql/FlightSqlProducer.java
+++ b/java/flight/flight-sql/src/main/java/org/apache/arrow/flight/sql/FlightSqlProducer.java
@@ -433,7 +433,7 @@ public interface FlightSqlProducer extends FlightProducer, AutoCloseable {
    * @param info     The FlightInfo of the query to cancel.
    * @param context  Per-call context.
    * @param listener Whether cancellation succeeded.
-   * @deprecated Prefer {@link #cancelFlightInfo(FlightInfo, CallContext, StreamListener)}.
+   * @deprecated Prefer {@link #cancelFlightInfo(CancelFlightInfoRequest, CallContext, StreamListener)}.
    */
   @Deprecated
   default void cancelQuery(FlightInfo info, CallContext context, StreamListener<CancelResult> listener) {
diff --git a/java/flight/flight-sql/src/main/java/org/apache/arrow/flight/sql/SqlInfoBuilder.java b/java/flight/flight-sql/src/main/java/org/apache/arrow/flight/sql/SqlInfoBuilder.java
index 251a709f63..338a60e2ae 100644
--- a/java/flight/flight-sql/src/main/java/org/apache/arrow/flight/sql/SqlInfoBuilder.java
+++ b/java/flight/flight-sql/src/main/java/org/apache/arrow/flight/sql/SqlInfoBuilder.java
@@ -17,7 +17,6 @@
 
 package org.apache.arrow.flight.sql;
 
-import static java.nio.charset.StandardCharsets.UTF_8;
 import static java.util.stream.IntStream.range;
 import static org.apache.arrow.flight.FlightProducer.ServerStreamListener;
 import static org.apache.arrow.flight.sql.impl.FlightSql.SqlSupportedTransaction;
@@ -81,7 +80,7 @@ public class SqlInfoBuilder {
    * @return a new {@link NullableVarCharHolder} with the provided input data {@code string}.
    */
   public static NullableVarCharHolder getHolderForUtf8(final String string, final ArrowBuf buf) {
-    final byte[] bytes = string.getBytes(UTF_8);
+    final byte[] bytes = string.getBytes(StandardCharsets.UTF_8);
     buf.setBytes(0, bytes);
     final NullableVarCharHolder holder = new NullableVarCharHolder();
     holder.buffer = buf;
@@ -1051,7 +1050,7 @@ public class SqlInfoBuilder {
     final int length = values.length;
     range(0, length)
         .forEach(i -> onCreateArrowBuf(buf -> {
-          final byte[] bytes = values[i].getBytes(UTF_8);
+          final byte[] bytes = values[i].getBytes(StandardCharsets.UTF_8);
           buf.setBytes(0, bytes);
           writer.writeVarChar(0, bytes.length, buf);
         }));
diff --git a/java/flight/flight-sql/src/test/java/org/apache/arrow/flight/sql/example/FlightSqlExample.java b/java/flight/flight-sql/src/test/java/org/apache/arrow/flight/sql/example/FlightSqlExample.java
index 11f38ded5f..1d43728b78 100644
--- a/java/flight/flight-sql/src/test/java/org/apache/arrow/flight/sql/example/FlightSqlExample.java
+++ b/java/flight/flight-sql/src/test/java/org/apache/arrow/flight/sql/example/FlightSqlExample.java
@@ -69,6 +69,7 @@ import java.util.Properties;
 import java.util.Set;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
+import java.util.concurrent.Future;
 import java.util.concurrent.TimeUnit;
 import java.util.function.BiConsumer;
 import java.util.function.Consumer;
@@ -382,6 +383,7 @@ public class FlightSqlExample implements FlightSqlProducer, AutoCloseable {
     return saveToVectors(vectorToColumnName, data, emptyToNull, alwaysTrue);
   }
 
+  @SuppressWarnings("StringSplitter")
   private static <T extends FieldVector> int saveToVectors(final Map<T, String> vectorToColumnName,
                                                            final ResultSet data, boolean emptyToNull,
                                                            Predicate<ResultSet> resultSetPredicate)
@@ -512,7 +514,7 @@ public class FlightSqlExample implements FlightSqlProducer, AutoCloseable {
         }
       };
     } else {
-      predicate = (resultSet -> true);
+      predicate = resultSet -> true;
     }
 
     int rows = saveToVectors(mapper, typeInfo, true, predicate);
@@ -685,7 +687,7 @@ public class FlightSqlExample implements FlightSqlProducer, AutoCloseable {
   public void closePreparedStatement(final ActionClosePreparedStatementRequest request, final CallContext context,
                                      final StreamListener<Result> listener) {
     // Running on another thread
-    executorService.submit(() -> {
+    Future<?> unused = executorService.submit(() -> {
       try {
         preparedStatementLoadingCache.invalidate(request.getPreparedStatementHandle());
       } catch (final Exception e) {
@@ -774,7 +776,7 @@ public class FlightSqlExample implements FlightSqlProducer, AutoCloseable {
   public void createPreparedStatement(final ActionCreatePreparedStatementRequest request, final CallContext context,
                                       final StreamListener<Result> listener) {
     // Running on another thread
-    executorService.submit(() -> {
+    Future<?> unused = executorService.submit(() -> {
       try {
         final ByteString preparedStatementHandle = copyFrom(randomUUID().toString().getBytes(UTF_8));
         // Ownership of the connection will be passed to the context. Do NOT close!
diff --git a/java/tools/src/main/java/org/apache/arrow/tools/FileRoundtrip.java b/java/tools/src/main/java/org/apache/arrow/tools/FileRoundtrip.java
index c49b04c855..1201d0f760 100644
--- a/java/tools/src/main/java/org/apache/arrow/tools/FileRoundtrip.java
+++ b/java/tools/src/main/java/org/apache/arrow/tools/FileRoundtrip.java
@@ -43,11 +43,9 @@ import org.slf4j.LoggerFactory;
 public class FileRoundtrip {
   private static final Logger LOGGER = LoggerFactory.getLogger(FileRoundtrip.class);
   private final Options options;
-  private final PrintStream out;
   private final PrintStream err;
 
-  FileRoundtrip(PrintStream out, PrintStream err) {
-    this.out = out;
+  FileRoundtrip(PrintStream err) {
     this.err = err;
     this.options = new Options();
     this.options.addOption("i", "in", true, "input file");
@@ -56,7 +54,7 @@ public class FileRoundtrip {
   }
 
   public static void main(String[] args) {
-    System.exit(new FileRoundtrip(System.out, System.err).run(args));
+    System.exit(new FileRoundtrip(System.err).run(args));
   }
 
   private File validateFile(String type, String fileName) {
diff --git a/java/tools/src/test/java/org/apache/arrow/tools/ArrowFileTestFixtures.java b/java/tools/src/test/java/org/apache/arrow/tools/ArrowFileTestFixtures.java
index 178a0834fa..1bc7ead7b7 100644
--- a/java/tools/src/test/java/org/apache/arrow/tools/ArrowFileTestFixtures.java
+++ b/java/tools/src/test/java/org/apache/arrow/tools/ArrowFileTestFixtures.java
@@ -35,7 +35,6 @@ import org.apache.arrow.vector.complex.writer.IntWriter;
 import org.apache.arrow.vector.ipc.ArrowFileReader;
 import org.apache.arrow.vector.ipc.ArrowFileWriter;
 import org.apache.arrow.vector.ipc.message.ArrowBlock;
-import org.apache.arrow.vector.types.pojo.Schema;
 import org.junit.Assert;
 
 public class ArrowFileTestFixtures {
@@ -63,7 +62,6 @@ public class ArrowFileTestFixtures {
          ArrowFileReader arrowReader = new ArrowFileReader(fileInputStream.getChannel(),
              readerAllocator)) {
       VectorSchemaRoot root = arrowReader.getVectorSchemaRoot();
-      Schema schema = root.getSchema();
       for (ArrowBlock rbBlock : arrowReader.getRecordBlocks()) {
         if (!arrowReader.loadRecordBatch(rbBlock)) {
           throw new IOException("Expected to read record batch");
diff --git a/java/tools/src/test/java/org/apache/arrow/tools/EchoServerTest.java b/java/tools/src/test/java/org/apache/arrow/tools/EchoServerTest.java
index 714cb416bf..9cf893ee5c 100644
--- a/java/tools/src/test/java/org/apache/arrow/tools/EchoServerTest.java
+++ b/java/tools/src/test/java/org/apache/arrow/tools/EchoServerTest.java
@@ -142,7 +142,6 @@ public class EchoServerTest {
         Collections.<Field>emptyList());
     TinyIntVector vector =
         new TinyIntVector("testField", FieldType.nullable(TINYINT.getType()), alloc);
-    Schema schema = new Schema(asList(field));
 
     // Try an empty stream, just the header.
     testEchoServer(serverPort, field, vector, 0);
diff --git a/java/tools/src/test/java/org/apache/arrow/tools/TestFileRoundtrip.java b/java/tools/src/test/java/org/apache/arrow/tools/TestFileRoundtrip.java
index ddac6f7938..a5d6c9658f 100644
--- a/java/tools/src/test/java/org/apache/arrow/tools/TestFileRoundtrip.java
+++ b/java/tools/src/test/java/org/apache/arrow/tools/TestFileRoundtrip.java
@@ -56,7 +56,7 @@ public class TestFileRoundtrip {
     writeInput(testInFile, allocator);
 
     String[] args = {"-i", testInFile.getAbsolutePath(), "-o", testOutFile.getAbsolutePath()};
-    int result = new FileRoundtrip(System.out, System.err).run(args);
+    int result = new FileRoundtrip(System.err).run(args);
     assertEquals(0, result);
 
     validateOutput(testOutFile, allocator);
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BaseFixedWidthVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BaseFixedWidthVector.java
index 9022946011..c456c62538 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/BaseFixedWidthVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/BaseFixedWidthVector.java
@@ -110,7 +110,7 @@ public abstract class BaseFixedWidthVector extends BaseValueVector
    */
   @Override
   public long getValidityBufferAddress() {
-    return (validityBuffer.memoryAddress());
+    return validityBuffer.memoryAddress();
   }
 
   /**
@@ -120,7 +120,7 @@ public abstract class BaseFixedWidthVector extends BaseValueVector
    */
   @Override
   public long getDataBufferAddress() {
-    return (valueBuffer.memoryAddress());
+    return valueBuffer.memoryAddress();
   }
 
   /**
@@ -298,6 +298,7 @@ public abstract class BaseFixedWidthVector extends BaseValueVector
    * @param valueCount the desired number of elements in the vector
    * @throws org.apache.arrow.memory.OutOfMemoryException on error
    */
+  @Override
   public void allocateNew(int valueCount) {
     computeAndCheckBufferSize(valueCount);
 
@@ -521,6 +522,7 @@ public abstract class BaseFixedWidthVector extends BaseValueVector
    *
    * @return the inner buffers.
    */
+  @Override
   public List<ArrowBuf> getFieldBuffers() {
     List<ArrowBuf> result = new ArrayList<>(2);
     setReaderAndWriterIndex();
@@ -597,6 +599,7 @@ public abstract class BaseFixedWidthVector extends BaseValueVector
    * @param allocator allocator for the target vector
    * @return TransferPair
    */
+  @Override
   public abstract TransferPair getTransferPair(String ref, BufferAllocator allocator);
 
   /**
@@ -605,6 +608,7 @@ public abstract class BaseFixedWidthVector extends BaseValueVector
    * @param allocator allocator for the target vector
    * @return TransferPair
    */
+  @Override
   public abstract TransferPair getTransferPair(Field field, BufferAllocator allocator);
 
   /**
@@ -911,6 +915,7 @@ public abstract class BaseFixedWidthVector extends BaseValueVector
    *
    * @param index position of element
    */
+  @Override
   public void setNull(int index) {
     handleSafe(index);
     // not really needed to set the bit to 0 as long as
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BaseLargeVariableWidthVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BaseLargeVariableWidthVector.java
index a77278138f..c239edbcc3 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/BaseLargeVariableWidthVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/BaseLargeVariableWidthVector.java
@@ -228,6 +228,7 @@ public abstract class BaseLargeVariableWidthVector extends BaseValueVector
    * Reset the vector to initial state. Same as {@link #zeroVector()}.
    * Note that this method doesn't release any memory.
    */
+  @Override
   public void reset() {
     zeroVector();
     lastSet = -1;
@@ -318,6 +319,7 @@ public abstract class BaseLargeVariableWidthVector extends BaseValueVector
    * Get the buffers belonging to this vector.
    * @return the inner buffers.
    */
+  @Override
   public List<ArrowBuf> getFieldBuffers() {
     // before flight/IPC, we must bring the vector to a consistent state.
     // this is because, it is possible that the offset buffers of some trailing values
@@ -471,6 +473,7 @@ public abstract class BaseLargeVariableWidthVector extends BaseValueVector
    * Resize the vector to increase the capacity. The internal behavior is to
    * double the current value capacity.
    */
+  @Override
   public void reAlloc() {
     reallocDataBuffer();
     reallocValidityAndOffsetBuffers();
@@ -691,6 +694,7 @@ public abstract class BaseLargeVariableWidthVector extends BaseValueVector
    * @param allocator allocator for the target vector
    * @return TransferPair
    */
+  @Override
   public abstract TransferPair getTransferPair(String ref, BufferAllocator allocator);
 
   /**
@@ -699,6 +703,7 @@ public abstract class BaseLargeVariableWidthVector extends BaseValueVector
    * @param allocator allocator for the target vector
    * @return TransferPair
    */
+  @Override
   public abstract TransferPair getTransferPair(Field field, BufferAllocator allocator);
 
   /**
@@ -835,6 +840,7 @@ public abstract class BaseLargeVariableWidthVector extends BaseValueVector
    *
    * @return the number of null elements.
    */
+  @Override
   public int getNullCount() {
     return BitVectorHelper.getNullCount(validityBuffer, valueCount);
   }
@@ -856,6 +862,7 @@ public abstract class BaseLargeVariableWidthVector extends BaseValueVector
    * @param index  position of element
    * @return true if element at given index is null
    */
+  @Override
   public boolean isNull(int index) {
     return (isSet(index) == 0);
   }
@@ -879,6 +886,7 @@ public abstract class BaseLargeVariableWidthVector extends BaseValueVector
    *
    * @return valueCount for the vector
    */
+  @Override
   public int getValueCount() {
     return valueCount;
   }
@@ -888,6 +896,7 @@ public abstract class BaseLargeVariableWidthVector extends BaseValueVector
    *
    * @param valueCount   value count
    */
+  @Override
   public void setValueCount(int valueCount) {
     assert valueCount >= 0;
     this.valueCount = valueCount;
@@ -1091,6 +1100,7 @@ public abstract class BaseLargeVariableWidthVector extends BaseValueVector
    *
    * @param index   position of element
    */
+  @Override
   public void setNull(int index) {
     // We need to check and realloc both validity and offset buffer
     while (index >= getValueCapacity()) {
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java
index 679e5d06c0..070919c356 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/BaseValueVector.java
@@ -28,15 +28,12 @@ import org.apache.arrow.vector.complex.reader.FieldReader;
 import org.apache.arrow.vector.util.DataSizeRoundingUtil;
 import org.apache.arrow.vector.util.TransferPair;
 import org.apache.arrow.vector.util.ValueVectorUtility;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * Base class for other Arrow Vector Types.  Provides basic functionality around
  * memory management.
  */
 public abstract class BaseValueVector implements ValueVector {
-  private static final Logger logger = LoggerFactory.getLogger(BaseValueVector.class);
 
   public static final String MAX_ALLOCATION_SIZE_PROPERTY = "arrow.vector.max_allocation_bytes";
   public static final long MAX_ALLOCATION_SIZE = Long.getLong(MAX_ALLOCATION_SIZE_PROPERTY, Long.MAX_VALUE);
@@ -160,6 +157,7 @@ public abstract class BaseValueVector implements ValueVector {
    *
    * @return Concrete instance of FieldReader by using double-checked locking.
    */
+  @Override
   public FieldReader getReader() {
     FieldReader reader = fieldReader;
 
@@ -178,7 +176,7 @@ public abstract class BaseValueVector implements ValueVector {
   /**
    * Container for primitive vectors (1 for the validity bit-mask and one to hold the values).
    */
-  class DataAndValidityBuffers {
+  static class DataAndValidityBuffers {
     private ArrowBuf dataBuf;
     private ArrowBuf validityBuf;
 
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BaseVariableWidthVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BaseVariableWidthVector.java
index 46bc9815f0..4cf495a349 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/BaseVariableWidthVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/BaseVariableWidthVector.java
@@ -247,6 +247,7 @@ public abstract class BaseVariableWidthVector extends BaseValueVector
    * Reset the vector to initial state. Same as {@link #zeroVector()}.
    * Note that this method doesn't release any memory.
    */
+  @Override
   public void reset() {
     zeroVector();
     lastSet = -1;
@@ -337,6 +338,7 @@ public abstract class BaseVariableWidthVector extends BaseValueVector
    * Get the buffers belonging to this vector.
    * @return the inner buffers.
    */
+  @Override
   public List<ArrowBuf> getFieldBuffers() {
     // before flight/IPC, we must bring the vector to a consistent state.
     // this is because, it is possible that the offset buffers of some trailing values
@@ -493,6 +495,7 @@ public abstract class BaseVariableWidthVector extends BaseValueVector
    * Resize the vector to increase the capacity. The internal behavior is to
    * double the current value capacity.
    */
+  @Override
   public void reAlloc() {
     reallocDataBuffer();
     reallocValidityAndOffsetBuffers();
@@ -732,6 +735,7 @@ public abstract class BaseVariableWidthVector extends BaseValueVector
    * @param allocator allocator for the target vector
    * @return TransferPair
    */
+  @Override
   public abstract TransferPair getTransferPair(String ref, BufferAllocator allocator);
 
   /**
@@ -740,6 +744,7 @@ public abstract class BaseVariableWidthVector extends BaseValueVector
    * @param allocator allocator for the target vector
    * @return TransferPair
    */
+  @Override
   public abstract TransferPair getTransferPair(Field field, BufferAllocator allocator);
 
   /**
@@ -796,7 +801,8 @@ public abstract class BaseVariableWidthVector extends BaseValueVector
     final int dataLength = end - start;
 
     if (start == 0) {
-      final ArrowBuf slicedOffsetBuffer = offsetBuffer.slice(startIndex * OFFSET_WIDTH, (1 + length) * OFFSET_WIDTH);
+      final ArrowBuf slicedOffsetBuffer = offsetBuffer.slice(startIndex * ((long) OFFSET_WIDTH),
+          (1 + length) * ((long) OFFSET_WIDTH));
       target.offsetBuffer = transferBuffer(slicedOffsetBuffer, target.allocator);
     } else {
       target.allocateOffsetBuffer((long) (length + 1) * OFFSET_WIDTH);
@@ -883,6 +889,7 @@ public abstract class BaseVariableWidthVector extends BaseValueVector
    *
    * @return the number of null elements.
    */
+  @Override
   public int getNullCount() {
     return BitVectorHelper.getNullCount(validityBuffer, valueCount);
   }
@@ -904,6 +911,7 @@ public abstract class BaseVariableWidthVector extends BaseValueVector
    * @param index  position of element
    * @return true if element at given index is null
    */
+  @Override
   public boolean isNull(int index) {
     return (isSet(index) == 0);
   }
@@ -927,6 +935,7 @@ public abstract class BaseVariableWidthVector extends BaseValueVector
    *
    * @return valueCount for the vector
    */
+  @Override
   public int getValueCount() {
     return valueCount;
   }
@@ -936,6 +945,7 @@ public abstract class BaseVariableWidthVector extends BaseValueVector
    *
    * @param valueCount   value count
    */
+  @Override
   public void setValueCount(int valueCount) {
     assert valueCount >= 0;
     this.valueCount = valueCount;
@@ -1016,7 +1026,7 @@ public abstract class BaseVariableWidthVector extends BaseValueVector
     handleSafe(index, length);
     fillHoles(index);
     final int startOffset = getStartOffset(index);
-    offsetBuffer.setInt((index + 1) * OFFSET_WIDTH, startOffset + length);
+    offsetBuffer.setInt((index + 1) * ((long) OFFSET_WIDTH), startOffset + length);
     lastSet = index;
   }
 
@@ -1119,7 +1129,7 @@ public abstract class BaseVariableWidthVector extends BaseValueVector
     fillHoles(index);
     BitVectorHelper.setBit(validityBuffer, index);
     final int startOffset = getStartOffset(index);
-    offsetBuffer.setInt((index + 1) * OFFSET_WIDTH, startOffset + length);
+    offsetBuffer.setInt((index + 1) * ((long) OFFSET_WIDTH), startOffset + length);
     valueBuffer.setBytes(startOffset, value, start, length);
     lastSet = index;
   }
@@ -1140,7 +1150,7 @@ public abstract class BaseVariableWidthVector extends BaseValueVector
     fillHoles(index);
     BitVectorHelper.setBit(validityBuffer, index);
     final int startOffset = getStartOffset(index);
-    offsetBuffer.setInt((index + 1) * OFFSET_WIDTH, startOffset + length);
+    offsetBuffer.setInt((index + 1) * ((long) OFFSET_WIDTH), startOffset + length);
     valueBuffer.setBytes(startOffset, value, start, length);
     lastSet = index;
   }
@@ -1150,6 +1160,7 @@ public abstract class BaseVariableWidthVector extends BaseValueVector
    *
    * @param index   position of element
    */
+  @Override
   public void setNull(int index) {
     // We need to check and realloc both validity and offset buffer
     while (index >= getValueCapacity()) {
@@ -1174,7 +1185,7 @@ public abstract class BaseVariableWidthVector extends BaseValueVector
     fillHoles(index);
     BitVectorHelper.setValidityBit(validityBuffer, index, isSet);
     final int startOffset = offsetBuffer.getInt((long) index * OFFSET_WIDTH);
-    offsetBuffer.setInt((index + 1) * OFFSET_WIDTH, startOffset + dataLength);
+    offsetBuffer.setInt((index + 1) * ((long) OFFSET_WIDTH), startOffset + dataLength);
     valueBuffer.setBytes(startOffset, buffer, start, dataLength);
     lastSet = index;
   }
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java
index b0052e7e33..095d98aa26 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/BigIntVector.java
@@ -129,6 +129,7 @@ public final class BigIntVector extends BaseFixedWidthVector implements BaseIntV
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public Long getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java b/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java
index 104819147b..a34df8cf6f 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/BitVector.java
@@ -105,7 +105,7 @@ public final class BitVector extends BaseFixedWidthVector {
   @Override
   public void setInitialCapacity(int valueCount) {
     final int size = getValidityBufferSizeFromCount(valueCount);
-    if (size * 2 > MAX_ALLOCATION_SIZE) {
+    if (size * 2L > MAX_ALLOCATION_SIZE) {
       throw new OversizedAllocationException("Requested amount of memory is more than max allowed");
     }
     lastValueCapacity = valueCount;
@@ -149,15 +149,14 @@ public final class BitVector extends BaseFixedWidthVector {
    * @param length     length of the split.
    * @param target     destination vector
    */
+  @Override
   public void splitAndTransferTo(int startIndex, int length, BaseFixedWidthVector target) {
     Preconditions.checkArgument(startIndex >= 0 && length >= 0 && startIndex + length <= valueCount,
         "Invalid parameters startIndex: %s, length: %s for valueCount: %s", startIndex, length, valueCount);
     compareTypes(target, "splitAndTransferTo");
     target.clear();
-    target.validityBuffer = splitAndTransferBuffer(startIndex, length, target,
-            validityBuffer, target.validityBuffer);
-    target.valueBuffer = splitAndTransferBuffer(startIndex, length, target,
-            valueBuffer, target.valueBuffer);
+    target.validityBuffer = splitAndTransferBuffer(startIndex, length, validityBuffer, target.validityBuffer);
+    target.valueBuffer = splitAndTransferBuffer(startIndex, length, valueBuffer, target.valueBuffer);
     target.refreshValueCapacity();
 
     target.setValueCount(length);
@@ -166,7 +165,6 @@ public final class BitVector extends BaseFixedWidthVector {
   private ArrowBuf splitAndTransferBuffer(
       int startIndex,
       int length,
-      BaseFixedWidthVector target,
       ArrowBuf sourceBuffer,
       ArrowBuf destBuffer) {
     int firstByteSource = BitVectorHelper.byteIndex(startIndex);
@@ -276,11 +274,12 @@ public final class BitVector extends BaseFixedWidthVector {
    * @param index position of element
    * @return element at given index
    */
+  @Override
   public Boolean getObject(int index) {
     if (isSet(index) == 0) {
       return null;
     } else {
-      return new Boolean(getBit(index) != 0);
+      return getBit(index) != 0;
     }
   }
 
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/BufferLayout.java b/java/vector/src/main/java/org/apache/arrow/vector/BufferLayout.java
index 09c874e398..9725693348 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/BufferLayout.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/BufferLayout.java
@@ -144,7 +144,7 @@ public class BufferLayout {
     if (obj == null) {
       return false;
     }
-    if (getClass() != obj.getClass()) {
+    if (!(obj instanceof BufferLayout)) {
       return false;
     }
     BufferLayout other = (BufferLayout) obj;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java
index c99c578605..13645d3b26 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/DateDayVector.java
@@ -131,6 +131,7 @@ public final class DateDayVector extends BaseFixedWidthVector {
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public Integer getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java
index 6ab8ac4eed..1333fb0adc 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/DateMilliVector.java
@@ -133,6 +133,7 @@ public final class DateMilliVector extends BaseFixedWidthVector {
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public LocalDateTime getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java
index fe650c7d28..931c4eea0a 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/Decimal256Vector.java
@@ -151,6 +151,7 @@ public final class Decimal256Vector extends BaseFixedWidthVector {
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public BigDecimal getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java
index 7c3662c867..eefcee837f 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/DecimalVector.java
@@ -150,6 +150,7 @@ public final class DecimalVector extends BaseFixedWidthVector {
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public BigDecimal getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java b/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java
index b6abc16194..636afef1e9 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/DurationVector.java
@@ -143,6 +143,7 @@ public final class DurationVector extends BaseFixedWidthVector {
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public Duration getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java
index 4b56a22f2d..46f9447be2 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/Float4Vector.java
@@ -131,6 +131,7 @@ public final class Float4Vector extends BaseFixedWidthVector implements Floating
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public Float getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java
index 7e4fae7087..840f9d4ba0 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/Float8Vector.java
@@ -131,6 +131,7 @@ public final class Float8Vector extends BaseFixedWidthVector implements Floating
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public Double getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/GenerateSampleData.java b/java/vector/src/main/java/org/apache/arrow/vector/GenerateSampleData.java
index efebfd8354..6cda18a8a5 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/GenerateSampleData.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/GenerateSampleData.java
@@ -108,8 +108,8 @@ public class GenerateSampleData {
   }
 
   private static void writeDecimalData(DecimalVector vector, int valueCount) {
-    final BigDecimal even = new BigDecimal(0.0543278923);
-    final BigDecimal odd = new BigDecimal(2.0543278923);
+    final BigDecimal even = new BigDecimal("0.0543278923");
+    final BigDecimal odd = new BigDecimal("2.0543278923");
     for (int i = 0; i < valueCount; i++) {
       if (i % 2 == 0) {
         vector.setSafe(i, even);
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java
index 5c8ef440e8..08ead148af 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/IntVector.java
@@ -131,6 +131,7 @@ public final class IntVector extends BaseFixedWidthVector implements BaseIntVect
    * @param index position of element
    * @return element at given index
    */
+  @Override
   public Integer getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java
index 7c0d19baa9..f53eb37138 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/IntervalDayVector.java
@@ -164,6 +164,7 @@ public final class IntervalDayVector extends BaseFixedWidthVector {
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public Duration getObject(int index) {
     if (isSet(index) == 0) {
       return null;
@@ -206,23 +207,23 @@ public final class IntervalDayVector extends BaseFixedWidthVector {
     final int days = valueBuffer.getInt(startIndex);
     int millis = valueBuffer.getInt(startIndex + MILLISECOND_OFFSET);
 
-    final int hours = millis / (org.apache.arrow.vector.util.DateUtility.hoursToMillis);
-    millis = millis % (org.apache.arrow.vector.util.DateUtility.hoursToMillis);
+    final int hours = millis / org.apache.arrow.vector.util.DateUtility.hoursToMillis;
+    millis = millis % org.apache.arrow.vector.util.DateUtility.hoursToMillis;
 
-    final int minutes = millis / (org.apache.arrow.vector.util.DateUtility.minutesToMillis);
-    millis = millis % (org.apache.arrow.vector.util.DateUtility.minutesToMillis);
+    final int minutes = millis / org.apache.arrow.vector.util.DateUtility.minutesToMillis;
+    millis = millis % org.apache.arrow.vector.util.DateUtility.minutesToMillis;
 
-    final int seconds = millis / (org.apache.arrow.vector.util.DateUtility.secondsToMillis);
-    millis = millis % (org.apache.arrow.vector.util.DateUtility.secondsToMillis);
+    final int seconds = millis / org.apache.arrow.vector.util.DateUtility.secondsToMillis;
+    millis = millis % org.apache.arrow.vector.util.DateUtility.secondsToMillis;
 
     final String dayString = (Math.abs(days) == 1) ? " day " : " days ";
 
-    return (new StringBuilder()
+    return new StringBuilder()
             .append(days).append(dayString)
             .append(hours).append(":")
             .append(minutes).append(":")
             .append(seconds).append(".")
-            .append(millis));
+            .append(millis);
   }
 
   /*----------------------------------------------------------------*
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java
index fc0aa9d27b..716af6fec9 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/IntervalMonthDayNanoVector.java
@@ -186,6 +186,7 @@ public final class IntervalMonthDayNanoVector extends BaseFixedWidthVector {
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public PeriodDuration getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java b/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java
index 7fe572f3ff..c5f384604a 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/IntervalYearVector.java
@@ -147,6 +147,7 @@ public final class IntervalYearVector extends BaseFixedWidthVector {
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public Period getObject(int index) {
     if (isSet(index) == 0) {
       return null;
@@ -181,11 +182,11 @@ public final class IntervalYearVector extends BaseFixedWidthVector {
     final String yearString = (Math.abs(years) == 1) ? " year " : " years ";
     final String monthString = (Math.abs(months) == 1) ? " month " : " months ";
 
-    return (new StringBuilder()
+    return new StringBuilder()
         .append(years)
         .append(yearString)
         .append(months)
-        .append(monthString));
+        .append(monthString);
   }
 
   /*----------------------------------------------------------------*
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/LargeVarBinaryVector.java b/java/vector/src/main/java/org/apache/arrow/vector/LargeVarBinaryVector.java
index 0750f68f4f..8560ba3a68 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/LargeVarBinaryVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/LargeVarBinaryVector.java
@@ -131,6 +131,7 @@ public final class LargeVarBinaryVector extends BaseLargeVariableWidthVector {
    * @param index   position of element to get
    * @return byte array for non-null element, null otherwise
    */
+  @Override
   public byte[] getObject(int index) {
     return get(index);
   }
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/LargeVarCharVector.java b/java/vector/src/main/java/org/apache/arrow/vector/LargeVarCharVector.java
index 6f08fcb81f..df424c8748 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/LargeVarCharVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/LargeVarCharVector.java
@@ -121,6 +121,7 @@ public final class LargeVarCharVector extends BaseLargeVariableWidthVector {
    * @param index   position of element to get
    * @return Text object for non-null element, null otherwise
    */
+  @Override
   public Text getObject(int index) {
     assert index >= 0;
     if (NULL_CHECKING_ENABLED && isSet(index) == 0) {
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java
index 518ee70739..37a6fe1104 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/SmallIntVector.java
@@ -131,6 +131,7 @@ public final class SmallIntVector extends BaseFixedWidthVector implements BaseIn
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public Short getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java
index 86738cd221..c463dc3633 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeMicroVector.java
@@ -131,6 +131,7 @@ public final class TimeMicroVector extends BaseFixedWidthVector {
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public Long getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java
index 480add9109..1e745d9b99 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeMilliVector.java
@@ -133,6 +133,7 @@ public final class TimeMilliVector extends BaseFixedWidthVector {
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public LocalDateTime getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java
index 82609cdc44..426e865a5c 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeNanoVector.java
@@ -131,6 +131,7 @@ public final class TimeNanoVector extends BaseFixedWidthVector {
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public Long getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java
index 9b7614e55b..c760ed29e0 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeSecVector.java
@@ -131,6 +131,7 @@ public final class TimeSecVector extends BaseFixedWidthVector {
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public Integer getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java
index a37b444d1a..b515f8e2c8 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroTZVector.java
@@ -133,6 +133,7 @@ public final class TimeStampMicroTZVector extends TimeStampVector {
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public Long getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java
index 88ce27a187..2f65921f22 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMicroVector.java
@@ -119,6 +119,7 @@ public final class TimeStampMicroVector extends TimeStampVector {
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public LocalDateTime getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java
index 775594ceea..d029309943 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliTZVector.java
@@ -133,6 +133,7 @@ public final class TimeStampMilliTZVector extends TimeStampVector {
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public Long getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java
index a42773269f..96440fd5ac 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampMilliVector.java
@@ -119,6 +119,7 @@ public final class TimeStampMilliVector extends TimeStampVector {
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public LocalDateTime getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java
index af43cf6fc9..f93ec9b24c 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoTZVector.java
@@ -133,6 +133,7 @@ public final class TimeStampNanoTZVector extends TimeStampVector {
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public Long getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java
index 7b02b1c87d..723e62f8d6 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampNanoVector.java
@@ -119,6 +119,7 @@ public final class TimeStampNanoVector extends TimeStampVector {
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public LocalDateTime getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java
index 1e24914033..2de01fd52e 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/TimeStampSecVector.java
@@ -119,6 +119,7 @@ public final class TimeStampSecVector extends TimeStampVector {
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public LocalDateTime getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java b/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java
index 4c4eee1342..e9ea59298d 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/TinyIntVector.java
@@ -131,6 +131,7 @@ public final class TinyIntVector extends BaseFixedWidthVector implements BaseInt
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public Byte getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/TypeLayout.java b/java/vector/src/main/java/org/apache/arrow/vector/TypeLayout.java
index 60fe2a6a6e..ae465418cf 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/TypeLayout.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/TypeLayout.java
@@ -55,7 +55,7 @@ import org.apache.arrow.vector.types.pojo.ArrowType.Utf8;
 public class TypeLayout {
 
   /**
-   * Constructs a new {@TypeLayout} for the given <code>arrowType</code>.
+   * Constructs a new {@link TypeLayout} for the given <code>arrowType</code>.
    */
   public static TypeLayout getTypeLayout(final ArrowType arrowType) {
     TypeLayout layout = arrowType.accept(new ArrowTypeVisitor<TypeLayout>() {
@@ -421,6 +421,7 @@ public class TypeLayout {
     return types;
   }
 
+  @Override
   public String toString() {
     return bufferLayouts.toString();
   }
@@ -438,7 +439,7 @@ public class TypeLayout {
     if (obj == null) {
       return false;
     }
-    if (getClass() != obj.getClass()) {
+    if (!(obj instanceof TypeLayout)) {
       return false;
     }
     TypeLayout other = (TypeLayout) obj;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java
index 777df3fb1e..fcb04eaf08 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt1Vector.java
@@ -136,6 +136,7 @@ public final class UInt1Vector extends BaseFixedWidthVector implements BaseIntVe
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public Byte getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java
index e5b95be191..a9708a4faa 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt2Vector.java
@@ -127,6 +127,7 @@ public final class UInt2Vector extends BaseFixedWidthVector implements BaseIntVe
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public Character getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java
index bda98b1200..f9bed0c013 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt4Vector.java
@@ -136,6 +136,7 @@ public final class UInt4Vector extends BaseFixedWidthVector implements BaseIntVe
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public Integer getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java b/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java
index 5e7c18902f..a3e16b5e30 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/UInt8Vector.java
@@ -136,6 +136,7 @@ public final class UInt8Vector extends BaseFixedWidthVector implements BaseIntVe
    * @param index   position of element
    * @return element at given index
    */
+  @Override
   public Long getObject(int index) {
     if (isSet(index) == 0) {
       return null;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/VarBinaryVector.java b/java/vector/src/main/java/org/apache/arrow/vector/VarBinaryVector.java
index 87790c1168..ab67ebad96 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/VarBinaryVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/VarBinaryVector.java
@@ -132,6 +132,7 @@ public final class VarBinaryVector extends BaseVariableWidthVector {
    * @param index   position of element to get
    * @return byte array for non-null element, null otherwise
    */
+  @Override
   public byte[] getObject(int index) {
     return get(index);
   }
@@ -176,7 +177,7 @@ public final class VarBinaryVector extends BaseVariableWidthVector {
     BitVectorHelper.setBit(validityBuffer, index);
     final int dataLength = holder.end - holder.start;
     final int startOffset = getStartOffset(index);
-    offsetBuffer.setInt((index + 1) * OFFSET_WIDTH, startOffset + dataLength);
+    offsetBuffer.setInt((index + 1) * ((long) OFFSET_WIDTH), startOffset + dataLength);
     valueBuffer.setBytes(startOffset, holder.buffer, holder.start, dataLength);
     lastSet = index;
   }
@@ -196,7 +197,7 @@ public final class VarBinaryVector extends BaseVariableWidthVector {
     fillHoles(index);
     BitVectorHelper.setBit(validityBuffer, index);
     final int startOffset = getStartOffset(index);
-    offsetBuffer.setInt((index + 1) * OFFSET_WIDTH, startOffset + dataLength);
+    offsetBuffer.setInt((index + 1) * ((long) OFFSET_WIDTH), startOffset + dataLength);
     valueBuffer.setBytes(startOffset, holder.buffer, holder.start, dataLength);
     lastSet = index;
   }
@@ -215,10 +216,10 @@ public final class VarBinaryVector extends BaseVariableWidthVector {
     final int startOffset = getStartOffset(index);
     if (holder.isSet != 0) {
       final int dataLength = holder.end - holder.start;
-      offsetBuffer.setInt((index + 1) * OFFSET_WIDTH, startOffset + dataLength);
+      offsetBuffer.setInt((index + 1) * ((long) OFFSET_WIDTH), startOffset + dataLength);
       valueBuffer.setBytes(startOffset, holder.buffer, holder.start, dataLength);
     } else {
-      offsetBuffer.setInt((index + 1) * OFFSET_WIDTH, startOffset);
+      offsetBuffer.setInt((index + 1) * ((long) OFFSET_WIDTH), startOffset);
     }
     lastSet = index;
   }
@@ -238,7 +239,7 @@ public final class VarBinaryVector extends BaseVariableWidthVector {
       handleSafe(index, dataLength);
       fillHoles(index);
       final int startOffset = getStartOffset(index);
-      offsetBuffer.setInt((index + 1) * OFFSET_WIDTH, startOffset + dataLength);
+      offsetBuffer.setInt((index + 1) * ((long) OFFSET_WIDTH), startOffset + dataLength);
       valueBuffer.setBytes(startOffset, holder.buffer, holder.start, dataLength);
     } else {
       fillEmpties(index + 1);
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/VarCharVector.java b/java/vector/src/main/java/org/apache/arrow/vector/VarCharVector.java
index 7350dc99bb..c6d5a7090b 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/VarCharVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/VarCharVector.java
@@ -118,6 +118,7 @@ public final class VarCharVector extends BaseVariableWidthVector {
    * @param index   position of element to get
    * @return Text object for non-null element, null otherwise
    */
+  @Override
   public Text getObject(int index) {
     assert index >= 0;
     if (NULL_CHECKING_ENABLED && isSet(index) == 0) {
@@ -182,7 +183,7 @@ public final class VarCharVector extends BaseVariableWidthVector {
     BitVectorHelper.setBit(validityBuffer, index);
     final int dataLength = holder.end - holder.start;
     final int startOffset = getStartOffset(index);
-    offsetBuffer.setInt((index + 1) * OFFSET_WIDTH, startOffset + dataLength);
+    offsetBuffer.setInt((index + 1) * ((long) OFFSET_WIDTH), startOffset + dataLength);
     valueBuffer.setBytes(startOffset, holder.buffer, holder.start, dataLength);
     lastSet = index;
   }
@@ -203,7 +204,7 @@ public final class VarCharVector extends BaseVariableWidthVector {
 
     BitVectorHelper.setBit(validityBuffer, index);
     final int startOffset = getStartOffset(index);
-    offsetBuffer.setInt((index + 1) * OFFSET_WIDTH, startOffset + dataLength);
+    offsetBuffer.setInt((index + 1) * ((long) OFFSET_WIDTH), startOffset + dataLength);
     valueBuffer.setBytes(startOffset, holder.buffer, holder.start, dataLength);
     lastSet = index;
   }
@@ -222,10 +223,10 @@ public final class VarCharVector extends BaseVariableWidthVector {
     final int startOffset = getStartOffset(index);
     if (holder.isSet != 0) {
       final int dataLength = holder.end - holder.start;
-      offsetBuffer.setInt((index + 1) * OFFSET_WIDTH, startOffset + dataLength);
+      offsetBuffer.setInt((index + 1) * ((long) OFFSET_WIDTH), startOffset + dataLength);
       valueBuffer.setBytes(startOffset, holder.buffer, holder.start, dataLength);
     } else {
-      offsetBuffer.setInt((index + 1) * OFFSET_WIDTH, startOffset);
+      offsetBuffer.setInt((index + 1) * ((long) OFFSET_WIDTH), startOffset);
     }
     lastSet = index;
   }
@@ -245,7 +246,7 @@ public final class VarCharVector extends BaseVariableWidthVector {
       handleSafe(index, dataLength);
       fillHoles(index);
       final int startOffset = getStartOffset(index);
-      offsetBuffer.setInt((index + 1) * OFFSET_WIDTH, startOffset + dataLength);
+      offsetBuffer.setInt((index + 1) * ((long) OFFSET_WIDTH), startOffset + dataLength);
       valueBuffer.setBytes(startOffset, holder.buffer, holder.start, dataLength);
     } else {
       fillEmpties(index + 1);
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/AbstractContainerVector.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/AbstractContainerVector.java
index 898bfe3d39..8e6cdb6c45 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/complex/AbstractContainerVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/AbstractContainerVector.java
@@ -55,6 +55,7 @@ public abstract class AbstractContainerVector implements ValueVector, DensityAwa
     }
   }
 
+  @Override
   public BufferAllocator getAllocator() {
     return allocator;
   }
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/AbstractStructVector.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/AbstractStructVector.java
index 797a5af31f..80efea6cbe 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/complex/AbstractStructVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/AbstractStructVector.java
@@ -21,6 +21,7 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Locale;
 import java.util.stream.Collectors;
 
 import org.apache.arrow.memory.ArrowBuf;
@@ -56,7 +57,7 @@ public abstract class AbstractStructVector extends AbstractContainerVector {
     }
     ConflictPolicy conflictPolicy;
     try {
-      conflictPolicy = ConflictPolicy.valueOf(conflictPolicyStr.toUpperCase());
+      conflictPolicy = ConflictPolicy.valueOf(conflictPolicyStr.toUpperCase(Locale.ROOT));
     } catch (Exception e) {
       conflictPolicy = ConflictPolicy.CONFLICT_REPLACE;
     }
@@ -172,6 +173,7 @@ public abstract class AbstractStructVector extends AbstractContainerVector {
    * @return resultant {@link org.apache.arrow.vector.ValueVector}
    * @throws java.lang.IllegalStateException raised if there is a hard schema change
    */
+  @Override
   public <T extends FieldVector> T addOrGet(String childName, FieldType fieldType, Class<T> clazz) {
     final ValueVector existing = getChild(childName);
     boolean create = false;
@@ -411,7 +413,7 @@ public abstract class AbstractStructVector extends AbstractContainerVector {
 
     for (final ValueVector v : vectors.values()) {
       for (final ArrowBuf buf : v.getBuffers(false)) {
-        actualBufSize += buf.writerIndex();
+        actualBufSize += (int) buf.writerIndex();
       }
     }
     return actualBufSize;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/BaseRepeatedValueVector.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/BaseRepeatedValueVector.java
index 95deceb4e7..8ba2e48dc2 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/complex/BaseRepeatedValueVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/BaseRepeatedValueVector.java
@@ -54,7 +54,7 @@ public abstract class BaseRepeatedValueVector extends BaseValueVector implements
   public static final byte OFFSET_WIDTH = 4;
   protected ArrowBuf offsetBuffer;
   protected FieldVector vector;
-  protected final CallBack callBack;
+  protected final CallBack repeatedCallBack;
   protected int valueCount;
   protected long offsetAllocationSizeInBytes = INITIAL_VALUE_ALLOCATION * OFFSET_WIDTH;
   private final String name;
@@ -70,7 +70,7 @@ public abstract class BaseRepeatedValueVector extends BaseValueVector implements
     this.name = name;
     this.offsetBuffer = allocator.getEmpty();
     this.vector = Preconditions.checkNotNull(vector, "data vector cannot be null");
-    this.callBack = callBack;
+    this.repeatedCallBack = callBack;
     this.valueCount = 0;
   }
 
@@ -123,7 +123,7 @@ public abstract class BaseRepeatedValueVector extends BaseValueVector implements
     }
 
     newAllocationSize = CommonUtil.nextPowerOfTwo(newAllocationSize);
-    newAllocationSize = Math.min(newAllocationSize, (long) (OFFSET_WIDTH) * Integer.MAX_VALUE);
+    newAllocationSize = Math.min(newAllocationSize, (long) OFFSET_WIDTH * Integer.MAX_VALUE);
     assert newAllocationSize >= 1;
 
     if (newAllocationSize > MAX_ALLOCATION_SIZE || newAllocationSize <= offsetBuffer.capacity()) {
@@ -157,7 +157,7 @@ public abstract class BaseRepeatedValueVector extends BaseValueVector implements
 
   @Override
   public void setInitialCapacity(int numRecords) {
-    offsetAllocationSizeInBytes = (numRecords + 1) * OFFSET_WIDTH;
+    offsetAllocationSizeInBytes = (numRecords + 1L) * OFFSET_WIDTH;
     if (vector instanceof BaseFixedWidthVector || vector instanceof BaseVariableWidthVector) {
       vector.setInitialCapacity(numRecords * RepeatedValueVector.DEFAULT_REPEAT_PER_RECORD);
     } else {
@@ -194,7 +194,7 @@ public abstract class BaseRepeatedValueVector extends BaseValueVector implements
       throw new OversizedAllocationException("Requested amount of memory is more than max allowed");
     }
 
-    offsetAllocationSizeInBytes = (numRecords + 1) * OFFSET_WIDTH;
+    offsetAllocationSizeInBytes = (numRecords + 1L) * OFFSET_WIDTH;
 
     int innerValueCapacity = Math.max((int) (numRecords * density), 1);
 
@@ -222,7 +222,7 @@ public abstract class BaseRepeatedValueVector extends BaseValueVector implements
    *                              for in this vector across all records.
    */
   public void setInitialTotalCapacity(int numRecords, int totalNumberOfElements) {
-    offsetAllocationSizeInBytes = (numRecords + 1) * OFFSET_WIDTH;
+    offsetAllocationSizeInBytes = (numRecords + 1L) * OFFSET_WIDTH;
     vector.setInitialCapacity(totalNumberOfElements);
   }
 
@@ -313,13 +313,13 @@ public abstract class BaseRepeatedValueVector extends BaseValueVector implements
   public <T extends ValueVector> AddOrGetResult<T> addOrGetVector(FieldType fieldType) {
     boolean created = false;
     if (vector instanceof NullVector) {
-      vector = fieldType.createNewSingleVector(defaultDataVectorName, allocator, callBack);
+      vector = fieldType.createNewSingleVector(defaultDataVectorName, allocator, repeatedCallBack);
       // returned vector must have the same field
       created = true;
-      if (callBack != null &&
+      if (repeatedCallBack != null &&
               // not a schema change if changing from ZeroVector to ZeroVector
               (fieldType.getType().getTypeID() != ArrowTypeID.Null)) {
-        callBack.doWork();
+        repeatedCallBack.doWork();
       }
     }
 
@@ -355,6 +355,7 @@ public abstract class BaseRepeatedValueVector extends BaseValueVector implements
   }
 
   /** Return if value at index is null (this implementation is always false). */
+  @Override
   public boolean isNull(int index) {
     return false;
   }
@@ -376,6 +377,7 @@ public abstract class BaseRepeatedValueVector extends BaseValueVector implements
   }
 
   /** Preallocates the number of repeated values. */
+  @Override
   public void setValueCount(int valueCount) {
     this.valueCount = valueCount;
     while (valueCount > getOffsetBufferValueCapacity()) {
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/FixedSizeListVector.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/FixedSizeListVector.java
index 367335436a..48b53d7de2 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/complex/FixedSizeListVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/FixedSizeListVector.java
@@ -234,11 +234,9 @@ public class FixedSizeListVector extends BaseValueVector implements BaseListVect
     } finally {
       if (!success) {
         clear();
-        return false;
       }
     }
-
-    return true;
+    return success;
   }
 
   private void allocateValidityBuffer(final long size) {
@@ -257,12 +255,12 @@ public class FixedSizeListVector extends BaseValueVector implements BaseListVect
 
   private void reallocValidityBuffer() {
     final int currentBufferCapacity = checkedCastToInt(validityBuffer.capacity());
-    long newAllocationSize = currentBufferCapacity * 2;
+    long newAllocationSize = currentBufferCapacity * 2L;
     if (newAllocationSize == 0) {
       if (validityAllocationSizeInBytes > 0) {
         newAllocationSize = validityAllocationSizeInBytes;
       } else {
-        newAllocationSize = getValidityBufferSizeFromCount(INITIAL_VALUE_ALLOCATION) * 2;
+        newAllocationSize = getValidityBufferSizeFromCount(INITIAL_VALUE_ALLOCATION) * 2L;
       }
     }
 
@@ -273,7 +271,7 @@ public class FixedSizeListVector extends BaseValueVector implements BaseListVect
       throw new OversizedAllocationException("Unable to expand the buffer");
     }
 
-    final ArrowBuf newBuf = allocator.buffer((int) newAllocationSize);
+    final ArrowBuf newBuf = allocator.buffer(newAllocationSize);
     newBuf.setBytes(0, validityBuffer, 0, currentBufferCapacity);
     newBuf.setZero(currentBufferCapacity, newBuf.capacity() - currentBufferCapacity);
     validityBuffer.getReferenceManager().release(1);
@@ -468,6 +466,7 @@ public class FixedSizeListVector extends BaseValueVector implements BaseListVect
   /**
    * Returns whether the value at index null.
    */
+  @Override
   public boolean isNull(int index) {
     return (isSet(index) == 0);
   }
@@ -503,6 +502,7 @@ public class FixedSizeListVector extends BaseValueVector implements BaseListVect
   /**
    * Sets the value at index to null.  Reallocates if index is larger than capacity.
    */
+  @Override
   public void setNull(int index) {
     while (index >= getValidityBufferValueCapacity()) {
       reallocValidityBuffer();
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/LargeListVector.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/LargeListVector.java
index 312bed6ab3..b934cbd81d 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/complex/LargeListVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/LargeListVector.java
@@ -194,7 +194,7 @@ public class LargeListVector extends BaseValueVector implements RepeatedValueVec
       throw new OversizedAllocationException("Requested amount of memory is more than max allowed");
     }
 
-    offsetAllocationSizeInBytes = (numRecords + 1) * OFFSET_WIDTH;
+    offsetAllocationSizeInBytes = (numRecords + 1L) * OFFSET_WIDTH;
 
     int innerValueCapacity = Math.max((int) (numRecords * density), 1);
 
@@ -222,7 +222,7 @@ public class LargeListVector extends BaseValueVector implements RepeatedValueVec
    *                              for in this vector across all records.
    */
   public void setInitialTotalCapacity(int numRecords, int totalNumberOfElements) {
-    offsetAllocationSizeInBytes = (numRecords + 1) * OFFSET_WIDTH;
+    offsetAllocationSizeInBytes = (numRecords + 1L) * OFFSET_WIDTH;
     vector.setInitialCapacity(totalNumberOfElements);
   }
 
@@ -332,6 +332,7 @@ public class LargeListVector extends BaseValueVector implements RepeatedValueVec
    *
    * @return false if memory allocation fails, true otherwise.
    */
+  @Override
   public boolean allocateNewSafe() {
     boolean success = false;
     try {
@@ -347,7 +348,7 @@ public class LargeListVector extends BaseValueVector implements RepeatedValueVec
       } catch (Exception e) {
         e.printStackTrace();
         clear();
-        return false;
+        success = false;
       } finally {
         if (!dataAlloc) {
           clear();
@@ -357,10 +358,9 @@ public class LargeListVector extends BaseValueVector implements RepeatedValueVec
     } finally {
       if (!success) {
         clear();
-        return false;
       }
     }
-    return true;
+    return success;
   }
 
   private void allocateValidityBuffer(final long size) {
@@ -408,7 +408,7 @@ public class LargeListVector extends BaseValueVector implements RepeatedValueVec
     }
 
     newAllocationSize = CommonUtil.nextPowerOfTwo(newAllocationSize);
-    newAllocationSize = Math.min(newAllocationSize, (long) (OFFSET_WIDTH) * Integer.MAX_VALUE);
+    newAllocationSize = Math.min(newAllocationSize, (long) OFFSET_WIDTH * Integer.MAX_VALUE);
     assert newAllocationSize >= 1;
 
     if (newAllocationSize > MAX_ALLOCATION_SIZE || newAllocationSize <= offsetBuffer.capacity()) {
@@ -425,12 +425,12 @@ public class LargeListVector extends BaseValueVector implements RepeatedValueVec
 
   private void reallocValidityBuffer() {
     final int currentBufferCapacity = checkedCastToInt(validityBuffer.capacity());
-    long newAllocationSize = currentBufferCapacity * 2;
+    long newAllocationSize = currentBufferCapacity * 2L;
     if (newAllocationSize == 0) {
       if (validityAllocationSizeInBytes > 0) {
         newAllocationSize = validityAllocationSizeInBytes;
       } else {
-        newAllocationSize = getValidityBufferSizeFromCount(INITIAL_VALUE_ALLOCATION) * 2;
+        newAllocationSize = getValidityBufferSizeFromCount(INITIAL_VALUE_ALLOCATION) * 2L;
       }
     }
     newAllocationSize = CommonUtil.nextPowerOfTwo(newAllocationSize);
@@ -440,7 +440,7 @@ public class LargeListVector extends BaseValueVector implements RepeatedValueVec
       throw new OversizedAllocationException("Unable to expand the buffer");
     }
 
-    final ArrowBuf newBuf = allocator.buffer((int) newAllocationSize);
+    final ArrowBuf newBuf = allocator.buffer(newAllocationSize);
     newBuf.setBytes(0, validityBuffer, 0, currentBufferCapacity);
     newBuf.setZero(currentBufferCapacity, newBuf.capacity() - currentBufferCapacity);
     validityBuffer.getReferenceManager().release(1);
@@ -526,7 +526,7 @@ public class LargeListVector extends BaseValueVector implements RepeatedValueVec
 
   @Override
   public long getValidityBufferAddress() {
-    return (validityBuffer.memoryAddress());
+    return validityBuffer.memoryAddress();
   }
 
   @Override
@@ -536,7 +536,7 @@ public class LargeListVector extends BaseValueVector implements RepeatedValueVec
 
   @Override
   public long getOffsetBufferAddress() {
-    return (offsetBuffer.memoryAddress());
+    return offsetBuffer.memoryAddress();
   }
 
   @Override
@@ -754,6 +754,7 @@ public class LargeListVector extends BaseValueVector implements RepeatedValueVec
    * Initialize the data vector (and execute callback) if it hasn't already been done,
    * returns the data vector.
    */
+  @Override
   public <T extends ValueVector> AddOrGetResult<T> addOrGetVector(FieldType fieldType) {
     boolean created = false;
     if (vector instanceof NullVector) {
@@ -988,6 +989,7 @@ public class LargeListVector extends BaseValueVector implements RepeatedValueVec
    * Sets list at index to be null.
    * @param index position in vector
    */
+  @Override
   public void setNull(int index) {
     while (index >= getValidityAndOffsetValueCapacity()) {
       reallocValidityAndOffsetBuffers();
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/ListVector.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/ListVector.java
index e5a83921b3..5154ac1727 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/complex/ListVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/ListVector.java
@@ -291,6 +291,7 @@ public class ListVector extends BaseRepeatedValueVector implements PromotableVec
    *
    * @return false if memory allocation fails, true otherwise.
    */
+  @Override
   public boolean allocateNewSafe() {
     boolean success = false;
     try {
@@ -303,10 +304,9 @@ public class ListVector extends BaseRepeatedValueVector implements PromotableVec
     } finally {
       if (!success) {
         clear();
-        return false;
       }
     }
-    return true;
+    return success;
   }
 
   protected void allocateValidityBuffer(final long size) {
@@ -336,12 +336,23 @@ public class ListVector extends BaseRepeatedValueVector implements PromotableVec
 
   private void reallocValidityBuffer() {
     final int currentBufferCapacity = checkedCastToInt(validityBuffer.capacity());
-    long newAllocationSize = currentBufferCapacity * 2;
+    long newAllocationSize = getNewAllocationSize(currentBufferCapacity);
+
+    final ArrowBuf newBuf = allocator.buffer(newAllocationSize);
+    newBuf.setBytes(0, validityBuffer, 0, currentBufferCapacity);
+    newBuf.setZero(currentBufferCapacity, newBuf.capacity() - currentBufferCapacity);
+    validityBuffer.getReferenceManager().release(1);
+    validityBuffer = newBuf;
+    validityAllocationSizeInBytes = (int) newAllocationSize;
+  }
+
+  private long getNewAllocationSize(int currentBufferCapacity) {
+    long newAllocationSize = currentBufferCapacity * 2L;
     if (newAllocationSize == 0) {
       if (validityAllocationSizeInBytes > 0) {
         newAllocationSize = validityAllocationSizeInBytes;
       } else {
-        newAllocationSize = getValidityBufferSizeFromCount(INITIAL_VALUE_ALLOCATION) * 2;
+        newAllocationSize = getValidityBufferSizeFromCount(INITIAL_VALUE_ALLOCATION) * 2L;
       }
     }
     newAllocationSize = CommonUtil.nextPowerOfTwo(newAllocationSize);
@@ -350,13 +361,7 @@ public class ListVector extends BaseRepeatedValueVector implements PromotableVec
     if (newAllocationSize > MAX_ALLOCATION_SIZE) {
       throw new OversizedAllocationException("Unable to expand the buffer");
     }
-
-    final ArrowBuf newBuf = allocator.buffer((int) newAllocationSize);
-    newBuf.setBytes(0, validityBuffer, 0, currentBufferCapacity);
-    newBuf.setZero(currentBufferCapacity, newBuf.capacity() - currentBufferCapacity);
-    validityBuffer.getReferenceManager().release(1);
-    validityBuffer = newBuf;
-    validityAllocationSizeInBytes = (int) newAllocationSize;
+    return newAllocationSize;
   }
 
   /**
@@ -425,7 +430,7 @@ public class ListVector extends BaseRepeatedValueVector implements PromotableVec
 
   @Override
   public long getValidityBufferAddress() {
-    return (validityBuffer.memoryAddress());
+    return validityBuffer.memoryAddress();
   }
 
   @Override
@@ -435,7 +440,7 @@ public class ListVector extends BaseRepeatedValueVector implements PromotableVec
 
   @Override
   public long getOffsetBufferAddress() {
-    return (offsetBuffer.memoryAddress());
+    return offsetBuffer.memoryAddress();
   }
 
   @Override
@@ -625,6 +630,7 @@ public class ListVector extends BaseRepeatedValueVector implements PromotableVec
   }
 
   /** Initialize the child data vector to field type.  */
+  @Override
   public <T extends ValueVector> AddOrGetResult<T> addOrGetVector(FieldType fieldType) {
     AddOrGetResult<T> result = super.addOrGetVector(fieldType);
     invalidateReader();
@@ -837,6 +843,7 @@ public class ListVector extends BaseRepeatedValueVector implements PromotableVec
    * Sets list at index to be null.
    * @param index position in vector
    */
+  @Override
   public void setNull(int index) {
     while (index >= getValidityAndOffsetValueCapacity()) {
       reallocValidityAndOffsetBuffers();
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/StructVector.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/StructVector.java
index 27db157480..9d0dc5ca3f 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/complex/StructVector.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/StructVector.java
@@ -495,10 +495,9 @@ public class StructVector extends NonNullableStructVector implements FieldVector
     } finally {
       if (!success) {
         clear();
-        return false;
       }
     }
-    return true;
+    return success;
   }
 
   private void allocateValidityBuffer(final long size) {
@@ -518,12 +517,23 @@ public class StructVector extends NonNullableStructVector implements FieldVector
 
   private void reallocValidityBuffer() {
     final int currentBufferCapacity = checkedCastToInt(validityBuffer.capacity());
-    long newAllocationSize = currentBufferCapacity * 2;
+    long newAllocationSize = getNewAllocationSize(currentBufferCapacity);
+
+    final ArrowBuf newBuf = allocator.buffer(newAllocationSize);
+    newBuf.setBytes(0, validityBuffer, 0, currentBufferCapacity);
+    newBuf.setZero(currentBufferCapacity, newBuf.capacity() - currentBufferCapacity);
+    validityBuffer.getReferenceManager().release(1);
+    validityBuffer = newBuf;
+    validityAllocationSizeInBytes = (int) newAllocationSize;
+  }
+
+  private long getNewAllocationSize(int currentBufferCapacity) {
+    long newAllocationSize = currentBufferCapacity * 2L;
     if (newAllocationSize == 0) {
       if (validityAllocationSizeInBytes > 0) {
         newAllocationSize = validityAllocationSizeInBytes;
       } else {
-        newAllocationSize = BitVectorHelper.getValidityBufferSize(BaseValueVector.INITIAL_VALUE_ALLOCATION) * 2;
+        newAllocationSize = BitVectorHelper.getValidityBufferSize(BaseValueVector.INITIAL_VALUE_ALLOCATION) * 2L;
       }
     }
     newAllocationSize = CommonUtil.nextPowerOfTwo(newAllocationSize);
@@ -532,13 +542,7 @@ public class StructVector extends NonNullableStructVector implements FieldVector
     if (newAllocationSize > BaseValueVector.MAX_ALLOCATION_SIZE) {
       throw new OversizedAllocationException("Unable to expand the buffer");
     }
-
-    final ArrowBuf newBuf = allocator.buffer((int) newAllocationSize);
-    newBuf.setBytes(0, validityBuffer, 0, currentBufferCapacity);
-    newBuf.setZero(currentBufferCapacity, newBuf.capacity() - currentBufferCapacity);
-    validityBuffer.getReferenceManager().release(1);
-    validityBuffer = newBuf;
-    validityAllocationSizeInBytes = (int) newAllocationSize;
+    return newAllocationSize;
   }
 
   @Override
@@ -607,6 +611,7 @@ public class StructVector extends NonNullableStructVector implements FieldVector
   /**
    * Return the number of null values in the vector.
    */
+  @Override
   public int getNullCount() {
     return BitVectorHelper.getNullCount(validityBuffer, valueCount);
   }
@@ -614,6 +619,7 @@ public class StructVector extends NonNullableStructVector implements FieldVector
   /**
    * Returns true if the value at the provided index is null.
    */
+  @Override
   public boolean isNull(int index) {
     return isSet(index) == 0;
   }
@@ -643,6 +649,7 @@ public class StructVector extends NonNullableStructVector implements FieldVector
   /**
    * Marks the value at index as null/not set.
    */
+  @Override
   public void setNull(int index) {
     while (index >= getValidityBufferValueCapacity()) {
       /* realloc the inner buffers if needed */
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/AbstractBaseReader.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/AbstractBaseReader.java
index c80fcb89d0..028901ee84 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/AbstractBaseReader.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/AbstractBaseReader.java
@@ -46,6 +46,7 @@ abstract class AbstractBaseReader implements FieldReader {
     return index;
   }
 
+  @Override
   public void setPosition(int index) {
     this.index = index;
   }
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/PromotableWriter.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/PromotableWriter.java
index f7be277f59..7f724829ef 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/PromotableWriter.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/PromotableWriter.java
@@ -19,6 +19,7 @@ package org.apache.arrow.vector.complex.impl;
 
 import java.math.BigDecimal;
 import java.nio.ByteBuffer;
+import java.util.Locale;
 
 import org.apache.arrow.memory.ArrowBuf;
 import org.apache.arrow.vector.FieldVector;
@@ -301,13 +302,15 @@ public class PromotableWriter extends AbstractPromotableFieldWriter {
     return writer.isEmptyStruct();
   }
 
+  @Override
   protected FieldWriter getWriter() {
     return writer;
   }
 
   private FieldWriter promoteToUnion() {
     String name = vector.getField().getName();
-    TransferPair tp = vector.getTransferPair(vector.getMinorType().name().toLowerCase(), vector.getAllocator());
+    TransferPair tp = vector.getTransferPair(vector.getMinorType().name().toLowerCase(Locale.ROOT),
+        vector.getAllocator());
     tp.transfer();
     if (parentContainer != null) {
       // TODO allow dictionaries in complex types
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/StructOrListWriterImpl.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/StructOrListWriterImpl.java
index 5c4cd2af98..6a217bbc8b 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/StructOrListWriterImpl.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/StructOrListWriterImpl.java
@@ -88,8 +88,9 @@ public class StructOrListWriterImpl implements StructOrListWriter {
    *
    * @param name Unused.
    *
-   * @deprecated use {@link #listOfStruct()} instead.
+   * @deprecated use {@link #listOfStruct(String)} instead.
    */
+  @Deprecated
   public StructOrListWriter listoftstruct(final String name) {
     return listOfStruct(name);
   }
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/UnionFixedSizeListReader.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/UnionFixedSizeListReader.java
index ece729ae56..f69fea3bd5 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/UnionFixedSizeListReader.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/UnionFixedSizeListReader.java
@@ -99,6 +99,7 @@ public class UnionFixedSizeListReader extends AbstractFieldReader {
     }
   }
 
+  @Override
   public void copyAsValue(ListWriter writer) {
     ComplexCopier.copy(this, (FieldWriter) writer);
   }
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/UnionLargeListReader.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/UnionLargeListReader.java
index faf088b559..0f3ba50f2b 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/UnionLargeListReader.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/UnionLargeListReader.java
@@ -34,7 +34,6 @@ public class UnionLargeListReader extends AbstractFieldReader {
 
   private LargeListVector vector;
   private ValueVector data;
-  private long index;
   private static final long OFFSET_WIDTH = 8L;
 
   public UnionLargeListReader(LargeListVector vector) {
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/UnionListReader.java b/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/UnionListReader.java
index 74548bc985..7dadcabdce 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/UnionListReader.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/complex/impl/UnionListReader.java
@@ -60,8 +60,8 @@ public class UnionListReader extends AbstractFieldReader {
       currentOffset = 0;
       maxOffset = 0;
     } else {
-      currentOffset = vector.getOffsetBuffer().getInt(index * OFFSET_WIDTH) - 1;
-      maxOffset = vector.getOffsetBuffer().getInt((index + 1) * OFFSET_WIDTH);
+      currentOffset = vector.getOffsetBuffer().getInt(index * (long) OFFSET_WIDTH) - 1;
+      maxOffset = vector.getOffsetBuffer().getInt((index + 1) * (long) OFFSET_WIDTH);
     }
   }
 
@@ -106,6 +106,7 @@ public class UnionListReader extends AbstractFieldReader {
     }
   }
 
+  @Override
   public void copyAsValue(ListWriter writer) {
     ComplexCopier.copy(this, (FieldWriter) writer);
   }
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/dictionary/Dictionary.java b/java/vector/src/main/java/org/apache/arrow/vector/dictionary/Dictionary.java
index 6f40e5814b..5687e4025a 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/dictionary/Dictionary.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/dictionary/Dictionary.java
@@ -60,7 +60,7 @@ public class Dictionary {
     if (this == o) {
       return true;
     }
-    if (o == null || getClass() != o.getClass()) {
+    if (!(o instanceof Dictionary)) {
       return false;
     }
     Dictionary that = (Dictionary) o;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/table/package-info.java b/java/vector/src/main/java/org/apache/arrow/vector/table/package-info.java
index cdd5093b9f..b11ada5129 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/table/package-info.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/table/package-info.java
@@ -17,7 +17,7 @@
 
 package org.apache.arrow.vector.table;
 
-/**
+/*
  *  Support for Table, an immutable, columnar, tabular data structure based on FieldVectors.
  *  See the Arrow Java documentation for details: <a href="https://arrow.apache.org/docs/java/table.html">Table</a>
  */
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/types/FloatingPointPrecision.java b/java/vector/src/main/java/org/apache/arrow/vector/types/FloatingPointPrecision.java
index c52fc1243d..85c2532236 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/types/FloatingPointPrecision.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/types/FloatingPointPrecision.java
@@ -39,7 +39,7 @@ public enum FloatingPointPrecision {
     }
   }
 
-  private short flatbufID;
+  private final short flatbufID;
 
   private FloatingPointPrecision(short flatbufID) {
     this.flatbufID = flatbufID;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/types/IntervalUnit.java b/java/vector/src/main/java/org/apache/arrow/vector/types/IntervalUnit.java
index 1b17240d01..d2314ea7cc 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/types/IntervalUnit.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/types/IntervalUnit.java
@@ -36,7 +36,7 @@ public enum IntervalUnit {
     }
   }
 
-  private short flatbufID;
+  private final short flatbufID;
 
   private IntervalUnit(short flatbufID) {
     this.flatbufID = flatbufID;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/types/pojo/DictionaryEncoding.java b/java/vector/src/main/java/org/apache/arrow/vector/types/pojo/DictionaryEncoding.java
index 8d41b92d86..592e18826f 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/types/pojo/DictionaryEncoding.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/types/pojo/DictionaryEncoding.java
@@ -74,7 +74,7 @@ public class DictionaryEncoding {
   public boolean equals(Object o) {
     if (this == o) {
       return true;
-    } else if (o == null || getClass() != o.getClass()) {
+    } else if (!(o instanceof DictionaryEncoding)) {
       return false;
     }
     DictionaryEncoding that = (DictionaryEncoding) o;
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/types/pojo/Field.java b/java/vector/src/main/java/org/apache/arrow/vector/types/pojo/Field.java
index 54c609d4a1..d3623618e7 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/types/pojo/Field.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/types/pojo/Field.java
@@ -37,7 +37,6 @@ import org.apache.arrow.flatbuf.Type;
 import org.apache.arrow.memory.BufferAllocator;
 import org.apache.arrow.util.Collections2;
 import org.apache.arrow.vector.FieldVector;
-import org.apache.arrow.vector.TypeLayout;
 import org.apache.arrow.vector.types.pojo.ArrowType.ExtensionType;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -93,16 +92,19 @@ public class Field {
     this(name, new FieldType(nullable, type, dictionary, convertMetadata(metadata)), children);
   }
 
-  private Field(String name, FieldType fieldType, List<Field> children, TypeLayout typeLayout) {
+  /**
+   * Constructs a new Field object.
+   *
+   * @param name name of the field
+   * @param fieldType type of the field
+   * @param children child fields, if any
+   */
+  public Field(String name, FieldType fieldType, List<Field> children) {
     this.name = name;
     this.fieldType = checkNotNull(fieldType);
     this.children = children == null ? Collections.emptyList() : Collections2.toImmutableList(children);
   }
 
-  public Field(String name, FieldType fieldType, List<Field> children) {
-    this(name, fieldType, children, fieldType == null ? null : TypeLayout.getTypeLayout(fieldType.getType()));
-  }
-
   /**
    * Construct a new vector of this type using the given allocator.
    */
@@ -279,7 +281,7 @@ public class Field {
     }
     Field that = (Field) obj;
     return Objects.equals(this.name, that.name) &&
-        Objects.equals(this.isNullable(), that.isNullable()) &&
+        this.isNullable() == that.isNullable() &&
         Objects.equals(this.getType(), that.getType()) &&
         Objects.equals(this.getDictionary(), that.getDictionary()) &&
         Objects.equals(this.getMetadata(), that.getMetadata()) &&
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/types/pojo/FieldType.java b/java/vector/src/main/java/org/apache/arrow/vector/types/pojo/FieldType.java
index d5c0d85671..8988993920 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/types/pojo/FieldType.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/types/pojo/FieldType.java
@@ -118,7 +118,7 @@ public class FieldType {
       return false;
     }
     FieldType that = (FieldType) obj;
-    return Objects.equals(this.isNullable(), that.isNullable()) &&
+    return this.isNullable() == that.isNullable() &&
         Objects.equals(this.getType(), that.getType()) &&
         Objects.equals(this.getDictionary(), that.getDictionary()) &&
         Objects.equals(this.getMetadata(), that.getMetadata());
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/types/pojo/Schema.java b/java/vector/src/main/java/org/apache/arrow/vector/types/pojo/Schema.java
index dcffea0ef5..392b3c2e2e 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/types/pojo/Schema.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/types/pojo/Schema.java
@@ -159,10 +159,10 @@ public class Schema {
 
   /**
    * Private constructor to bypass automatic collection copy.
-   * @param unsafe a ignored argument. Its only purpose is to prevent using the constructor
+   * @param ignored an ignored argument. Its only purpose is to prevent using the constructor
    *     by accident because of type collisions (List vs Iterable).
    */
-  private Schema(boolean unsafe, List<Field> fields, Map<String, String> metadata) {
+  private Schema(boolean ignored, List<Field> fields, Map<String, String> metadata) {
     this.fields = fields;
     this.metadata = metadata;
   }
@@ -245,13 +245,12 @@ public class Schema {
 
   /**
    * Returns the serialized flatbuffer bytes of the schema wrapped in a message table.
-   * Use {@link #deserializeMessage() to rebuild the Schema.}
+   * Use {@link #deserializeMessage(ByteBuffer)} to rebuild the Schema.
    */
   public byte[] serializeAsMessage() {
     ByteArrayOutputStream out = new ByteArrayOutputStream();
     try (WriteChannel channel = new WriteChannel(Channels.newChannel(out))) {
-      long size = MessageSerializer.serialize(
-          new WriteChannel(Channels.newChannel(out)), this);
+      MessageSerializer.serialize(channel, this);
       return out.toByteArray();
     } catch (IOException ex) {
       throw new RuntimeException(ex);
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/util/MapWithOrdinalImpl.java b/java/vector/src/main/java/org/apache/arrow/vector/util/MapWithOrdinalImpl.java
index 7c9c0e9408..1f18587afd 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/util/MapWithOrdinalImpl.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/util/MapWithOrdinalImpl.java
@@ -27,8 +27,6 @@ import java.util.Set;
 import java.util.stream.Collectors;
 
 import org.eclipse.collections.impl.map.mutable.primitive.IntObjectHashMap;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 /**
  * An implementation of map that supports constant time look-up by a generic key or an ordinal.
@@ -48,7 +46,6 @@ import org.slf4j.LoggerFactory;
  * @param <V> value type
  */
 public class MapWithOrdinalImpl<K, V> implements MapWithOrdinal<K, V> {
-  private static final Logger logger = LoggerFactory.getLogger(MapWithOrdinalImpl.class);
 
   private final Map<K, Map.Entry<Integer, V>> primary = new LinkedHashMap<>();
   private final IntObjectHashMap<V> secondary = new IntObjectHashMap<>();
@@ -93,10 +90,6 @@ public class MapWithOrdinalImpl<K, V> implements MapWithOrdinal<K, V> {
       return oldPair == null ? null : oldPair.getValue();
     }
 
-    public boolean put(K key, V value, boolean override) {
-      return put(key, value) != null;
-    }
-
     @Override
     public V remove(Object key) {
       final Entry<Integer, V> oldPair = primary.remove(key);
@@ -146,6 +139,7 @@ public class MapWithOrdinalImpl<K, V> implements MapWithOrdinal<K, V> {
    * @param id ordinal value for lookup
    * @return an instance of V
    */
+  @Override
   public V getByOrdinal(int id) {
     return secondary.get(id);
   }
@@ -156,6 +150,7 @@ public class MapWithOrdinalImpl<K, V> implements MapWithOrdinal<K, V> {
    * @param key key for ordinal lookup
    * @return ordinal value corresponding to key if it exists or -1
    */
+  @Override
   public int getOrdinal(K key) {
     Map.Entry<Integer, V> pair = primary.get(key);
     if (pair != null) {
diff --git a/java/vector/src/main/java/org/apache/arrow/vector/util/Text.java b/java/vector/src/main/java/org/apache/arrow/vector/util/Text.java
index 5f5f5d3bd6..95e35ce693 100644
--- a/java/vector/src/main/java/org/apache/arrow/vector/util/Text.java
+++ b/java/vector/src/main/java/org/apache/arrow/vector/util/Text.java
@@ -210,7 +210,7 @@ public class Text extends ReusableByteArray {
   }
 
   /**
-   * Set to a utf8 byte array.
+   * Set to an utf8 byte array.
    *
    * @param utf8 the byte array to initialize from
    */
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/ITTestLargeVector.java b/java/vector/src/test/java/org/apache/arrow/vector/ITTestLargeVector.java
index 19648dc9e1..8596399e7e 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/ITTestLargeVector.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/ITTestLargeVector.java
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
 import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
 
 import org.apache.arrow.memory.ArrowBuf;
 import org.apache.arrow.memory.BufferAllocator;
@@ -133,7 +134,7 @@ public class ITTestLargeVector {
 
       for (int i = 0; i < vecLength; i++) {
         ArrowBuf buf = largeVec.get(i);
-        assertEquals(buf.capacity(), DecimalVector.TYPE_WIDTH);
+        assertEquals(DecimalVector.TYPE_WIDTH, buf.capacity());
         assertEquals(0, buf.getLong(0));
         assertEquals(0, buf.getLong(8));
 
@@ -215,7 +216,7 @@ public class ITTestLargeVector {
       logger.trace("Successfully allocated a vector with capacity " + vecLength);
 
       for (int i = 0; i < vecLength; i++) {
-        largeVec.setSafe(i, strElement.getBytes());
+        largeVec.setSafe(i, strElement.getBytes(StandardCharsets.UTF_8));
 
         if ((i + 1) % 10000 == 0) {
           logger.trace("Successfully written " + (i + 1) + " values");
@@ -228,7 +229,7 @@ public class ITTestLargeVector {
 
       for (int i = 0; i < vecLength; i++) {
         byte[] val = largeVec.get(i);
-        assertEquals(strElement, new String(val));
+        assertEquals(strElement, new String(val, StandardCharsets.UTF_8));
 
         if ((i + 1) % 10000 == 0) {
           logger.trace("Successfully read " + (i + 1) + " values");
@@ -254,7 +255,7 @@ public class ITTestLargeVector {
       logger.trace("Successfully allocated a vector with capacity " + vecLength);
 
       for (int i = 0; i < vecLength; i++) {
-        largeVec.setSafe(i, strElement.getBytes());
+        largeVec.setSafe(i, strElement.getBytes(StandardCharsets.UTF_8));
 
         if ((i + 1) % 10000 == 0) {
           logger.trace("Successfully written " + (i + 1) + " values");
@@ -267,7 +268,7 @@ public class ITTestLargeVector {
 
       for (int i = 0; i < vecLength; i++) {
         byte[] val = largeVec.get(i);
-        assertEquals(strElement, new String(val));
+        assertEquals(strElement, new String(val, StandardCharsets.UTF_8));
 
         if ((i + 1) % 10000 == 0) {
           logger.trace("Successfully read " + (i + 1) + " values");
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestBitVectorHelper.java b/java/vector/src/test/java/org/apache/arrow/vector/TestBitVectorHelper.java
index 96005dc511..1da4a4c491 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestBitVectorHelper.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestBitVectorHelper.java
@@ -47,7 +47,7 @@ public class TestBitVectorHelper {
       validityBuffer.setByte(0, 0xFF);
 
       count = BitVectorHelper.getNullCount(validityBuffer, 8);
-      assertEquals(count, 0);
+      assertEquals(0, count);
       validityBuffer.close();
 
       // test case 3, 1 null value for 0x7F
@@ -55,7 +55,7 @@ public class TestBitVectorHelper {
       validityBuffer.setByte(0, 0x7F);
 
       count = BitVectorHelper.getNullCount(validityBuffer, 8);
-      assertEquals(count, 1);
+      assertEquals(1, count);
       validityBuffer.close();
 
       // test case 4, validity buffer has multiple bytes, 11 items
@@ -64,7 +64,7 @@ public class TestBitVectorHelper {
       validityBuffer.setByte(1, 0b01010101);
 
       count = BitVectorHelper.getNullCount(validityBuffer, 11);
-      assertEquals(count, 5);
+      assertEquals(5, count);
       validityBuffer.close();
     }
   }
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestBufferOwnershipTransfer.java b/java/vector/src/test/java/org/apache/arrow/vector/TestBufferOwnershipTransfer.java
index 8efadad9b3..056b6bdd2b 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestBufferOwnershipTransfer.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestBufferOwnershipTransfer.java
@@ -21,6 +21,8 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import java.nio.charset.StandardCharsets;
+
 import org.apache.arrow.memory.BufferAllocator;
 import org.apache.arrow.memory.ReferenceManager;
 import org.apache.arrow.memory.RootAllocator;
@@ -65,7 +67,7 @@ public class TestBufferOwnershipTransfer {
 
     VarCharVector v1 = new VarCharVector("v1", childAllocator1);
     v1.allocateNew();
-    v1.setSafe(4094, "hello world".getBytes(), 0, 11);
+    v1.setSafe(4094, "hello world".getBytes(StandardCharsets.UTF_8), 0, 11);
     v1.setValueCount(4001);
 
     VarCharVector v2 = new VarCharVector("v2", childAllocator2);
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestCopyFrom.java b/java/vector/src/test/java/org/apache/arrow/vector/TestCopyFrom.java
index 3786f63c31..97de27bec8 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestCopyFrom.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestCopyFrom.java
@@ -23,9 +23,10 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNull;
 
 import java.math.BigDecimal;
-import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 import java.time.Duration;
 import java.time.Period;
+import java.util.Objects;
 
 import org.apache.arrow.memory.BufferAllocator;
 import org.apache.arrow.memory.RootAllocator;
@@ -84,7 +85,7 @@ public class TestCopyFrom {
         if (i % 3 == 0) {
           continue;
         }
-        byte[] b = Integer.toString(i).getBytes();
+        byte[] b = Integer.toString(i).getBytes(StandardCharsets.UTF_8);
         vector.setSafe(i, b, 0, b.length);
       }
 
@@ -156,7 +157,7 @@ public class TestCopyFrom {
         if (i % 3 == 0) {
           continue;
         }
-        byte[] b = Integer.toString(i).getBytes();
+        byte[] b = Integer.toString(i).getBytes(StandardCharsets.UTF_8);
         vector.setSafe(i, b, 0, b.length);
       }
 
@@ -950,7 +951,7 @@ public class TestCopyFrom {
       assertEquals(0, vector1.getValueCount());
       int initialCapacity = vector1.getValueCapacity();
 
-      final double baseValue = 104567897654.876543654;
+      final double baseValue = 104567897654.87654;
       final BigDecimal[] decimals = new BigDecimal[4096];
       for (int i = 0; i < initialCapacity; i++) {
         if ((i & 1) == 0) {
@@ -1082,13 +1083,13 @@ public class TestCopyFrom {
       // to trigger a reallocation of the vector.
       vc2.setInitialCapacity(/*valueCount*/20, /*density*/0.5);
 
-      vc1.setSafe(0, "1234567890".getBytes(Charset.forName("utf-8")));
+      vc1.setSafe(0, "1234567890".getBytes(StandardCharsets.UTF_8));
       assertFalse(vc1.isNull(0));
-      assertEquals(vc1.getObject(0).toString(), "1234567890");
+      assertEquals("1234567890", Objects.requireNonNull(vc1.getObject(0)).toString());
 
       vc2.copyFromSafe(0, 0, vc1);
       assertFalse(vc2.isNull(0));
-      assertEquals(vc2.getObject(0).toString(), "1234567890");
+      assertEquals("1234567890", Objects.requireNonNull(vc2.getObject(0)).toString());
 
       vc2.copyFromSafe(0, 5, vc1);
       assertTrue(vc2.isNull(1));
@@ -1096,7 +1097,7 @@ public class TestCopyFrom {
       assertTrue(vc2.isNull(3));
       assertTrue(vc2.isNull(4));
       assertFalse(vc2.isNull(5));
-      assertEquals(vc2.getObject(5).toString(), "1234567890");
+      assertEquals("1234567890", Objects.requireNonNull(vc2.getObject(5)).toString());
     }
   }
 
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestDecimal256Vector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestDecimal256Vector.java
index b703959d2b..fc5dfc3858 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestDecimal256Vector.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestDecimal256Vector.java
@@ -40,8 +40,8 @@ public class TestDecimal256Vector {
   static {
     intValues = new long[60];
     for (int i = 0; i < intValues.length / 2; i++) {
-      intValues[i] = 1 << i + 1;
-      intValues[2 * i] = -1 * (1 << i + 1);
+      intValues[i] = 1L << (i + 1);
+      intValues[2 * i] = -1L * (1 << (i + 1));
     }
   }
 
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestDecimalVector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestDecimalVector.java
index ba25cbe8b5..572f13fea1 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestDecimalVector.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestDecimalVector.java
@@ -40,8 +40,8 @@ public class TestDecimalVector {
   static {
     intValues = new long[60];
     for (int i = 0; i < intValues.length / 2; i++) {
-      intValues[i] = 1 << i + 1;
-      intValues[2 * i] = -1 * (1 << i + 1);
+      intValues[i] = 1L << (i + 1);
+      intValues[2 * i] = -1L * (1 << (i + 1));
     }
   }
 
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestDenseUnionVector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestDenseUnionVector.java
index 9cb1248161..8fd33eb5a8 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestDenseUnionVector.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestDenseUnionVector.java
@@ -349,16 +349,16 @@ public class TestDenseUnionVector {
     assertEquals(vector.getField(), field);
 
     // Union has 2 child vectors
-    assertEquals(vector.size(), 2);
+    assertEquals(2, vector.size());
 
     // Check child field 0
     VectorWithOrdinal intChild = vector.getChildVectorWithOrdinal("int");
-    assertEquals(intChild.ordinal, 0);
+    assertEquals(0, intChild.ordinal);
     assertEquals(intChild.vector.getField(), children.get(0));
 
     // Check child field 1
     VectorWithOrdinal varcharChild = vector.getChildVectorWithOrdinal("varchar");
-    assertEquals(varcharChild.ordinal, 1);
+    assertEquals(1, varcharChild.ordinal);
     assertEquals(varcharChild.vector.getField(), children.get(1));
   }
 
@@ -458,8 +458,8 @@ public class TestDenseUnionVector {
       // register relative types
       byte typeId1 = unionVector.registerNewTypeId(structVector1.getField());
       byte typeId2 = unionVector.registerNewTypeId(structVector2.getField());
-      assertEquals(typeId1, 0);
-      assertEquals(typeId2, 1);
+      assertEquals(0, typeId1);
+      assertEquals(1, typeId2);
 
       // add two struct vectors to union vector
       unionVector.addVector(typeId1, structVector1);
@@ -519,8 +519,8 @@ public class TestDenseUnionVector {
       byte typeId1 = unionVector.registerNewTypeId(childVector1.getField());
       byte typeId2 = unionVector.registerNewTypeId(childVector2.getField());
 
-      assertEquals(typeId1, 0);
-      assertEquals(typeId2, 1);
+      assertEquals(0, typeId1);
+      assertEquals(1, typeId2);
 
       while (unionVector.getValueCapacity() < 5) {
         unionVector.reAlloc();
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestDictionaryVector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestDictionaryVector.java
index 501059733c..9ffa79470e 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestDictionaryVector.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestDictionaryVector.java
@@ -552,7 +552,7 @@ public class TestDictionaryVector {
         // now run through the decoder and verify we get the original back
         try (ValueVector decoded = encoder.decode(encoded)) {
           assertEquals(vector.getClass(), decoded.getClass());
-          assertEquals(vector.getValueCount(), (decoded).getValueCount());
+          assertEquals(vector.getValueCount(), decoded.getValueCount());
           for (int i = 0; i < 5; i++) {
             assertEquals(vector.getObject(i), ((VarCharVector) decoded).getObject(i));
           }
@@ -591,7 +591,7 @@ public class TestDictionaryVector {
         // now run through the decoder and verify we get the original back
         try (ValueVector decoded = encoder.decode(encoded)) {
           assertEquals(vector1.getClass(), decoded.getClass());
-          assertEquals(vector1.getValueCount(), (decoded).getValueCount());
+          assertEquals(vector1.getValueCount(), decoded.getValueCount());
           for (int i = 0; i < 5; i++) {
             assertEquals(vector1.getObject(i), ((VarCharVector) decoded).getObject(i));
           }
@@ -611,7 +611,7 @@ public class TestDictionaryVector {
         // now run through the decoder and verify we get the original back
         try (ValueVector decoded = encoder.decode(encoded)) {
           assertEquals(vector2.getClass(), decoded.getClass());
-          assertEquals(vector2.getValueCount(), (decoded).getValueCount());
+          assertEquals(vector2.getValueCount(), decoded.getValueCount());
           for (int i = 0; i < 3; i++) {
             assertEquals(vector2.getObject(i), ((VarCharVector) decoded).getObject(i));
           }
@@ -841,7 +841,8 @@ public class TestDictionaryVector {
       // initialize dictionaries
       DictionaryProvider.MapDictionaryProvider provider = new DictionaryProvider.MapDictionaryProvider();
 
-      setVector(dictVector1, "aa".getBytes(), "bb".getBytes(), "cc".getBytes(), "dd".getBytes());
+      setVector(dictVector1, "aa".getBytes(StandardCharsets.UTF_8), "bb".getBytes(StandardCharsets.UTF_8),
+          "cc".getBytes(StandardCharsets.UTF_8), "dd".getBytes(StandardCharsets.UTF_8));
 
       provider.put(new Dictionary(dictVector1, new DictionaryEncoding(1L, false, null)));
       StructSubfieldEncoder encoder = new StructSubfieldEncoder(allocator, provider);
@@ -1049,20 +1050,20 @@ public class TestDictionaryVector {
 
         // verify encoded result
         assertEquals(vector.getValueCount(), encodedVector.getValueCount());
-        assertEquals(valGetter.applyAsInt(encodedVector, 0), 1);
-        assertEquals(valGetter.applyAsInt(encodedVector, 1), 3);
-        assertEquals(valGetter.applyAsInt(encodedVector, 2), 5);
-        assertEquals(valGetter.applyAsInt(encodedVector, 3), 7);
-        assertEquals(valGetter.applyAsInt(encodedVector, 4), 9);
+        assertEquals(1, valGetter.applyAsInt(encodedVector, 0));
+        assertEquals(3, valGetter.applyAsInt(encodedVector, 1));
+        assertEquals(5, valGetter.applyAsInt(encodedVector, 2));
+        assertEquals(7, valGetter.applyAsInt(encodedVector, 3));
+        assertEquals(9, valGetter.applyAsInt(encodedVector, 4));
 
         try (ValueVector decodedVector = DictionaryEncoder.decode(encodedVector, dictionary)) {
           assertTrue(decodedVector instanceof VarCharVector);
           assertEquals(vector.getValueCount(), decodedVector.getValueCount());
-          assertArrayEquals("1".getBytes(), ((VarCharVector) decodedVector).get(0));
-          assertArrayEquals("3".getBytes(), ((VarCharVector) decodedVector).get(1));
-          assertArrayEquals("5".getBytes(), ((VarCharVector) decodedVector).get(2));
-          assertArrayEquals("7".getBytes(), ((VarCharVector) decodedVector).get(3));
-          assertArrayEquals("9".getBytes(), ((VarCharVector) decodedVector).get(4));
+          assertArrayEquals("1".getBytes(StandardCharsets.UTF_8), ((VarCharVector) decodedVector).get(0));
+          assertArrayEquals("3".getBytes(StandardCharsets.UTF_8), ((VarCharVector) decodedVector).get(1));
+          assertArrayEquals("5".getBytes(StandardCharsets.UTF_8), ((VarCharVector) decodedVector).get(2));
+          assertArrayEquals("7".getBytes(StandardCharsets.UTF_8), ((VarCharVector) decodedVector).get(3));
+          assertArrayEquals("9".getBytes(StandardCharsets.UTF_8), ((VarCharVector) decodedVector).get(4));
         }
       }
     }
@@ -1085,7 +1086,7 @@ public class TestDictionaryVector {
       setVector(dictionaryVector, "0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
       Dictionary dictionary2 = new Dictionary(dictionaryVector,
           new DictionaryEncoding(/*id=*/20L, /*ordered=*/false,
-              /*indexType=*/new ArrowType.Int(/*indexType=*/16, /*isSigned*/false)));
+              /*indexType=*/new ArrowType.Int(/*bitWidth=*/16, /*isSigned*/false)));
       testDictionary(dictionary2, (vector, index) -> ((UInt2Vector) vector).get(index));
     }
   }
@@ -1096,7 +1097,7 @@ public class TestDictionaryVector {
       setVector(dictionaryVector, "0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
       Dictionary dictionary4 = new Dictionary(dictionaryVector,
           new DictionaryEncoding(/*id=*/30L, /*ordered=*/false,
-              /*indexType=*/new ArrowType.Int(/*indexType=*/32, /*isSigned*/false)));
+              /*indexType=*/new ArrowType.Int(/*bitWidth=*/32, /*isSigned*/false)));
       testDictionary(dictionary4, (vector, index) -> ((UInt4Vector) vector).get(index));
     }
   }
@@ -1107,7 +1108,7 @@ public class TestDictionaryVector {
       setVector(dictionaryVector, "0", "1", "2", "3", "4", "5", "6", "7", "8", "9");
       Dictionary dictionary8 = new Dictionary(dictionaryVector,
               new DictionaryEncoding(/*id=*/40L, /*ordered=*/false,
-                  /*indexType=*/new ArrowType.Int(/*indexType=*/64, /*isSigned*/false)));
+                  /*indexType=*/new ArrowType.Int(/*bitWidth=*/64, /*isSigned*/false)));
       testDictionary(dictionary8, (vector, index) -> (int) ((UInt8Vector) vector).get(index));
     }
   }
@@ -1119,13 +1120,13 @@ public class TestDictionaryVector {
     try (VarCharVector dictionaryVector = new VarCharVector("dict vector", allocator)) {
       dictionaryVector.allocateNew(vecLength * 3, vecLength);
       for (int i = 0; i < vecLength; i++) {
-        dictionaryVector.set(i, String.valueOf(i).getBytes());
+        dictionaryVector.set(i, String.valueOf(i).getBytes(StandardCharsets.UTF_8));
       }
       dictionaryVector.setValueCount(vecLength);
 
       Dictionary dictionary = new Dictionary(dictionaryVector,
           new DictionaryEncoding(/*id=*/10L, /*ordered=*/false,
-              /*indexType=*/new ArrowType.Int(/*indexType=*/8, /*isSigned*/false)));
+              /*indexType=*/new ArrowType.Int(/*bitWidth=*/8, /*isSigned*/false)));
 
       try (VarCharVector vector = new VarCharVector("vector", allocator)) {
         setVector(vector, "255");
@@ -1137,7 +1138,7 @@ public class TestDictionaryVector {
 
           try (VarCharVector decodedVector = (VarCharVector) DictionaryEncoder.decode(encodedVector, dictionary)) {
             assertEquals(1, decodedVector.getValueCount());
-            assertArrayEquals("255".getBytes(), decodedVector.get(0));
+            assertArrayEquals("255".getBytes(StandardCharsets.UTF_8), decodedVector.get(0));
           }
         }
       }
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestFixedSizeListVector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestFixedSizeListVector.java
index 0023b1dddb..bde6dd491d 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestFixedSizeListVector.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestFixedSizeListVector.java
@@ -25,6 +25,7 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import java.math.BigDecimal;
 import java.nio.ByteBuffer;
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.List;
 
@@ -61,7 +62,7 @@ public class TestFixedSizeListVector {
 
   @Test
   public void testIntType() {
-    try (FixedSizeListVector vector = FixedSizeListVector.empty("list", 2, allocator)) {
+    try (FixedSizeListVector vector = FixedSizeListVector.empty("list", /*size=*/2, allocator)) {
       IntVector nested = (IntVector) vector.addOrGetVector(FieldType.nullable(MinorType.INT.getType())).getVector();
       vector.allocateNew();
 
@@ -88,7 +89,7 @@ public class TestFixedSizeListVector {
 
   @Test
   public void testFloatTypeNullable() {
-    try (FixedSizeListVector vector = FixedSizeListVector.empty("list", 2, allocator)) {
+    try (FixedSizeListVector vector = FixedSizeListVector.empty("list", /*size=*/2, allocator)) {
       Float4Vector nested = (Float4Vector) vector.addOrGetVector(FieldType.nullable(MinorType.FLOAT4.getType()))
           .getVector();
       vector.allocateNew();
@@ -235,7 +236,7 @@ public class TestFixedSizeListVector {
 
   @Test
   public void testConsistentChildName() throws Exception {
-    try (FixedSizeListVector listVector = FixedSizeListVector.empty("sourceVector", 2, allocator)) {
+    try (FixedSizeListVector listVector = FixedSizeListVector.empty("sourceVector", /*size=*/2, allocator)) {
       String emptyListStr = listVector.getField().toString();
       Assert.assertTrue(emptyListStr.contains(ListVector.DATA_VECTOR_NAME));
 
@@ -251,7 +252,7 @@ public class TestFixedSizeListVector {
      * each list of size 3 and having its data values alternating between null and a non-null.
      * Read and verify
      */
-    try (final FixedSizeListVector vector = FixedSizeListVector.empty("vector", /*listSize=*/3, allocator)) {
+    try (final FixedSizeListVector vector = FixedSizeListVector.empty("vector", /*size=*/3, allocator)) {
 
       UnionFixedSizeListWriter writer = vector.getWriter();
       writer.allocate();
@@ -279,7 +280,7 @@ public class TestFixedSizeListVector {
 
   @Test
   public void testUnionFixedSizeListWriter() throws Exception {
-    try (final FixedSizeListVector vector1 = FixedSizeListVector.empty("vector", 3, allocator)) {
+    try (final FixedSizeListVector vector1 = FixedSizeListVector.empty("vector", /*size=*/3, allocator)) {
 
       UnionFixedSizeListWriter writer1 = vector1.getWriter();
       writer1.allocate();
@@ -307,7 +308,7 @@ public class TestFixedSizeListVector {
 
   @Test
   public void testWriteDecimal() throws Exception {
-    try (final FixedSizeListVector vector = FixedSizeListVector.empty("vector", /*listSize=*/3, allocator)) {
+    try (final FixedSizeListVector vector = FixedSizeListVector.empty("vector", /*size=*/3, allocator)) {
 
       UnionFixedSizeListWriter writer = vector.getWriter();
       writer.allocate();
@@ -335,7 +336,7 @@ public class TestFixedSizeListVector {
 
   @Test
   public void testDecimalIndexCheck() throws Exception {
-    try (final FixedSizeListVector vector = FixedSizeListVector.empty("vector", /*listSize=*/3, allocator)) {
+    try (final FixedSizeListVector vector = FixedSizeListVector.empty("vector", /*size=*/3, allocator)) {
 
       UnionFixedSizeListWriter writer = vector.getWriter();
       writer.allocate();
@@ -355,7 +356,7 @@ public class TestFixedSizeListVector {
 
   @Test(expected = IllegalStateException.class)
   public void testWriteIllegalData() throws Exception {
-    try (final FixedSizeListVector vector1 = FixedSizeListVector.empty("vector", 3, allocator)) {
+    try (final FixedSizeListVector vector1 = FixedSizeListVector.empty("vector", /*size=*/3, allocator)) {
 
       UnionFixedSizeListWriter writer1 = vector1.getWriter();
       writer1.allocate();
@@ -378,7 +379,7 @@ public class TestFixedSizeListVector {
 
   @Test
   public void testSplitAndTransfer() throws Exception {
-    try (final FixedSizeListVector vector1 = FixedSizeListVector.empty("vector", 3, allocator)) {
+    try (final FixedSizeListVector vector1 = FixedSizeListVector.empty("vector", /*size=*/3, allocator)) {
 
       UnionFixedSizeListWriter writer1 = vector1.getWriter();
       writer1.allocate();
@@ -399,9 +400,9 @@ public class TestFixedSizeListVector {
 
       assertEquals(2, targetVector.getValueCount());
       int[] realValue1 = convertListToIntArray(targetVector.getObject(0));
-      assertTrue(Arrays.equals(values1, realValue1));
+      assertArrayEquals(values1, realValue1);
       int[] realValue2 = convertListToIntArray(targetVector.getObject(1));
-      assertTrue(Arrays.equals(values2, realValue2));
+      assertArrayEquals(values2, realValue2);
 
       targetVector.clear();
     }
@@ -409,7 +410,7 @@ public class TestFixedSizeListVector {
 
   @Test
   public void testZeroWidthVector() {
-    try (final FixedSizeListVector vector1 = FixedSizeListVector.empty("vector", 0, allocator)) {
+    try (final FixedSizeListVector vector1 = FixedSizeListVector.empty("vector", /*size=*/0, allocator)) {
 
       UnionFixedSizeListWriter writer1 = vector1.getWriter();
       writer1.allocate();
@@ -440,7 +441,7 @@ public class TestFixedSizeListVector {
 
   @Test
   public void testVectorWithNulls() {
-    try (final FixedSizeListVector vector1 = FixedSizeListVector.empty("vector", 4, allocator)) {
+    try (final FixedSizeListVector vector1 = FixedSizeListVector.empty("vector", /*size=*/4, allocator)) {
 
       UnionFixedSizeListWriter writer1 = vector1.getWriter();
       writer1.allocate();
@@ -472,7 +473,7 @@ public class TestFixedSizeListVector {
 
   @Test
   public void testWriteVarCharHelpers() throws Exception {
-    try (final FixedSizeListVector vector = FixedSizeListVector.empty("vector", /*listSize=*/4, allocator)) {
+    try (final FixedSizeListVector vector = FixedSizeListVector.empty("vector", /*size=*/4, allocator)) {
 
       UnionFixedSizeListWriter writer = vector.getWriter();
       writer.allocate();
@@ -491,7 +492,7 @@ public class TestFixedSizeListVector {
 
   @Test
   public void testWriteLargeVarCharHelpers() throws Exception {
-    try (final FixedSizeListVector vector = FixedSizeListVector.empty("vector", /*listSize=*/4, allocator)) {
+    try (final FixedSizeListVector vector = FixedSizeListVector.empty("vector", /*size=*/4, allocator)) {
 
       UnionFixedSizeListWriter writer = vector.getWriter();
       writer.allocate();
@@ -510,43 +511,47 @@ public class TestFixedSizeListVector {
 
   @Test
   public void testWriteVarBinaryHelpers() throws Exception {
-    try (final FixedSizeListVector vector = FixedSizeListVector.empty("vector", /*listSize=*/4, allocator)) {
+    try (final FixedSizeListVector vector = FixedSizeListVector.empty("vector", /*size=*/4, allocator)) {
 
       UnionFixedSizeListWriter writer = vector.getWriter();
       writer.allocate();
 
       writer.startList();
-      writer.writeVarBinary("row1,1".getBytes());
-      writer.writeVarBinary("row1,2".getBytes(), 0, "row1,2".getBytes().length);
-      writer.writeVarBinary(ByteBuffer.wrap("row1,3".getBytes()));
-      writer.writeVarBinary(ByteBuffer.wrap("row1,4".getBytes()), 0, "row1,4".getBytes().length);
+      writer.writeVarBinary("row1,1".getBytes(StandardCharsets.UTF_8));
+      writer.writeVarBinary("row1,2".getBytes(StandardCharsets.UTF_8), 0,
+          "row1,2".getBytes(StandardCharsets.UTF_8).length);
+      writer.writeVarBinary(ByteBuffer.wrap("row1,3".getBytes(StandardCharsets.UTF_8)));
+      writer.writeVarBinary(ByteBuffer.wrap("row1,4".getBytes(StandardCharsets.UTF_8)), 0,
+          "row1,4".getBytes(StandardCharsets.UTF_8).length);
       writer.endList();
 
-      assertEquals("row1,1", new String((byte[]) (vector.getObject(0).get(0))));
-      assertEquals("row1,2", new String((byte[]) (vector.getObject(0).get(1))));
-      assertEquals("row1,3", new String((byte[]) (vector.getObject(0).get(2))));
-      assertEquals("row1,4", new String((byte[]) (vector.getObject(0).get(3))));
+      assertEquals("row1,1", new String((byte[]) vector.getObject(0).get(0), StandardCharsets.UTF_8));
+      assertEquals("row1,2", new String((byte[]) vector.getObject(0).get(1), StandardCharsets.UTF_8));
+      assertEquals("row1,3", new String((byte[]) vector.getObject(0).get(2), StandardCharsets.UTF_8));
+      assertEquals("row1,4", new String((byte[]) vector.getObject(0).get(3), StandardCharsets.UTF_8));
     }
   }
 
   @Test
   public void testWriteLargeVarBinaryHelpers() throws Exception {
-    try (final FixedSizeListVector vector = FixedSizeListVector.empty("vector", /*listSize=*/4, allocator)) {
+    try (final FixedSizeListVector vector = FixedSizeListVector.empty("vector", /*size=*/4, allocator)) {
 
       UnionFixedSizeListWriter writer = vector.getWriter();
       writer.allocate();
 
       writer.startList();
-      writer.writeLargeVarBinary("row1,1".getBytes());
-      writer.writeLargeVarBinary("row1,2".getBytes(), 0, "row1,2".getBytes().length);
-      writer.writeLargeVarBinary(ByteBuffer.wrap("row1,3".getBytes()));
-      writer.writeLargeVarBinary(ByteBuffer.wrap("row1,4".getBytes()), 0, "row1,4".getBytes().length);
+      writer.writeLargeVarBinary("row1,1".getBytes(StandardCharsets.UTF_8));
+      writer.writeLargeVarBinary("row1,2".getBytes(StandardCharsets.UTF_8), 0,
+          "row1,2".getBytes(StandardCharsets.UTF_8).length);
+      writer.writeLargeVarBinary(ByteBuffer.wrap("row1,3".getBytes(StandardCharsets.UTF_8)));
+      writer.writeLargeVarBinary(ByteBuffer.wrap("row1,4".getBytes(StandardCharsets.UTF_8)), 0,
+          "row1,4".getBytes(StandardCharsets.UTF_8).length);
       writer.endList();
 
-      assertEquals("row1,1", new String((byte[]) (vector.getObject(0).get(0))));
-      assertEquals("row1,2", new String((byte[]) (vector.getObject(0).get(1))));
-      assertEquals("row1,3", new String((byte[]) (vector.getObject(0).get(2))));
-      assertEquals("row1,4", new String((byte[]) (vector.getObject(0).get(3))));
+      assertEquals("row1,1", new String((byte[]) vector.getObject(0).get(0), StandardCharsets.UTF_8));
+      assertEquals("row1,2", new String((byte[]) vector.getObject(0).get(1), StandardCharsets.UTF_8));
+      assertEquals("row1,3", new String((byte[]) vector.getObject(0).get(2), StandardCharsets.UTF_8));
+      assertEquals("row1,4", new String((byte[]) vector.getObject(0).get(3), StandardCharsets.UTF_8));
     }
   }
 
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestLargeListVector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestLargeListVector.java
index 993ce0b089..ffd87c99d5 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestLargeListVector.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestLargeListVector.java
@@ -102,9 +102,9 @@ public class TestLargeListVector {
       Object result = outVector.getObject(0);
       ArrayList<Long> resultSet = (ArrayList<Long>) result;
       assertEquals(3, resultSet.size());
-      assertEquals(new Long(1), resultSet.get(0));
-      assertEquals(new Long(2), resultSet.get(1));
-      assertEquals(new Long(3), resultSet.get(2));
+      assertEquals(Long.valueOf(1), resultSet.get(0));
+      assertEquals(Long.valueOf(2), resultSet.get(1));
+      assertEquals(Long.valueOf(3), resultSet.get(2));
 
       /* index 1 */
       result = outVector.getObject(1);
@@ -143,7 +143,7 @@ public class TestLargeListVector {
       assertEquals(-1L, listVector.getLastSet());
 
       int index = 0;
-      int offset = 0;
+      int offset;
 
       /* write [10, 11, 12] to the list vector at index 0 */
       BitVectorHelper.setBit(validityBuffer, index);
@@ -222,41 +222,40 @@ public class TestLargeListVector {
       assertEquals(Integer.toString(0), Integer.toString(offset));
 
       Long actual = dataVector.getObject(offset);
-      assertEquals(new Long(10), actual);
+      assertEquals(Long.valueOf(10), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(11), actual);
+      assertEquals(Long.valueOf(11), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(12), actual);
+      assertEquals(Long.valueOf(12), actual);
 
       index++;
       offset = (int) offsetBuffer.getLong(index * LargeListVector.OFFSET_WIDTH);
       assertEquals(Integer.toString(3), Integer.toString(offset));
 
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(13), actual);
+      assertEquals(Long.valueOf(13), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(14), actual);
+      assertEquals(Long.valueOf(14), actual);
 
       index++;
       offset = (int) offsetBuffer.getLong(index * LargeListVector.OFFSET_WIDTH);
       assertEquals(Integer.toString(5), Integer.toString(offset));
 
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(15), actual);
+      assertEquals(Long.valueOf(15), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(16), actual);
+      assertEquals(Long.valueOf(16), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(17), actual);
+      assertEquals(Long.valueOf(17), actual);
 
       index++;
       offset = (int) offsetBuffer.getLong(index * LargeListVector.OFFSET_WIDTH);
       assertEquals(Integer.toString(8), Integer.toString(offset));
-
       actual = dataVector.getObject(offset);
       assertNull(actual);
     }
@@ -323,8 +322,8 @@ public class TestLargeListVector {
       /* check the vector output */
 
       int index = 0;
-      int offset = 0;
-      Long actual = null;
+      int offset;
+      Long actual;
 
       /* index 0 */
       assertFalse(listVector.isNull(index));
@@ -332,13 +331,13 @@ public class TestLargeListVector {
       assertEquals(Integer.toString(0), Integer.toString(offset));
 
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(10), actual);
+      assertEquals(Long.valueOf(10), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(11), actual);
+      assertEquals(Long.valueOf(11), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(12), actual);
+      assertEquals(Long.valueOf(12), actual);
 
       /* index 1 */
       index++;
@@ -347,10 +346,10 @@ public class TestLargeListVector {
       assertEquals(Integer.toString(3), Integer.toString(offset));
 
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(13), actual);
+      assertEquals(Long.valueOf(13), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(14), actual);
+      assertEquals(Long.valueOf(14), actual);
 
       /* index 2 */
       index++;
@@ -359,16 +358,16 @@ public class TestLargeListVector {
       assertEquals(Integer.toString(5), Integer.toString(offset));
 
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(15), actual);
+      assertEquals(Long.valueOf(15), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(16), actual);
+      assertEquals(Long.valueOf(16), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(17), actual);
+      assertEquals(Long.valueOf(17), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(18), actual);
+      assertEquals(Long.valueOf(18), actual);
 
       /* index 3 */
       index++;
@@ -377,7 +376,7 @@ public class TestLargeListVector {
       assertEquals(Integer.toString(9), Integer.toString(offset));
 
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(19), actual);
+      assertEquals(Long.valueOf(19), actual);
 
       /* index 4 */
       index++;
@@ -386,16 +385,16 @@ public class TestLargeListVector {
       assertEquals(Integer.toString(10), Integer.toString(offset));
 
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(20), actual);
+      assertEquals(Long.valueOf(20), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(21), actual);
+      assertEquals(Long.valueOf(21), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(22), actual);
+      assertEquals(Long.valueOf(22), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(23), actual);
+      assertEquals(Long.valueOf(23), actual);
 
       /* index 5 */
       index++;
@@ -522,15 +521,15 @@ public class TestLargeListVector {
       assertEquals(4, resultSet.get(1).size()); /* size of second inner list */
 
       list = resultSet.get(0);
-      assertEquals(new Long(50), list.get(0));
-      assertEquals(new Long(100), list.get(1));
-      assertEquals(new Long(200), list.get(2));
+      assertEquals(Long.valueOf(50), list.get(0));
+      assertEquals(Long.valueOf(100), list.get(1));
+      assertEquals(Long.valueOf(200), list.get(2));
 
       list = resultSet.get(1);
-      assertEquals(new Long(75), list.get(0));
-      assertEquals(new Long(125), list.get(1));
-      assertEquals(new Long(150), list.get(2));
-      assertEquals(new Long(175), list.get(3));
+      assertEquals(Long.valueOf(75), list.get(0));
+      assertEquals(Long.valueOf(125), list.get(1));
+      assertEquals(Long.valueOf(150), list.get(2));
+      assertEquals(Long.valueOf(175), list.get(3));
 
       /* get listVector value at index 1 -- the value itself is a listvector */
       result = listVector.getObject(1);
@@ -542,16 +541,16 @@ public class TestLargeListVector {
       assertEquals(3, resultSet.get(2).size()); /* size of third inner list */
 
       list = resultSet.get(0);
-      assertEquals(new Long(10), list.get(0));
+      assertEquals(Long.valueOf(10), list.get(0));
 
       list = resultSet.get(1);
-      assertEquals(new Long(15), list.get(0));
-      assertEquals(new Long(20), list.get(1));
+      assertEquals(Long.valueOf(15), list.get(0));
+      assertEquals(Long.valueOf(20), list.get(1));
 
       list = resultSet.get(2);
-      assertEquals(new Long(25), list.get(0));
-      assertEquals(new Long(30), list.get(1));
-      assertEquals(new Long(35), list.get(2));
+      assertEquals(Long.valueOf(25), list.get(0));
+      assertEquals(Long.valueOf(30), list.get(1));
+      assertEquals(Long.valueOf(35), list.get(2));
 
       /* check underlying bitVector */
       assertFalse(listVector.isNull(0));
@@ -656,13 +655,13 @@ public class TestLargeListVector {
       assertEquals(2, resultSet.get(1).size()); /* size of second inner list */
 
       list = resultSet.get(0);
-      assertEquals(new Long(50), list.get(0));
-      assertEquals(new Long(100), list.get(1));
-      assertEquals(new Long(200), list.get(2));
+      assertEquals(Long.valueOf(50), list.get(0));
+      assertEquals(Long.valueOf(100), list.get(1));
+      assertEquals(Long.valueOf(200), list.get(2));
 
       list = resultSet.get(1);
-      assertEquals(new Long(75), list.get(0));
-      assertEquals(new Long(125), list.get(1));
+      assertEquals(Long.valueOf(75), list.get(0));
+      assertEquals(Long.valueOf(125), list.get(1));
 
       /* get listVector value at index 1 -- the value itself is a listvector */
       result = listVector.getObject(1);
@@ -673,13 +672,13 @@ public class TestLargeListVector {
       assertEquals(3, resultSet.get(1).size()); /* size of second inner list */
 
       list = resultSet.get(0);
-      assertEquals(new Long(15), list.get(0));
-      assertEquals(new Long(20), list.get(1));
+      assertEquals(Long.valueOf(15), list.get(0));
+      assertEquals(Long.valueOf(20), list.get(1));
 
       list = resultSet.get(1);
-      assertEquals(new Long(25), list.get(0));
-      assertEquals(new Long(30), list.get(1));
-      assertEquals(new Long(35), list.get(2));
+      assertEquals(Long.valueOf(25), list.get(0));
+      assertEquals(Long.valueOf(30), list.get(1));
+      assertEquals(Long.valueOf(35), list.get(2));
 
       /* check underlying bitVector */
       assertFalse(listVector.isNull(0));
@@ -723,15 +722,15 @@ public class TestLargeListVector {
       Object result = listVector.getObject(0);
       ArrayList<Long> resultSet = (ArrayList<Long>) result;
       assertEquals(3, resultSet.size());
-      assertEquals(new Long(50), resultSet.get(0));
-      assertEquals(new Long(100), resultSet.get(1));
-      assertEquals(new Long(200), resultSet.get(2));
+      assertEquals(Long.valueOf(50), resultSet.get(0));
+      assertEquals(Long.valueOf(100), resultSet.get(1));
+      assertEquals(Long.valueOf(200), resultSet.get(2));
 
       result = listVector.getObject(1);
       resultSet = (ArrayList<Long>) result;
       assertEquals(2, resultSet.size());
-      assertEquals(new Long(250), resultSet.get(0));
-      assertEquals(new Long(300), resultSet.get(1));
+      assertEquals(Long.valueOf(250), resultSet.get(0));
+      assertEquals(Long.valueOf(300), resultSet.get(1));
 
       List<ArrowBuf> buffers = listVector.getFieldBuffers();
 
@@ -739,7 +738,7 @@ public class TestLargeListVector {
       long offsetAddress = listVector.getOffsetBufferAddress();
 
       try {
-        long dataAddress = listVector.getDataBufferAddress();
+        listVector.getDataBufferAddress();
       } catch (UnsupportedOperationException ue) {
         error = true;
       } finally {
@@ -849,11 +848,11 @@ public class TestLargeListVector {
 
       Object result = vector.getObject(0);
       ArrayList<Long> resultSet = (ArrayList<Long>) result;
-      assertEquals(new Long(7), resultSet.get(0));
+      assertEquals(Long.valueOf(7), resultSet.get(0));
 
       result = vector.getObject(1);
       resultSet = (ArrayList<Long>) result;
-      assertEquals(new Long(8), resultSet.get(0));
+      assertEquals(Long.valueOf(8), resultSet.get(0));
 
       // Clear and release the buffers to trigger a realloc when adding next value
       vector.clear();
@@ -869,11 +868,11 @@ public class TestLargeListVector {
 
       result = vector.getObject(0);
       resultSet = (ArrayList<Long>) result;
-      assertEquals(new Long(7), resultSet.get(0));
+      assertEquals(Long.valueOf(7), resultSet.get(0));
 
       result = vector.getObject(1);
       resultSet = (ArrayList<Long>) result;
-      assertEquals(new Long(8), resultSet.get(0));
+      assertEquals(Long.valueOf(8), resultSet.get(0));
     }
   }
 
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestLargeVarBinaryVector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestLargeVarBinaryVector.java
index ecababde8d..36607903b0 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestLargeVarBinaryVector.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestLargeVarBinaryVector.java
@@ -22,7 +22,9 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
+import java.util.Objects;
 
 import org.apache.arrow.memory.ArrowBuf;
 import org.apache.arrow.memory.BufferAllocator;
@@ -61,7 +63,7 @@ public class TestLargeVarBinaryVector {
 
       String str = "hello";
       try (ArrowBuf buf = allocator.buffer(16)) {
-        buf.setBytes(0, str.getBytes());
+        buf.setBytes(0, str.getBytes(StandardCharsets.UTF_8));
 
         binHolder.start = 0;
         binHolder.end = str.length();
@@ -72,7 +74,7 @@ public class TestLargeVarBinaryVector {
 
         // verify results
         assertTrue(vector.isNull(0));
-        assertEquals(str, new String(vector.get(1)));
+        assertEquals(str, new String(Objects.requireNonNull(vector.get(1)), StandardCharsets.UTF_8));
       }
     }
   }
@@ -90,7 +92,7 @@ public class TestLargeVarBinaryVector {
 
       String str = "hello world";
       try (ArrowBuf buf = allocator.buffer(16)) {
-        buf.setBytes(0, str.getBytes());
+        buf.setBytes(0, str.getBytes(StandardCharsets.UTF_8));
 
         binHolder.start = 0;
         binHolder.end = str.length();
@@ -100,7 +102,7 @@ public class TestLargeVarBinaryVector {
         vector.setSafe(1, nullHolder);
 
         // verify results
-        assertEquals(str, new String(vector.get(0)));
+        assertEquals(str, new String(Objects.requireNonNull(vector.get(0)), StandardCharsets.UTF_8));
         assertTrue(vector.isNull(1));
       }
     }
@@ -113,18 +115,18 @@ public class TestLargeVarBinaryVector {
 
       final String str = "hello world";
       final String str2 = "foo";
-      vector.setSafe(0, str.getBytes());
-      vector.setSafe(1, str2.getBytes());
+      vector.setSafe(0, str.getBytes(StandardCharsets.UTF_8));
+      vector.setSafe(1, str2.getBytes(StandardCharsets.UTF_8));
 
       // verify results
       ReusableByteArray reusableByteArray = new ReusableByteArray();
       vector.read(0, reusableByteArray);
       byte[] oldBuffer = reusableByteArray.getBuffer();
-      assertArrayEquals(str.getBytes(), Arrays.copyOfRange(reusableByteArray.getBuffer(),
+      assertArrayEquals(str.getBytes(StandardCharsets.UTF_8), Arrays.copyOfRange(reusableByteArray.getBuffer(),
           0, (int) reusableByteArray.getLength()));
 
       vector.read(1, reusableByteArray);
-      assertArrayEquals(str2.getBytes(), Arrays.copyOfRange(reusableByteArray.getBuffer(),
+      assertArrayEquals(str2.getBytes(StandardCharsets.UTF_8), Arrays.copyOfRange(reusableByteArray.getBuffer(),
           0, (int) reusableByteArray.getLength()));
 
       // There should not have been any reallocation since the newer value is smaller in length.
@@ -137,7 +139,7 @@ public class TestLargeVarBinaryVector {
     try (BufferAllocator childAllocator1 = allocator.newChildAllocator("child1", 1000000, 1000000);
         LargeVarBinaryVector v1 = new LargeVarBinaryVector("v1", childAllocator1)) {
       v1.allocateNew();
-      v1.setSafe(4094, "hello world".getBytes(), 0, 11);
+      v1.setSafe(4094, "hello world".getBytes(StandardCharsets.UTF_8), 0, 11);
       v1.setValueCount(4001);
 
       TransferPair tp = v1.getTransferPair(v1.getField(), allocator);
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestLargeVarCharVector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestLargeVarCharVector.java
index 7d074c3936..62d09da86d 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestLargeVarCharVector.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestLargeVarCharVector.java
@@ -27,6 +27,7 @@ import static org.junit.Assert.assertTrue;
 import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 import org.apache.arrow.memory.ArrowBuf;
 import org.apache.arrow.memory.BufferAllocator;
@@ -48,12 +49,12 @@ import org.junit.jupiter.api.Assertions;
 
 public class TestLargeVarCharVector {
 
-  private static final byte[] STR1 = "AAAAA1".getBytes();
-  private static final byte[] STR2 = "BBBBBBBBB2".getBytes();
-  private static final byte[] STR3 = "CCCC3".getBytes();
-  private static final byte[] STR4 = "DDDDDDDD4".getBytes();
-  private static final byte[] STR5 = "EEE5".getBytes();
-  private static final byte[] STR6 = "FFFFF6".getBytes();
+  private static final byte[] STR1 = "AAAAA1".getBytes(StandardCharsets.UTF_8);
+  private static final byte[] STR2 = "BBBBBBBBB2".getBytes(StandardCharsets.UTF_8);
+  private static final byte[] STR3 = "CCCC3".getBytes(StandardCharsets.UTF_8);
+  private static final byte[] STR4 = "DDDDDDDD4".getBytes(StandardCharsets.UTF_8);
+  private static final byte[] STR5 = "EEE5".getBytes(StandardCharsets.UTF_8);
+  private static final byte[] STR6 = "FFFFF6".getBytes(StandardCharsets.UTF_8);
 
   private BufferAllocator allocator;
 
@@ -74,7 +75,7 @@ public class TestLargeVarCharVector {
          LargeVarCharVector v1 = new LargeVarCharVector("v1", childAllocator1);
          LargeVarCharVector v2 = new LargeVarCharVector("v2", childAllocator2);) {
       v1.allocateNew();
-      v1.setSafe(4094, "hello world".getBytes(), 0, 11);
+      v1.setSafe(4094, "hello world".getBytes(StandardCharsets.UTF_8), 0, 11);
       v1.setValueCount(4001);
 
       long memoryBeforeTransfer = childAllocator1.getAllocatedMemory();
@@ -207,12 +208,12 @@ public class TestLargeVarCharVector {
 
   @Test
   public void testSetLastSetUsage() {
-    final byte[] STR1 = "AAAAA1".getBytes();
-    final byte[] STR2 = "BBBBBBBBB2".getBytes();
-    final byte[] STR3 = "CCCC3".getBytes();
-    final byte[] STR4 = "DDDDDDDD4".getBytes();
-    final byte[] STR5 = "EEE5".getBytes();
-    final byte[] STR6 = "FFFFF6".getBytes();
+    final byte[] STR1 = "AAAAA1".getBytes(StandardCharsets.UTF_8);
+    final byte[] STR2 = "BBBBBBBBB2".getBytes(StandardCharsets.UTF_8);
+    final byte[] STR3 = "CCCC3".getBytes(StandardCharsets.UTF_8);
+    final byte[] STR4 = "DDDDDDDD4".getBytes(StandardCharsets.UTF_8);
+    final byte[] STR5 = "EEE5".getBytes(StandardCharsets.UTF_8);
+    final byte[] STR6 = "FFFFF6".getBytes(StandardCharsets.UTF_8);
 
     try (final LargeVarCharVector vector = new LargeVarCharVector("myvector", allocator)) {
       vector.allocateNew(1024 * 10, 1024);
@@ -353,7 +354,7 @@ public class TestLargeVarCharVector {
           for (int i = 0; i < length; i++) {
             final boolean expectedSet = ((start + i) % 3) == 0;
             if (expectedSet) {
-              final byte[] expectedValue = compareArray[start + i].getBytes();
+              final byte[] expectedValue = compareArray[start + i].getBytes(StandardCharsets.UTF_8);
               assertFalse(newLargeVarCharVector.isNull(i));
               assertArrayEquals(expectedValue, newLargeVarCharVector.get(i));
             } else {
@@ -367,8 +368,8 @@ public class TestLargeVarCharVector {
 
   @Test
   public void testReallocAfterVectorTransfer() {
-    final byte[] STR1 = "AAAAA1".getBytes();
-    final byte[] STR2 = "BBBBBBBBB2".getBytes();
+    final byte[] STR1 = "AAAAA1".getBytes(StandardCharsets.UTF_8);
+    final byte[] STR2 = "BBBBBBBBB2".getBytes(StandardCharsets.UTF_8);
 
     try (final LargeVarCharVector vector = new LargeVarCharVector("vector", allocator)) {
       /* 4096 values with 10 byte per record */
@@ -675,7 +676,7 @@ public class TestLargeVarCharVector {
 
       String str = "hello";
       ArrowBuf buf = allocator.buffer(16);
-      buf.setBytes(0, str.getBytes());
+      buf.setBytes(0, str.getBytes(StandardCharsets.UTF_8));
 
       stringHolder.start = 0;
       stringHolder.end = str.length();
@@ -686,7 +687,7 @@ public class TestLargeVarCharVector {
 
       // verify results
       assertTrue(vector.isNull(0));
-      assertEquals(str, new String(vector.get(1)));
+      assertEquals(str, new String(Objects.requireNonNull(vector.get(1)), StandardCharsets.UTF_8));
 
       buf.close();
     }
@@ -705,7 +706,7 @@ public class TestLargeVarCharVector {
 
       String str = "hello world";
       ArrowBuf buf = allocator.buffer(16);
-      buf.setBytes(0, str.getBytes());
+      buf.setBytes(0, str.getBytes(StandardCharsets.UTF_8));
 
       stringHolder.start = 0;
       stringHolder.end = str.length();
@@ -715,7 +716,7 @@ public class TestLargeVarCharVector {
       vector.setSafe(1, nullHolder);
 
       // verify results
-      assertEquals(str, new String(vector.get(0)));
+      assertEquals(str, new String(Objects.requireNonNull(vector.get(0)), StandardCharsets.UTF_8));
       assertTrue(vector.isNull(1));
 
       buf.close();
@@ -743,7 +744,7 @@ public class TestLargeVarCharVector {
       largeVarChVec.allocateNew(100, 1);
       largeVarChVec.setValueCount(1);
 
-      largeVarChVec.set(0, "abc".getBytes());
+      largeVarChVec.set(0, "abc".getBytes(StandardCharsets.UTF_8));
       largeVarChVec.setNull(0);
 
       assertEquals(0, largeVarChVec.hashCode(0));
@@ -756,7 +757,7 @@ public class TestLargeVarCharVector {
       largeVarCharVector.allocateNew(5, 2);
       largeVarCharVector.setValueCount(2);
 
-      largeVarCharVector.set(0, "abcd".getBytes());
+      largeVarCharVector.set(0, "abcd".getBytes(StandardCharsets.UTF_8));
 
       List<ArrowBuf> bufs = largeVarCharVector.getFieldBuffers();
       assertEquals(3, bufs.size());
@@ -821,7 +822,7 @@ public class TestLargeVarCharVector {
     try (BufferAllocator childAllocator1 = allocator.newChildAllocator("child1", 1000000, 1000000);
         LargeVarCharVector v1 = new LargeVarCharVector("v1", childAllocator1)) {
       v1.allocateNew();
-      v1.setSafe(4094, "hello world".getBytes(), 0, 11);
+      v1.setSafe(4094, "hello world".getBytes(StandardCharsets.UTF_8), 0, 11);
       v1.setValueCount(4001);
 
       TransferPair tp = v1.getTransferPair(v1.getField(), allocator);
@@ -835,7 +836,7 @@ public class TestLargeVarCharVector {
   private void populateLargeVarcharVector(final LargeVarCharVector vector, int valueCount, String[] values) {
     for (int i = 0; i < valueCount; i += 3) {
       final String s = String.format("%010d", i);
-      vector.set(i, s.getBytes());
+      vector.set(i, s.getBytes(StandardCharsets.UTF_8));
       if (values != null) {
         values[i] = s;
       }
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestListVector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestListVector.java
index 278f497b47..97f2d9fd6d 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestListVector.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestListVector.java
@@ -107,9 +107,9 @@ public class TestListVector {
       Object result = outVector.getObject(0);
       ArrayList<Long> resultSet = (ArrayList<Long>) result;
       assertEquals(3, resultSet.size());
-      assertEquals(new Long(1), (Long) resultSet.get(0));
-      assertEquals(new Long(2), (Long) resultSet.get(1));
-      assertEquals(new Long(3), (Long) resultSet.get(2));
+      assertEquals(Long.valueOf(1), resultSet.get(0));
+      assertEquals(Long.valueOf(2), resultSet.get(1));
+      assertEquals(Long.valueOf(3), resultSet.get(2));
 
       /* index 1 */
       result = outVector.getObject(1);
@@ -148,7 +148,7 @@ public class TestListVector {
       assertEquals(Integer.toString(-1), Integer.toString(listVector.getLastSet()));
 
       int index = 0;
-      int offset = 0;
+      int offset;
 
       /* write [10, 11, 12] to the list vector at index 0 */
       BitVectorHelper.setBit(validityBuffer, index);
@@ -227,36 +227,36 @@ public class TestListVector {
       assertEquals(Integer.toString(0), Integer.toString(offset));
 
       Long actual = dataVector.getObject(offset);
-      assertEquals(new Long(10), actual);
+      assertEquals(Long.valueOf(10), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(11), actual);
+      assertEquals(Long.valueOf(11), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(12), actual);
+      assertEquals(Long.valueOf(12), actual);
 
       index++;
       offset = offsetBuffer.getInt(index * ListVector.OFFSET_WIDTH);
       assertEquals(Integer.toString(3), Integer.toString(offset));
 
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(13), actual);
+      assertEquals(Long.valueOf(13), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(14), actual);
+      assertEquals(Long.valueOf(14), actual);
 
       index++;
       offset = offsetBuffer.getInt(index * ListVector.OFFSET_WIDTH);
       assertEquals(Integer.toString(5), Integer.toString(offset));
 
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(15), actual);
+      assertEquals(Long.valueOf(15), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(16), actual);
+      assertEquals(Long.valueOf(16), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(17), actual);
+      assertEquals(Long.valueOf(17), actual);
 
       index++;
       offset = offsetBuffer.getInt(index * ListVector.OFFSET_WIDTH);
@@ -328,8 +328,8 @@ public class TestListVector {
       /* check the vector output */
 
       int index = 0;
-      int offset = 0;
-      Long actual = null;
+      int offset;
+      Long actual;
 
       /* index 0 */
       assertFalse(listVector.isNull(index));
@@ -337,13 +337,13 @@ public class TestListVector {
       assertEquals(Integer.toString(0), Integer.toString(offset));
 
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(10), actual);
+      assertEquals(Long.valueOf(10), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(11), actual);
+      assertEquals(Long.valueOf(11), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(12), actual);
+      assertEquals(Long.valueOf(12), actual);
 
       /* index 1 */
       index++;
@@ -352,10 +352,10 @@ public class TestListVector {
       assertEquals(Integer.toString(3), Integer.toString(offset));
 
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(13), actual);
+      assertEquals(Long.valueOf(13), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(14), actual);
+      assertEquals(Long.valueOf(14), actual);
 
       /* index 2 */
       index++;
@@ -364,16 +364,16 @@ public class TestListVector {
       assertEquals(Integer.toString(5), Integer.toString(offset));
 
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(15), actual);
+      assertEquals(Long.valueOf(15), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(16), actual);
+      assertEquals(Long.valueOf(16), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(17), actual);
+      assertEquals(Long.valueOf(17), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(18), actual);
+      assertEquals(Long.valueOf(18), actual);
 
       /* index 3 */
       index++;
@@ -382,7 +382,7 @@ public class TestListVector {
       assertEquals(Integer.toString(9), Integer.toString(offset));
 
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(19), actual);
+      assertEquals(Long.valueOf(19), actual);
 
       /* index 4 */
       index++;
@@ -391,16 +391,16 @@ public class TestListVector {
       assertEquals(Integer.toString(10), Integer.toString(offset));
 
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(20), actual);
+      assertEquals(Long.valueOf(20), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(21), actual);
+      assertEquals(Long.valueOf(21), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(22), actual);
+      assertEquals(Long.valueOf(22), actual);
       offset++;
       actual = dataVector.getObject(offset);
-      assertEquals(new Long(23), actual);
+      assertEquals(Long.valueOf(23), actual);
 
       /* index 5 */
       index++;
@@ -527,15 +527,15 @@ public class TestListVector {
       assertEquals(4, resultSet.get(1).size()); /* size of second inner list */
 
       list = resultSet.get(0);
-      assertEquals(new Long(50), list.get(0));
-      assertEquals(new Long(100), list.get(1));
-      assertEquals(new Long(200), list.get(2));
+      assertEquals(Long.valueOf(50), list.get(0));
+      assertEquals(Long.valueOf(100), list.get(1));
+      assertEquals(Long.valueOf(200), list.get(2));
 
       list = resultSet.get(1);
-      assertEquals(new Long(75), list.get(0));
-      assertEquals(new Long(125), list.get(1));
-      assertEquals(new Long(150), list.get(2));
-      assertEquals(new Long(175), list.get(3));
+      assertEquals(Long.valueOf(75), list.get(0));
+      assertEquals(Long.valueOf(125), list.get(1));
+      assertEquals(Long.valueOf(150), list.get(2));
+      assertEquals(Long.valueOf(175), list.get(3));
 
       /* get listVector value at index 1 -- the value itself is a listvector */
       result = listVector.getObject(1);
@@ -547,16 +547,16 @@ public class TestListVector {
       assertEquals(3, resultSet.get(2).size()); /* size of third inner list */
 
       list = resultSet.get(0);
-      assertEquals(new Long(10), list.get(0));
+      assertEquals(Long.valueOf(10), list.get(0));
 
       list = resultSet.get(1);
-      assertEquals(new Long(15), list.get(0));
-      assertEquals(new Long(20), list.get(1));
+      assertEquals(Long.valueOf(15), list.get(0));
+      assertEquals(Long.valueOf(20), list.get(1));
 
       list = resultSet.get(2);
-      assertEquals(new Long(25), list.get(0));
-      assertEquals(new Long(30), list.get(1));
-      assertEquals(new Long(35), list.get(2));
+      assertEquals(Long.valueOf(25), list.get(0));
+      assertEquals(Long.valueOf(30), list.get(1));
+      assertEquals(Long.valueOf(35), list.get(2));
 
       /* check underlying bitVector */
       assertFalse(listVector.isNull(0));
@@ -661,13 +661,13 @@ public class TestListVector {
       assertEquals(2, resultSet.get(1).size()); /* size of second inner list */
 
       list = resultSet.get(0);
-      assertEquals(new Long(50), list.get(0));
-      assertEquals(new Long(100), list.get(1));
-      assertEquals(new Long(200), list.get(2));
+      assertEquals(Long.valueOf(50), list.get(0));
+      assertEquals(Long.valueOf(100), list.get(1));
+      assertEquals(Long.valueOf(200), list.get(2));
 
       list = resultSet.get(1);
-      assertEquals(new Long(75), list.get(0));
-      assertEquals(new Long(125), list.get(1));
+      assertEquals(Long.valueOf(75), list.get(0));
+      assertEquals(Long.valueOf(125), list.get(1));
 
       /* get listVector value at index 1 -- the value itself is a listvector */
       result = listVector.getObject(1);
@@ -678,13 +678,13 @@ public class TestListVector {
       assertEquals(3, resultSet.get(1).size()); /* size of second inner list */
 
       list = resultSet.get(0);
-      assertEquals(new Long(15), list.get(0));
-      assertEquals(new Long(20), list.get(1));
+      assertEquals(Long.valueOf(15), list.get(0));
+      assertEquals(Long.valueOf(20), list.get(1));
 
       list = resultSet.get(1);
-      assertEquals(new Long(25), list.get(0));
-      assertEquals(new Long(30), list.get(1));
-      assertEquals(new Long(35), list.get(2));
+      assertEquals(Long.valueOf(25), list.get(0));
+      assertEquals(Long.valueOf(30), list.get(1));
+      assertEquals(Long.valueOf(35), list.get(2));
 
       /* check underlying bitVector */
       assertFalse(listVector.isNull(0));
@@ -728,15 +728,15 @@ public class TestListVector {
       Object result = listVector.getObject(0);
       ArrayList<Long> resultSet = (ArrayList<Long>) result;
       assertEquals(3, resultSet.size());
-      assertEquals(new Long(50), resultSet.get(0));
-      assertEquals(new Long(100), resultSet.get(1));
-      assertEquals(new Long(200), resultSet.get(2));
+      assertEquals(Long.valueOf(50), resultSet.get(0));
+      assertEquals(Long.valueOf(100), resultSet.get(1));
+      assertEquals(Long.valueOf(200), resultSet.get(2));
 
       result = listVector.getObject(1);
       resultSet = (ArrayList<Long>) result;
       assertEquals(2, resultSet.size());
-      assertEquals(new Long(250), resultSet.get(0));
-      assertEquals(new Long(300), resultSet.get(1));
+      assertEquals(Long.valueOf(250), resultSet.get(0));
+      assertEquals(Long.valueOf(300), resultSet.get(1));
 
       List<ArrowBuf> buffers = listVector.getFieldBuffers();
 
@@ -744,7 +744,7 @@ public class TestListVector {
       long offsetAddress = listVector.getOffsetBufferAddress();
 
       try {
-        long dataAddress = listVector.getDataBufferAddress();
+        listVector.getDataBufferAddress();
       } catch (UnsupportedOperationException ue) {
         error = true;
       } finally {
@@ -777,7 +777,7 @@ public class TestListVector {
     try (final ListVector vector = ListVector.empty("", allocator)) {
       vector.addOrGetVector(FieldType.nullable(MinorType.INT.getType()));
 
-      /**
+      /*
        * use the default multiplier of 5,
        * 512 * 5 => 2560 * 4 => 10240 bytes => 16KB => 4096 value capacity.
        */
@@ -792,7 +792,7 @@ public class TestListVector {
       assertEquals(512, vector.getValueCapacity());
       assertTrue(vector.getDataVector().getValueCapacity() >= 512 * 4);
 
-      /**
+      /*
        * inner value capacity we pass to data vector is 512 * 0.1 => 51
        * For an int vector this is 204 bytes of memory for data buffer
        * and 7 bytes for validity buffer.
@@ -805,7 +805,7 @@ public class TestListVector {
       assertEquals(512, vector.getValueCapacity());
       assertTrue(vector.getDataVector().getValueCapacity() >= 51);
 
-      /**
+      /*
        * inner value capacity we pass to data vector is 512 * 0.01 => 5
        * For an int vector this is 20 bytes of memory for data buffer
        * and 1 byte for validity buffer.
@@ -818,7 +818,7 @@ public class TestListVector {
       assertEquals(512, vector.getValueCapacity());
       assertTrue(vector.getDataVector().getValueCapacity() >= 5);
 
-      /**
+      /*
        * inner value capacity we pass to data vector is 5 * 0.1 => 0
        * which is then rounded off to 1. So we pass value count as 1
        * to the inner int vector.
@@ -854,11 +854,11 @@ public class TestListVector {
 
       Object result = vector.getObject(0);
       ArrayList<Long> resultSet = (ArrayList<Long>) result;
-      assertEquals(new Long(7), resultSet.get(0));
+      assertEquals(Long.valueOf(7), resultSet.get(0));
 
       result = vector.getObject(1);
       resultSet = (ArrayList<Long>) result;
-      assertEquals(new Long(8), resultSet.get(0));
+      assertEquals(Long.valueOf(8), resultSet.get(0));
 
       // Clear and release the buffers to trigger a realloc when adding next value
       vector.clear();
@@ -874,11 +874,11 @@ public class TestListVector {
 
       result = vector.getObject(0);
       resultSet = (ArrayList<Long>) result;
-      assertEquals(new Long(7), resultSet.get(0));
+      assertEquals(Long.valueOf(7), resultSet.get(0));
 
       result = vector.getObject(1);
       resultSet = (ArrayList<Long>) result;
-      assertEquals(new Long(8), resultSet.get(0));
+      assertEquals(Long.valueOf(8), resultSet.get(0));
     }
   }
 
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestMapVector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestMapVector.java
index 1db55198e4..43f4c3b536 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestMapVector.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestMapVector.java
@@ -335,8 +335,8 @@ public class TestMapVector {
 
       /* check the vector output */
       int index = 0;
-      int offset = 0;
-      Map<?, ?> result = null;
+      int offset;
+      Map<?, ?> result;
 
       /* index 0 */
       assertFalse(mapVector.isNull(index));
@@ -571,18 +571,18 @@ public class TestMapVector {
       assertEquals(1L, getResultKey(resultStruct));
       ArrayList<Long> list = (ArrayList<Long>) getResultValue(resultStruct);
       assertEquals(3, list.size()); // value is a list with 3 elements
-      assertEquals(new Long(50), list.get(0));
-      assertEquals(new Long(100), list.get(1));
-      assertEquals(new Long(200), list.get(2));
+      assertEquals(Long.valueOf(50), list.get(0));
+      assertEquals(Long.valueOf(100), list.get(1));
+      assertEquals(Long.valueOf(200), list.get(2));
 
       // Second Map entry
       resultStruct = (Map<?, ?>) resultSet.get(1);
       list = (ArrayList<Long>) getResultValue(resultStruct);
       assertEquals(4, list.size()); // value is a list with 4 elements
-      assertEquals(new Long(75), list.get(0));
-      assertEquals(new Long(125), list.get(1));
-      assertEquals(new Long(150), list.get(2));
-      assertEquals(new Long(175), list.get(3));
+      assertEquals(Long.valueOf(75), list.get(0));
+      assertEquals(Long.valueOf(125), list.get(1));
+      assertEquals(Long.valueOf(150), list.get(2));
+      assertEquals(Long.valueOf(175), list.get(3));
 
       // Get mapVector element at index 1
       result = mapVector.getObject(1);
@@ -593,24 +593,24 @@ public class TestMapVector {
       assertEquals(3L, getResultKey(resultStruct));
       list = (ArrayList<Long>) getResultValue(resultStruct);
       assertEquals(1, list.size()); // value is a list with 1 element
-      assertEquals(new Long(10), list.get(0));
+      assertEquals(Long.valueOf(10), list.get(0));
 
       // Second Map entry
       resultStruct = (Map<?, ?>) resultSet.get(1);
       assertEquals(4L, getResultKey(resultStruct));
       list = (ArrayList<Long>) getResultValue(resultStruct);
       assertEquals(2, list.size()); // value is a list with 1 element
-      assertEquals(new Long(15), list.get(0));
-      assertEquals(new Long(20), list.get(1));
+      assertEquals(Long.valueOf(15), list.get(0));
+      assertEquals(Long.valueOf(20), list.get(1));
 
       // Third Map entry
       resultStruct = (Map<?, ?>) resultSet.get(2);
       assertEquals(5L, getResultKey(resultStruct));
       list = (ArrayList<Long>) getResultValue(resultStruct);
       assertEquals(3, list.size()); // value is a list with 1 element
-      assertEquals(new Long(25), list.get(0));
-      assertEquals(new Long(30), list.get(1));
-      assertEquals(new Long(35), list.get(2));
+      assertEquals(Long.valueOf(25), list.get(0));
+      assertEquals(Long.valueOf(30), list.get(1));
+      assertEquals(Long.valueOf(35), list.get(2));
 
       /* check underlying bitVector */
       assertFalse(mapVector.isNull(0));
@@ -1012,8 +1012,8 @@ public class TestMapVector {
       final ArrowBuf offsetBuffer = mapVector.getOffsetBuffer();
 
       /* mapVector has 2 entries at index 0 and 4 entries at index 1 */
-      assertEquals(0, offsetBuffer.getInt(0 * MapVector.OFFSET_WIDTH));
-      assertEquals(2, offsetBuffer.getInt(1 * MapVector.OFFSET_WIDTH));
+      assertEquals(0, offsetBuffer.getInt(0));
+      assertEquals(2, offsetBuffer.getInt(MapVector.OFFSET_WIDTH));
       assertEquals(6, offsetBuffer.getInt(2 * MapVector.OFFSET_WIDTH));
     }
   }
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestSplitAndTransfer.java b/java/vector/src/test/java/org/apache/arrow/vector/TestSplitAndTransfer.java
index 716fa0bde4..3580a321f0 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestSplitAndTransfer.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestSplitAndTransfer.java
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
+import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -57,7 +58,7 @@ public class TestSplitAndTransfer {
   private void populateVarcharVector(final VarCharVector vector, int valueCount, String[] compareArray) {
     for (int i = 0; i < valueCount; i += 3) {
       final String s = String.format("%010d", i);
-      vector.set(i, s.getBytes());
+      vector.set(i, s.getBytes(StandardCharsets.UTF_8));
       if (compareArray != null) {
         compareArray[i] = s;
       }
@@ -86,7 +87,7 @@ public class TestSplitAndTransfer {
         for (int i = 0; i < length; i++) {
           final boolean expectedSet = ((start + i) % 3) == 0;
           if (expectedSet) {
-            final byte[] expectedValue = compareArray[start + i].getBytes();
+            final byte[] expectedValue = compareArray[start + i].getBytes(StandardCharsets.UTF_8);
             assertFalse(newVarCharVector.isNull(i));
             assertArrayEquals(expectedValue, newVarCharVector.get(i));
           } else {
@@ -141,7 +142,7 @@ public class TestSplitAndTransfer {
       for (int i = 0; i < valueCount; i++) {
         final boolean expectedSet = (i % 3) == 0;
         if (expectedSet) {
-          final byte[] expectedValue = compareArray[i].getBytes();
+          final byte[] expectedValue = compareArray[i].getBytes(StandardCharsets.UTF_8);
           assertFalse(newVarCharVector.isNull(i));
           assertArrayEquals(expectedValue, newVarCharVector.get(i));
         } else {
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestUnionVector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestUnionVector.java
index b53171a597..1b0387feb7 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestUnionVector.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestUnionVector.java
@@ -404,16 +404,16 @@ public class TestUnionVector {
     assertTrue(vector.getField().equals(field));
 
     // Union has 2 child vectors
-    assertEquals(vector.size(), 2);
+    assertEquals(2, vector.size());
 
     // Check child field 0
     VectorWithOrdinal intChild = vector.getChildVectorWithOrdinal("int");
-    assertEquals(intChild.ordinal, 0);
+    assertEquals(0, intChild.ordinal);
     assertEquals(intChild.vector.getField(), children.get(0));
 
     // Check child field 1
     VectorWithOrdinal varcharChild = vector.getChildVectorWithOrdinal("varchar");
-    assertEquals(varcharChild.ordinal, 1);
+    assertEquals(1, varcharChild.ordinal);
     assertEquals(varcharChild.vector.getField(), children.get(1));
   }
 
@@ -455,7 +455,7 @@ public class TestUnionVector {
 
 
       try {
-        long offsetAddress = vector.getOffsetBufferAddress();
+        vector.getOffsetBufferAddress();
       } catch (UnsupportedOperationException ue) {
         error = true;
       } finally {
@@ -464,7 +464,7 @@ public class TestUnionVector {
       }
 
       try {
-        long dataAddress = vector.getDataBufferAddress();
+        vector.getDataBufferAddress();
       } catch (UnsupportedOperationException ue) {
         error = true;
       } finally {
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestValueVector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestValueVector.java
index fb96870804..614aff18d4 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestValueVector.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestValueVector.java
@@ -83,7 +83,7 @@ public class TestValueVector {
     allocator = new RootAllocator(Long.MAX_VALUE);
   }
 
-  private static final Charset utf8Charset = Charset.forName("UTF-8");
+  private static final Charset utf8Charset = StandardCharsets.UTF_8;
   private static final byte[] STR1 = "AAAAA1".getBytes(utf8Charset);
   private static final byte[] STR2 = "BBBBBBBBB2".getBytes(utf8Charset);
   private static final byte[] STR3 = "CCCC3".getBytes(utf8Charset);
@@ -127,10 +127,9 @@ public class TestValueVector {
     try (final UInt4Vector vector = new UInt4Vector(EMPTY_SCHEMA_PATH, allocator)) {
 
       boolean error = false;
-      int initialCapacity = 0;
 
       vector.allocateNew(1024);
-      initialCapacity = vector.getValueCapacity();
+      int initialCapacity = vector.getValueCapacity();
       assertTrue(initialCapacity >= 1024);
 
       // Put and set a few values
@@ -562,8 +561,6 @@ public class TestValueVector {
       assertEquals(103, vector.get(initialCapacity - 2));
       assertEquals(104, vector.get(initialCapacity - 1));
 
-      int val = 0;
-
       /* check unset bits/null values */
       for (int i = 2, j = 101; i <= 99 || j <= initialCapacity - 3; i++, j++) {
         if (i <= 99) {
@@ -606,8 +603,6 @@ public class TestValueVector {
       assertEquals(104, vector.get(initialCapacity - 1));
       assertEquals(10000, vector.get(initialCapacity));
 
-      val = 0;
-
       /* check unset bits/null values */
       for (int i = 2, j = 101; i < 99 || j < initialCapacity - 3; i++, j++) {
         if (i <= 99) {
@@ -735,7 +730,6 @@ public class TestValueVector {
   public void testNullableFixedType3() {
     // Create a new value vector for 1024 integers
     try (final IntVector vector = newVector(IntVector.class, EMPTY_SCHEMA_PATH, MinorType.INT, allocator)) {
-      boolean error = false;
       int initialCapacity = 1024;
 
       /* no memory allocation has happened yet so capacity of underlying buffer should be 0 */
@@ -765,7 +759,6 @@ public class TestValueVector {
       }
 
       vector.setValueCount(1024);
-      Field field = vector.getField();
 
       List<ArrowBuf> buffers = vector.getFieldBuffers();
 
@@ -1105,7 +1098,6 @@ public class TestValueVector {
       assertEquals(txt, vector.getObject(7));
 
       // Ensure null value throws.
-      boolean b = false;
       assertNull(vector.get(8));
     }
   }
@@ -1182,18 +1174,18 @@ public class TestValueVector {
 
       final String str = "hello world";
       final String str2 = "foo";
-      vector.setSafe(0, str.getBytes());
-      vector.setSafe(1, str2.getBytes());
+      vector.setSafe(0, str.getBytes(StandardCharsets.UTF_8));
+      vector.setSafe(1, str2.getBytes(StandardCharsets.UTF_8));
 
       // verify results
       ReusableByteArray reusableByteArray = new ReusableByteArray();
       vector.read(0, reusableByteArray);
-      assertArrayEquals(str.getBytes(), Arrays.copyOfRange(reusableByteArray.getBuffer(),
+      assertArrayEquals(str.getBytes(StandardCharsets.UTF_8), Arrays.copyOfRange(reusableByteArray.getBuffer(),
           0, (int) reusableByteArray.getLength()));
       byte[] oldBuffer = reusableByteArray.getBuffer();
 
       vector.read(1, reusableByteArray);
-      assertArrayEquals(str2.getBytes(), Arrays.copyOfRange(reusableByteArray.getBuffer(),
+      assertArrayEquals(str2.getBytes(StandardCharsets.UTF_8), Arrays.copyOfRange(reusableByteArray.getBuffer(),
           0, (int) reusableByteArray.getLength()));
 
       // There should not have been any reallocation since the newer value is smaller in length.
@@ -1219,7 +1211,6 @@ public class TestValueVector {
   public void testReallocAfterVectorTransfer1() {
     try (final Float8Vector vector = new Float8Vector(EMPTY_SCHEMA_PATH, allocator)) {
       int initialCapacity = 4096;
-      boolean error = false;
 
       /* use the default capacity; 4096*8 => 32KB */
       vector.setInitialCapacity(initialCapacity);
@@ -1259,7 +1250,7 @@ public class TestValueVector {
       }
 
       /* this should trigger a realloc */
-      vector.setSafe(capacityAfterRealloc1, baseValue + (double) (capacityAfterRealloc1));
+      vector.setSafe(capacityAfterRealloc1, baseValue + (double) capacityAfterRealloc1);
       assertTrue(vector.getValueCapacity() >= initialCapacity * 4);
       int capacityAfterRealloc2 = vector.getValueCapacity();
 
@@ -1301,7 +1292,6 @@ public class TestValueVector {
   public void testReallocAfterVectorTransfer2() {
     try (final Float8Vector vector = new Float8Vector(EMPTY_SCHEMA_PATH, allocator)) {
       int initialCapacity = 4096;
-      boolean error = false;
 
       vector.allocateNew(initialCapacity);
       assertTrue(vector.getValueCapacity() >= initialCapacity);
@@ -1338,7 +1328,7 @@ public class TestValueVector {
       }
 
       /* this should trigger a realloc */
-      vector.setSafe(capacityAfterRealloc1, baseValue + (double) (capacityAfterRealloc1));
+      vector.setSafe(capacityAfterRealloc1, baseValue + (double) capacityAfterRealloc1);
       assertTrue(vector.getValueCapacity() >= initialCapacity * 4);
       int capacityAfterRealloc2 = vector.getValueCapacity();
 
@@ -1494,7 +1484,6 @@ public class TestValueVector {
       assertTrue(valueCapacity >= 4096);
 
       /* populate the vector */
-      int baseValue = 1000;
       for (int i = 0; i < valueCapacity; i++) {
         if ((i & 1) == 0) {
           vector.set(i, 1000 + i);
@@ -1649,7 +1638,7 @@ public class TestValueVector {
       int initialCapacity = vector.getValueCapacity();
       assertTrue(initialCapacity >= 4095);
 
-      vector.setSafe(4094, "hello".getBytes(), 0, 5);
+      vector.setSafe(4094, "hello".getBytes(StandardCharsets.UTF_8), 0, 5);
       /* the above set method should NOT have triggered a realloc */
       assertEquals(initialCapacity, vector.getValueCapacity());
 
@@ -1663,7 +1652,7 @@ public class TestValueVector {
   @Test
   public void testSetSafeWithArrowBufNoExcessAllocs() {
     final int numValues = BaseFixedWidthVector.INITIAL_VALUE_ALLOCATION * 2;
-    final byte[] valueBytes = "hello world".getBytes();
+    final byte[] valueBytes = "hello world".getBytes(StandardCharsets.UTF_8);
     final int valueBytesLength = valueBytes.length;
     final int isSet = 1;
 
@@ -1720,7 +1709,7 @@ public class TestValueVector {
         if (i % 3 == 0) {
           continue;
         }
-        byte[] b = Integer.toString(i).getBytes();
+        byte[] b = Integer.toString(i).getBytes(StandardCharsets.UTF_8);
         vector.setSafe(i, b, 0, b.length);
       }
 
@@ -1781,7 +1770,7 @@ public class TestValueVector {
         if (i % 3 == 0) {
           continue;
         }
-        byte[] b = Integer.toString(i).getBytes();
+        byte[] b = Integer.toString(i).getBytes(StandardCharsets.UTF_8);
         vector.setSafe(i, b, 0, b.length);
       }
 
@@ -2137,7 +2126,7 @@ public class TestValueVector {
       long dataAddress = vector.getDataBufferAddress();
 
       try {
-        long offsetAddress = vector.getOffsetBufferAddress();
+        vector.getOffsetBufferAddress();
       } catch (UnsupportedOperationException ue) {
         error = true;
       } finally {
@@ -2275,7 +2264,7 @@ public class TestValueVector {
 
       String str = "hello";
       ArrowBuf buf = allocator.buffer(16);
-      buf.setBytes(0, str.getBytes());
+      buf.setBytes(0, str.getBytes(StandardCharsets.UTF_8));
 
       stringHolder.start = 0;
       stringHolder.end = str.length();
@@ -2286,7 +2275,7 @@ public class TestValueVector {
 
       // verify results
       assertTrue(vector.isNull(0));
-      assertEquals(str, new String(vector.get(1)));
+      assertEquals(str, new String(vector.get(1), StandardCharsets.UTF_8));
 
       buf.close();
     }
@@ -2305,7 +2294,7 @@ public class TestValueVector {
 
       String str = "hello world";
       ArrowBuf buf = allocator.buffer(16);
-      buf.setBytes(0, str.getBytes());
+      buf.setBytes(0, str.getBytes(StandardCharsets.UTF_8));
 
       stringHolder.start = 0;
       stringHolder.end = str.length();
@@ -2315,7 +2304,7 @@ public class TestValueVector {
       vector.setSafe(1, nullHolder);
 
       // verify results
-      assertEquals(str, new String(vector.get(0)));
+      assertEquals(str, new String(vector.get(0), StandardCharsets.UTF_8));
       assertTrue(vector.isNull(1));
 
       buf.close();
@@ -2335,7 +2324,7 @@ public class TestValueVector {
 
       String str = "hello";
       ArrowBuf buf = allocator.buffer(16);
-      buf.setBytes(0, str.getBytes());
+      buf.setBytes(0, str.getBytes(StandardCharsets.UTF_8));
 
       binHolder.start = 0;
       binHolder.end = str.length();
@@ -2346,7 +2335,7 @@ public class TestValueVector {
 
       // verify results
       assertTrue(vector.isNull(0));
-      assertEquals(str, new String(vector.get(1)));
+      assertEquals(str, new String(vector.get(1), StandardCharsets.UTF_8));
 
       buf.close();
     }
@@ -2365,7 +2354,7 @@ public class TestValueVector {
 
       String str = "hello world";
       ArrowBuf buf = allocator.buffer(16);
-      buf.setBytes(0, str.getBytes());
+      buf.setBytes(0, str.getBytes(StandardCharsets.UTF_8));
 
       binHolder.start = 0;
       binHolder.end = str.length();
@@ -2375,7 +2364,7 @@ public class TestValueVector {
       vector.setSafe(1, nullHolder);
 
       // verify results
-      assertEquals(str, new String(vector.get(0)));
+      assertEquals(str, new String(vector.get(0), StandardCharsets.UTF_8));
       assertTrue(vector.isNull(1));
 
       buf.close();
@@ -2431,8 +2420,8 @@ public class TestValueVector {
       for (int i = 0; i < sampleData.length; i++) {
         String str = sampleData[i];
         if (str != null) {
-          vec1.set(i, sampleData[i].getBytes());
-          vec2.set(i, sampleData[i].getBytes());
+          vec1.set(i, sampleData[i].getBytes(StandardCharsets.UTF_8));
+          vec2.set(i, sampleData[i].getBytes(StandardCharsets.UTF_8));
         } else {
           vec1.setNull(i);
           vec2.setNull(i);
@@ -2827,7 +2816,7 @@ public class TestValueVector {
       varChVec.allocateNew(100, 1);
       varChVec.setValueCount(1);
 
-      varChVec.set(0, "abc".getBytes());
+      varChVec.set(0, "abc".getBytes(StandardCharsets.UTF_8));
       varChVec.setNull(0);
 
       assertEquals(0, varChVec.hashCode(0));
@@ -2945,7 +2934,7 @@ public class TestValueVector {
       varCharVector.allocateNew(5, 2);
       varCharVector.setValueCount(2);
 
-      varCharVector.set(0, "abcd".getBytes());
+      varCharVector.set(0, "abcd".getBytes(StandardCharsets.UTF_8));
 
       List<ArrowBuf> bufs = varCharVector.getFieldBuffers();
       assertEquals(3, bufs.size());
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestVarCharListVector.java b/java/vector/src/test/java/org/apache/arrow/vector/TestVarCharListVector.java
index a9b155499f..bfe489fa5a 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestVarCharListVector.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestVarCharListVector.java
@@ -17,6 +17,8 @@
 
 package org.apache.arrow.vector;
 
+import java.nio.charset.StandardCharsets;
+
 import org.apache.arrow.memory.ArrowBuf;
 import org.apache.arrow.memory.BufferAllocator;
 import org.apache.arrow.vector.complex.ListVector;
@@ -44,7 +46,7 @@ public class TestVarCharListVector {
 
   @Test
   public void testVarCharListWithNulls() {
-    byte[] bytes = "a".getBytes();
+    byte[] bytes = "a".getBytes(StandardCharsets.UTF_8);
     try (ListVector vector = new ListVector("VarList", allocator, FieldType.nullable(Types
             .MinorType.VARCHAR.getType()), null);
          ArrowBuf tempBuf = allocator.buffer(bytes.length)) {
@@ -63,15 +65,15 @@ public class TestVarCharListVector {
 
       writer.setPosition(2);
       writer.startList();
-      bytes = "b".getBytes();
+      bytes = "b".getBytes(StandardCharsets.UTF_8);
       tempBuf.setBytes(0, bytes);
       writer.writeVarChar(0, bytes.length, tempBuf);
       writer.endList();
 
       writer.setValueCount(2);
 
-      Assert.assertTrue(vector.getValueCount() == 2);
-      Assert.assertTrue(vector.getDataVector().getValueCount() == 2);
+      Assert.assertEquals(2, vector.getValueCount());
+      Assert.assertEquals(2, vector.getDataVector().getValueCount());
     }
   }
 }
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestVectorAlloc.java b/java/vector/src/test/java/org/apache/arrow/vector/TestVectorAlloc.java
index dfc75ec8e3..b96f6ab6af 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestVectorAlloc.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestVectorAlloc.java
@@ -143,7 +143,7 @@ public class TestVectorAlloc {
       totalCapacity = vec2.getValidityBuffer().capacity() + vec2.getDataBuffer().capacity();
 
       // the total capacity must be a power of two
-      assertEquals(totalCapacity & (totalCapacity - 1), 0);
+      assertEquals(0, totalCapacity & (totalCapacity - 1));
     }
   }
 
@@ -163,7 +163,7 @@ public class TestVectorAlloc {
       totalCapacity = vec2.getValidityBuffer().capacity() + vec2.getOffsetBuffer().capacity();
 
       // the total capacity must be a power of two
-      assertEquals(totalCapacity & (totalCapacity - 1), 0);
+      assertEquals(0, totalCapacity & (totalCapacity - 1));
     }
   }
 }
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestVectorReAlloc.java b/java/vector/src/test/java/org/apache/arrow/vector/TestVectorReAlloc.java
index 7d5701ddb7..9043bd4f8f 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestVectorReAlloc.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestVectorReAlloc.java
@@ -324,12 +324,12 @@ public class TestVectorReAlloc {
       vector.allocateNewSafe(); // Initial allocation
 
       vector.clear(); // clear vector.
-      vector.setSafe(0, "hello world".getBytes());
+      vector.setSafe(0, "hello world".getBytes(StandardCharsets.UTF_8));
       int savedValueCapacity = vector.getValueCapacity();
 
       for (int i = 0; i < 1024; ++i) {
         vector.clear(); // clear vector.
-        vector.setSafe(0, "hello world".getBytes());
+        vector.setSafe(0, "hello world".getBytes(StandardCharsets.UTF_8));
       }
 
       // should be deterministic, and not cause a run-away increase in capacity.
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/TestVectorSchemaRoot.java b/java/vector/src/test/java/org/apache/arrow/vector/TestVectorSchemaRoot.java
index ce3fb2cdf0..207962eb45 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/TestVectorSchemaRoot.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/TestVectorSchemaRoot.java
@@ -61,7 +61,7 @@ public class TestVectorSchemaRoot {
       VectorSchemaRoot vsr = VectorSchemaRoot.of(vec1, vec2);
 
       vsr.allocateNew();
-      assertEquals(vsr.getRowCount(), 0);
+      assertEquals(0, vsr.getRowCount());
 
       for (int i = 0; i < size; i++) {
         vec1.setSafe(i, i % 2);
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/compare/TestTypeEqualsVisitor.java b/java/vector/src/test/java/org/apache/arrow/vector/compare/TestTypeEqualsVisitor.java
index c0a3bd89dc..62fa0336ea 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/compare/TestTypeEqualsVisitor.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/compare/TestTypeEqualsVisitor.java
@@ -20,7 +20,6 @@ package org.apache.arrow.vector.compare;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
 
-import java.nio.charset.Charset;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -52,11 +51,6 @@ public class TestTypeEqualsVisitor {
     allocator = new RootAllocator(Long.MAX_VALUE);
   }
 
-  private static final Charset utf8Charset = Charset.forName("UTF-8");
-  private static final byte[] STR1 = "AAAAA1".getBytes(utf8Charset);
-  private static final byte[] STR2 = "BBBBBBBBB2".getBytes(utf8Charset);
-  private static final byte[] STR3 = "CCCC3".getBytes(utf8Charset);
-
   @After
   public void terminate() throws Exception {
     allocator.close();
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/complex/impl/TestPromotableWriter.java b/java/vector/src/test/java/org/apache/arrow/vector/complex/impl/TestPromotableWriter.java
index 4c8c96a0d7..b7fc681c16 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/complex/impl/TestPromotableWriter.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/complex/impl/TestPromotableWriter.java
@@ -24,6 +24,8 @@ import static org.junit.jupiter.api.Assertions.assertThrows;
 
 import java.nio.ByteBuffer;
 import java.nio.ByteOrder;
+import java.nio.charset.StandardCharsets;
+import java.util.Objects;
 
 import org.apache.arrow.memory.ArrowBuf;
 import org.apache.arrow.memory.BufferAllocator;
@@ -413,8 +415,8 @@ public class TestPromotableWriter {
       writer.end();
 
       final LargeVarCharVector uv = v.getChild("c", LargeVarCharVector.class);
-      assertEquals("foo", uv.getObject(0).toString());
-      assertEquals("foo2", uv.getObject(1).toString());
+      assertEquals("foo", Objects.requireNonNull(uv.getObject(0)).toString());
+      assertEquals("foo2", Objects.requireNonNull(uv.getObject(1)).toString());
     }
   }
 
@@ -433,8 +435,8 @@ public class TestPromotableWriter {
       writer.end();
 
       final VarCharVector uv = v.getChild("c", VarCharVector.class);
-      assertEquals("foo", uv.getObject(0).toString());
-      assertEquals("foo2", uv.getObject(1).toString());
+      assertEquals("foo", Objects.requireNonNull(uv.getObject(0)).toString());
+      assertEquals("foo2", Objects.requireNonNull(uv.getObject(1)).toString());
     }
   }
 
@@ -455,8 +457,8 @@ public class TestPromotableWriter {
       // The "test" vector in the parent container should have been replaced with a UnionVector.
       UnionVector promotedVector = container.getChild("test", UnionVector.class);
       VarCharVector vector = promotedVector.getVarCharVector();
-      assertEquals("foo", vector.getObject(0).toString());
-      assertEquals("foo2", vector.getObject(1).toString());
+      assertEquals("foo", Objects.requireNonNull(vector.getObject(0)).toString());
+      assertEquals("foo2", Objects.requireNonNull(vector.getObject(1)).toString());
     }
   }
 
@@ -477,8 +479,8 @@ public class TestPromotableWriter {
       // The "test" vector in the parent container should have been replaced with a UnionVector.
       UnionVector promotedVector = container.getChild("test", UnionVector.class);
       LargeVarCharVector vector = promotedVector.getLargeVarCharVector();
-      assertEquals("foo", vector.getObject(0).toString());
-      assertEquals("foo2", vector.getObject(1).toString());
+      assertEquals("foo", Objects.requireNonNull(vector.getObject(0)).toString());
+      assertEquals("foo2", Objects.requireNonNull(vector.getObject(1)).toString());
     }
   }
 
@@ -491,20 +493,22 @@ public class TestPromotableWriter {
 
       writer.start();
       writer.setPosition(0);
-      writer.varBinary("c").writeVarBinary("row1".getBytes());
+      writer.varBinary("c").writeVarBinary("row1".getBytes(StandardCharsets.UTF_8));
       writer.setPosition(1);
-      writer.varBinary("c").writeVarBinary("row2".getBytes(), 0, "row2".getBytes().length);
+      writer.varBinary("c").writeVarBinary("row2".getBytes(StandardCharsets.UTF_8), 0,
+          "row2".getBytes(StandardCharsets.UTF_8).length);
       writer.setPosition(2);
-      writer.varBinary("c").writeVarBinary(ByteBuffer.wrap("row3".getBytes()));
+      writer.varBinary("c").writeVarBinary(ByteBuffer.wrap("row3".getBytes(StandardCharsets.UTF_8)));
       writer.setPosition(3);
-      writer.varBinary("c").writeVarBinary(ByteBuffer.wrap("row4".getBytes()), 0, "row4".getBytes().length);
+      writer.varBinary("c").writeVarBinary(ByteBuffer.wrap("row4".getBytes(StandardCharsets.UTF_8)), 0,
+          "row4".getBytes(StandardCharsets.UTF_8).length);
       writer.end();
 
       final VarBinaryVector uv = v.getChild("c", VarBinaryVector.class);
-      assertEquals("row1", new String(uv.get(0)));
-      assertEquals("row2", new String(uv.get(1)));
-      assertEquals("row3", new String(uv.get(2)));
-      assertEquals("row4", new String(uv.get(3)));
+      assertEquals("row1", new String(Objects.requireNonNull(uv.get(0)), StandardCharsets.UTF_8));
+      assertEquals("row2", new String(Objects.requireNonNull(uv.get(1)), StandardCharsets.UTF_8));
+      assertEquals("row3", new String(Objects.requireNonNull(uv.get(2)), StandardCharsets.UTF_8));
+      assertEquals("row4", new String(Objects.requireNonNull(uv.get(3)), StandardCharsets.UTF_8));
     }
   }
 
@@ -517,22 +521,24 @@ public class TestPromotableWriter {
 
       writer.start();
       writer.setPosition(0);
-      writer.writeVarBinary("row1".getBytes());
+      writer.writeVarBinary("row1".getBytes(StandardCharsets.UTF_8));
       writer.setPosition(1);
-      writer.writeVarBinary("row2".getBytes(), 0, "row2".getBytes().length);
+      writer.writeVarBinary("row2".getBytes(StandardCharsets.UTF_8), 0,
+          "row2".getBytes(StandardCharsets.UTF_8).length);
       writer.setPosition(2);
-      writer.writeVarBinary(ByteBuffer.wrap("row3".getBytes()));
+      writer.writeVarBinary(ByteBuffer.wrap("row3".getBytes(StandardCharsets.UTF_8)));
       writer.setPosition(3);
-      writer.writeVarBinary(ByteBuffer.wrap("row4".getBytes()), 0, "row4".getBytes().length);
+      writer.writeVarBinary(ByteBuffer.wrap("row4".getBytes(StandardCharsets.UTF_8)), 0,
+          "row4".getBytes(StandardCharsets.UTF_8).length);
       writer.end();
 
       // The "test" vector in the parent container should have been replaced with a UnionVector.
       UnionVector promotedVector = container.getChild("test", UnionVector.class);
       VarBinaryVector uv = promotedVector.getVarBinaryVector();
-      assertEquals("row1", new String(uv.get(0)));
-      assertEquals("row2", new String(uv.get(1)));
-      assertEquals("row3", new String(uv.get(2)));
-      assertEquals("row4", new String(uv.get(3)));
+      assertEquals("row1", new String(Objects.requireNonNull(uv.get(0)), StandardCharsets.UTF_8));
+      assertEquals("row2", new String(Objects.requireNonNull(uv.get(1)), StandardCharsets.UTF_8));
+      assertEquals("row3", new String(Objects.requireNonNull(uv.get(2)), StandardCharsets.UTF_8));
+      assertEquals("row4", new String(Objects.requireNonNull(uv.get(3)), StandardCharsets.UTF_8));
     }
   }
 
@@ -545,20 +551,22 @@ public class TestPromotableWriter {
 
       writer.start();
       writer.setPosition(0);
-      writer.largeVarBinary("c").writeLargeVarBinary("row1".getBytes());
+      writer.largeVarBinary("c").writeLargeVarBinary("row1".getBytes(StandardCharsets.UTF_8));
       writer.setPosition(1);
-      writer.largeVarBinary("c").writeLargeVarBinary("row2".getBytes(), 0, "row2".getBytes().length);
+      writer.largeVarBinary("c").writeLargeVarBinary("row2".getBytes(StandardCharsets.UTF_8), 0,
+          "row2".getBytes(StandardCharsets.UTF_8).length);
       writer.setPosition(2);
-      writer.largeVarBinary("c").writeLargeVarBinary(ByteBuffer.wrap("row3".getBytes()));
+      writer.largeVarBinary("c").writeLargeVarBinary(ByteBuffer.wrap("row3".getBytes(StandardCharsets.UTF_8)));
       writer.setPosition(3);
-      writer.largeVarBinary("c").writeLargeVarBinary(ByteBuffer.wrap("row4".getBytes()), 0, "row4".getBytes().length);
+      writer.largeVarBinary("c").writeLargeVarBinary(ByteBuffer.wrap("row4".getBytes(StandardCharsets.UTF_8)), 0,
+          "row4".getBytes(StandardCharsets.UTF_8).length);
       writer.end();
 
       final LargeVarBinaryVector uv = v.getChild("c", LargeVarBinaryVector.class);
-      assertEquals("row1", new String(uv.get(0)));
-      assertEquals("row2", new String(uv.get(1)));
-      assertEquals("row3", new String(uv.get(2)));
-      assertEquals("row4", new String(uv.get(3)));
+      assertEquals("row1", new String(Objects.requireNonNull(uv.get(0)), StandardCharsets.UTF_8));
+      assertEquals("row2", new String(Objects.requireNonNull(uv.get(1)), StandardCharsets.UTF_8));
+      assertEquals("row3", new String(Objects.requireNonNull(uv.get(2)), StandardCharsets.UTF_8));
+      assertEquals("row4", new String(Objects.requireNonNull(uv.get(3)), StandardCharsets.UTF_8));
     }
   }
 
@@ -571,22 +579,24 @@ public class TestPromotableWriter {
 
       writer.start();
       writer.setPosition(0);
-      writer.writeLargeVarBinary("row1".getBytes());
+      writer.writeLargeVarBinary("row1".getBytes(StandardCharsets.UTF_8));
       writer.setPosition(1);
-      writer.writeLargeVarBinary("row2".getBytes(), 0, "row2".getBytes().length);
+      writer.writeLargeVarBinary("row2".getBytes(StandardCharsets.UTF_8), 0,
+          "row2".getBytes(StandardCharsets.UTF_8).length);
       writer.setPosition(2);
-      writer.writeLargeVarBinary(ByteBuffer.wrap("row3".getBytes()));
+      writer.writeLargeVarBinary(ByteBuffer.wrap("row3".getBytes(StandardCharsets.UTF_8)));
       writer.setPosition(3);
-      writer.writeLargeVarBinary(ByteBuffer.wrap("row4".getBytes()), 0, "row4".getBytes().length);
+      writer.writeLargeVarBinary(ByteBuffer.wrap("row4".getBytes(StandardCharsets.UTF_8)), 0,
+          "row4".getBytes(StandardCharsets.UTF_8).length);
       writer.end();
 
       // The "test" vector in the parent container should have been replaced with a UnionVector.
       UnionVector promotedVector = container.getChild("test", UnionVector.class);
       LargeVarBinaryVector uv = promotedVector.getLargeVarBinaryVector();
-      assertEquals("row1", new String(uv.get(0)));
-      assertEquals("row2", new String(uv.get(1)));
-      assertEquals("row3", new String(uv.get(2)));
-      assertEquals("row4", new String(uv.get(3)));
+      assertEquals("row1", new String(Objects.requireNonNull(uv.get(0)), StandardCharsets.UTF_8));
+      assertEquals("row2", new String(Objects.requireNonNull(uv.get(1)), StandardCharsets.UTF_8));
+      assertEquals("row3", new String(Objects.requireNonNull(uv.get(2)), StandardCharsets.UTF_8));
+      assertEquals("row4", new String(Objects.requireNonNull(uv.get(3)), StandardCharsets.UTF_8));
     }
   }
 }
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/complex/writer/TestComplexWriter.java b/java/vector/src/test/java/org/apache/arrow/vector/complex/writer/TestComplexWriter.java
index e03ce0c056..19f0ea9d4e 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/complex/writer/TestComplexWriter.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/complex/writer/TestComplexWriter.java
@@ -21,6 +21,7 @@ import static org.junit.Assert.*;
 
 import java.math.BigDecimal;
 import java.nio.ByteBuffer;
+import java.nio.charset.StandardCharsets;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.HashSet;
@@ -128,9 +129,7 @@ public class TestComplexWriter {
   @Test
   public void transferPairSchemaChange() {
     SchemaChangeCallBack callBack1 = new SchemaChangeCallBack();
-    SchemaChangeCallBack callBack2 = new SchemaChangeCallBack();
     try (NonNullableStructVector parent = populateStructVector(callBack1)) {
-      TransferPair tp = parent.getTransferPair("newVector", allocator, callBack2);
 
       ComplexWriter writer = new ComplexWriterImpl("newWriter", parent);
       StructWriter rootWriter = writer.rootAsStruct();
@@ -818,7 +817,7 @@ public class TestComplexWriter {
       for (int i = 100; i < 200; i++) {
         VarCharWriter varCharWriter = rootWriter.varChar("a");
         varCharWriter.setPosition(i);
-        byte[] bytes = Integer.toString(i).getBytes();
+        byte[] bytes = Integer.toString(i).getBytes(StandardCharsets.UTF_8);
         ArrowBuf tempBuf = allocator.buffer(bytes.length);
         tempBuf.setBytes(0, bytes);
         varCharWriter.writeVarChar(0, bytes.length, tempBuf);
@@ -1719,21 +1718,23 @@ public class TestComplexWriter {
       StructWriter rootWriter = writer.rootAsStruct();
       rootWriter.start();
       rootWriter.setPosition(0);
-      rootWriter.varBinary("c").writeVarBinary("row1".getBytes());
+      rootWriter.varBinary("c").writeVarBinary("row1".getBytes(StandardCharsets.UTF_8));
       rootWriter.setPosition(1);
-      rootWriter.varBinary("c").writeVarBinary("row2".getBytes(), 0, "row2".getBytes().length);
+      rootWriter.varBinary("c").writeVarBinary("row2".getBytes(StandardCharsets.UTF_8), 0,
+          "row2".getBytes(StandardCharsets.UTF_8).length);
       rootWriter.setPosition(2);
-      rootWriter.varBinary("c").writeVarBinary(ByteBuffer.wrap("row3".getBytes()));
+      rootWriter.varBinary("c").writeVarBinary(ByteBuffer.wrap("row3".getBytes(StandardCharsets.UTF_8)));
       rootWriter.setPosition(3);
-      rootWriter.varBinary("c").writeVarBinary(ByteBuffer.wrap("row4".getBytes()), 0, "row4".getBytes().length);
+      rootWriter.varBinary("c").writeVarBinary(ByteBuffer.wrap(
+          "row4".getBytes(StandardCharsets.UTF_8)), 0, "row4".getBytes(StandardCharsets.UTF_8).length);
       rootWriter.end();
 
       VarBinaryVector uv = parent.getChild("root", StructVector.class).getChild("c", VarBinaryVector.class);
 
-      assertEquals("row1", new String(uv.get(0)));
-      assertEquals("row2", new String(uv.get(1)));
-      assertEquals("row3", new String(uv.get(2)));
-      assertEquals("row4", new String(uv.get(3)));
+      assertEquals("row1", new String(uv.get(0), StandardCharsets.UTF_8));
+      assertEquals("row2", new String(uv.get(1), StandardCharsets.UTF_8));
+      assertEquals("row3", new String(uv.get(2), StandardCharsets.UTF_8));
+      assertEquals("row4", new String(uv.get(3), StandardCharsets.UTF_8));
     }
   }
 
@@ -1744,23 +1745,24 @@ public class TestComplexWriter {
       StructWriter rootWriter = writer.rootAsStruct();
       rootWriter.start();
       rootWriter.setPosition(0);
-      rootWriter.largeVarBinary("c").writeLargeVarBinary("row1".getBytes());
+      rootWriter.largeVarBinary("c").writeLargeVarBinary("row1".getBytes(StandardCharsets.UTF_8));
       rootWriter.setPosition(1);
-      rootWriter.largeVarBinary("c").writeLargeVarBinary("row2".getBytes(), 0, "row2".getBytes().length);
+      rootWriter.largeVarBinary("c").writeLargeVarBinary("row2".getBytes(StandardCharsets.UTF_8), 0,
+          "row2".getBytes(StandardCharsets.UTF_8).length);
       rootWriter.setPosition(2);
-      rootWriter.largeVarBinary("c").writeLargeVarBinary(ByteBuffer.wrap("row3".getBytes()));
+      rootWriter.largeVarBinary("c").writeLargeVarBinary(ByteBuffer.wrap("row3".getBytes(StandardCharsets.UTF_8)));
       rootWriter.setPosition(3);
-      rootWriter.largeVarBinary("c").writeLargeVarBinary(ByteBuffer.wrap("row4".getBytes()), 0,
-          "row4".getBytes().length);
+      rootWriter.largeVarBinary("c").writeLargeVarBinary(ByteBuffer.wrap(
+          "row4".getBytes(StandardCharsets.UTF_8)), 0, "row4".getBytes(StandardCharsets.UTF_8).length);
       rootWriter.end();
 
       LargeVarBinaryVector uv = parent.getChild("root", StructVector.class).getChild("c",
           LargeVarBinaryVector.class);
 
-      assertEquals("row1", new String(uv.get(0)));
-      assertEquals("row2", new String(uv.get(1)));
-      assertEquals("row3", new String(uv.get(2)));
-      assertEquals("row4", new String(uv.get(3)));
+      assertEquals("row1", new String(uv.get(0), StandardCharsets.UTF_8));
+      assertEquals("row2", new String(uv.get(1), StandardCharsets.UTF_8));
+      assertEquals("row3", new String(uv.get(2), StandardCharsets.UTF_8));
+      assertEquals("row4", new String(uv.get(3), StandardCharsets.UTF_8));
     }
   }
 
@@ -1800,16 +1802,18 @@ public class TestComplexWriter {
       listVector.allocateNew();
       UnionListWriter listWriter = new UnionListWriter(listVector);
       listWriter.startList();
-      listWriter.writeVarBinary("row1".getBytes());
-      listWriter.writeVarBinary("row2".getBytes(), 0, "row2".getBytes().length);
-      listWriter.writeVarBinary(ByteBuffer.wrap("row3".getBytes()));
-      listWriter.writeVarBinary(ByteBuffer.wrap("row4".getBytes()), 0, "row4".getBytes().length);
+      listWriter.writeVarBinary("row1".getBytes(StandardCharsets.UTF_8));
+      listWriter.writeVarBinary("row2".getBytes(StandardCharsets.UTF_8), 0,
+          "row2".getBytes(StandardCharsets.UTF_8).length);
+      listWriter.writeVarBinary(ByteBuffer.wrap("row3".getBytes(StandardCharsets.UTF_8)));
+      listWriter.writeVarBinary(ByteBuffer.wrap(
+          "row4".getBytes(StandardCharsets.UTF_8)), 0, "row4".getBytes(StandardCharsets.UTF_8).length);
       listWriter.endList();
       listWriter.setValueCount(1);
-      assertEquals("row1", new String((byte[]) listVector.getObject(0).get(0)));
-      assertEquals("row2", new String((byte[]) listVector.getObject(0).get(1)));
-      assertEquals("row3", new String((byte[]) listVector.getObject(0).get(2)));
-      assertEquals("row4", new String((byte[]) listVector.getObject(0).get(3)));
+      assertEquals("row1", new String((byte[]) listVector.getObject(0).get(0), StandardCharsets.UTF_8));
+      assertEquals("row2", new String((byte[]) listVector.getObject(0).get(1), StandardCharsets.UTF_8));
+      assertEquals("row3", new String((byte[]) listVector.getObject(0).get(2), StandardCharsets.UTF_8));
+      assertEquals("row4", new String((byte[]) listVector.getObject(0).get(3), StandardCharsets.UTF_8));
     }
   }
 
@@ -1819,16 +1823,18 @@ public class TestComplexWriter {
       listVector.allocateNew();
       UnionListWriter listWriter = new UnionListWriter(listVector);
       listWriter.startList();
-      listWriter.writeLargeVarBinary("row1".getBytes());
-      listWriter.writeLargeVarBinary("row2".getBytes(), 0, "row2".getBytes().length);
-      listWriter.writeLargeVarBinary(ByteBuffer.wrap("row3".getBytes()));
-      listWriter.writeLargeVarBinary(ByteBuffer.wrap("row4".getBytes()), 0, "row4".getBytes().length);
+      listWriter.writeLargeVarBinary("row1".getBytes(StandardCharsets.UTF_8));
+      listWriter.writeLargeVarBinary("row2".getBytes(StandardCharsets.UTF_8), 0,
+          "row2".getBytes(StandardCharsets.UTF_8).length);
+      listWriter.writeLargeVarBinary(ByteBuffer.wrap("row3".getBytes(StandardCharsets.UTF_8)));
+      listWriter.writeLargeVarBinary(ByteBuffer.wrap(
+          "row4".getBytes(StandardCharsets.UTF_8)), 0, "row4".getBytes(StandardCharsets.UTF_8).length);
       listWriter.endList();
       listWriter.setValueCount(1);
-      assertEquals("row1", new String((byte[]) listVector.getObject(0).get(0)));
-      assertEquals("row2", new String((byte[]) listVector.getObject(0).get(1)));
-      assertEquals("row3", new String((byte[]) listVector.getObject(0).get(2)));
-      assertEquals("row4", new String((byte[]) listVector.getObject(0).get(3)));
+      assertEquals("row1", new String((byte[]) listVector.getObject(0).get(0), StandardCharsets.UTF_8));
+      assertEquals("row2", new String((byte[]) listVector.getObject(0).get(1), StandardCharsets.UTF_8));
+      assertEquals("row3", new String((byte[]) listVector.getObject(0).get(2), StandardCharsets.UTF_8));
+      assertEquals("row4", new String((byte[]) listVector.getObject(0).get(3), StandardCharsets.UTF_8));
     }
   }
 
@@ -1847,35 +1853,39 @@ public class TestComplexWriter {
       unionWriter.setPosition(3);
       unionWriter.writeLargeVarChar(new Text("row4"));
       unionWriter.setPosition(4);
-      unionWriter.writeVarBinary("row5".getBytes());
+      unionWriter.writeVarBinary("row5".getBytes(StandardCharsets.UTF_8));
       unionWriter.setPosition(5);
-      unionWriter.writeVarBinary("row6".getBytes(), 0, "row6".getBytes().length);
+      unionWriter.writeVarBinary("row6".getBytes(StandardCharsets.UTF_8), 0,
+          "row6".getBytes(StandardCharsets.UTF_8).length);
       unionWriter.setPosition(6);
-      unionWriter.writeVarBinary(ByteBuffer.wrap("row7".getBytes()));
+      unionWriter.writeVarBinary(ByteBuffer.wrap("row7".getBytes(StandardCharsets.UTF_8)));
       unionWriter.setPosition(7);
-      unionWriter.writeVarBinary(ByteBuffer.wrap("row8".getBytes()), 0, "row8".getBytes().length);
+      unionWriter.writeVarBinary(ByteBuffer.wrap("row8".getBytes(StandardCharsets.UTF_8)), 0,
+          "row8".getBytes(StandardCharsets.UTF_8).length);
       unionWriter.setPosition(8);
-      unionWriter.writeLargeVarBinary("row9".getBytes());
+      unionWriter.writeLargeVarBinary("row9".getBytes(StandardCharsets.UTF_8));
       unionWriter.setPosition(9);
-      unionWriter.writeLargeVarBinary("row10".getBytes(), 0, "row10".getBytes().length);
+      unionWriter.writeLargeVarBinary("row10".getBytes(StandardCharsets.UTF_8), 0,
+          "row10".getBytes(StandardCharsets.UTF_8).length);
       unionWriter.setPosition(10);
-      unionWriter.writeLargeVarBinary(ByteBuffer.wrap("row11".getBytes()));
+      unionWriter.writeLargeVarBinary(ByteBuffer.wrap("row11".getBytes(StandardCharsets.UTF_8)));
       unionWriter.setPosition(11);
-      unionWriter.writeLargeVarBinary(ByteBuffer.wrap("row12".getBytes()), 0, "row12".getBytes().length);
+      unionWriter.writeLargeVarBinary(ByteBuffer.wrap(
+          "row12".getBytes(StandardCharsets.UTF_8)), 0, "row12".getBytes(StandardCharsets.UTF_8).length);
       unionWriter.end();
 
-      assertEquals("row1", new String(vector.getVarCharVector().get(0)));
-      assertEquals("row2", new String(vector.getVarCharVector().get(1)));
-      assertEquals("row3", new String(vector.getLargeVarCharVector().get(2)));
-      assertEquals("row4", new String(vector.getLargeVarCharVector().get(3)));
-      assertEquals("row5", new String(vector.getVarBinaryVector().get(4)));
-      assertEquals("row6", new String(vector.getVarBinaryVector().get(5)));
-      assertEquals("row7", new String(vector.getVarBinaryVector().get(6)));
-      assertEquals("row8", new String(vector.getVarBinaryVector().get(7)));
-      assertEquals("row9", new String(vector.getLargeVarBinaryVector().get(8)));
-      assertEquals("row10", new String(vector.getLargeVarBinaryVector().get(9)));
-      assertEquals("row11", new String(vector.getLargeVarBinaryVector().get(10)));
-      assertEquals("row12", new String(vector.getLargeVarBinaryVector().get(11)));
+      assertEquals("row1", new String(vector.getVarCharVector().get(0), StandardCharsets.UTF_8));
+      assertEquals("row2", new String(vector.getVarCharVector().get(1), StandardCharsets.UTF_8));
+      assertEquals("row3", new String(vector.getLargeVarCharVector().get(2), StandardCharsets.UTF_8));
+      assertEquals("row4", new String(vector.getLargeVarCharVector().get(3), StandardCharsets.UTF_8));
+      assertEquals("row5", new String(vector.getVarBinaryVector().get(4), StandardCharsets.UTF_8));
+      assertEquals("row6", new String(vector.getVarBinaryVector().get(5), StandardCharsets.UTF_8));
+      assertEquals("row7", new String(vector.getVarBinaryVector().get(6), StandardCharsets.UTF_8));
+      assertEquals("row8", new String(vector.getVarBinaryVector().get(7), StandardCharsets.UTF_8));
+      assertEquals("row9", new String(vector.getLargeVarBinaryVector().get(8), StandardCharsets.UTF_8));
+      assertEquals("row10", new String(vector.getLargeVarBinaryVector().get(9), StandardCharsets.UTF_8));
+      assertEquals("row11", new String(vector.getLargeVarBinaryVector().get(10), StandardCharsets.UTF_8));
+      assertEquals("row12", new String(vector.getLargeVarBinaryVector().get(11), StandardCharsets.UTF_8));
     }
   }
 }
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/ipc/BaseFileTest.java b/java/vector/src/test/java/org/apache/arrow/vector/ipc/BaseFileTest.java
index 8663c0c499..de9187edb6 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/ipc/BaseFileTest.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/ipc/BaseFileTest.java
@@ -694,19 +694,19 @@ public class BaseFileTest {
   protected void validateBatchData(ArrowReader reader, IntVector vector) throws IOException {
     reader.loadNextBatch();
 
-    assertEquals(vector.getValueCount(), 5);
+    assertEquals(5, vector.getValueCount());
     assertTrue(vector.isNull(0));
-    assertEquals(vector.get(1), 1);
-    assertEquals(vector.get(2), 2);
+    assertEquals(1, vector.get(1));
+    assertEquals(2, vector.get(2));
     assertTrue(vector.isNull(3));
-    assertEquals(vector.get(4), 1);
+    assertEquals(1, vector.get(4));
 
     reader.loadNextBatch();
 
-    assertEquals(vector.getValueCount(), 3);
+    assertEquals(3, vector.getValueCount());
     assertTrue(vector.isNull(0));
-    assertEquals(vector.get(1), 1);
-    assertEquals(vector.get(2), 2);
+    assertEquals(1, vector.get(1));
+    assertEquals(2, vector.get(2));
   }
 
   protected VectorSchemaRoot writeMapData(BufferAllocator bufferAllocator) {
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/ipc/TestArrowStream.java b/java/vector/src/test/java/org/apache/arrow/vector/ipc/TestArrowStream.java
index 9348cd3a66..145bdd588e 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/ipc/TestArrowStream.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/ipc/TestArrowStream.java
@@ -79,8 +79,8 @@ public class TestArrowStream extends BaseFileTest {
       VectorSchemaRoot root = reader.getVectorSchemaRoot();
       IntVector vector = (IntVector) root.getFieldVectors().get(0);
       reader.loadNextBatch();
-      assertEquals(vector.getValueCount(), 0);
-      assertEquals(root.getRowCount(), 0);
+      assertEquals(0, vector.getValueCount());
+      assertEquals(0, root.getRowCount());
     }
   }
 
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/ipc/TestJSONFile.java b/java/vector/src/test/java/org/apache/arrow/vector/ipc/TestJSONFile.java
index 0aa49d9daa..bd5bd4feab 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/ipc/TestJSONFile.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/ipc/TestJSONFile.java
@@ -476,7 +476,7 @@ public class TestJSONFile extends BaseFileTest {
           assertEquals(schema, readSchema);
           try (final VectorSchemaRoot data = reader.read()) {
             assertNotNull(data);
-            assertEquals(data.getRowCount(), 0);
+            assertEquals(0, data.getRowCount());
           }
           assertNull(reader.read());
         }
@@ -496,7 +496,7 @@ public class TestJSONFile extends BaseFileTest {
           assertEquals(schema, readSchema);
           try (final VectorSchemaRoot data = reader.read()) {
             assertNotNull(data);
-            assertEquals(data.getRowCount(), 0);
+            assertEquals(0, data.getRowCount());
           }
           assertNull(reader.read());
         }
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/ipc/TestUIntDictionaryRoundTrip.java b/java/vector/src/test/java/org/apache/arrow/vector/ipc/TestUIntDictionaryRoundTrip.java
index 6aa7a0c6df..ac95121eb7 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/ipc/TestUIntDictionaryRoundTrip.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/ipc/TestUIntDictionaryRoundTrip.java
@@ -27,6 +27,7 @@ import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.nio.channels.Channels;
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Map;
@@ -138,7 +139,7 @@ public class TestUIntDictionaryRoundTrip {
       VarCharVector dictVector = (VarCharVector) dictionary.getVector();
       assertEquals(expectedDictItems.length, dictVector.getValueCount());
       for (int i = 0; i < dictVector.getValueCount(); i++) {
-        assertArrayEquals(expectedDictItems[i].getBytes(), dictVector.get(i));
+        assertArrayEquals(expectedDictItems[i].getBytes(StandardCharsets.UTF_8), dictVector.get(i));
       }
     }
   }
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/ipc/message/TestMessageMetadataResult.java b/java/vector/src/test/java/org/apache/arrow/vector/ipc/message/TestMessageMetadataResult.java
index ee5361547a..0505a18484 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/ipc/message/TestMessageMetadataResult.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/ipc/message/TestMessageMetadataResult.java
@@ -30,7 +30,7 @@ public class TestMessageMetadataResult {
     // This API is used by spark.
     MessageMetadataResult result = new MessageMetadataResult(1, ByteBuffer.allocate(0),
         new org.apache.arrow.flatbuf.Message());
-    assertEquals(result.getMessageLength(), 1);
+    assertEquals(1, result.getMessageLength());
   }
 
 }
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/table/BaseTableTest.java b/java/vector/src/test/java/org/apache/arrow/vector/table/BaseTableTest.java
index 78f2ee51b8..1b7f984992 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/table/BaseTableTest.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/table/BaseTableTest.java
@@ -28,8 +28,10 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Objects;
 
 import org.apache.arrow.memory.BufferAllocator;
 import org.apache.arrow.memory.RootAllocator;
@@ -282,8 +284,8 @@ class BaseTableTest {
 
     VarCharVector dictionaryVector = new VarCharVector("dictionary", allocator);
     dictionaryVector.allocateNew(2);
-    dictionaryVector.set(0, "one".getBytes());
-    dictionaryVector.set(1, "two".getBytes());
+    dictionaryVector.set(0, "one".getBytes(StandardCharsets.UTF_8));
+    dictionaryVector.set(1, "two".getBytes(StandardCharsets.UTF_8));
     dictionaryVector.setValueCount(2);
     Dictionary dictionary =
         new Dictionary(dictionaryVector, new DictionaryEncoding(1L, false, null));
@@ -297,8 +299,8 @@ class BaseTableTest {
     try (Table t = new Table(vectorList, vectorList.get(0).getValueCount(), provider)) {
       VarCharVector v = (VarCharVector) t.decode(encoded.getName(), 1L);
       assertNotNull(v);
-      assertEquals("one", new String(v.get(0)));
-      assertEquals("two", new String(v.get(1)));
+      assertEquals("one", new String(Objects.requireNonNull(v.get(0)), StandardCharsets.UTF_8));
+      assertEquals("two", new String(Objects.requireNonNull(v.get(1)), StandardCharsets.UTF_8));
     }
   }
 
@@ -319,8 +321,8 @@ class BaseTableTest {
 
     VarCharVector dictionaryVector = new VarCharVector("dictionary", allocator);
     dictionaryVector.allocateNew(2);
-    dictionaryVector.set(0, "one".getBytes());
-    dictionaryVector.set(1, "two".getBytes());
+    dictionaryVector.set(0, "one".getBytes(StandardCharsets.UTF_8));
+    dictionaryVector.set(1, "two".getBytes(StandardCharsets.UTF_8));
     dictionaryVector.setValueCount(2);
 
     Dictionary dictionary = new Dictionary(dictionaryVector, encoding);
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/table/RowTest.java b/java/vector/src/test/java/org/apache/arrow/vector/table/RowTest.java
index eb50e866b1..3e6a096104 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/table/RowTest.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/table/RowTest.java
@@ -650,8 +650,8 @@ class RowTest {
       c.setPosition(1);
       assertEquals(c.getVarCharObj(1), "two");
       assertEquals(c.getVarCharObj(1), c.getVarCharObj(VARCHAR_VECTOR_NAME_1));
-      assertArrayEquals("two".getBytes(), c.getVarChar(VARCHAR_VECTOR_NAME_1));
-      assertArrayEquals("two".getBytes(), c.getVarChar(1));
+      assertArrayEquals("two".getBytes(StandardCharsets.UTF_8), c.getVarChar(VARCHAR_VECTOR_NAME_1));
+      assertArrayEquals("two".getBytes(StandardCharsets.UTF_8), c.getVarChar(1));
     }
   }
 
@@ -661,7 +661,7 @@ class RowTest {
     try (Table t = new Table(vectorList)) {
       Row c = t.immutableRow();
       c.setPosition(1);
-      assertArrayEquals(c.getVarBinary(1), "two".getBytes());
+      assertArrayEquals(c.getVarBinary(1), "two".getBytes(StandardCharsets.UTF_8));
       assertArrayEquals(c.getVarBinary(1), c.getVarBinary(VARBINARY_VECTOR_NAME_1));
     }
   }
@@ -672,7 +672,7 @@ class RowTest {
     try (Table t = new Table(vectorList)) {
       Row c = t.immutableRow();
       c.setPosition(1);
-      assertArrayEquals(c.getLargeVarBinary(1), "two".getBytes());
+      assertArrayEquals(c.getLargeVarBinary(1), "two".getBytes(StandardCharsets.UTF_8));
       assertArrayEquals(c.getLargeVarBinary(1), c.getLargeVarBinary(VARBINARY_VECTOR_NAME_1));
     }
   }
@@ -685,8 +685,8 @@ class RowTest {
       c.setPosition(1);
       assertEquals(c.getLargeVarCharObj(1), "two");
       assertEquals(c.getLargeVarCharObj(1), c.getLargeVarCharObj(VARCHAR_VECTOR_NAME_1));
-      assertArrayEquals("two".getBytes(), c.getLargeVarChar(VARCHAR_VECTOR_NAME_1));
-      assertArrayEquals("two".getBytes(), c.getLargeVarChar(1));
+      assertArrayEquals("two".getBytes(StandardCharsets.UTF_8), c.getLargeVarChar(VARCHAR_VECTOR_NAME_1));
+      assertArrayEquals("two".getBytes(StandardCharsets.UTF_8), c.getLargeVarChar(1));
     }
   }
 
@@ -696,7 +696,7 @@ class RowTest {
     try (Table t = new Table(vectorList)) {
       Row c = t.immutableRow();
       c.setPosition(1);
-      assertArrayEquals(c.getFixedSizeBinary(1), "two".getBytes());
+      assertArrayEquals(c.getFixedSizeBinary(1), "two".getBytes(StandardCharsets.UTF_8));
       assertArrayEquals(c.getFixedSizeBinary(1), c.getFixedSizeBinary(FIXEDBINARY_VECTOR_NAME_1));
     }
   }
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/table/TestUtils.java b/java/vector/src/test/java/org/apache/arrow/vector/table/TestUtils.java
index cb0b7b8eb6..c0b3bfdf73 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/table/TestUtils.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/table/TestUtils.java
@@ -20,6 +20,7 @@ package org.apache.arrow.vector.table;
 import static org.apache.arrow.vector.complex.BaseRepeatedValueVector.OFFSET_WIDTH;
 
 import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -117,8 +118,8 @@ public class TestUtils {
     IntVector v1 = getSimpleIntVector(allocator);
     VarCharVector v2 = new VarCharVector(VARCHAR_VECTOR_NAME_1, allocator);
     v2.allocateNew(2);
-    v2.set(0, "one".getBytes());
-    v2.set(1, "two".getBytes());
+    v2.set(0, "one".getBytes(StandardCharsets.UTF_8));
+    v2.set(1, "two".getBytes(StandardCharsets.UTF_8));
     v2.setValueCount(2);
     vectorList.add(v1);
     vectorList.add(v2);
@@ -134,8 +135,8 @@ public class TestUtils {
     IntVector v1 = getSimpleIntVector(allocator);
     LargeVarCharVector v2 = new LargeVarCharVector(VARCHAR_VECTOR_NAME_1, allocator);
     v2.allocateNew(2);
-    v2.set(0, "one".getBytes());
-    v2.set(1, "two".getBytes());
+    v2.set(0, "one".getBytes(StandardCharsets.UTF_8));
+    v2.set(1, "two".getBytes(StandardCharsets.UTF_8));
     v2.setValueCount(2);
     vectorList.add(v1);
     vectorList.add(v2);
@@ -152,8 +153,8 @@ public class TestUtils {
     IntVector v1 = getSimpleIntVector(allocator);
     VarBinaryVector v2 = new VarBinaryVector(VARBINARY_VECTOR_NAME_1, allocator);
     v2.allocateNew(2);
-    v2.set(0, "one".getBytes());
-    v2.set(1, "two".getBytes());
+    v2.set(0, "one".getBytes(StandardCharsets.UTF_8));
+    v2.set(1, "two".getBytes(StandardCharsets.UTF_8));
     v2.setValueCount(2);
     vectorList.add(v1);
     vectorList.add(v2);
@@ -170,8 +171,8 @@ public class TestUtils {
     IntVector v1 = getSimpleIntVector(allocator);
     LargeVarBinaryVector v2 = new LargeVarBinaryVector(VARBINARY_VECTOR_NAME_1, allocator);
     v2.allocateNew(2);
-    v2.set(0, "one".getBytes());
-    v2.set(1, "two".getBytes());
+    v2.set(0, "one".getBytes(StandardCharsets.UTF_8));
+    v2.set(1, "two".getBytes(StandardCharsets.UTF_8));
     v2.setValueCount(2);
     vectorList.add(v1);
     vectorList.add(v2);
@@ -188,8 +189,8 @@ public class TestUtils {
     IntVector v1 = getSimpleIntVector(allocator);
     FixedSizeBinaryVector v2 = new FixedSizeBinaryVector(FIXEDBINARY_VECTOR_NAME_1, allocator, 3);
     v2.allocateNew(2);
-    v2.set(0, "one".getBytes());
-    v2.set(1, "two".getBytes());
+    v2.set(0, "one".getBytes(StandardCharsets.UTF_8));
+    v2.set(1, "two".getBytes(StandardCharsets.UTF_8));
     v2.setValueCount(2);
     vectorList.add(v1);
     vectorList.add(v2);
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/testing/TestValueVectorPopulator.java b/java/vector/src/test/java/org/apache/arrow/vector/testing/TestValueVectorPopulator.java
index 74257c45ca..3c075c9293 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/testing/TestValueVectorPopulator.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/testing/TestValueVectorPopulator.java
@@ -20,6 +20,8 @@ package org.apache.arrow.vector.testing;
 import static junit.framework.TestCase.assertTrue;
 import static org.apache.arrow.vector.testing.ValueVectorDataPopulator.setVector;
 
+import java.nio.charset.StandardCharsets;
+
 import org.apache.arrow.memory.BufferAllocator;
 import org.apache.arrow.memory.RootAllocator;
 import org.apache.arrow.vector.BigIntVector;
@@ -204,13 +206,14 @@ public class TestValueVectorPopulator {
         if (i % 2 == 0) {
           vector1.setNull(i);
         } else {
-          vector1.set(i, ("test" + i).getBytes());
+          vector1.set(i, ("test" + i).getBytes(StandardCharsets.UTF_8));
         }
       }
       vector1.setValueCount(10);
 
-      setVector(vector2, null, "test1".getBytes(), null, "test3".getBytes(), null, "test5".getBytes(), null,
-          "test7".getBytes(), null, "test9".getBytes());
+      setVector(vector2, null, "test1".getBytes(StandardCharsets.UTF_8), null,
+          "test3".getBytes(StandardCharsets.UTF_8), null, "test5".getBytes(StandardCharsets.UTF_8), null,
+          "test7".getBytes(StandardCharsets.UTF_8), null, "test9".getBytes(StandardCharsets.UTF_8));
       assertTrue(VectorEqualsVisitor.vectorEquals(vector1, vector2));
     }
   }
@@ -571,13 +574,14 @@ public class TestValueVectorPopulator {
         if (i % 2 == 0) {
           vector1.setNull(i);
         } else {
-          vector1.set(i, ("test" + i).getBytes());
+          vector1.set(i, ("test" + i).getBytes(StandardCharsets.UTF_8));
         }
       }
       vector1.setValueCount(10);
 
-      setVector(vector2, null, "test1".getBytes(), null, "test3".getBytes(), null, "test5".getBytes(), null,
-          "test7".getBytes(), null, "test9".getBytes());
+      setVector(vector2, null, "test1".getBytes(StandardCharsets.UTF_8), null,
+          "test3".getBytes(StandardCharsets.UTF_8), null, "test5".getBytes(StandardCharsets.UTF_8), null,
+          "test7".getBytes(StandardCharsets.UTF_8), null, "test9".getBytes(StandardCharsets.UTF_8));
       assertTrue(VectorEqualsVisitor.vectorEquals(vector1, vector2));
     }
   }
@@ -592,7 +596,7 @@ public class TestValueVectorPopulator {
         if (i % 2 == 0) {
           vector1.setNull(i);
         } else {
-          vector1.set(i, ("test" + i).getBytes());
+          vector1.set(i, ("test" + i).getBytes(StandardCharsets.UTF_8));
         }
       }
       vector1.setValueCount(10);
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/types/pojo/TestExtensionType.java b/java/vector/src/test/java/org/apache/arrow/vector/types/pojo/TestExtensionType.java
index 084350410a..872b2f3934 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/types/pojo/TestExtensionType.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/types/pojo/TestExtensionType.java
@@ -221,7 +221,7 @@ public class TestExtensionType {
 
         final ExtensionTypeVector deserialized = (ExtensionTypeVector) readerRoot.getFieldVectors().get(0);
         Assert.assertTrue(deserialized instanceof LocationVector);
-        Assert.assertEquals(deserialized.getName(), "location");
+        Assert.assertEquals("location", deserialized.getName());
         StructVector deserStruct = (StructVector) deserialized.getUnderlyingVector();
         Assert.assertNotNull(deserStruct.getChild("Latitude"));
         Assert.assertNotNull(deserStruct.getChild("Longitude"));
@@ -273,7 +273,7 @@ public class TestExtensionType {
 
       // Test out vector appender
       VectorBatchAppender.batchAppend(a1, a2, bb);
-      assertEquals(a1.getValueCount(), 6);
+      assertEquals(6, a1.getValueCount());
       validateVisitor.visit(a1, null);
     }
   }
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/util/TestElementAddressableVectorIterator.java b/java/vector/src/test/java/org/apache/arrow/vector/util/TestElementAddressableVectorIterator.java
index 419872225e..1c8281c859 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/util/TestElementAddressableVectorIterator.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/util/TestElementAddressableVectorIterator.java
@@ -20,6 +20,8 @@ package org.apache.arrow.vector.util;
 import static junit.framework.TestCase.assertNull;
 import static org.junit.Assert.assertEquals;
 
+import java.nio.charset.StandardCharsets;
+
 import org.apache.arrow.memory.BufferAllocator;
 import org.apache.arrow.memory.RootAllocator;
 import org.apache.arrow.memory.util.ArrowBufPointer;
@@ -98,7 +100,7 @@ public class TestElementAddressableVectorIterator {
         if (i == 0) {
           strVector.setNull(i);
         } else {
-          strVector.set(i, String.valueOf(i).getBytes());
+          strVector.set(i, String.valueOf(i).getBytes(StandardCharsets.UTF_8));
         }
       }
 
@@ -125,7 +127,7 @@ public class TestElementAddressableVectorIterator {
           assertEquals(expected.length(), pt.getLength());
 
           pt.getBuf().getBytes(pt.getOffset(), actual);
-          assertEquals(expected, new String(actual));
+          assertEquals(expected, new String(actual, StandardCharsets.UTF_8));
         }
         index += 1;
       }
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/util/TestReusableByteArray.java b/java/vector/src/test/java/org/apache/arrow/vector/util/TestReusableByteArray.java
index b11aa5638d..f562e63b4b 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/util/TestReusableByteArray.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/util/TestReusableByteArray.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertNotSame;
 import static org.junit.Assert.assertSame;
 import static org.junit.Assert.assertTrue;
 
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.Base64;
 
@@ -54,25 +55,27 @@ public class TestReusableByteArray {
     ReusableByteArray byteArray = new ReusableByteArray();
     try (ArrowBuf workingBuf = allocator.buffer(100)) {
       final String str = "test";
-      workingBuf.setBytes(0, str.getBytes());
-      byteArray.set(workingBuf, 0, str.getBytes().length);
-      assertEquals(str.getBytes().length, byteArray.getLength());
-      assertArrayEquals(str.getBytes(), Arrays.copyOfRange(byteArray.getBuffer(), 0, (int) byteArray.getLength()));
-      assertEquals(Base64.getEncoder().encodeToString(str.getBytes()), byteArray.toString());
-      assertEquals(new ReusableByteArray(str.getBytes()), byteArray);
-      assertEquals(new ReusableByteArray(str.getBytes()).hashCode(), byteArray.hashCode());
+      workingBuf.setBytes(0, str.getBytes(StandardCharsets.UTF_8));
+      byteArray.set(workingBuf, 0, str.getBytes(StandardCharsets.UTF_8).length);
+      assertEquals(str.getBytes(StandardCharsets.UTF_8).length, byteArray.getLength());
+      assertArrayEquals(str.getBytes(StandardCharsets.UTF_8), Arrays.copyOfRange(byteArray.getBuffer(), 0,
+          (int) byteArray.getLength()));
+      assertEquals(Base64.getEncoder().encodeToString(str.getBytes(StandardCharsets.UTF_8)), byteArray.toString());
+      assertEquals(new ReusableByteArray(str.getBytes(StandardCharsets.UTF_8)), byteArray);
+      assertEquals(new ReusableByteArray(str.getBytes(StandardCharsets.UTF_8)).hashCode(), byteArray.hashCode());
 
       // Test a longer string. Should require reallocation.
       final String str2 = "test_longer";
       byte[] oldBuffer = byteArray.getBuffer();
       workingBuf.clear();
-      workingBuf.setBytes(0, str2.getBytes());
-      byteArray.set(workingBuf, 0, str2.getBytes().length);
-      assertEquals(str2.getBytes().length, byteArray.getLength());
-      assertArrayEquals(str2.getBytes(), Arrays.copyOfRange(byteArray.getBuffer(), 0, (int) byteArray.getLength()));
-      assertEquals(Base64.getEncoder().encodeToString(str2.getBytes()), byteArray.toString());
-      assertEquals(new ReusableByteArray(str2.getBytes()), byteArray);
-      assertEquals(new ReusableByteArray(str2.getBytes()).hashCode(), byteArray.hashCode());
+      workingBuf.setBytes(0, str2.getBytes(StandardCharsets.UTF_8));
+      byteArray.set(workingBuf, 0, str2.getBytes(StandardCharsets.UTF_8).length);
+      assertEquals(str2.getBytes(StandardCharsets.UTF_8).length, byteArray.getLength());
+      assertArrayEquals(str2.getBytes(StandardCharsets.UTF_8), Arrays.copyOfRange(byteArray.getBuffer(), 0,
+          (int) byteArray.getLength()));
+      assertEquals(Base64.getEncoder().encodeToString(str2.getBytes(StandardCharsets.UTF_8)), byteArray.toString());
+      assertEquals(new ReusableByteArray(str2.getBytes(StandardCharsets.UTF_8)), byteArray);
+      assertEquals(new ReusableByteArray(str2.getBytes(StandardCharsets.UTF_8)).hashCode(), byteArray.hashCode());
 
       // Verify reallocation needed.
       assertNotSame(oldBuffer, byteArray.getBuffer());
@@ -82,13 +85,14 @@ public class TestReusableByteArray {
       final String str3 = "short";
       oldBuffer = byteArray.getBuffer();
       workingBuf.clear();
-      workingBuf.setBytes(0, str3.getBytes());
-      byteArray.set(workingBuf, 0, str3.getBytes().length);
-      assertEquals(str3.getBytes().length, byteArray.getLength());
-      assertArrayEquals(str3.getBytes(), Arrays.copyOfRange(byteArray.getBuffer(), 0, (int) byteArray.getLength()));
-      assertEquals(Base64.getEncoder().encodeToString(str3.getBytes()), byteArray.toString());
-      assertEquals(new ReusableByteArray(str3.getBytes()), byteArray);
-      assertEquals(new ReusableByteArray(str3.getBytes()).hashCode(), byteArray.hashCode());
+      workingBuf.setBytes(0, str3.getBytes(StandardCharsets.UTF_8));
+      byteArray.set(workingBuf, 0, str3.getBytes(StandardCharsets.UTF_8).length);
+      assertEquals(str3.getBytes(StandardCharsets.UTF_8).length, byteArray.getLength());
+      assertArrayEquals(str3.getBytes(StandardCharsets.UTF_8), Arrays.copyOfRange(byteArray.getBuffer(), 0,
+          (int) byteArray.getLength()));
+      assertEquals(Base64.getEncoder().encodeToString(str3.getBytes(StandardCharsets.UTF_8)), byteArray.toString());
+      assertEquals(new ReusableByteArray(str3.getBytes(StandardCharsets.UTF_8)), byteArray);
+      assertEquals(new ReusableByteArray(str3.getBytes(StandardCharsets.UTF_8)).hashCode(), byteArray.hashCode());
 
       // Verify reallocation was not needed.
       assertSame(oldBuffer, byteArray.getBuffer());
diff --git a/java/vector/src/test/java/org/apache/arrow/vector/util/TestVectorAppender.java b/java/vector/src/test/java/org/apache/arrow/vector/util/TestVectorAppender.java
index ab36ea2fd2..93e7535947 100644
--- a/java/vector/src/test/java/org/apache/arrow/vector/util/TestVectorAppender.java
+++ b/java/vector/src/test/java/org/apache/arrow/vector/util/TestVectorAppender.java
@@ -437,8 +437,6 @@ public class TestVectorAppender {
       delta.accept(appender, null);
 
       assertEquals(length1 + length2, target.getValueCount());
-      IntVector child1 = (IntVector) target.getVectorById(0);
-      VarCharVector child2 = (VarCharVector) target.getVectorById(1);
 
       try (IntVector expected1 = new IntVector("expected1", allocator);
            VarCharVector expected2 = new VarCharVector("expected2", allocator)) {