Reason: The Character, Byte, Short classes have cache and using it, will save memory and will faster than using create new instance.
webrev: https://dl.dropboxusercontent.com/u/16109193/open_jdk/byte_short_character_value_of.zip similar: https://bugs.openjdk.java.net/browse/JDK-8044461 -- Atenciosamente. Otávio Gonçalves de Santana blog: http://otaviosantana.blogspot.com.br/ twitter: http://twitter.com/otaviojava site: http://www.otaviojava.com.br (11) 98255-3513
diff -r d02b062bc827 src/share/classes/sun/tools/jconsole/inspector/Utils.java --- a/src/share/classes/sun/tools/jconsole/inspector/Utils.java Fri Jun 13 11:21:30 2014 -0700 +++ b/src/share/classes/sun/tools/jconsole/inspector/Utils.java Sat Jun 14 13:33:30 2014 -0300 @@ -342,14 +342,14 @@ Object result; if (primitiveToWrapper.containsKey(type)) { if (type.equals(Character.TYPE.getName())) { - result = new Character(value.charAt(0)); + result = value.charAt(0); } else { result = newStringConstructor( ((Class<?>) primitiveToWrapper.get(type)).getName(), value); } } else if (type.equals(Character.class.getName())) { - result = new Character(value.charAt(0)); + result = value.charAt(0); } else if (Number.class.isAssignableFrom(Utils.getClass(type))) { result = createNumberFromStringValue(value); } else if (value == null || value.equals("null")) {
diff -r d02b062bc827 src/share/classes/sun/security/pkcs/PKCS9Attribute.java --- a/src/share/classes/sun/security/pkcs/PKCS9Attribute.java Fri Jun 13 11:21:30 2014 -0700 +++ b/src/share/classes/sun/security/pkcs/PKCS9Attribute.java Sat Jun 14 13:33:30 2014 -0300 @@ -309,26 +309,26 @@ */ private static final Byte[][] PKCS9_VALUE_TAGS = { null, - {new Byte(DerValue.tag_IA5String)}, // EMailAddress - {new Byte(DerValue.tag_IA5String), // UnstructuredName - new Byte(DerValue.tag_PrintableString)}, - {new Byte(DerValue.tag_ObjectId)}, // ContentType - {new Byte(DerValue.tag_OctetString)}, // MessageDigest - {new Byte(DerValue.tag_UtcTime)}, // SigningTime - {new Byte(DerValue.tag_Sequence)}, // Countersignature - {new Byte(DerValue.tag_PrintableString), - new Byte(DerValue.tag_T61String)}, // ChallengePassword - {new Byte(DerValue.tag_PrintableString), - new Byte(DerValue.tag_T61String)}, // UnstructuredAddress - {new Byte(DerValue.tag_SetOf)}, // ExtendedCertificateAttributes - {new Byte(DerValue.tag_Sequence)}, // issuerAndSerialNumber + {DerValue.tag_IA5String}, // EMailAddress + {DerValue.tag_IA5String, // UnstructuredName + DerValue.tag_PrintableString}, + {DerValue.tag_ObjectId}, // ContentType + {DerValue.tag_OctetString}, // MessageDigest + {DerValue.tag_UtcTime}, // SigningTime + {DerValue.tag_Sequence}, // Countersignature + {DerValue.tag_PrintableString, + DerValue.tag_T61String}, // ChallengePassword + {DerValue.tag_PrintableString, + DerValue.tag_T61String}, // UnstructuredAddress + {DerValue.tag_SetOf}, // ExtendedCertificateAttributes + {DerValue.tag_Sequence}, // issuerAndSerialNumber null, null, null, - {new Byte(DerValue.tag_Sequence)}, // extensionRequest - {new Byte(DerValue.tag_Sequence)}, // SMIMECapability - {new Byte(DerValue.tag_Sequence)}, // SigningCertificate - {new Byte(DerValue.tag_Sequence)} // SignatureTimestampToken + {DerValue.tag_Sequence}, // extensionRequest + {DerValue.tag_Sequence}, // SMIMECapability + {DerValue.tag_Sequence}, // SigningCertificate + {DerValue.tag_Sequence} // SignatureTimestampToken }; private static final Class<?>[] VALUE_CLASSES = new Class<?>[18]; @@ -511,7 +511,7 @@ // check for illegal element tags Byte tag; for (int i=0; i < elems.length; i++) { - tag = new Byte(elems[i].tag); + tag = elems[i].tag; if (indexOf(tag, PKCS9_VALUE_TAGS[index], 0) == -1) throwTagException(tag); diff -r d02b062bc827 src/share/classes/sun/security/x509/AVA.java --- a/src/share/classes/sun/security/x509/AVA.java Fri Jun 13 11:21:30 2014 -0700 +++ b/src/share/classes/sun/security/x509/AVA.java Sat Jun 14 13:33:30 2014 -0300 @@ -517,7 +517,7 @@ if (hexDigits.indexOf(Character.toUpperCase((char)c2)) >= 0) { int hi = Character.digit((char)c1, 16); int lo = Character.digit((char)c2, 16); - return new Byte((byte)((hi<<4) + lo)); + return (byte)((hi<<4) + lo); } else { throw new IOException ("escaped hex value must include two valid digits");
diff -r d02b062bc827 src/share/classes/sun/misc/ProxyGenerator.java --- a/src/share/classes/sun/misc/ProxyGenerator.java Fri Jun 13 11:21:30 2014 -0700 +++ b/src/share/classes/sun/misc/ProxyGenerator.java Sat Jun 14 13:33:30 2014 -0300 @@ -1885,7 +1885,7 @@ "late constant pool addition: " + key); } short i = addEntry(new ValueEntry(key)); - map.put(key, new Short(i)); + map.put(key, i); return i; } } @@ -1903,7 +1903,7 @@ throw new InternalError("late constant pool addition"); } short i = addEntry(e); - map.put(e, new Short(i)); + map.put(e, i); return i; } }
diff -r d02b062bc827 src/share/classes/sun/management/snmp/jvminstr/JvmThreadInstanceEntryImpl.java --- a/src/share/classes/sun/management/snmp/jvminstr/JvmThreadInstanceEntryImpl.java Fri Jun 13 11:21:30 2014 -0700 +++ b/src/share/classes/sun/management/snmp/jvminstr/JvmThreadInstanceEntryImpl.java Sat Jun 14 13:33:30 2014 -0300 @@ -139,7 +139,7 @@ "Unexpected exception: " + r); log.debug("getJvmThreadInstState",r); } - Byte[] result = { new Byte(bitmap[0]), new Byte(bitmap[1]) }; + Byte[] result = {bitmap[0], bitmap[1]}; return result; } }
diff -r d02b062bc827 src/share/classes/jdk/internal/org/objectweb/asm/ClassReader.java --- a/src/share/classes/jdk/internal/org/objectweb/asm/ClassReader.java Fri Jun 13 11:21:30 2014 -0700 +++ b/src/share/classes/jdk/internal/org/objectweb/asm/ClassReader.java Sat Jun 14 13:33:30 2014 -0300 @@ -1858,7 +1858,7 @@ break; case 'B': // pointer to CONSTANT_Byte av.visit(name, - new Byte((byte) readInt(items[readUnsignedShort(v)]))); + (byte) readInt(items[readUnsignedShort(v)])); v += 2; break; case 'Z': // pointer to CONSTANT_Boolean @@ -1868,13 +1868,12 @@ v += 2; break; case 'S': // pointer to CONSTANT_Short - av.visit(name, new Short( - (short) readInt(items[readUnsignedShort(v)]))); + av.visit(name, + (short) readInt(items[readUnsignedShort(v)])); v += 2; break; case 'C': // pointer to CONSTANT_Char - av.visit(name, new Character( - (char) readInt(items[readUnsignedShort(v)]))); + av.visit(name, (char) readInt(items[readUnsignedShort(v)])); v += 2; break; case 's': // pointer to CONSTANT_Utf8
diff -r d02b062bc827 src/share/classes/javax/management/loading/MLet.java --- a/src/share/classes/javax/management/loading/MLet.java Fri Jun 13 11:21:30 2014 -0700 +++ b/src/share/classes/javax/management/loading/MLet.java Sat Jun 14 13:33:30 2014 -0300 @@ -1307,9 +1307,9 @@ if (type.compareTo("java.lang.Boolean") == 0) return Boolean.valueOf(param); if (type.compareTo("java.lang.Byte") == 0) - return new Byte(param); + return Byte.valueOf(param); if (type.compareTo("java.lang.Short") == 0) - return new Short(param); + return Short.valueOf(param); if (type.compareTo("java.lang.Long") == 0) return new Long(param); if (type.compareTo("java.lang.Integer") == 0)
diff -r d02b062bc827 src/share/classes/java/beans/Statement.java --- a/src/share/classes/java/beans/Statement.java Fri Jun 13 11:21:30 2014 -0700 +++ b/src/share/classes/java/beans/Statement.java Sat Jun 14 13:33:29 2014 -0300 @@ -248,7 +248,7 @@ // ignored elsewhere. if (target == Character.class && arguments.length == 1 && argClasses[0] == String.class) { - return new Character(((String)arguments[0]).charAt(0)); + return ((String)arguments[0]).charAt(0); } try { m = ConstructorFinder.findConstructor((Class)target, argClasses);
diff -r d02b062bc827 src/share/classes/java/awt/Component.java --- a/src/share/classes/java/awt/Component.java Fri Jun 13 11:21:30 2014 -0700 +++ b/src/share/classes/java/awt/Component.java Sat Jun 14 13:33:29 2014 -0300 @@ -8506,7 +8506,7 @@ if (changeSupport == null || oldValue == newValue) { return; } - firePropertyChange(propertyName, new Character(oldValue), new Character(newValue)); + firePropertyChange(propertyName, oldValue, newValue); } /** diff -r d02b062bc827 src/share/classes/java/awt/image/renderable/ParameterBlock.java --- a/src/share/classes/java/awt/image/renderable/ParameterBlock.java Fri Jun 13 11:21:30 2014 -0700 +++ b/src/share/classes/java/awt/image/renderable/ParameterBlock.java Sat Jun 14 13:33:29 2014 -0300 @@ -337,7 +337,7 @@ * the specified parameter. */ public ParameterBlock add(byte b) { - return add(new Byte(b)); + return add(b); } /** @@ -348,7 +348,7 @@ * the specified parameter. */ public ParameterBlock add(char c) { - return add(new Character(c)); + return add(c); } /** @@ -359,7 +359,7 @@ * the specified parameter. */ public ParameterBlock add(short s) { - return add(new Short(s)); + return add(s); } /** @@ -441,7 +441,7 @@ * the specified parameter. */ public ParameterBlock set(byte b, int index) { - return set(new Byte(b), index); + return set(b, index); } /** @@ -457,7 +457,7 @@ * the specified parameter. */ public ParameterBlock set(char c, int index) { - return set(new Character(c), index); + return set(c, index); } /** @@ -473,7 +473,7 @@ * the specified parameter. */ public ParameterBlock set(short s, int index) { - return set(new Short(s), index); + return set(s, index); } /**
diff -r d02b062bc827 src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java --- a/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java Fri Jun 13 11:21:30 2014 -0700 +++ b/src/share/classes/com/sun/security/sasl/digest/DigestMD5Base.java Sat Jun 14 13:33:29 2014 -0300 @@ -1460,7 +1460,7 @@ if (logger.isLoggable(Level.INFO)) { logger.log(Level.INFO, "DIGEST39:Incorrect padding: {0}", - new Byte(msgWithPadding[msgWithPadding.length - 1])); + msgWithPadding[msgWithPadding.length - 1]); } return EMPTY_BYTE_ARRAY; } diff -r d02b062bc827 src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Client.java --- a/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Client.java Fri Jun 13 11:21:30 2014 -0700 +++ b/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Client.java Sat Jun 14 13:33:29 2014 -0300 @@ -241,7 +241,7 @@ "KRB5CLNT05:Challenge [unwrapped]:", gssOutToken); } logger.log(Level.FINE, "KRB5CLNT06:Server protections: {0}", - new Byte(gssOutToken[0])); + gssOutToken[0]); } // Client selects preferred protection @@ -293,7 +293,7 @@ if (logger.isLoggable(Level.FINE)) { logger.log(Level.FINE, "KRB5CLNT08:Selected protection: {0}; privacy: {1}; integrity: {2}", - new Object[]{new Byte(selectedQop), + new Object[]{selectedQop, Boolean.valueOf(privacy), Boolean.valueOf(integrity)}); } diff -r d02b062bc827 src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Server.java --- a/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Server.java Fri Jun 13 11:21:30 2014 -0700 +++ b/src/share/classes/com/sun/security/sasl/gsskerb/GssKrb5Server.java Sat Jun 14 13:33:29 2014 -0300 @@ -221,7 +221,7 @@ if (logger.isLoggable(Level.FINE)) { logger.log(Level.FINE, "KRB5SRV06:Supported protections: {0}; recv max buf size: {1}", - new Object[]{new Byte(allQop), + new Object[]{allQop, new Integer(recvMaxBufSize)}); } @@ -288,7 +288,7 @@ if (logger.isLoggable(Level.FINE)) { logger.log(Level.FINE, "KRB5SRV10:Selected protection: {0}; privacy: {1}; integrity: {2}", - new Object[]{new Byte(selectedQop), + new Object[]{selectedQop, Boolean.valueOf(privacy), Boolean.valueOf(integrity)}); logger.log(Level.FINE, diff -r d02b062bc827 src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java --- a/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java Fri Jun 13 11:21:30 2014 -0700 +++ b/src/share/classes/com/sun/security/sasl/util/AbstractSaslImpl.java Sat Jun 14 13:33:29 2014 -0300 @@ -77,7 +77,7 @@ if (logger.isLoggable(Level.FINE)) { logger.logp(Level.FINE, myClassName, "constructor", - "SASLIMPL02:Preferred qop mask: {0}", new Byte(allQop)); + "SASLIMPL02:Preferred qop mask: {0}", allQop); if (qop.length > 0) { StringBuffer qopbuf = new StringBuffer();
diff -r d02b062bc827 src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java --- a/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java Fri Jun 13 11:21:30 2014 -0700 +++ b/src/share/classes/com/sun/jndi/toolkit/dir/SearchFilter.java Sat Jun 14 13:33:29 2014 -0300 @@ -379,7 +379,7 @@ // used for substring comparisons (where proto has "*" wildcards private boolean substringMatch(String proto, String value) { // simple case 1: "*" means attribute presence is being tested - if(proto.equals(new Character(WILDCARD_TOKEN).toString())) { + if(proto.equals(Character.valueOf(WILDCARD_TOKEN).toString())) { if(debug) {System.out.println("simple presence assertion");} return true; }
diff -r d02b062bc827 src/share/classes/com/sun/jmx/snmp/SnmpString.java --- a/src/share/classes/com/sun/jmx/snmp/SnmpString.java Fri Jun 13 11:21:30 2014 -0700 +++ b/src/share/classes/com/sun/jmx/snmp/SnmpString.java Sat Jun 14 13:33:29 2014 -0300 @@ -140,7 +140,7 @@ public Byte[] toByte() { Byte[] result = new Byte[value.length] ; for (int i = 0 ; i < value.length ; i++) { - result[i] = new Byte(value[i]) ; + result[i] = value[i]; } return result ; }
diff -r d02b062bc827 src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java --- a/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java Fri Jun 13 11:21:30 2014 -0700 +++ b/src/share/classes/com/sun/java/swing/plaf/windows/WindowsLookAndFeel.java Sat Jun 14 13:33:29 2014 -0300 @@ -1102,8 +1102,7 @@ "PasswordField.selectionBackground", SelectionBackgroundColor, "PasswordField.selectionForeground", SelectionTextColor, "PasswordField.caretForeground",WindowTextColor, - "PasswordField.echoChar", new XPValue(new Character((char)0x25CF), - new Character('*')), + "PasswordField.echoChar", new XPValue((char)0x25CF, '*'), // *** ProgressBar "ProgressBar.font", ControlFont,