diff --git a/apps/BOB/src/net/i2p/BOB/DoCMDS.java b/apps/BOB/src/net/i2p/BOB/DoCMDS.java
index ea4c88ae4bcb55d00d17fbe3c02c03bd2f0ad643..4c2e2176ef001b64872fc2298ea279de0e576a6a 100644
--- a/apps/BOB/src/net/i2p/BOB/DoCMDS.java
+++ b/apps/BOB/src/net/i2p/BOB/DoCMDS.java
@@ -817,10 +817,10 @@ public class DoCMDS implements Runnable {
 										try {
 											database.add(Arg, nickinfo);
 											nickinfo.add(P_NICKNAME, Arg);
-											nickinfo.add(P_STARTING, new Boolean(false));
-											nickinfo.add(P_RUNNING, new Boolean(false));
-											nickinfo.add(P_STOPPING, new Boolean(false));
-											nickinfo.add(P_QUIET, new Boolean(false));
+											nickinfo.add(P_STARTING, Boolean.valueOf(false));
+											nickinfo.add(P_RUNNING, Boolean.valueOf(false));
+											nickinfo.add(P_STOPPING, Boolean.valueOf(false));
+											nickinfo.add(P_QUIET, Boolean.valueOf(false));
 											nickinfo.add(P_INHOST, "localhost");
 											nickinfo.add(P_OUTHOST, "localhost");
 											Properties Q = new Properties();
@@ -1076,7 +1076,7 @@ public class DoCMDS implements Runnable {
 													prt = Integer.parseInt(Arg);
 													if (prt > 1 && prt < 65536) {
 														try {
-															nickinfo.add(P_OUTPORT, new Integer(prt));
+															nickinfo.add(P_OUTPORT, Integer.valueOf(prt));
 														} catch (Exception ex) {
 															try {
 																wunlock();
@@ -1355,7 +1355,7 @@ public class DoCMDS implements Runnable {
 													break die;
 												}
 
-												nickinfo.add(P_STOPPING, new Boolean(true));
+												nickinfo.add(P_STOPPING, Boolean.valueOf(true));
 												try {
 													wunlock();
 
diff --git a/apps/BOB/src/net/i2p/BOB/MUXlisten.java b/apps/BOB/src/net/i2p/BOB/MUXlisten.java
index e9f492eaf5cb8f3844cf0573d012383f8be0199c..b8cae32ef3395424d8a9efd08af26a83e44aa36e 100644
--- a/apps/BOB/src/net/i2p/BOB/MUXlisten.java
+++ b/apps/BOB/src/net/i2p/BOB/MUXlisten.java
@@ -104,7 +104,7 @@ public class MUXlisten implements Runnable {
 			// Something went bad.
 			this.database.getWriteLock();
 			this.info.getWriteLock();
-			this.info.add("STARTING", new Boolean(false));
+			this.info.add("STARTING", Boolean.valueOf(false));
 			this.info.releaseWriteLock();
 			this.database.releaseWriteLock();
 			throw new IOException(e.toString());
@@ -112,7 +112,7 @@ public class MUXlisten implements Runnable {
 			// Something went bad.
 			this.database.getWriteLock();
 			this.info.getWriteLock();
-			this.info.add("STARTING", new Boolean(false));
+			this.info.add("STARTING", Boolean.valueOf(false));
 			this.info.releaseWriteLock();
 			this.database.releaseWriteLock();
 			throw new RuntimeException(e);
@@ -120,7 +120,7 @@ public class MUXlisten implements Runnable {
 			// Something else went bad.
 			this.database.getWriteLock();
 			this.info.getWriteLock();
-			this.info.add("STARTING", new Boolean(false));
+			this.info.add("STARTING", Boolean.valueOf(false));
 			this.info.releaseWriteLock();
 			this.database.releaseWriteLock();
 			e.printStackTrace();
@@ -204,7 +204,7 @@ public class MUXlisten implements Runnable {
 						try {
 							wlock();
 							try {
-								info.add("STARTING", new Boolean(false));
+								info.add("STARTING", Boolean.valueOf(false));
 							} catch (Exception e) {
 								wunlock();
 								break quit;
@@ -258,9 +258,9 @@ public class MUXlisten implements Runnable {
 			try {
 				wlock();
 				try {
-					info.add("STARTING", new Boolean(false));
-					info.add("STOPPING", new Boolean(true));
-					info.add("RUNNING", new Boolean(false));
+					info.add("STARTING", Boolean.valueOf(false));
+					info.add("STOPPING", Boolean.valueOf(true));
+					info.add("RUNNING", Boolean.valueOf(false));
 				} catch (Exception e) {
 					lock.set(false);
 					wunlock();
@@ -309,9 +309,9 @@ public class MUXlisten implements Runnable {
 			try {
 				wlock();
 				try {
-					info.add("STARTING", new Boolean(false));
-					info.add("STOPPING", new Boolean(false));
-					info.add("RUNNING", new Boolean(false));
+					info.add("STARTING", Boolean.valueOf(false));
+					info.add("STOPPING", Boolean.valueOf(false));
+					info.add("RUNNING", Boolean.valueOf(false));
 				} catch (Exception e) {
 					lock.set(false);
 					wunlock();
diff --git a/apps/BOB/src/net/i2p/BOB/TCPtoI2P.java b/apps/BOB/src/net/i2p/BOB/TCPtoI2P.java
index 2cfda2f56b8cd966f8d7aa362e6c2f71f07396e8..e2f09672b69e388f8b1faee63be00490de1a122b 100644
--- a/apps/BOB/src/net/i2p/BOB/TCPtoI2P.java
+++ b/apps/BOB/src/net/i2p/BOB/TCPtoI2P.java
@@ -71,6 +71,7 @@ public class TCPtoI2P implements Runnable {
 	 */
 	private static String lnRead(InputStream in) throws IOException {
 		String S = "";
+        StringBuilder builder = new StringBuilder();
 		int b;
 		char c;
 
@@ -85,9 +86,9 @@ public class TCPtoI2P implements Runnable {
 				break;
 			}
 			c = (char) (b & 0x7f); // We only care about ASCII
-			S = S + c;
+            builder.append(c);
 		}
-		return S;
+		return builder.toString();
 	}
 
 	/**
diff --git a/apps/sam/java/src/net/i2p/sam/SAMStreamSession.java b/apps/sam/java/src/net/i2p/sam/SAMStreamSession.java
index 6a86a915cd0ca6e04e91328306013ee6ee38f78c..0c02f1e753b2f7d4e54d1436cbaf8c4f6459c8c7 100644
--- a/apps/sam/java/src/net/i2p/sam/SAMStreamSession.java
+++ b/apps/sam/java/src/net/i2p/sam/SAMStreamSession.java
@@ -305,8 +305,8 @@ public class SAMStreamSession {
         }
 
         synchronized (handlersMapLock) {
-            handlersMap.put(new Integer(id), reader);
-            sendersMap.put(new Integer(id), sender);
+            handlersMap.put(Integer.valueOf(id), reader);
+            sendersMap.put(Integer.valueOf(id), sender);
         }
 
         I2PAppThread t = new I2PAppThread(reader, "SAMReader" + id);
@@ -332,12 +332,12 @@ public class SAMStreamSession {
      */
     protected SAMStreamSessionSocketReader getSocketReader ( int id ) {
         synchronized (handlersMapLock) {
-            return handlersMap.get(new Integer(id));
+            return handlersMap.get(Integer.valueOf(id));
         }
     }
     private StreamSender getSender(int id) {
         synchronized (handlersMapLock) {
-            return sendersMap.get(new Integer(id));
+            return sendersMap.get(Integer.valueOf(id));
         }
     }
 
@@ -349,7 +349,7 @@ public class SAMStreamSession {
      */
     protected boolean checkSocketHandlerId ( int id ) {
         synchronized (handlersMapLock) {
-            return (!(handlersMap.get(new Integer(id)) == null));
+            return (!(handlersMap.get(Integer.valueOf(id)) == null));
         }
     }
 
@@ -363,8 +363,8 @@ public class SAMStreamSession {
         StreamSender sender = null;
 
         synchronized (handlersMapLock) {
-            reader = handlersMap.remove(new Integer(id));
-            sender = sendersMap.remove(new Integer(id));
+            reader = handlersMap.remove(Integer.valueOf(id));
+            sender = sendersMap.remove(Integer.valueOf(id));
         }
 
         if (reader != null)
diff --git a/apps/sam/java/src/net/i2p/sam/SAMUtils.java b/apps/sam/java/src/net/i2p/sam/SAMUtils.java
index cb6e8fb1b706366f71a6939c45e5a69538010ff6..abdc6d5083023e62789f409175e438394cdb13b6 100644
--- a/apps/sam/java/src/net/i2p/sam/SAMUtils.java
+++ b/apps/sam/java/src/net/i2p/sam/SAMUtils.java
@@ -189,6 +189,7 @@ public class SAMUtils {
     /* Dump a Properties object in an human-readable form */
     private static String dumpProperties(Properties props) {
         Enumeration names = props.propertyNames();
+        StringBuilder builder = new StringBuilder();
         String msg = "";
         String key, val;
         boolean firstIter = true;
@@ -202,10 +203,10 @@ public class SAMUtils {
             } else {
                 firstIter = false;
             }
-            msg += " \"" + key + "\" -> \"" + val + "\"";
+            builder.append(" \"" + key + "\" -> \"" + val + "\"");
         }
         
-        return msg;
+        return builder.toString();
     }
     
 /****
diff --git a/apps/sam/java/src/net/i2p/sam/SAMv3Handler.java b/apps/sam/java/src/net/i2p/sam/SAMv3Handler.java
index ab979cae1e4a342a969b7e52711f7a14c595ad4f..9028e9c992d88b82bab63f637fb2f02d0bda9287 100644
--- a/apps/sam/java/src/net/i2p/sam/SAMv3Handler.java
+++ b/apps/sam/java/src/net/i2p/sam/SAMv3Handler.java
@@ -218,7 +218,7 @@ public class SAMv3Handler extends SAMv1Handler
 
 		public SessionRecord( String dest, Properties props, SAMv3Handler handler )
 		{
-			m_dest = new String(dest) ; 
+			m_dest = dest; 
 			m_props = new Properties() ;
 			m_props.putAll(props);
 			m_threadgroup = null ;
@@ -235,7 +235,7 @@ public class SAMv3Handler extends SAMv1Handler
 
 		synchronized public String getDest()
 		{
-			return new String(m_dest) ;
+			return m_dest;
 		}
 		synchronized public Properties getProps()
 		{