java编程思想前七章部分内容总结

1、位于方法中的基本数据类型若没有初始化,则可能为任意值,但是位于类中的成员变量没有初始化则“默认值”(int为0,等等)

      对象则为null值。

2、A a = new A();

      A b;

      b = a;

将a赋值给b后;a,b指向同一内存地址(跟C++中指针一样),如果此时改变a的值则b对象的值也发生改变。

java中对对象赋值传递的是地址,基本数据类型传递的是值(数组是对象)。

java中调用方法时传入函数中的基本数据类型是传值,引用形参是传入的一个复制的地址引用

方法中堆栈分析参考:https://blog.csdn.net/qq_32331073/article/details/78492329

假设在a方法中调用了b方法;若a与b方法有名字一样的局部变量,一定要区分它们是不同的,在a中中能使用a的局部变量,不能使用b中的。它们存在于不同的栈区中,只是名字一样而已。

可参考:讨论传值还是地址

3、new一个对象时初始化顺序 (如果有继承关系则在此先后顺序基础上按照父类、子类的顺序初始化):(1)静态数据区(static属性以及块,不包含方法)、(2)成员变量(属性不为基本数据类型时,如果构造器中有方法执行,会此时执行)(3)构造器中(含方法会此时执行) 

   可参考https://www.cnblogs.com/jqctop1/p/4664912.html

4、数组的赋值只是复制了引用(指向内存地址),之后修改以后两个对象的内容一起变化。

5、可变参数使用是因为不知道数组的长度。

     假设pupple(Object...args)方法    含义:Object即为数组存储元素类型,args则为数组名字(具体用时百度查语法)

6、java子类继承父类时继承所有属性,不要将继承访问权限控制弄混,private方法在子类不能用是因为访问权限问题

    java中就近原则指的是继承关系上的近与远,常与super,this关键字有关

7.当子类与父类有相同的成员变量名称时,由于成员变量是在编译时初始化,而非像方法一样动态运行,所以成员变量无多态,只有方法与构造器有多态,但通常由于我们设置成员变量为private所以继承没有访问权限,不用考虑这一问题。

8.在构造器中一般不绑定方法,由于方法动态运行,而非在编译时运行,所以可能结果难以预料出错。

猜你喜欢

转载自blog.csdn.net/ycllycll/article/details/82749925