Java面试问题整理

一、三大特征
1.封装
隐藏对象内部的复杂性,只对外公开简单的接口,便于外界使用,从而提高系统的扩展性、可维护性。是面向对象方法的重要原则,就是把对象的属性和操作结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。
实现:访问权限修饰符,通过修改属性的可见性来限制对属性的访问。
2.继承
是从已有的类派生出新的类,新的类可以吸收已有的类的数据属性和行为,并扩展出新的能力。
3.多态
概念:多态是指一个程序中同名但不同方法共存的情况,方法同名表明他们最终的功能和目的相同,但由于在完成同一个功能时可能遇到不同的具体情况,所以需要定义含不同具体内容的方法,Java提供两种多态机制:重载、覆盖(也叫重写)。
重载:在类中定义多个同名而不同参数的成员方法。
覆盖:子类对父类参数相同、返回类型相同的同名方法重新进行定义。
多态的设计用途:对于能进行消息处理的接口方法,有时要对其功能进行复用,同时又要对其进行扩充,重载可以满足这种要求。保留旧的接口方法从而保障原先使用程序的稳定,增加带参数的新的重载方法以满足扩充需求。
四、抽象类和接口
在这里插入图片描述静态变量和实例变量(域变量)
静态变量:独立存在的变量,只是位置放在某个类下,可以直接类名加点调用静态变量名使用。并且是项目或程序一启动运行到该类时就直接常驻内存。不需要初始化类再调用该变量。用关键字static声明。静态方法也是同样,可以直接调用。
实例变量:就是相当于该类的属性,需要先初始化该类,就是new 该类后,才可以调用。但是该类未被再次使用,被垃圾回收器回收后,该实例也将不存在了,就是不在内存中了。
区别如下:
1.存储区域不同:静态变量存储在静态存储区,普通变量存储在堆中;
2.静态变量与类相关,普通变量则与实例相关
3.内存分配方式不同。
4.生命周期不同。
一个. Java文件可以有几个类
1、在一个.java文件中,可以存在多个同级类,和public一样的位置,注意不是内部类
2、public修饰的只能有一个,且必须要与文件名相同;若没有public的则可与文件名不同。注意不是内部类
3、该文件同级的类之间可以互相调用,但是除了public的类,其他不能够在其他文件调用。
5、编译一个java文件会生成多个class文件。
假设Test.java文件中:
public class Test{}
class Test2{}
abstract class Test3{}
final class Test6{}
编译后:Test.class Test2.class Test3.class Test6.class
JavaJVM内存区域划分
在这里插入图片描述

垃圾回收机制(Garbage Collection)是Java虚拟机(JVM)垃圾回收期提供的用于在空闲时间不定时回收无任何对象引用的对象占据的内存空间的一种机制。
垃圾:无任何对象引用的对象
判断是否是垃圾的算法:引用计数法、根搜索算法。
垃圾回收算法:
标记清除法:分为“标记”和“清除”两个阶段:首先标记出所需回收的对象,在标记完成后统一回收掉所有被标记的对象,它的标记过程其实就是前面的根搜索算法中判定垃圾对象的标记过程。
标记整理法:标记的过程与标记—清除算法中的标记过程一样,但对标记后出的垃圾对象的处理情况有所不同,它不是直接对可回收对象进行清理,而是让所有的对象都向一端移动,然后直接清理掉端边界以外的内存。
copying算法:将内存按容量分为大小相等的两块,每次只使用其中的一块(对象面),当这一块的内存用完了,就将还存活着的对象复制到另外一块内存上面(空闲面),然后再把已使用过的内存空间一次清理掉。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值