河北石家庄建设网站,西安房产网签查询系统,c 网站开发 vs2012,做网站 图片格式文章目录内存内存管理执行过程要点面试题内存
内存管理
由JVM管理
堆#xff1a;new出来的对象#xff08;包括成员变量、数组元素、方法的地址#xff09;栈#xff1a;局部变量#xff08;包括方法的参数#xff09;方法区#xff1a;.class字节码文件#xff08;…
文章目录内存内存管理执行过程要点面试题内存
内存管理
由JVM管理
堆new出来的对象包括成员变量、数组元素、方法的地址栈局部变量包括方法的参数方法区.class字节码文件包括方法、静态变量
执行过程
先加载study方法入方法区 用到方法就入栈main方法入栈 Student对象入堆 找到栈中地址基于地址找到指向的堆中的Student对象修改name为张三 同理修改age为25 调用study方法study入栈 方法走完可以出栈后进先出 失去调用对象没有引用被垃圾回收
要点
用到哪个类就将哪个类的.class加载到方法区中调用方法会入栈方法执行完就出栈new出来的对象存储在堆中引用里面装的是堆中对象的地址
面试题
抽象类和接口的区别
抽象类
由abstract修饰可以包含变量、常量、构造方法、普通方法、静态方法、抽象方法派生类通过 extends 继承只能继承一个单一继承抽象类中的成员任何访问权限都行public、private、protected、默认
接口
由interface定义可以包含抽象方法、常量、jdk1.8之后 支持 静态方法、抽象方法实现类通过implements 实现可以实现多个多实现接口中的成员访问权限只能是public
共同点
都不能被实例化。都可以包含抽象方法。都可以有默认实现的方法Java 8 可以用 default 关键字在接口中定义默认方法。
区别
接口主要用于对类的行为进行约束实现了某接口就具有对应的行为。抽象类主要用于代码复用强调的是所属关系。一个类只能继承一个类但是可以实现多个接口。接口中的成员变量只能是 public static final 类型的不能被修改且必须有初始值而抽象类的成员变量默认 default可在子类中被重新定义也可被重新赋值。