java面试题

本文详细解析了Java的三大特性(封装、继承、多态)、面向对象与面向过程的区别,以及八种基本数据类型、自动装箱拆箱、String和Object方法、重载与重写、equals与==的区别。适合Java初学者和面试准备者参考。
摘要由CSDN通过智能技术生成
基础面试题
1.Java三大特性
 封装
  • 数据隐藏:类的数据只能通过类提供的接口进行访问,对外部不可见。
  • 接口访问:类的接口是公开的,可以被其他类访问和调用。
  • 安全性:封装可以提高代码的安全性,防止外部的错误操作对类的数据产生影响。
  • 可维护性:封装可以隐藏内部的实现细节,使得类的实现可以更加灵活和易于维护。
继承
  • 代码重用:子类可以继承父类的属性和方法,避免了代码的重复编写。
  • 功能扩展:子类可以扩展父类的功能,使得代码更加灵活和可扩展。
  • 继承层次:多层继承可以形成继承层次结构,使得代码的组织和管理更加清晰。
多态
  • 方法重载:同一个方法名可以定义多个不同的参数列表,产生方法重载。
  • 方法重写:子类可以重写父类的方法,产生方法重写。
  • 向上转型:子类对象可以向上转型为父类对象,使得同一个方法可以被不同的对象调用。
  • 运行时绑定:方法调用的具体实现是在运行时动态绑定的,而不是在编译时静态绑定的。
2.面向对象与面向过程的区别
面向过程

        分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,然后在使用的时候一一调用则可。性能较高,所以单片机、嵌入式开发等一般采用面向过程开发

面向对象

        把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。面向对象有封装、继承、多态的特性,所以易维护、易复用、易扩展。可以设计出低耦合的系统。 但是性能上来说,比面向过程要低。

3.八种基本数据类型的大小,以及他们的封装类

4.Java自动装箱与拆箱
装箱

自动将基本数据类型转换为包装器类型(int-->Integer);调用方法:Integer的

valueOf(int) 方法

拆箱

自动将包装器类型转换为基本数据类型(Integer-->int)。调用方法:Integer的

intValue方法

5.String的方法有哪些
  1. indexOf
  2. charAt
  3. replace
  4. trim
  5. split
  6. getBytes
  7. length
  8. toLowerCase
  9. toUpperCase
  10. substring
  11. equals

6.Object的方法有哪些
  1. clone
  2. getClass
  3. toString
  4. finalize
  5. equals
  6. hashCode
  7. wait
  8. notify
  9. notifyAll
7.重载和重写的区别

定义不同---重载是定义相同的方法名,参数不同;重写是子类重写父类的方法。

范围不同---重载是在一个类中,重写是子类与父类之间的。

多态不同---重载是编译时的多态性,重写是运行时的多态性。

返回不同---重载对返回类型没有要求,而重写要求返回类型,有兼容的返回类型。

参数不同---重载的参数个数、参数类型、参数顺序可以不同,而重写父子方法参数必须相同。

修饰不同---重载对访问修饰没有特殊要求,重写访问修饰符的限制一定要大于被重写方法的访问修饰符。

8.equals与==的区别
==
== 比较的是变量 ( ) 内存中存放的对象的 ( ) 内存地址,用来判断两个对象的地址是否相同,即是
否是指相同一个对象。比较的是真正意义上的指针操作。
equals
equals 用来比较的是两个对象的内容是否相等,由于所有的类都是继承自 java.lang.Object 类的,所
以适用于所有对象,如果没有对该方法进行覆盖的话,调用的仍然是 Object 类中的方法,而 Object
中的 equals 方法返回的却是 == 的判断。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值