Character, Byte, Short valueOf instead of new instance
Otávio Gonçalves de Santana
otaviojava at java.net
Sat Jun 14 16:38:21 UTC 2014
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
-------------- next part --------------
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")) {
-------------- next part --------------
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");
-------------- next part --------------
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;
}
}
-------------- next part --------------
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;
}
}
-------------- next part --------------
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
-------------- next part --------------
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)
-------------- next part --------------
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);
-------------- next part --------------
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);
}
/**
-------------- next part --------------
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();
-------------- next part --------------
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;
}
-------------- next part --------------
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 ;
}
-------------- next part --------------
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,
More information about the core-libs-dev
mailing list