You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dubbo.apache.org by al...@apache.org on 2021/07/08 13:51:53 UTC

[dubbo] branch 3.0 updated: Use StringBuilder#append(Char) to improve performance (#8169)

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

albumenj pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/dubbo.git


The following commit(s) were added to refs/heads/3.0 by this push:
     new 0b067c6  Use StringBuilder#append(Char) to improve performance (#8169)
0b067c6 is described below

commit 0b067c628b6c9f7437aaaf9e71372d06953f4738
Author: hunjipo <52...@users.noreply.github.com>
AuthorDate: Thu Jul 8 21:51:35 2021 +0800

    Use StringBuilder#append(Char) to improve performance (#8169)
    
    * To slightly improve performance, this commit switches to
    StringBuilder.append(char) instead of StringBuilder.append(String)
    whenever we append a single character to a StringBuilder.
    
    * fix ReflectUtils#getName error
    
    Co-authored-by: praychen <pray9612>
---
 .../cluster/configurator/parser/ConfigParser.java  | 16 +++++------
 .../apache/dubbo/common/BaseServiceMetadata.java   |  4 +--
 .../src/main/java/org/apache/dubbo/common/URL.java | 18 ++++++------
 .../org/apache/dubbo/common/bytecode/Mixin.java    |  2 +-
 .../org/apache/dubbo/common/bytecode/Proxy.java    |  2 +-
 .../org/apache/dubbo/common/bytecode/Wrapper.java  |  4 +--
 .../dubbo/common/compiler/support/ClassUtils.java  |  2 +-
 .../extension/AdaptiveClassCodeGenerator.java      |  2 +-
 .../dubbo/common/status/support/StatusUtils.java   |  4 +--
 .../dubbo/common/url/component/PathURLAddress.java |  4 +--
 .../dubbo/common/url/component/URLAddress.java     |  2 +-
 .../apache/dubbo/common/utils/ReflectUtils.java    | 10 +++----
 .../org/apache/dubbo/common/utils/StringUtils.java | 14 +++++-----
 .../org/apache/dubbo/config/AbstractConfig.java    |  4 +--
 .../common/compiler/support/JavaCodeTest.java      |  8 +++---
 .../org/apache/dubbo/common/model/media/Image.java |  2 +-
 .../org/apache/dubbo/common/model/media/Media.java |  2 +-
 .../dubbo/common/model/person/FullAddress.java     |  6 ++--
 .../apache/dubbo/common/model/person/Phone.java    |  6 ++--
 .../org/apache/dubbo/rpc/model/media/Image.java    |  2 +-
 .../org/apache/dubbo/rpc/model/media/Media.java    |  2 +-
 .../apache/dubbo/rpc/model/person/FullAddress.java |  6 ++--
 .../org/apache/dubbo/rpc/model/person/Phone.java   |  6 ++--
 .../dubbo/rpc/support/ProtocolUtilsTest.java       |  6 ++--
 .../dubbo/config/utils/ReferenceConfigCache.java   |  4 +--
 .../apache/dubbo/config/AbstractConfigTest.java    |  4 +--
 .../properties/DefaultDubboConfigBinder.java       |  2 +-
 .../spring/reference/ReferenceBeanSupport.java     |  4 +--
 .../spring/status/DataSourceStatusChecker.java     |  6 ++--
 .../config/spring/status/SpringStatusChecker.java  |  2 +-
 .../support/nacos/NacosDynamicConfiguration.java   |  4 +--
 .../validation/support/jvalidation/JValidator.java |  4 +--
 .../dubbo/metadata/definition/util/ClassUtils.java |  6 ++--
 .../AbstractServiceAnnotationProcessor.java        |  2 +-
 .../rest/DefaultServiceRestMetadataResolver.java   |  2 +-
 .../annotation/processing/util/TypeUtils.java      |  4 +--
 .../metadata/store/nacos/NacosMetadataReport.java  |  4 +--
 .../apache/dubbo/monitor/dubbo/MetricsFilter.java  |  4 +--
 .../org/apache/dubbo/qos/command/impl/Help.java    |  2 +-
 .../org/apache/dubbo/qos/command/impl/Version.java |  2 +-
 .../dubbo/qos/legacy/ChangeTelnetHandler.java      |  2 +-
 .../dubbo/qos/legacy/CurrentTelnetHandler.java     |  2 +-
 .../dubbo/qos/legacy/InvokeTelnetHandler.java      |  4 +--
 .../java/org/apache/dubbo/qos/textui/TTable.java   |  8 +++---
 .../java/org/apache/dubbo/qos/textui/TTree.java    |  4 +--
 .../registry/status/RegistryStatusChecker.java     |  2 +-
 .../apache/dubbo/registry/PerformanceUtils.java    |  8 +++---
 .../nacos/util/NacosNamingServiceUtils.java        |  4 +--
 .../dubbo/remoting/telnet/codec/TelnetCodec.java   |  6 ++--
 .../dubbo/remoting/telnet/support/TelnetUtils.java | 32 +++++++++++-----------
 .../dubbo/remoting/PerformanceClientTest.java      |  2 +-
 .../apache/dubbo/remoting/PerformanceUtils.java    |  8 +++---
 .../transport/codec/DeprecatedTelnetCodec.java     |  6 ++--
 .../transport/netty4/ReplierDispatcherTest.java    |  2 +-
 .../support/AbstractZookeeperTransporter.java      |  4 +--
 .../apache/dubbo/rpc/filter/DeprecatedFilter.java  |  4 +--
 .../org/apache/dubbo/rpc/filter/tps/StatItem.java  |  2 +-
 .../apache/dubbo/rpc/support/AccessLogData.java    | 16 +++++------
 .../protocol/dubbo/status/ServerStatusChecker.java |  4 +--
 .../dubbo/status/ThreadPoolStatusChecker.java      |  2 +-
 .../rpc/protocol/rest/support/LoggingFilter.java   |  2 +-
 61 files changed, 157 insertions(+), 157 deletions(-)

diff --git a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/configurator/parser/ConfigParser.java b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/configurator/parser/ConfigParser.java
index 76aaf39..3427fad 100644
--- a/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/configurator/parser/ConfigParser.java
+++ b/dubbo-cluster/src/main/java/org/apache/dubbo/rpc/cluster/configurator/parser/ConfigParser.java
@@ -83,7 +83,7 @@ public class ConfigParser {
 
         addresses.forEach(addr -> {
             StringBuilder urlBuilder = new StringBuilder();
-            urlBuilder.append("override://").append(addr).append("/");
+            urlBuilder.append("override://").append(addr).append('/');
 
             urlBuilder.append(appendService(config.getKey()));
             urlBuilder.append(toParameterString(item));
@@ -111,7 +111,7 @@ public class ConfigParser {
         List<String> addresses = parseAddresses(item);
         for (String addr : addresses) {
             StringBuilder urlBuilder = new StringBuilder();
-            urlBuilder.append("override://").append(addr).append("/");
+            urlBuilder.append("override://").append(addr).append('/');
             List<String> services = item.getServices();
             if (services == null) {
                 services = new ArrayList<>();
@@ -152,16 +152,16 @@ public class ConfigParser {
         }
 
         parameters.forEach((k, v) -> {
-            sb.append("&");
+            sb.append('&');
             sb.append(k);
-            sb.append("=");
+            sb.append('=');
             sb.append(v);
         });
 
         if (CollectionUtils.isNotEmpty(item.getProviderAddresses())) {
-            sb.append("&");
+            sb.append('&');
             sb.append(OVERRIDE_PROVIDERS_KEY);
-            sb.append("=");
+            sb.append('=');
             sb.append(CollectionUtils.join(item.getProviderAddresses(), ","));
         }
 
@@ -179,7 +179,7 @@ public class ConfigParser {
         if (i > 0) {
             sb.append("group=");
             sb.append(interfaceName, 0, i);
-            sb.append("&");
+            sb.append('&');
 
             interfaceName = interfaceName.substring(i + 1);
         }
@@ -187,7 +187,7 @@ public class ConfigParser {
         if (j > 0) {
             sb.append("version=");
             sb.append(interfaceName.substring(j + 1));
-            sb.append("&");
+            sb.append('&');
             interfaceName = interfaceName.substring(0, j);
         }
         sb.insert(0, interfaceName + "?");
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/BaseServiceMetadata.java b/dubbo-common/src/main/java/org/apache/dubbo/common/BaseServiceMetadata.java
index 9c04f9a..3788aae 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/BaseServiceMetadata.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/BaseServiceMetadata.java
@@ -38,11 +38,11 @@ public class BaseServiceMetadata {
         length += 3;
         StringBuilder buf = new StringBuilder(length);
         if (group != null && group.length() > 0) {
-            buf.append(group).append("/");
+            buf.append(group).append('/');
         }
         buf.append(path);
         if (version != null && version.length() > 0) {
-            buf.append(":").append(version);
+            buf.append(':').append(version);
         }
         return buf.toString().intern();
     }
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java b/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java
index 0a5b2bc..4b031fb 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/URL.java
@@ -1156,14 +1156,14 @@ class URL implements Serializable {
                         && (includes == null || includes.contains(entry.getKey()))) {
                     if (first) {
                         if (concat) {
-                            buf.append("?");
+                            buf.append('?');
                         }
                         first = false;
                     } else {
-                        buf.append("&");
+                        buf.append('&');
                     }
                     buf.append(entry.getKey());
-                    buf.append("=");
+                    buf.append('=');
                     buf.append(entry.getValue() == null ? "" : entry.getValue().trim());
                 }
             }
@@ -1183,10 +1183,10 @@ class URL implements Serializable {
         if (appendUser && StringUtils.isNotEmpty(getUsername())) {
             buf.append(getUsername());
             if (StringUtils.isNotEmpty(getPassword())) {
-                buf.append(":");
+                buf.append(':');
                 buf.append(getPassword());
             }
-            buf.append("@");
+            buf.append('@');
         }
         String host;
         if (useIP) {
@@ -1197,7 +1197,7 @@ class URL implements Serializable {
         if (StringUtils.isNotEmpty(host)) {
             buf.append(host);
             if (getPort() > 0) {
-                buf.append(":");
+                buf.append(':');
                 buf.append(getPort());
             }
         }
@@ -1208,7 +1208,7 @@ class URL implements Serializable {
             path = getPath();
         }
         if (StringUtils.isNotEmpty(path)) {
-            buf.append("/");
+            buf.append('/');
             buf.append(path);
         }
 
@@ -1247,11 +1247,11 @@ class URL implements Serializable {
         String parameterValue = this.getParameter(parameterName);
         if (!isBlank(parameterValue)) {
             if (!first) {
-                target.append(":");
+                target.append(':');
             }
             target.append(parameterValue);
         } else {
-            target.append(":");
+            target.append(':');
         }
     }
 
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Mixin.java b/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Mixin.java
index e3cedba..f8a7e1f 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Mixin.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Mixin.java
@@ -106,7 +106,7 @@ public abstract class Mixin {
 
                 ccp.addField("private " + dcs[i].getName() + " d" + i + ";");
 
-                code.append("d").append(i).append(" = (").append(dcs[i].getName()).append(")$1[").append(i).append("];\n");
+                code.append('d').append(i).append(" = (").append(dcs[i].getName()).append(")$1[").append(i).append("];\n");
                 if (MixinAware.class.isAssignableFrom(dcs[i])) {
                     code.append("d").append(i).append(".setMixinInstance(this);\n");
                 }
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Proxy.java b/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Proxy.java
index 8d2f733..1a7ff84 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Proxy.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Proxy.java
@@ -199,7 +199,7 @@ public abstract class Proxy {
                     }
                     code.append(" Object ret = handler.invoke(this, methods[").append(ix).append("], args);");
                     if (!Void.TYPE.equals(rt)) {
-                        code.append(" return ").append(asArgument(rt, "ret")).append(";");
+                        code.append(" return ").append(asArgument(rt, "ret")).append(';');
                     }
 
                     methods.add(method);
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Wrapper.java b/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Wrapper.java
index 16539e5..66bca47 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Wrapper.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/bytecode/Wrapper.java
@@ -150,7 +150,7 @@ public abstract class Wrapper {
                 continue;
             }
 
-            c1.append(" if( $2.equals(\"").append(fn).append("\") ){ w.").append(fn).append("=").append(arg(ft, "$3")).append("; return; }");
+            c1.append(" if( $2.equals(\"").append(fn).append("\") ){ w.").append(fn).append('=').append(arg(ft, "$3")).append("; return; }");
             c2.append(" if( $2.equals(\"").append(fn).append("\") ){ return ($w)w.").append(fn).append("; }");
             pts.put(fn, ft);
         }
@@ -242,7 +242,7 @@ public abstract class Wrapper {
             } else if ((matcher = ReflectUtils.SETTER_METHOD_DESC_PATTERN.matcher(md)).matches()) {
                 Class<?> pt = method.getParameterTypes()[0];
                 String pn = propertyName(matcher.group(1));
-                c1.append(" if( $2.equals(\"").append(pn).append("\") ){ w.").append(method.getName()).append("(").append(arg(pt, "$3")).append("); return; }");
+                c1.append(" if( $2.equals(\"").append(pn).append("\") ){ w.").append(method.getName()).append('(').append(arg(pt, "$3")).append("); return; }");
                 pts.put(pn, pt);
             }
         }
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/compiler/support/ClassUtils.java b/dubbo-common/src/main/java/org/apache/dubbo/common/compiler/support/ClassUtils.java
index f0ecf67..ee276e9 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/compiler/support/ClassUtils.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/compiler/support/ClassUtils.java
@@ -349,7 +349,7 @@ public class ClassUtils {
             StringBuilder buf = new StringBuilder(rightCode);
             for (int i = parameterClasses.length; i < types.length; i++) {
                 if (buf.length() > 0) {
-                    buf.append(",");
+                    buf.append(',');
                 }
                 Class<?> type = types[i];
                 String def;
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/AdaptiveClassCodeGenerator.java b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/AdaptiveClassCodeGenerator.java
index 2bffa05..b3b6955 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/extension/AdaptiveClassCodeGenerator.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/extension/AdaptiveClassCodeGenerator.java
@@ -101,7 +101,7 @@ public class AdaptiveClassCodeGenerator {
         for (Method method : methods) {
             code.append(generateMethod(method));
         }
-        code.append("}");
+        code.append('}');
 
         if (logger.isDebugEnabled()) {
             logger.debug(code.toString());
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/status/support/StatusUtils.java b/dubbo-common/src/main/java/org/apache/dubbo/common/status/support/StatusUtils.java
index 15117cb..d70a219 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/status/support/StatusUtils.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/status/support/StatusUtils.java
@@ -36,7 +36,7 @@ public class StatusUtils {
             if (Level.ERROR.equals(l)) {
                 level = Level.ERROR;
                 if (msg.length() > 0) {
-                    msg.append(",");
+                    msg.append(',');
                 }
                 msg.append(key);
             } else if (Level.WARN.equals(l)) {
@@ -44,7 +44,7 @@ public class StatusUtils {
                     level = Level.WARN;
                 }
                 if (msg.length() > 0) {
-                    msg.append(",");
+                    msg.append(',');
                 }
                 msg.append(key);
             }
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/url/component/PathURLAddress.java b/dubbo-common/src/main/java/org/apache/dubbo/common/url/component/PathURLAddress.java
index ae0ea88..e072b61 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/url/component/PathURLAddress.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/url/component/PathURLAddress.java
@@ -162,13 +162,13 @@ public class PathURLAddress extends URLAddress {
         if (StringUtils.isNotEmpty(host)) {
             buf.append(host);
             if (port > 0) {
-                buf.append(":");
+                buf.append(':');
                 buf.append(port);
             }
         }
 
         if (StringUtils.isNotEmpty(path)) {
-            buf.append("/");
+            buf.append('/');
             buf.append(path);
         }
 
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/url/component/URLAddress.java b/dubbo-common/src/main/java/org/apache/dubbo/common/url/component/URLAddress.java
index a0e89f1..dd88b64 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/url/component/URLAddress.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/url/component/URLAddress.java
@@ -154,7 +154,7 @@ public class URLAddress implements Serializable {
         if (StringUtils.isNotEmpty(host)) {
             buf.append(host);
             if (port > 0) {
-                buf.append(":");
+                buf.append(':');
                 buf.append(port);
             }
         }
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ReflectUtils.java b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ReflectUtils.java
index 6cab430..935553a 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ReflectUtils.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/ReflectUtils.java
@@ -325,19 +325,19 @@ public final class ReflectUtils {
 
     public static String getSignature(String methodName, Class<?>[] parameterTypes) {
         StringBuilder sb = new StringBuilder(methodName);
-        sb.append("(");
+        sb.append('(');
         if (parameterTypes != null && parameterTypes.length > 0) {
             boolean first = true;
             for (Class<?> type : parameterTypes) {
                 if (first) {
                     first = false;
                 } else {
-                    sb.append(",");
+                    sb.append(',');
                 }
                 sb.append(type.getName());
             }
         }
-        sb.append(")");
+        sb.append(')');
         return sb.toString();
     }
 
@@ -600,7 +600,7 @@ public final class ReflectUtils {
             name = name.substring(0, index);
         }
         while (c-- > 0) {
-            sb.append("[");
+            sb.append('[');
         }
         if ("void".equals(name)) {
             sb.append(JVM_VOID);
@@ -732,7 +732,7 @@ public final class ReflectUtils {
         if (c > 0) {
             StringBuilder sb = new StringBuilder();
             while (c-- > 0) {
-                sb.append("[");
+                sb.append('[');
             }
 
             if ("void".equals(name)) {
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/StringUtils.java b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/StringUtils.java
index a46b5c8..1fee2e6 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/common/utils/StringUtils.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/common/utils/StringUtils.java
@@ -870,12 +870,12 @@ public final class StringUtils {
         StringBuilder buf = new StringBuilder();
         String group = ps.get(GROUP_KEY);
         if (isNotEmpty(group)) {
-            buf.append(group).append("/");
+            buf.append(group).append('/');
         }
         buf.append(ps.get(INTERFACE_KEY));
         String version = ps.get(VERSION_KEY);
         if (isNotEmpty(group)) {
-            buf.append(":").append(version);
+            buf.append(':').append(version);
         }
         return buf.toString();
     }
@@ -888,10 +888,10 @@ public final class StringUtils {
                 String value = entry.getValue();
                 if (isNoneEmpty(key, value)) {
                     if (buf.length() > 0) {
-                        buf.append("&");
+                        buf.append('&');
                     }
                     buf.append(key);
-                    buf.append("=");
+                    buf.append('=');
                     buf.append(value);
                 }
             }
@@ -1163,18 +1163,18 @@ public final class StringUtils {
         }
 
         StringBuilder sb = new StringBuilder();
-        sb.append("[");
+        sb.append('[');
         params.forEach((key,value) -> {
             // {key:value},
             if (hasText(value)) {
-                sb.append("{").append(key).append(":").append(value).append("},");
+                sb.append('{').append(key).append(':').append(value).append("},");
             }
         });
         // delete last separator ','
         if (sb.charAt(sb.length() - 1) == ',') {
             sb.deleteCharAt(sb.length()-1);
         }
-        sb.append("]");
+        sb.append(']');
         return sb.toString();
     }
 
diff --git a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractConfig.java b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractConfig.java
index 70bb12d..0f5a4b2 100644
--- a/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractConfig.java
+++ b/dubbo-common/src/main/java/org/apache/dubbo/config/AbstractConfig.java
@@ -681,11 +681,11 @@ public abstract class AbstractConfig implements Serializable {
 
                         Object value = method.invoke(this);
                         if (value != null) {
-                            buf.append(" ");
+                            buf.append(' ');
                             buf.append(key);
                             buf.append("=\"");
                             buf.append(key.equals("password") ? "******" : value);
-                            buf.append("\"");
+                            buf.append('\"');
                         }
                     }
                 } catch (Exception e) {
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/compiler/support/JavaCodeTest.java b/dubbo-common/src/test/java/org/apache/dubbo/common/compiler/support/JavaCodeTest.java
index 9d150d3..3caa38e 100644
--- a/dubbo-common/src/test/java/org/apache/dubbo/common/compiler/support/JavaCodeTest.java
+++ b/dubbo-common/src/test/java/org/apache/dubbo/common/compiler/support/JavaCodeTest.java
@@ -30,7 +30,7 @@ public class JavaCodeTest {
         code.append("   public String sayHello() { ");
         code.append("       return \"Hello world!\"; ");
         code.append("   }");
-        code.append("}");
+        code.append('}');
         return code.toString();
     }
 
@@ -40,7 +40,7 @@ public class JavaCodeTest {
         code.append("   public String sayHello() { ");
         code.append("       return \"Hello world!\"; ");
         code.append("   }");
-        code.append("}");
+        code.append('}');
         return code.toString();
     }
 
@@ -80,7 +80,7 @@ public class JavaCodeTest {
         code.append("   public String sayHello() { ");
         code.append("       return \"Hello world!\"; ");
         code.append("   }");
-        code.append("}");
+        code.append('}');
         return code.toString();
     }
 
@@ -95,7 +95,7 @@ public class JavaCodeTest {
         code.append("   public String sayHello() { ");
         code.append("       return \"Hello world3!\"; ");
         code.append("   }");
-        code.append("}");
+        code.append('}');
         return code.toString();
     }
 }
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/model/media/Image.java b/dubbo-common/src/test/java/org/apache/dubbo/common/model/media/Image.java
index 1469b1e..e83b2a7 100644
--- a/dubbo-common/src/test/java/org/apache/dubbo/common/model/media/Image.java
+++ b/dubbo-common/src/test/java/org/apache/dubbo/common/model/media/Image.java
@@ -70,7 +70,7 @@ public class Image implements java.io.Serializable {
         sb.append(", width=").append(width);
         sb.append(", height=").append(height);
         sb.append(", size=").append(size);
-        sb.append("]");
+        sb.append(']');
         return sb.toString();
     }
 
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/model/media/Media.java b/dubbo-common/src/test/java/org/apache/dubbo/common/model/media/Media.java
index 4132b96..1ad1744 100644
--- a/dubbo-common/src/test/java/org/apache/dubbo/common/model/media/Media.java
+++ b/dubbo-common/src/test/java/org/apache/dubbo/common/model/media/Media.java
@@ -106,7 +106,7 @@ public class Media implements java.io.Serializable {
         sb.append(", persons=").append(persons);
         sb.append(", player=").append(player);
         sb.append(", copyright=").append(copyright);
-        sb.append("]");
+        sb.append(']');
         return sb.toString();
     }
 
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/model/person/FullAddress.java b/dubbo-common/src/test/java/org/apache/dubbo/common/model/person/FullAddress.java
index d50492d..6d1bed4 100644
--- a/dubbo-common/src/test/java/org/apache/dubbo/common/model/person/FullAddress.java
+++ b/dubbo-common/src/test/java/org/apache/dubbo/common/model/person/FullAddress.java
@@ -185,15 +185,15 @@ public class FullAddress implements Serializable {
             sb.append(countryName);
         }
         if (provinceName != null && provinceName.length() > 0) {
-            sb.append(" ");
+            sb.append(' ');
             sb.append(provinceName);
         }
         if (cityName != null && cityName.length() > 0) {
-            sb.append(" ");
+            sb.append(' ');
             sb.append(cityName);
         }
         if (streetAddress != null && streetAddress.length() > 0) {
-            sb.append(" ");
+            sb.append(' ');
             sb.append(streetAddress);
         }
         return sb.toString();
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/common/model/person/Phone.java b/dubbo-common/src/test/java/org/apache/dubbo/common/model/person/Phone.java
index e47656c..6c25ec8 100644
--- a/dubbo-common/src/test/java/org/apache/dubbo/common/model/person/Phone.java
+++ b/dubbo-common/src/test/java/org/apache/dubbo/common/model/person/Phone.java
@@ -120,17 +120,17 @@ public class Phone implements Serializable {
         StringBuilder sb = new StringBuilder();
         if (country != null && country.length() > 0) {
             sb.append(country);
-            sb.append("-");
+            sb.append('-');
         }
         if (area != null && area.length() > 0) {
             sb.append(area);
-            sb.append("-");
+            sb.append('-');
         }
         if (number != null && number.length() > 0) {
             sb.append(number);
         }
         if (extensionNumber != null && extensionNumber.length() > 0) {
-            sb.append("-");
+            sb.append('-');
             sb.append(extensionNumber);
         }
         return sb.toString();
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/rpc/model/media/Image.java b/dubbo-common/src/test/java/org/apache/dubbo/rpc/model/media/Image.java
index a6444eb..c9df833 100644
--- a/dubbo-common/src/test/java/org/apache/dubbo/rpc/model/media/Image.java
+++ b/dubbo-common/src/test/java/org/apache/dubbo/rpc/model/media/Image.java
@@ -70,7 +70,7 @@ public class Image implements java.io.Serializable {
         sb.append(", width=").append(width);
         sb.append(", height=").append(height);
         sb.append(", size=").append(size);
-        sb.append("]");
+        sb.append(']');
         return sb.toString();
     }
 
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/rpc/model/media/Media.java b/dubbo-common/src/test/java/org/apache/dubbo/rpc/model/media/Media.java
index 462232f..7987460 100644
--- a/dubbo-common/src/test/java/org/apache/dubbo/rpc/model/media/Media.java
+++ b/dubbo-common/src/test/java/org/apache/dubbo/rpc/model/media/Media.java
@@ -106,7 +106,7 @@ public class Media implements java.io.Serializable {
         sb.append(", persons=").append(persons);
         sb.append(", player=").append(player);
         sb.append(", copyright=").append(copyright);
-        sb.append("]");
+        sb.append(']');
         return sb.toString();
     }
 
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/rpc/model/person/FullAddress.java b/dubbo-common/src/test/java/org/apache/dubbo/rpc/model/person/FullAddress.java
index 3a5b2b0..dfbb56f 100644
--- a/dubbo-common/src/test/java/org/apache/dubbo/rpc/model/person/FullAddress.java
+++ b/dubbo-common/src/test/java/org/apache/dubbo/rpc/model/person/FullAddress.java
@@ -185,15 +185,15 @@ public class FullAddress implements Serializable {
             sb.append(countryName);
         }
         if (provinceName != null && provinceName.length() > 0) {
-            sb.append(" ");
+            sb.append(' ');
             sb.append(provinceName);
         }
         if (cityName != null && cityName.length() > 0) {
-            sb.append(" ");
+            sb.append(' ');
             sb.append(cityName);
         }
         if (streetAddress != null && streetAddress.length() > 0) {
-            sb.append(" ");
+            sb.append(' ');
             sb.append(streetAddress);
         }
         return sb.toString();
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/rpc/model/person/Phone.java b/dubbo-common/src/test/java/org/apache/dubbo/rpc/model/person/Phone.java
index ecd8798..ee18ade 100644
--- a/dubbo-common/src/test/java/org/apache/dubbo/rpc/model/person/Phone.java
+++ b/dubbo-common/src/test/java/org/apache/dubbo/rpc/model/person/Phone.java
@@ -120,17 +120,17 @@ public class Phone implements Serializable {
         StringBuilder sb = new StringBuilder();
         if (country != null && country.length() > 0) {
             sb.append(country);
-            sb.append("-");
+            sb.append('-');
         }
         if (area != null && area.length() > 0) {
             sb.append(area);
-            sb.append("-");
+            sb.append('-');
         }
         if (number != null && number.length() > 0) {
             sb.append(number);
         }
         if (extensionNumber != null && extensionNumber.length() > 0) {
-            sb.append("-");
+            sb.append('-');
             sb.append(extensionNumber);
         }
         return sb.toString();
diff --git a/dubbo-common/src/test/java/org/apache/dubbo/rpc/support/ProtocolUtilsTest.java b/dubbo-common/src/test/java/org/apache/dubbo/rpc/support/ProtocolUtilsTest.java
index eaed8c8..9ead55b 100644
--- a/dubbo-common/src/test/java/org/apache/dubbo/rpc/support/ProtocolUtilsTest.java
+++ b/dubbo-common/src/test/java/org/apache/dubbo/rpc/support/ProtocolUtilsTest.java
@@ -60,14 +60,14 @@ public class ProtocolUtilsTest {
         StringBuilder buf = new StringBuilder();
         if (serviceGroup != null && serviceGroup.length() > 0) {
             buf.append(serviceGroup);
-            buf.append("/");
+            buf.append('/');
         }
         buf.append(serviceName);
         if (serviceVersion != null && serviceVersion.length() > 0 && !"0.0.0".equals(serviceVersion)) {
-            buf.append(":");
+            buf.append(':');
             buf.append(serviceVersion);
         }
-        buf.append(":");
+        buf.append(':');
         buf.append(port);
         return buf.toString();
     }
diff --git a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/ReferenceConfigCache.java b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/ReferenceConfigCache.java
index 9cc037a..d1217bb 100644
--- a/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/ReferenceConfigCache.java
+++ b/dubbo-config/dubbo-config-api/src/main/java/org/apache/dubbo/config/utils/ReferenceConfigCache.java
@@ -56,11 +56,11 @@ public class ReferenceConfigCache {
 
         StringBuilder ret = new StringBuilder();
         if (!StringUtils.isBlank(referenceConfig.getGroup())) {
-            ret.append(referenceConfig.getGroup()).append("/");
+            ret.append(referenceConfig.getGroup()).append('/');
         }
         ret.append(iName);
         if (!StringUtils.isBlank(referenceConfig.getVersion())) {
-            ret.append(":").append(referenceConfig.getVersion());
+            ret.append(':').append(referenceConfig.getVersion());
         }
         return ret.toString();
     };
diff --git a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractConfigTest.java b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractConfigTest.java
index a2468a6..a3dfe46 100644
--- a/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractConfigTest.java
+++ b/dubbo-config/dubbo-config-api/src/test/java/org/apache/dubbo/config/AbstractConfigTest.java
@@ -210,7 +210,7 @@ public class AbstractConfigTest {
         Assertions.assertThrows(IllegalStateException.class, () -> {
             StringBuilder builder = new StringBuilder();
             for (int i = 0; i <= 200; i++) {
-                builder.append("a");
+                builder.append('a');
             }
             ConfigValidationUtils.checkLength("hello", builder.toString());
         });
@@ -221,7 +221,7 @@ public class AbstractConfigTest {
         Assertions.assertThrows(IllegalStateException.class, () -> {
             StringBuilder builder = new StringBuilder();
             for (int i = 0; i <= 200; i++) {
-                builder.append("a");
+                builder.append('a');
             }
             ConfigValidationUtils.checkPathLength("hello", builder.toString());
         });
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/properties/DefaultDubboConfigBinder.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/properties/DefaultDubboConfigBinder.java
index e2d1e8a..0a637bf 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/properties/DefaultDubboConfigBinder.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/context/properties/DefaultDubboConfigBinder.java
@@ -63,7 +63,7 @@ public class DefaultDubboConfigBinder extends AbstractDubboConfigBinder {
                 builder.append(", " + errors.get(i).getField());
             });
         }
-        builder.append("]");
+        builder.append(']');
         return builder.toString();
     }
 }
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/reference/ReferenceBeanSupport.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/reference/ReferenceBeanSupport.java
index 3b84bbb..3ba683b 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/reference/ReferenceBeanSupport.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/reference/ReferenceBeanSupport.java
@@ -96,11 +96,11 @@ public class ReferenceBeanSupport {
         //ReferenceBean:group/interface:version
         StringBuilder beanNameBuilder = new StringBuilder("ReferenceBean:");
         if (StringUtils.isNotEmpty(group)) {
-            beanNameBuilder.append(group).append("/");
+            beanNameBuilder.append(group).append('/');
         }
         beanNameBuilder.append(interfaceClass);
         if (StringUtils.isNotEmpty(version)) {
-            beanNameBuilder.append(":").append(version);
+            beanNameBuilder.append(':').append(version);
         }
 
         // append attributes
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/status/DataSourceStatusChecker.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/status/DataSourceStatusChecker.java
index eaa88f5..28323bb 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/status/DataSourceStatusChecker.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/status/DataSourceStatusChecker.java
@@ -73,11 +73,11 @@ public class DataSourceStatusChecker implements StatusChecker {
                     }
                 }
                 buf.append(metaData.getURL());
-                buf.append("(");
+                buf.append('(');
                 buf.append(metaData.getDatabaseProductName());
-                buf.append("-");
+                buf.append('-');
                 buf.append(metaData.getDatabaseProductVersion());
-                buf.append(")");
+                buf.append(')');
             } catch (Throwable e) {
                 logger.warn(e.getMessage(), e);
                 return new Status(level, e.getMessage());
diff --git a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/status/SpringStatusChecker.java b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/status/SpringStatusChecker.java
index ee6a2e4..c259a78 100644
--- a/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/status/SpringStatusChecker.java
+++ b/dubbo-config/dubbo-config-spring/src/main/java/org/apache/dubbo/config/spring/status/SpringStatusChecker.java
@@ -86,7 +86,7 @@ public class SpringStatusChecker implements StatusChecker {
                 if (configs != null && configs.length > 0) {
                     for (String config : configs) {
                         if (buf.length() > 0) {
-                            buf.append(",");
+                            buf.append(',');
                         }
                         buf.append(config);
                     }
diff --git a/dubbo-configcenter/dubbo-configcenter-nacos/src/main/java/org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfiguration.java b/dubbo-configcenter/dubbo-configcenter-nacos/src/main/java/org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfiguration.java
index 53c8845..80a1858 100644
--- a/dubbo-configcenter/dubbo-configcenter-nacos/src/main/java/org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfiguration.java
+++ b/dubbo-configcenter/dubbo-configcenter-nacos/src/main/java/org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfiguration.java
@@ -128,13 +128,13 @@ public class NacosDynamicConfiguration implements DynamicConfiguration {
     private void setServerAddr(URL url, Properties properties) {
         StringBuilder serverAddrBuilder =
                 new StringBuilder(url.getHost()) // Host
-                        .append(":")
+                        .append(':')
                         .append(url.getPort()); // Port
 
         // Append backup parameter as other servers
         String backup = url.getParameter(BACKUP_KEY);
         if (backup != null) {
-            serverAddrBuilder.append(",").append(backup);
+            serverAddrBuilder.append(',').append(backup);
         }
         String serverAddr = serverAddrBuilder.toString();
         properties.put(SERVER_ADDR, serverAddr);
diff --git a/dubbo-filter/dubbo-filter-validation/src/main/java/org/apache/dubbo/validation/support/jvalidation/JValidator.java b/dubbo-filter/dubbo-filter-validation/src/main/java/org/apache/dubbo/validation/support/jvalidation/JValidator.java
index ea8c6db..cc4da05 100644
--- a/dubbo-filter/dubbo-filter-validation/src/main/java/org/apache/dubbo/validation/support/jvalidation/JValidator.java
+++ b/dubbo-filter/dubbo-filter-validation/src/main/java/org/apache/dubbo/validation/support/jvalidation/JValidator.java
@@ -185,13 +185,13 @@ public class JValidator implements Validator {
 
     private static String generateMethodParameterClassName(Class<?> clazz, Method method) {
         StringBuilder builder = new StringBuilder().append(clazz.getName())
-                .append("_")
+                .append('_')
                 .append(toUpperMethoName(method.getName()))
                 .append("Parameter");
 
         Class<?>[] parameterTypes = method.getParameterTypes();
         for (Class<?> parameterType : parameterTypes) {
-            builder.append("_").append(parameterType.getName());
+            builder.append('_').append(parameterType.getName());
         }
 
         return builder.toString();
diff --git a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/util/ClassUtils.java b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/util/ClassUtils.java
index 04096da..3c9c50e 100755
--- a/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/util/ClassUtils.java
+++ b/dubbo-metadata/dubbo-metadata-api/src/main/java/org/apache/dubbo/metadata/definition/util/ClassUtils.java
@@ -121,7 +121,7 @@ public final class ClassUtils {
                 sb.append(ownerType.toString());
             }
 
-            sb.append(".");
+            sb.append('.');
 
             if (ownerType instanceof ParameterizedType) {
                 // Find simple name of nested type by removing the
@@ -137,7 +137,7 @@ public final class ClassUtils {
 
         if (actualTypeArguments != null &&
                 actualTypeArguments.length > 0) {
-            sb.append("<");
+            sb.append('<');
             boolean first = true;
             for (Type t : actualTypeArguments) {
                 if (!first) {
@@ -153,7 +153,7 @@ public final class ClassUtils {
                 }
                 first = false;
             }
-            sb.append(">");
+            sb.append('>');
         }
 
         return sb.toString();
diff --git a/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/AbstractServiceAnnotationProcessor.java b/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/AbstractServiceAnnotationProcessor.java
index 7ef7794..0eacd6a 100644
--- a/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/AbstractServiceAnnotationProcessor.java
+++ b/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/AbstractServiceAnnotationProcessor.java
@@ -78,7 +78,7 @@ public abstract class AbstractServiceAnnotationProcessor extends AbstractProcess
         StringBuilder methodSignatureBuilder = new StringBuilder();
 
         method.getModifiers().forEach(member -> {
-            methodSignatureBuilder.append(member).append(" ");
+            methodSignatureBuilder.append(member).append(' ');
         });
 
         methodSignatureBuilder.append(method.getReturnType())
diff --git a/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/rest/DefaultServiceRestMetadataResolver.java b/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/rest/DefaultServiceRestMetadataResolver.java
index 6e50f0b..6a191e5 100644
--- a/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/rest/DefaultServiceRestMetadataResolver.java
+++ b/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/rest/DefaultServiceRestMetadataResolver.java
@@ -112,7 +112,7 @@ public class DefaultServiceRestMetadataResolver extends AbstractServiceRestMetad
             // If "-parameters" option is enabled, take the parameter name as the path variable name,
             // or use the index of parameter
             String pathVariableName = isEnabledParametersCompilerOption(parameterName) ? parameterName : valueOf(i);
-            requestPathBuilder.append(PATH_SEPARATOR).append("{").append(pathVariableName).append("}");
+            requestPathBuilder.append(PATH_SEPARATOR).append('{').append(pathVariableName).append('}');
         }
 
         return requestPathBuilder.toString();
diff --git a/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/util/TypeUtils.java b/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/util/TypeUtils.java
index 066a0a1..25d0bf1 100644
--- a/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/util/TypeUtils.java
+++ b/dubbo-metadata/dubbo-metadata-processor/src/main/java/org/apache/dubbo/metadata/annotation/processing/util/TypeUtils.java
@@ -384,14 +384,14 @@ public interface TypeUtils {
             if (!typeParameterElements.isEmpty()) {
                 List<TypeMirror> typeMirrors = invokeMethod(type, "getTypeArguments");
                 StringBuilder typeBuilder = new StringBuilder(element.toString());
-                typeBuilder.append("<");
+                typeBuilder.append('<');
                 for (int i = 0; i < typeMirrors.size(); i++) {
                     if (i > 0) {
                         typeBuilder.append(", ");
                     }
                     typeBuilder.append(typeMirrors.get(i).toString());
                 }
-                typeBuilder.append(">");
+                typeBuilder.append('>');
                 return typeBuilder.toString();
             }
         }
diff --git a/dubbo-metadata/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReport.java b/dubbo-metadata/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReport.java
index cba0e52..30b26b7 100644
--- a/dubbo-metadata/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReport.java
+++ b/dubbo-metadata/dubbo-metadata-report-nacos/src/main/java/org/apache/dubbo/metadata/store/nacos/NacosMetadataReport.java
@@ -110,12 +110,12 @@ public class NacosMetadataReport extends AbstractMetadataReport {
     private void setServerAddr(URL url, Properties properties) {
         StringBuilder serverAddrBuilder =
                 new StringBuilder(url.getHost()) // Host
-                        .append(":")
+                        .append(':')
                         .append(url.getPort()); // Port
         // Append backup parameter as other servers
         String backup = url.getParameter(BACKUP_KEY);
         if (backup != null) {
-            serverAddrBuilder.append(",").append(backup);
+            serverAddrBuilder.append(',').append(backup);
         }
         String serverAddr = serverAddrBuilder.toString();
         properties.put(SERVER_ADDR, serverAddr);
diff --git a/dubbo-monitor/dubbo-monitor-default/src/main/java/org/apache/dubbo/monitor/dubbo/MetricsFilter.java b/dubbo-monitor/dubbo-monitor-default/src/main/java/org/apache/dubbo/monitor/dubbo/MetricsFilter.java
index a3da989..4015339 100644
--- a/dubbo-monitor/dubbo-monitor-default/src/main/java/org/apache/dubbo/monitor/dubbo/MetricsFilter.java
+++ b/dubbo-monitor/dubbo-monitor-default/src/main/java/org/apache/dubbo/monitor/dubbo/MetricsFilter.java
@@ -127,12 +127,12 @@ public class MetricsFilter implements Filter {
         StringBuilder method = new StringBuilder(methodName);
         Class<?>[] argTypes = RpcUtils.getParameterTypes(invocation);
 
-        method.append("(");
+        method.append('(');
 
         for (int i = 0; i < argTypes.length; i++) {
             method.append((i == 0 ? "" : ", ") + argTypes[i].getSimpleName());
         }
-        method.append(")");
+        method.append(')');
         Class<?> returnType = RpcUtils.getReturnType(invocation);
         String typeName = null;
         if(returnType != null) {
diff --git a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Help.java b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Help.java
index ba370cc..bb0a94d 100644
--- a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Help.java
+++ b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Help.java
@@ -68,7 +68,7 @@ public class Help implements BaseCommand {
     private String drawExample(Cmd cmd) {
         final StringBuilder drawExampleStringBuilder = new StringBuilder();
         for (String example : cmd.example()) {
-            drawExampleStringBuilder.append(example).append("\n");
+            drawExampleStringBuilder.append(example).append('\n');
         }
         return drawExampleStringBuilder.toString();
     }
diff --git a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Version.java b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Version.java
index b3fd39e..5c41e3b 100644
--- a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Version.java
+++ b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/command/impl/Version.java
@@ -30,7 +30,7 @@ public class Version implements BaseCommand {
         StringBuilder versionDescBuilder = new StringBuilder();
         versionDescBuilder.append("dubbo version \"");
         versionDescBuilder.append(org.apache.dubbo.common.Version.getVersion());
-        versionDescBuilder.append("\"");
+        versionDescBuilder.append('\"');
         return versionDescBuilder.toString();
     }
 
diff --git a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/legacy/ChangeTelnetHandler.java b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/legacy/ChangeTelnetHandler.java
index 299b6f1..2bedf29 100644
--- a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/legacy/ChangeTelnetHandler.java
+++ b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/legacy/ChangeTelnetHandler.java
@@ -41,7 +41,7 @@ public class ChangeTelnetHandler implements TelnetHandler {
         if ("/".equals(message) || "..".equals(message)) {
             String service = (String) channel.getAttribute(SERVICE_KEY);
             channel.removeAttribute(SERVICE_KEY);
-            buf.append("Cancelled default service ").append(service).append(".");
+            buf.append("Cancelled default service ").append(service).append('.');
         } else {
             boolean found = false;
             for (Exporter<?> exporter : DubboProtocol.getDubboProtocol().getExporters()) {
diff --git a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/legacy/CurrentTelnetHandler.java b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/legacy/CurrentTelnetHandler.java
index ba47678..395c7e5 100644
--- a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/legacy/CurrentTelnetHandler.java
+++ b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/legacy/CurrentTelnetHandler.java
@@ -36,7 +36,7 @@ public class CurrentTelnetHandler implements TelnetHandler {
         String service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);
         StringBuilder buf = new StringBuilder();
         if (service == null || service.length() == 0) {
-            buf.append("/");
+            buf.append('/');
         } else {
             buf.append(service);
         }
diff --git a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/legacy/InvokeTelnetHandler.java b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/legacy/InvokeTelnetHandler.java
index 571c6ca..c63aacf 100644
--- a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/legacy/InvokeTelnetHandler.java
+++ b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/legacy/InvokeTelnetHandler.java
@@ -243,12 +243,12 @@ public class InvokeTelnetHandler implements TelnetHandler {
         buf.append("Methods:\r\n");
         for (int i = 0; i < methods.size(); i++) {
             Method method = methods.get(i);
-            buf.append(i + 1).append(". ").append(method.getName()).append("(");
+            buf.append(i + 1).append(". ").append(method.getName()).append('(');
             Class<?>[] parameterTypes = method.getParameterTypes();
             for (int n = 0; n < parameterTypes.length; n++) {
                 buf.append(parameterTypes[n].getSimpleName());
                 if (n != parameterTypes.length - 1) {
-                    buf.append(",");
+                    buf.append(',');
                 }
             }
             buf.append(")\r\n");
diff --git a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/textui/TTable.java b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/textui/TTable.java
index 24b8308..b3bd544 100644
--- a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/textui/TTable.java
+++ b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/textui/TTable.java
@@ -155,7 +155,7 @@ public class TTable implements TComponent {
 
                     if (isLastColOfRow) {
                         if (border.has(Border.BORDER_OUTER_RIGHT)) {
-                            segmentSB.append("|");
+                            segmentSB.append('|');
                         }
                         segmentSB.append(System.lineSeparator());
                     }
@@ -247,19 +247,19 @@ public class TTable implements TComponent {
 
             if (isFirstCol
                     && border.has(Border.BORDER_OUTER_LEFT)) {
-                separationLineSB.append("+");
+                separationLineSB.append('+');
             }
 
             if (!isFirstCol
                     && border.has(Border.BORDER_INNER_V)) {
-                separationLineSB.append("+");
+                separationLineSB.append('+');
             }
 
             separationLineSB.append(repeat("-", width + 2 * padding));
 
             if (isLastCol
                     && border.has(Border.BORDER_OUTER_RIGHT)) {
-                separationLineSB.append("+");
+                separationLineSB.append('+');
             }
 
         }
diff --git a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/textui/TTree.java b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/textui/TTree.java
index 337f0b2..274d0be 100644
--- a/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/textui/TTree.java
+++ b/dubbo-plugin/dubbo-qos/src/main/java/org/apache/dubbo/qos/textui/TTree.java
@@ -69,7 +69,7 @@ public class TTree implements TComponent {
 
                 int costPrefixLength = 0;
                 if (hasChild) {
-                    treeSB.append("+");
+                    treeSB.append('+');
                 }
                 if (isPrintCost
                         && !node.isRoot()) {
@@ -82,7 +82,7 @@ public class TTree implements TComponent {
                     boolean isFirst = true;
                     while (scanner.hasNextLine()) {
                         if (isFirst) {
-                            treeSB.append(scanner.nextLine()).append("\n");
+                            treeSB.append(scanner.nextLine()).append('\n');
                             isFirst = false;
                         } else {
                             treeSB.append(prefix)
diff --git a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/status/RegistryStatusChecker.java b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/status/RegistryStatusChecker.java
index 0da0f87..6e4fae8 100644
--- a/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/status/RegistryStatusChecker.java
+++ b/dubbo-registry/dubbo-registry-api/src/main/java/org/apache/dubbo/registry/status/RegistryStatusChecker.java
@@ -41,7 +41,7 @@ public class RegistryStatusChecker implements StatusChecker {
         StringBuilder buf = new StringBuilder();
         for (Registry registry : registries) {
             if (buf.length() > 0) {
-                buf.append(",");
+                buf.append(',');
             }
             buf.append(registry.getUrl().getAddress());
             if (!registry.isAvailable()) {
diff --git a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/PerformanceUtils.java b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/PerformanceUtils.java
index 76cf7ca..a5c43cf 100644
--- a/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/PerformanceUtils.java
+++ b/dubbo-registry/dubbo-registry-api/src/test/java/org/apache/dubbo/registry/PerformanceUtils.java
@@ -72,7 +72,7 @@ public class PerformanceUtils {
     public static void printSeparator() {
         StringBuilder pad = new StringBuilder();
         for (int i = 0; i < WIDTH; i++) {
-            pad.append("-");
+            pad.append('-');
         }
         System.out.println("+" + pad + "+");
     }
@@ -80,7 +80,7 @@ public class PerformanceUtils {
     public static void printBorder() {
         StringBuilder pad = new StringBuilder();
         for (int i = 0; i < WIDTH; i++) {
-            pad.append("=");
+            pad.append('=');
         }
         System.out.println("+" + pad + "+");
     }
@@ -90,7 +90,7 @@ public class PerformanceUtils {
         int len = WIDTH - msg.length() - 1;
         if (len > 0) {
             for (int i = 0; i < len; i++) {
-                pad.append(" ");
+                pad.append(' ');
             }
         }
         System.out.println("| " + msg + pad + "|");
@@ -102,7 +102,7 @@ public class PerformanceUtils {
         if (len > 0) {
             int half = len / 2;
             for (int i = 0; i < half; i++) {
-                pad.append(" ");
+                pad.append(' ');
             }
         }
         System.out.println("|" + pad + msg + pad + ((len % 2 == 0) ? "" : " ") + "|");
diff --git a/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/util/NacosNamingServiceUtils.java b/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/util/NacosNamingServiceUtils.java
index a7fc79c..eebf3b4 100644
--- a/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/util/NacosNamingServiceUtils.java
+++ b/dubbo-registry/dubbo-registry-nacos/src/main/java/org/apache/dubbo/registry/nacos/util/NacosNamingServiceUtils.java
@@ -125,13 +125,13 @@ public class NacosNamingServiceUtils {
     private static void setServerAddr(URL url, Properties properties) {
         StringBuilder serverAddrBuilder =
                 new StringBuilder(url.getHost()) // Host
-                        .append(":")
+                        .append(':')
                         .append(url.getPort()); // Port
 
         // Append backup parameter as other servers
         String backup = url.getParameter(BACKUP_KEY);
         if (backup != null) {
-            serverAddrBuilder.append(",").append(backup);
+            serverAddrBuilder.append(',').append(backup);
         }
 
         String serverAddr = serverAddrBuilder.toString();
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/codec/TelnetCodec.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/codec/TelnetCodec.java
index a5cfe86..d97e4cc 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/codec/TelnetCodec.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/codec/TelnetCodec.java
@@ -226,13 +226,13 @@ public class TelnetCodec extends TransportCodec {
                     String ov = history.get(old);
                     StringBuilder buf = new StringBuilder();
                     for (int i = 0; i < ov.length(); i++) {
-                        buf.append("\b");
+                        buf.append('\b');
                     }
                     for (int i = 0; i < ov.length(); i++) {
-                        buf.append(" ");
+                        buf.append(' ');
                     }
                     for (int i = 0; i < ov.length(); i++) {
-                        buf.append("\b");
+                        buf.append('\b');
                     }
                     value = buf.toString() + value;
                 }
diff --git a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/support/TelnetUtils.java b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/support/TelnetUtils.java
index ab7f3b1..009f6ba 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/support/TelnetUtils.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/main/java/org/apache/dubbo/remoting/telnet/support/TelnetUtils.java
@@ -46,7 +46,7 @@ public class TelnetUtils {
                     int pad = widths[j] - value.length();
                     if (pad > 0) {
                         for (int k = 0; k < pad; k++) {
-                            buf.append(" ");
+                            buf.append(' ');
                         }
                     }
                 }
@@ -81,45 +81,45 @@ public class TelnetUtils {
         widths[widths.length - 1] = Math.min(widths[widths.length - 1], maxwidth - maxcountbefore);
         StringBuilder buf = new StringBuilder();
         //line
-        buf.append("+");
+        buf.append('+');
         for (int j = 0; j < widths.length; j++) {
             for (int k = 0; k < widths[j] + 2; k++) {
-                buf.append("-");
+                buf.append('-');
             }
-            buf.append("+");
+            buf.append('+');
         }
         buf.append("\r\n");
         //header
-        buf.append("|");
+        buf.append('|');
         for (int j = 0; j < widths.length; j++) {
             String cell = header.get(j);
-            buf.append(" ");
+            buf.append(' ');
             buf.append(cell);
             int pad = widths[j] - cell.length();
             if (pad > 0) {
                 for (int k = 0; k < pad; k++) {
-                    buf.append(" ");
+                    buf.append(' ');
                 }
             }
             buf.append(" |");
         }
         buf.append("\r\n");
         //line
-        buf.append("+");
+        buf.append('+');
         for (int j = 0; j < widths.length; j++) {
             for (int k = 0; k < widths[j] + 2; k++) {
-                buf.append("-");
+                buf.append('-');
             }
-            buf.append("+");
+            buf.append('+');
         }
         buf.append("\r\n");
         //content
         for (List<String> row : table) {
             StringBuilder rowbuf = new StringBuilder();
-            rowbuf.append("|");
+            rowbuf.append('|');
             for (int j = 0; j < widths.length; j++) {
                 String cell = row.get(j);
-                rowbuf.append(" ");
+                rowbuf.append(' ');
                 int remaing = cell.length();
                 while (remaing > 0) {
 
@@ -137,7 +137,7 @@ public class TelnetUtils {
                 int pad = widths[j] - cell.length();
                 if (pad > 0) {
                     for (int k = 0; k < pad; k++) {
-                        rowbuf.append(" ");
+                        rowbuf.append(' ');
                     }
                 }
                 rowbuf.append(" |");
@@ -145,12 +145,12 @@ public class TelnetUtils {
             buf.append(rowbuf).append("\r\n");
         }
         //line
-        buf.append("+");
+        buf.append('+');
         for (int j = 0; j < widths.length; j++) {
             for (int k = 0; k < widths[j] + 2; k++) {
-                buf.append("-");
+                buf.append('-');
             }
-            buf.append("+");
+            buf.append('+');
         }
         buf.append("\r\n");
         return buf.toString();
diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/PerformanceClientTest.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/PerformanceClientTest.java
index f9623cc..67a1676 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/PerformanceClientTest.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/PerformanceClientTest.java
@@ -78,7 +78,7 @@ public class PerformanceClientTest  {
         // Create some data for test
         StringBuilder buf = new StringBuilder(length);
         for (int i = 0; i < length; i++) {
-            buf.append("A");
+            buf.append('A');
         }
         final String data = buf.toString();
 
diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/PerformanceUtils.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/PerformanceUtils.java
index b3a56dd..6ae0073 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/PerformanceUtils.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/PerformanceUtils.java
@@ -71,7 +71,7 @@ public class PerformanceUtils {
     public static void printSeparator() {
         StringBuilder pad = new StringBuilder();
         for (int i = 0; i < WIDTH; i++) {
-            pad.append("-");
+            pad.append('-');
         }
         System.out.println("+" + pad + "+");
     }
@@ -79,7 +79,7 @@ public class PerformanceUtils {
     public static void printBorder() {
         StringBuilder pad = new StringBuilder();
         for (int i = 0; i < WIDTH; i++) {
-            pad.append("=");
+            pad.append('=');
         }
         System.out.println("+" + pad + "+");
     }
@@ -89,7 +89,7 @@ public class PerformanceUtils {
         int len = WIDTH - msg.length() - 1;
         if (len > 0) {
             for (int i = 0; i < len; i++) {
-                pad.append(" ");
+                pad.append(' ');
             }
         }
         System.out.println("| " + msg + pad + "|");
@@ -101,7 +101,7 @@ public class PerformanceUtils {
         if (len > 0) {
             int half = len / 2;
             for (int i = 0; i < half; i++) {
-                pad.append(" ");
+                pad.append(' ');
             }
         }
         System.out.println("|" + pad + msg + pad + ((len % 2 == 0) ? "" : " ") + "|");
diff --git a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/transport/codec/DeprecatedTelnetCodec.java b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/transport/codec/DeprecatedTelnetCodec.java
index bf6b6be..0522565 100644
--- a/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/transport/codec/DeprecatedTelnetCodec.java
+++ b/dubbo-remoting/dubbo-remoting-api/src/test/java/org/apache/dubbo/remoting/transport/codec/DeprecatedTelnetCodec.java
@@ -255,13 +255,13 @@ public class DeprecatedTelnetCodec implements Codec {
                     String ov = history.get(old);
                     StringBuilder buf = new StringBuilder();
                     for (int i = 0; i < ov.length(); i++) {
-                        buf.append("\b");
+                        buf.append('\b');
                     }
                     for (int i = 0; i < ov.length(); i++) {
-                        buf.append(" ");
+                        buf.append(' ');
                     }
                     for (int i = 0; i < ov.length(); i++) {
-                        buf.append("\b");
+                        buf.append('\b');
                     }
                     value = buf.toString() + value;
                 }
diff --git a/dubbo-remoting/dubbo-remoting-netty4/src/test/java/org/apache/dubbo/remoting/transport/netty4/ReplierDispatcherTest.java b/dubbo-remoting/dubbo-remoting-netty4/src/test/java/org/apache/dubbo/remoting/transport/netty4/ReplierDispatcherTest.java
index 8dffd09..d8296a6 100644
--- a/dubbo-remoting/dubbo-remoting-netty4/src/test/java/org/apache/dubbo/remoting/transport/netty4/ReplierDispatcherTest.java
+++ b/dubbo-remoting/dubbo-remoting-netty4/src/test/java/org/apache/dubbo/remoting/transport/netty4/ReplierDispatcherTest.java
@@ -70,7 +70,7 @@ public class ReplierDispatcherTest {
         for (int i = 5; i < 100; i++) {
             StringBuilder sb = new StringBuilder();
             for (int j = 0; j < i * 100; j++)
-                sb.append("(").append(random.nextLong()).append(")");
+                sb.append('(').append(random.nextLong()).append(')');
             Data d = new Data();
             d.setData(sb.toString());
             Assertions.assertEquals(client.request(d).get().toString(), "hello world");
diff --git a/dubbo-remoting/dubbo-remoting-zookeeper/src/main/java/org/apache/dubbo/remoting/zookeeper/support/AbstractZookeeperTransporter.java b/dubbo-remoting/dubbo-remoting-zookeeper/src/main/java/org/apache/dubbo/remoting/zookeeper/support/AbstractZookeeperTransporter.java
index bdefa70..1d5aa84 100644
--- a/dubbo-remoting/dubbo-remoting-zookeeper/src/main/java/org/apache/dubbo/remoting/zookeeper/support/AbstractZookeeperTransporter.java
+++ b/dubbo-remoting/dubbo-remoting-zookeeper/src/main/java/org/apache/dubbo/remoting/zookeeper/support/AbstractZookeeperTransporter.java
@@ -121,10 +121,10 @@ public abstract class AbstractZookeeperTransporter implements ZookeeperTransport
             StringBuilder buf = new StringBuilder();
             buf.append(url.getUsername());
             if (StringUtils.isNotEmpty(url.getPassword())) {
-                buf.append(":");
+                buf.append(':');
                 buf.append(url.getPassword());
             }
-            buf.append("@");
+            buf.append('@');
             authPrefix = buf.toString();
         }
 
diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/DeprecatedFilter.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/DeprecatedFilter.java
index c4f5695..e5b2cfc 100644
--- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/DeprecatedFilter.java
+++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/DeprecatedFilter.java
@@ -58,7 +58,7 @@ public class DeprecatedFilter implements Filter {
 
     private String getMethodSignature(Invocation invocation) {
         StringBuilder buf = new StringBuilder(invocation.getMethodName());
-        buf.append("(");
+        buf.append('(');
         Class<?>[] types = invocation.getParameterTypes();
         if (types != null && types.length > 0) {
             boolean first = true;
@@ -71,7 +71,7 @@ public class DeprecatedFilter implements Filter {
                 buf.append(type.getSimpleName());
             }
         }
-        buf.append(")");
+        buf.append(')');
         return buf.toString();
     }
 
diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/tps/StatItem.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/tps/StatItem.java
index 348b9cc..5a7a0ac 100644
--- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/tps/StatItem.java
+++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/filter/tps/StatItem.java
@@ -79,7 +79,7 @@ class StatItem {
         return new StringBuilder(32).append("StatItem ")
                 .append("[name=").append(name).append(", ")
                 .append("rate = ").append(rate).append(", ")
-                .append("interval = ").append(interval).append("]")
+                .append("interval = ").append(interval).append(']')
                 .toString();
     }
 
diff --git a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/support/AccessLogData.java b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/support/AccessLogData.java
index 0b2e263..c67b68a 100644
--- a/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/support/AccessLogData.java
+++ b/dubbo-rpc/dubbo-rpc-api/src/main/java/org/apache/dubbo/rpc/support/AccessLogData.java
@@ -196,41 +196,41 @@ public final class AccessLogData {
     public String getLogMessage() {
         StringBuilder sn = new StringBuilder();
 
-        sn.append("[")
+        sn.append('[')
                 .append(MESSAGE_DATE_FORMATTER.format(getInvocationTime()))
                 .append("] ")
                 .append(get(REMOTE_HOST))
-                .append(":")
+                .append(':')
                 .append(get(REMOTE_PORT))
                 .append(" -> ")
                 .append(get(LOCAL_HOST))
-                .append(":")
+                .append(':')
                 .append(get(LOCAL_PORT))
                 .append(" - ");
 
         String group = get(GROUP) != null ? get(GROUP).toString() : "";
         if (StringUtils.isNotEmpty(group)) {
-            sn.append(group).append("/");
+            sn.append(group).append('/');
         }
 
         sn.append(get(SERVICE));
 
         String version = get(VERSION) != null ? get(VERSION).toString() : "";
         if (StringUtils.isNotEmpty(version)) {
-            sn.append(":").append(version);
+            sn.append(':').append(version);
         }
 
-        sn.append(" ");
+        sn.append(' ');
         sn.append(get(METHOD_NAME));
 
-        sn.append("(");
+        sn.append('(');
         Class<?>[] types = get(TYPES) != null ? (Class<?>[]) get(TYPES) : new Class[0];
         boolean first = true;
         for (Class<?> type : types) {
             if (first) {
                 first = false;
             } else {
-                sn.append(",");
+                sn.append(',');
             }
             sn.append(type.getName());
         }
diff --git a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/status/ServerStatusChecker.java b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/status/ServerStatusChecker.java
index 53c6f6d..451b682 100644
--- a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/status/ServerStatusChecker.java
+++ b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/status/ServerStatusChecker.java
@@ -48,12 +48,12 @@ public class ServerStatusChecker implements StatusChecker {
                 break;
             }
             if (buf.length() > 0) {
-                buf.append(",");
+                buf.append(',');
             }
             buf.append(server.getLocalAddress());
             buf.append("(clients:");
             buf.append(server.getChannels().size());
-            buf.append(")");
+            buf.append(')');
         }
         return new Status(level, buf.toString());
     }
diff --git a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/status/ThreadPoolStatusChecker.java b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/status/ThreadPoolStatusChecker.java
index 169160a..4c56f2b 100644
--- a/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/status/ThreadPoolStatusChecker.java
+++ b/dubbo-rpc/dubbo-rpc-dubbo/src/main/java/org/apache/dubbo/rpc/protocol/dubbo/status/ThreadPoolStatusChecker.java
@@ -54,7 +54,7 @@ public class ThreadPoolStatusChecker implements StatusChecker {
                 }
 
                 if (msg.length() > 0) {
-                    msg.append(";");
+                    msg.append(';');
                 }
                 msg.append("Pool status:").append(lvl).append(", max:").append(tp.getMaximumPoolSize()).append(", core:")
                         .append(tp.getCorePoolSize()).append(", largest:").append(tp.getLargestPoolSize()).append(", active:")
diff --git a/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/support/LoggingFilter.java b/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/support/LoggingFilter.java
index 62c168e..37d42b1 100644
--- a/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/support/LoggingFilter.java
+++ b/dubbo-rpc/dubbo-rpc-rest/src/main/java/org/apache/dubbo/rpc/protocol/rest/support/LoggingFilter.java
@@ -99,7 +99,7 @@ public class LoggingFilter implements ContainerRequestFilter, ClientRequestFilte
                     msg.append(", ");
                 }
             }
-            msg.append("\n");
+            msg.append('\n');
         }
         logger.info(msg.toString());
     }