当前位置: 首页 > news >正文

每日五道java面试题之java基础篇(三)

在这里插入图片描述

第一题. switch 是否能作⽤在 byte/long/String 上?

  • Java5 以前 switch(expr)中,expr 只能是 byte、short、char、int。
  • 从 Java 5 开始,Java 中引⼊了枚举类型, expr 也可以是 enum 类型。
  • 从 Java 7 开始,expr 还可以是字符串(String),但是⻓整型(long)在⽬前所有的版本中都是不可以的

第二题. break ,continue ,return 的区别及作⽤?

  • break 跳出整个循环,不再执⾏循环(结束当前的循环体)
  • continue 跳出本次循环,继续执⾏下次循环(结束正在执⾏的循环 进⼊下⼀个循环条件)
  • return 程序返回,不再执⾏下⾯的代码(结束当前的⽅法 直接返回)

在这里插入图片描述

第三题 面向对象和面向过程的区别?

⾯向过程 :⾯向过程就是分析出解决问题所需要的步骤,然后⽤函数把这些步骤⼀步⼀步实现,使⽤的时候再⼀个⼀个的⼀次调⽤就可以。
⾯向对象 :⾯向对象,把构成问题的事务分解成各个对象,⽽建⽴对象的⽬的也不是为了完成⼀个个步骤,⽽是为了描述某个事件在解决整个问题的过程所发⽣的⾏为。 ⽬的是为了写出通⽤的代码,加强代码的重⽤,屏蔽差异性。
⽤⼀个⽐喻:⾯向过程是编年体,⾯向对象是纪传体。
在这里插入图片描述

第四题 ⾯向对象有哪些特性?

在这里插入图片描述

  • 封装
    封装把⼀个对象的属性私有化,同时提供⼀些可以被外界访问的属性的⽅法。
  • 继承
    继承是使⽤已存在的类的定义作为基础创建新的类,新类的定义可以增加新的属性或新的⽅法,也可以继承⽗类的属性和⽅法。通过继承可以很⽅便地进⾏代码复⽤。

关于继承有以下三个要点:

  1. ⼦类拥有⽗类对象所有的属性和⽅法(包括私有属性和私有⽅法),但是⽗类中的私有属性和⽅法⼦类是⽆法访问,只是拥有。
  2. ⼦类可以拥有⾃⼰属性和⽅法,即⼦类可以对⽗类进⾏扩展。
  3. ⼦类可以⽤⾃⼰的⽅式实现⽗类的⽅法。
  • 多态
    所谓多态就是指程序中定义的引⽤变量所指向的具体类型和通过该引⽤变量发出的⽅法调⽤在编程时并不确定,⽽是在程序运⾏期间才确定,即⼀个引⽤变量到底会指向哪个类的实例对象,该引⽤变量发出的⽅法调⽤到底是哪个类中实现的⽅法,必须在由程序运⾏期间才能决定。

在 Java 中有两种形式可以实现多态:继承(多个⼦类对同⼀⽅法的重写)和接⼝(实现接⼝并覆盖接⼝中同⼀⽅法)。

第五题. 重载(overload)和重写(override)的区别?

⽅法的重载和重写都是实现多态的⽅式,区别在于前者实现的是编译时的多态性,⽽后者实现的是运⾏时的多态性。

  • 重载发⽣在⼀个类中,同名的⽅法如果有不同的参数列表(参数类型不同、参数个数不同或者⼆者都不同)则视为重载;
  • 重写发⽣在⼦类与⽗类之间,重写要求⼦类被重写⽅法与⽗类被重写⽅法有相同的返回类型,⽐⽗类被重写⽅法更好访问,不能⽐⽗类被重写⽅法声明更多的异常(⾥⽒代换原则)。

⽅法重载的规则:

  1. ⽅法名⼀致,参数列表中参数的顺序,类型,个数不同。
  2. 重载与⽅法的返回值⽆关,存在于⽗类和⼦类,同类中。
  3. 可以抛出不同的异常,可以有不同修饰符。

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!
在这里插入图片描述

http://www.lryc.cn/news/297644.html

相关文章:

  • 如何升级 gpt4?快速升级至ChatGPT Plus指南,爆火的“ChatGPT”到底是什么?
  • 【实习】深信服防火墙网络安全生产实习
  • 怎么把视频音乐提取成mp3?分享详细工具和方法!
  • 代码随想录算法训练营第44天 | 完全背包理论基础 518.零钱兑换II 377.组合总和 Ⅳ
  • 深度解析与推荐:主流Web前端开发框架
  • 【React】如何使antd禁用状态的表单输入组件响应点击事件?
  • Apache Flink
  • SpringMVC速成(一)
  • 通过nginx学习linux进程名的修改
  • 【PyTorch】实现迁移学习框架DANN
  • thinkphp6入门(18)-- 中间件中除了handle函数,还可以有其它函数吗
  • Java stream 流的基本使用
  • C++面向对象 Part 2
  • 海外云手机的核心优势
  • CDN相关和HTTP代理
  • STM32的ADC电压采集
  • 基于麻雀优化算法优化XGBoost参数的优化控制策略
  • Python爬虫——请求库安装
  • 瑞芯微推理RKNN使用
  • 动漫风博客介绍页面源码
  • 网络的基本概念和socket编程
  • 探索C语言的内存魔法:动态内存管理解析
  • 2023年全国职业院校技能大赛软件测试赛题第3套
  • 【数据分享】1929-2023年全球站点的逐日降水量数据(Shp\Excel\免费获取)
  • SpringBoot WebSocket客户端与服务端一对一收发信息
  • MinGW/MSYS/GCC/GNU/MSVC/Clang/LLVM都是什么
  • 9.0 Zookeeper 节点特性
  • VUEX项目场景
  • vue+springboot前后端视频文件等的上传与展示(基于七牛云)
  • ClickHouse--02--安装