javaSE
java基础
qq_44834703
这个作者很懒,什么都没留下…
展开
-
Java中不要在父类构造器中调用会被子类覆写的方法
如果父类构造器中调用被子类重写的方法,会导致子类重写的方法在子类成员变量初始化之前和构造器执行之前执行,从而导致子类重写的方法无法访问到子类实例变量的值,因为此时这些变量还没有被初始化。方法中使用成员变量时,究竟使用的是父类还是子类的成员变量,则由方法所在的类决定;即方法在父类中定义和执行,则访问的是父类的成员变量,方法在子类中定义(包括覆盖父类方法)和执行,则访问的是子类的成员变量。子类对象的初始过程:(1)初始化父类中的静态成员变量和静态代码块,按照在程序中出现的顺序初始化;(2)初始化子类中.原创 2022-02-20 11:26:42 · 337 阅读 · 0 评论 -
对象的初始化过程
对象的初始化Person p = new Perosn("张三“,20);1、new对象,先找到class文件加载到内存中2、执行该类的static代码块,如果有的话,静态代码块对该类进行初始化3、在堆内存中开辟空间,分配内存地址4、在堆内存中建立对象的特有属性,并进行默认初始化5、对对象进行显示初始化6、对对象进行构造代码块初始化7、对对象进行对应的构造函数初始化8、将对象的内存地址赋值给栈内存中的变量public class Person { String name;原创 2021-10-20 00:20:32 · 866 阅读 · 0 评论 -
java静态static
static关键字用途static关键字主要是方便在没有创建对象时调用类的变量和方法static关键字可以修饰类的成员变量、成员方法,另外可以写static代码块static的特点1、随着类的加载而加载,也就是说静态成员会随着类的消失而消失,生命周期最长2、静态成员优先于对象而存在,静态先存在,对象后存在,(具体可以看类加载过程,类的加载中,会先初始化静态成员,之后才完成类的初始化过程,或者说静态成员是类成员,可以不创建对象而直接用类名调用)3、实例变量和静态变量的区别存放位置,原创 2021-10-19 22:12:45 · 197 阅读 · 0 评论 -
java参数传递 值传递
值传递和引用传递先不纠结于值传递和引用传递的概念,java中没有指针的概念,具体值传递和引用传递的准确概念可以先理解为值传递,是将实参的具体值传递给形参,引用传递是将实参的地址传递给形参,主要看在基本数据类型和引用数据类型在参数传递的区别基本数据类型java中基本数据类型包括:byte、short、int、long、float、double、char、booleanjava中引用数据类型:数组、字符串、接口、自定义类、基本数据类型的包装类基本数据类型中的传递public class Test原创 2021-10-19 23:24:44 · 78 阅读 · 0 评论