在java中 String s;表示的是创建了一个引用;而他就是通过创建不同的引用去操作对象,s=new String();则表示创建了一个对象,而且所有的对象必须是你所创建的。对象创建后被保存在堆中,因为在堆中有更大的灵活性,但是他是以牺牲时间为代价的,常量值都是直接存在代码内部这样可以使程序更加的安全。
若一个类的域是一个基本数据类型时,若没有对其进行初始化,编译器会自动对其进行初始化为一般的空值,单不提倡这样做,因为它可能不符合你要求的范围,而造成错误。
java中的数组不会出现像c和c++中,访问越界的问题,当数组被访问时它都会进行范围检查,每个数组上的内存开销和索引校检为代价的,但换来的是安全性和效率,这是值得的。