Почему если переменная data static выводит все слитно ,если нет то все ок
package com.javarush.task.task16.task1629;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/*
Только по-очереди!
*/

public class Solution {
    public static volatile BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));

    public static void main(String[] args) throws InterruptedException {
        Read3Strings t1 = new Read3Strings();
        Read3Strings t2 = new Read3Strings();

        //add your code here - добавьте код тут
        t1.start();
        t1.join();
        t2.start();
        t2.join();
        t1.printResult();
        t2.printResult();


    }

    public static class Read3Strings extends Thread {
        private static  String data = "";


        public void run() {

            for (int i = 0; i < 3; i++) {

                try {

                    data += reader.readLine() + " ";
                } catch (IOException e) {
                    System.out.println("Boom");
                }
            }


        }

        public void printResult() {
            System.out.println(data);
        }
    }
    //add your code here - добавьте код тут
}