JavaSE面试

①.简述面向对象的三大特征

封装、继承、多态

1.封装:

        概念:

                是将类的某些信息隐藏在类的内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。

        好处 :

           ①便于修改,增强了代码的可维护性。

           ②隐藏了实现细节,还要对外提供可以访问的方式。便于调用者的使用。

           ③提高了安全性。

        实现:

            使用private修饰符实现属性私有化,并提供setter和getter方法

2.继承:

        概念:

                 继承是把多个类中相同的内容给提取出来定义到一个类中,这个类就叫做父类,又称超类或基类,而多个类就是子类

        好处:

             ①提高了代码的复用度,减少了代码的重复,提高软件开发效率

             ②继承的出现让类与类之间产生了关系,提供了多态的前提

        实现:

             通过关键字extends可以声明一个类是从另外一个类继承而来

3.多态

        概念:

                接口的多种不同实现方式,父类型引用指向子类型对象。
        好处:

             ①简化了代码

             ②提高了维护性和扩展性
        缺点:

              ①通过父类引用操作子类对象时,只能使用父类中已有的方法,不能操作子类特有的方法

        实现:

             ①存在继承关系

             ②存在方法重写

             ③父类型引用指向子类型对象
 

接口和抽象类的区别

    接口    抽象类
构造方法     无    有,用于子类实例化使用
抽象方法/具体方法    只有抽象方法    可以有抽象方法和具体方法
修饰符    只有private    四种修饰符都有(public 、缺省、protected、private)
成员变量    只能是常量(省略 public static final )    可以是变量,也可以是常量
 

具体方法:静态方法、默认方法

1.为什么要引入静态方法?

        ​ 解决接口的修改与现有的实现不兼容问题。因为以前要加入抽象方法时,抽象类必须要实现方法,加入默认方法后,后续实现的接口,对他们没有多大影响。

2.为什么要引入默认方法?

​         引进静态方法之后,可以通过接口名来调用,不用通过new实现类了。
 

重写
        1.发生在子类中

        2.方法名、形参列表、返回类型都相同,权限修饰符的范围要大于父类方法,声明异常范围要小于父类方法

        3.子类和父类再同一个包中,子类可以重写父类所有的方法。除了声明为private和final的方法和构造方法
 

重载
        1.发生在同一类中

        2.方法名相同,参数列表、返回类型、权限修饰符可以不同
 基本类型和封装类型

包装类
          直接能够将简单类型的变量。在执行变量类型相互转换时,会使用大量包装类

基本类型 VS 包装类型

基本类型    包装类型
声明方式不同    不需要new来创建    需要通过new的关键字的方式来创建
存储方式及位置不同    是直接存储变量的值保存在堆栈中能高效的存取    需要通过应用指向实例,具体的实例保存在堆中
初始值不同    视具体值而定    初始值为null
使用方式不同        eg:集合类合作使用时只能使用包装类型


基本类型和包装类型相互转换

        基本类型--->包装类型:   通过new Integer(6);  

        包装类型--->基本类型:   通过parseInt(); 

原文链接:https://blog.csdn.net/qq_44419734/article/details/131348078

  •  ==

        1.如果比较的对象时基本类型,则比较数值是否相等

        2.如果比较的是应用数据类型,则比较的对象是内存地址是否相等

  • equals

        用来比较两个对象的内容是否相等

String 类能被继承吗,为什么

String 是一个 final 修饰的类,被final 修饰类不可以被继承

原因: 
       1. 效率性,String 类作为最常用的类之一,禁止被继承和重写,可以提高效率
        2.安全性,String 类中有很多调用底层✁本地方法,调用了操作系统的API,如果方法可以重写,可能被植入恶意代码,破坏程序 

                        
原文链接:https://blog.csdn.net/qq_44419734/article/details/131348078

final:
        ​ 可以修饰全局变量,表示此变量必须赋初值,且后期不可更改。

​         可以修饰局部变量,表示该局部变量可以不赋初值,一旦赋值后不可更改。

​         可以修饰类,表示该类不可被继承

​         可以修饰方法,表示该方法,不可以被重写
 

finally:
​         通常与try-catch联用,声明在finally的语句代码块一定会被执行。

        ​ 一般用于资源释放。
 

finalize:
​         是垃圾回收机制中使用到的方法。
 

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值