栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

[Java学习]在for循环外与循环内创建对象的区别

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[Java学习]在for循环外与循环内创建对象的区别

最近无意间将创建对象的操作放在外面,发现结果与预期不符。上网搜索了解如下:

在for循环外创建对象时,

创建的对象为全局变量,当进行for循环遍历时,他会不断往sb里添加内容。(我创建的是StringBuilder对象sb)

在for循环外创建对象:

创建的对象为局部变量,此时每一次for循环均会创建新的变量sb,每一次内容也就不同。

主要区别

就是在循环外创建对象会不断向那个对象添加内容

在for循环外创建对象

package com.itheima_集合到文件改进;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

public class ArraylistToFileDemo {
    public static void main(String[] args) throws IOException {
        //创建ArrayList集合
        ArrayList array = new ArrayList();

        //创建学生对象
        Student s1 = new Student("itheima001", "林青霞", 30, "西安");
        Student s2 = new Student("itheima002", "赵曼玉", 35, "武汉");
        Student s3 = new Student("itheima003", "胡洁", 33, "安徽");

        //把学生添加到集合
        array.add(s1);
        array.add(s2);
        array.add(s3);


        //创建bufferedwriter对象
        BufferedWriter bw = new BufferedWriter(new FileWriter("itheima_study\src\com\itheima_集合到文件改进\ArrayToFile.txt"));
//        得到字符串写入

        for (Student s : array) {
            StringBuilder sb = new StringBuilder();
//            System.out.println(s.getAddress());
            sb.append(s.getSid()).append(",").append(s.getName()).append(",").append(s.getAge()).append(",").append(s.getAddress());
            //通过BufferWriter输出操作
            bw.write(sb.toString());
            bw.newline();
            bw.flush();
        }
        bw.close();

    }
}

 在for循环内创建对象:

package com.itheima_集合到文件改进;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;

public class ArraylistToFileDemo {
    public static void main(String[] args) throws IOException {
        //创建ArrayList集合
        ArrayList array = new ArrayList();

        //创建学生对象
        Student s1 = new Student("itheima001", "林青霞", 30, "西安");
        Student s2 = new Student("itheima002", "赵曼玉", 35, "武汉");
        Student s3 = new Student("itheima003", "胡洁", 33, "安徽");

        //把学生添加到集合
        array.add(s1);
        array.add(s2);
        array.add(s3);


        //创建bufferedwriter对象
        BufferedWriter bw = new BufferedWriter(new FileWriter("itheima_study\src\com\itheima_集合到文件改进\ArrayToFile.txt"));
//        得到字符串写入

        for (Student s : array) {
            StringBuilder sb = new StringBuilder();
//            System.out.println(s.getAddress());
            sb.append(s.getSid()).append(",").append(s.getName()).append(",").append(s.getAge()).append(",").append(s.getAddress());
            //通过BufferWriter输出操作
            bw.write(sb.toString());
            bw.newline();
            bw.flush();
        }
        bw.close();

    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/298972.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号