java面试题之特征 String StringBuffer StringBuilder区别,异常,重载重写,负数取余取模

本文深入讲解Java面向对象的四大特征,详细对比String、StringBuffer与StringBuilder的区别,列举常见运行时异常,解析重写与重载的规则,探讨负数取余的特点,剖析Java继承体系,解释构造函数的运行机制,探讨抽象函数的构造函数,以及super和this的使用限制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.面向对象的三大特征、四大特征

四大特征:封装、继承、多态、抽象
三大特征:封装、继承、多态

2.String StringBuffer StringBuilder的区别

1.String 是不可改变的,里面包含一个用final修饰的char数组来保存字符串的值,每次赋值都会生成新的对象,所以频繁拼接速度会稍慢些。
2.StringBuffer 和StringBuilder都是动态字符串,可以改变值,并且每次赋值不产生新的对象,所以拼接速度稍快。
3.StringBuffer是线程安全的,StringBuilder是线程不安全的,所以比前者速度稍快。

3.常见的运行时异常

算数异常、空指针异常、索引越界异常、类型转换异常、数字格式异常、数组存储异常、找不到类异常

4.重写和重载的区别

*1.重载:方法名相同,参数列表不相同(如参数个数、参数类型、顺序不同)
2.重写:子类将父类的同名方法覆盖掉,重新写内容
    遵循规则  1大 两小 两相同
    一大:访问修饰符大于父类
    两小:返回值类型小于父类但基本类型和void保持一致,抛出异常类型小于父类
    两相同:方法名相同,参数列表相同*
           

5.负数取余特点

java以第一个数的正负为准和第二个数没有关系。
注意:取模和取余的区别:都是正数没什么不同,如果有负数,取模是以第二个数的正负为准,向下取整。

6.继承体系

java单继承:继承体系即为不断向父类抽取共性,如果多继承当父类有相同功能时,子类调用对象的时候不知道使用哪一个。但是支持多重继承,集成体系。对于一个继承体系的使用,查阅顶层父类中的内容,创建最底层子类的对象,因为子类对象不仅可以使用父类方法,还可以使用子类特有的功能。

7.构造函数,子类运行构造函数时先运行了父类构造函数为什么?

因为所有子类构造函数的第一行都隐藏了super(),子类继承父类会继承父类中的数据,要知道父类如何初始化数据,所以要super(),在子类对对象初始化时调用父类的构造函数,这是对子类的实例化过程。
如果父类中没有空参的构造函数,子类的构造函数内,要通过super语句指定要访问的父类中的构造函数。
如果子类的构造函数中用this来指定调用子类自己的构造函数,那么被调用的函数也会一样访问父类中的构造函数。

8.抽象函数中是否有构造函数?

有构造函数,用于给子类对象进行初始化。

9.super和this不可以同时出现在一个构造函数当中?

super()this()都是放在第一行调用构造函数初始化,所以不能同时出现,初始化动作要完成

10.抽象关键字abstract和哪些不可以共存?

final , private , static
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值