Java工程师面试题

本文详细解答了Java与C++的区别、自动装箱与拆箱原理、值传递特性、重载与重写概念、深拷贝与浅拷贝的差异。深入探讨了Java面向对象的特点,包括构造器、成员变量与局部变量的区别、对象的相等与引用相等、以及面向对象的三大特征:封装、继承和多态。此外,还解析了静态方法与实例方法的不同,接口与抽象类的对比,以及在面试中常考的Java核心概念。
摘要由CSDN通过智能技术生成


前言

java基础:


一、基础

1.1 java和C++的区别?

答:(1)都是面向对象编程语言,都支持封装,继承和多态
(2)java不提供指针直接访问内存,程序内存更加安全
(3)Java的类是单继承的,C++支持多重继承;虽然Java的类不可以多继承,但是接口 可以多继承。
(4)Java有自动内存管理机制,不需要程序员手动释放无用内存
(5)在C语言中,字符串或字符数组最后都会有一个额外的字符“\0”来表示结束。但是,java语言中没有结束符这一概念。

1.2 自动装箱与拆箱

  • 装箱:将基本类型用应用类型包装起来。
  • 拆箱:将包装类型转换成基本类型

1.3 为什么java中只有值传递?

  • 按值调用表示方法接收的是调用者提供的值
  • 按引用调用表示方法接收的是调用者提供的变量地址
  • 一个方法可以修改传递的引用所对应的变量值,而不能修改传递值调用所对应的变量值。
  • Java程序设计语言总是采用按值调用。方法得到的是所有参数值的一个拷贝,也就是说,方法不能修改传递给它的任何参数变量内容。

1.4 重载与重写的区别

  • 重载:方法名相同,参数类型或个数不同,返回值和访问修饰符可以不同
  • 重写:就是当子类继承父类的相同方法,输入数据一样,但要做出有别于父类的响应时,你就要覆盖父类方法

1.5深拷贝VS浅拷贝

  1. 浅拷贝:对于基本数据类型进行下值传递,对引用数据类型进行引用传递般的拷贝,此为浅拷贝
  2. 深拷贝:对于基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并复制其内容,此为深拷贝

二、java面向对象

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值