在下面的代码中,如果未初始化字符串名称,则会出现编译错误,但未初始化字符初始没有问题。为什么会有这种行为差异?
class Demo {
    public static void main(String[] args) {
        char initial;
        String name;
        for (String input: args) {
            name += input;
            initial = input.charAt(0);
            System.out.print(initial + " ");
        }
    }