在做黑马的基础测试题之后,我拿给了一个朋友检查,虽然说是完成了,但是他跟我说可以更优化一些,但是他是从国外学的java,他讲的术语什么的都是中英参半的表达,我完全听不懂。其中有一点就是我这个代码的内存问题,他说我这个代码每次执行都会产生新内存地址还是什么来的。如果频繁执行而虚拟机没及时清除会导致内存不够用之类的(因为他中英参半的表达我也没太搞懂他说的是什么,半猜的)。请问是会产生这类型的问题吗?如何解决?
//从键盘接受字符串。并进行大小写转换。
public class Test8 {
public static void main(String[] agrs)throws IOException{
//获取键盘录入对象并转换成字符流对象并进行缓冲区操作。
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
String str = null;
//使用循环建立持续使用功能
while((str=in.readLine())!=null){
//当输入over时结束跳出循环
if("over".equals(str))
break;
//建立方法进行大小写的转换
String upStr = str.toUpperCase();
String lowStr = str.toLowerCase();
//创建字符串缓冲区容纳转换后的字符串
StringBuilder sb = new StringBuilder(str.length());
//从字符串的0角标开始检索,如果字符是大写则转换为小写,否则转换为大写
for(int i=0;i<str.length();i++){
if(str.charAt(i) == upStr.charAt(i))
sb.append(lowStr.charAt(i));
else
sb.append(upStr.charAt(i));
}
//输出转换后的字符串
System.out.println(sb);
}
in.close();//关闭流
}
}
|
|