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

Java 基础面试题

文章目录

  • 重载与重写
  • 抽象类与接口
  • 面向对象
  • a = a + b 与 a += b 的区别
  • final、finalize、finally
  • String、StringBuild、StringBuffer
  • 位运算
  • 反射

重载与重写

重载:是在同一个类中,方法名相同,方法参数类型,个数不同,返回类型不同。

重写:子类重写父类的方法,方法名,参数等等都一致。主要用于面向对象多态的实现条件之一。就是父类的引用指向子类的对象。

抽象类与接口

抽象类:用 abstract 修饰的类为抽象类,里面可以定义抽象方法,普通方法,局部变量,如果子类不是抽象类继承抽象父类需要重写抽象父类的方法。

接口:Interface 关键字,里面只能定义公共抽象的方法,局部变量也一定为公共静态常量,实现该接口的实现类必须重写该接口的全部方法。

一个类可以实现多个接口,但是只能继承一个类。

面向对象

面向对象三个特性

第一封装:就是将方法和变量,封装在类中,对外展现需要暴露的方法,隐藏内部实现的细节。使用时通过创建一个对象来调用类中的方法,创建一个一个类似于模块化的结构,每个类各司其职,便于管理与维护,也起到代码复用的效果。

第二继承:通过继承,子类可以获取父类私有以外的方法和变量。实现了代码的复用。

第三多态:

第一种是编译时多态,主要通过方法的重载实现。

第二种是运行时多态,对象引用的具体类型在运行时才确定,通过子类继承父类并重写父类的方法,然后使用父类的引用指向子类的对象实现。

a = a + b 与 a += b 的区别

a += b 会自动转化类型,比如 bype a = 127 , bype b = 127 , a += b , a 的类型转为 int 型。

a = a + b 时,,比如 bype a = 127 , bype b = 127 , a = a + b,会报错,超出类型的范围。

final、finalize、finally

final,关键字修饰的方法,变量,在初始化后就不能修改。

finalize()方法,是在内存对象被垃圾回收算法清除之前调用的方法,可以重写用来做一些清理工作。

finally是try-catch 异常处理的结构,finally是一定会被执行的,一般用于释放数据等等。

String、StringBuild、StringBuffer

String 是不可变的字符串,每当修改它时,都会创建一个新的字符串。

StringBuilder 和 StringBuffer 是可变的字符串,每当修改它时,都是在原来的字符串上修改。两者的区别在于:StringBuilder 是线程不安全的,但是效率比较快,StringBuffer 是线程安全的,但是效率比较慢。

所以如果需要使用频繁修改的字符串,建议使用 StringBuilder 和 StringBuffer,这样可以避免资源造成的浪费。如果是在并发的情况下,使用 StringBuffer 保证线程安全。

位运算

左移符 x >> 1,等同于 x 乘 2 ,位运算中,低位补 0

右移符 x << 1 ,等同与 x 除 2 ,位运算中,高位补 0,低位补 1

无符号右移 >>>,忽略符号位,空位都以 0 补齐。

反射

程序在运行时的时候,通过反射来获取类信息,用类来调用方法与属性,或者通过反射获取对象,用对象来调用方法与属性。

我是小辉,24 届毕业生。当下是找工作ing,欢迎关注,持续分享。

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

相关文章:

  • Nginx 1.26.0 爆 HTTP/3 QUIC 漏洞,建议升级更新到 1.27.0
  • uniadmin引入iconfont报错
  • Vue3【三】 使用TS自己编写APP组件
  • 数字IC后端物理验证PV | TSMC 12nm Calibre Base Layer DRC案例解析
  • Echarts 在指定部分做文字标记
  • 如何发布自己的npm插件包
  • AI和机器人引领新一轮农业革命
  • 【Kubernetes】三证集齐 Kubernetes实现资源超卖(附镜像包)
  • 国产Sora免费体验-快手旗下可灵大模型发布
  • linux嵌入式设备测试wifi信号强度方法
  • 【名词解释】Unity的Inputfield组件及其使用示例
  • Android 安装调试 TelephonyProvider不生效
  • 【C++】STL中List的基本功能的模拟实现
  • C语言基础——函数
  • 《精通ChatGPT:从入门到大师的Prompt指南》第1章:认识ChatGPT
  • 智慧视觉怎么识别视频?智慧机器视觉是通过什么步骤识别视频的?
  • NineData蔡冬者参与编写墨天轮《2023年中国数据库行业年度分析报告》正式发布!
  • 帝国cms接入腾讯云人脸识别认证代码
  • 计算机网络-OSI七层参考模型与数据封装
  • [职场] 为什么不能加薪? #学习方法#知识分享#微信
  • [matlab]折线图之多条折线如何绘制实心圆作为标记点
  • HTML:认识HTML与基本语法的学习
  • 如何掌握 Java 正则表达式 的基本语法及在 Java 中的应用
  • 深度学习(三)
  • 文件系统小册(FusePosixK8s csi)【2 Posix标准】
  • vue 弹出框组件重复打开时,资源重新加载
  • 图像的IO操作
  • 关于 Vue.js 中`transition`组件使用:页面切换动画和标签移动动画都是要用到的
  • Flink Rest Basic Auth - 安全认证
  • 安全U盘和普通U盘有什么区别?