求一个java大神帮我改改代码 下面是详情 有意思的留下QQ

为什么下面的会报出内存溢出的异常难道是我的while循环写错了classMouseListenerimplementsActionListener{publicvoida... 为什么下面的会报出内存溢出的异常 难道是我的 while 循环写错了class MouseListener implements ActionListener{

public void actionPerformed(ActionEvent e) {
List <String> Strings = new ArrayList<String>();
String s = e.getActionCommand() ;

while (flag == true){
Strings.add(s) ;
if(s.equals("Backspace")||s.equals("CEe")||s.equals("C")||s.equals("MC")||
s.equals("MR")||s.equals("/")||s.equals("sqlt")||s.equals("+")||s.equals("-")
||s.equals("*")||s.equals("!")||s.equals("%")||s.equals("MS")||
s.equals("MS")||s.equals("sin")||s.equals("cos")||s.equals("tan")) {
for (int i = 0 ; i < Strings.size()-1 ;i++){

String ss = null ;
ss = ss + Strings.get(i);
jtf.setText(ss) ;

}
flag = false ;
展开
 我来答
百度网友559f8d3
2014-03-06 · TA获得超过203个赞
知道小有建树答主
回答量:157
采纳率:0%
帮助的人:54.5万
展开全部
我了个去,代码问题太多了:
1)if里面的内容太多了,可读性太差了,你要封装成为一个函数比较好。
2) String ss = null ;
ss = ss + Strings.get(i); 这句话是什么意思没有任何作用。
3)i < Strings.size()-1这里的逻辑你看看是你真是的想法么,一个String数组,最后一位应该是LENGTH-1,那么如果i=0;i<=Strings.size()-1比较合理吧。
4)你的代码逻辑错误了,这里你的意思应该是这样的吧:
String ss = null ;
for (int i = 0 ; i <=Strings.size()-1 ;i++){
ss = ss + Strings.get(i);
jtf.setText(ss) ;
}
5)命名不规范, jtf.setText(ss) ; JTF是什么,控件名字?
6)最后,如果IF命中不了,WHILE会一直执行的(因为FLAG=FALSE写到IF里面去了,IF不命中这里就不会执行到),然后会一直执行Strings.add(s) ;这句话,导致STRINGS这个LSIT被撑爆,内存溢出了。!!!!加油吧少年。!!!
liss5945
2014-03-06 · TA获得超过231个赞
知道小有建树答主
回答量:237
采纳率:100%
帮助的人:126万
展开全部
少分号吧。。flag=false 后面加两个分号
你在编辑器里面 把光标放到while (flag == true){ 这个分号后面 ,看看另一个分号在哪里。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
浩云随风
2014-03-06 · 超过22用户采纳过TA的回答
知道答主
回答量:119
采纳率:0%
帮助的人:66.1万
展开全部
死循环了,骚年,上面那兄弟回答的很全面了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式