QUESTIONS:
1.对象和对象引用区别:
举个栗子,假设我们已经拥有一个sample类:
public class Sample{
class Sample{
//这里可以有点啥东西
}
}
我们一般使用如下语句创建一个sample类:
Sample sample = new Sample();
这条语句可以分为两个部分:
Sample sample;//此为生成的对象引用
sample = new Sample();//此为生成的对象
对象引用相当于对象的别称,用于指代某个对象。当然,我们可以为对象配上多个引用,如同将便利贴贴到同一本书上。但一个对象引用只能指向一个对象。
2.对象作为参数传递的特点:
基本数据类型作为参数传递是值传递,而对象是引用传递。
值传递:
public class Value{
private static int a;
public static void main(String [] args){
mod(a);
System.out.println(a);
}
public static void mod(int a){
a++;
}
}
输出为0
引用传递:
class IntClass{
int value;
}
public class RunIntClass{
public static void mod(IntClass s,int val){
s.value = val;
}
public static void main(String[] args){
IntClass a = new IntClass();
mod(a,8);
System.out.println(a.value);
}
}
3.对象初始化顺序是怎样的:
1.静态成员变量
2.静态初始化块
3.成员变量
4.初始化块
5.构造方法
4.类的static字段与其他非static字段区别:
简单来说,static修饰符修饰的域变量不属于任何一个类的具体对象,专属于类,而非static字段可以属于对象。main是特殊的static方法,作为程序的入口。
5.final修饰符的作用:
1.修饰变量,使得变量固定为常量
2.修饰类,防止类被继承
3.修饰方法,表明这个方法不可以重写,但是子类可以访问
6.float[10] arr正确吗:
显然不对。这么写会导致系统无法识别该语句给arr数组分配内存空间。
float[] arr = new float[10];//为啥不这么写?或者分开写?
7.数组元素为基本类型和引用类型时有何不同:
数组元素为基本类型,储存基本数据。
数组元素为引用类型,储存对象地址,默认值为null。
未完待续……