【Java面试八股文宝典之基础篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day10

简介: 【Java面试八股文宝典之基础篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day10

大家好,我是陶然同学,软件工程大三明年实习。认识我的朋友们知道,我是科班出身,学的还行,但是对面试掌握不够,所以我将用这100多天更新Java面试题🙃🙃。


 不敢苟同,相信大家和我一样,都有一个大厂梦,作为一名资深Java选手,深知面试重要性,接下来我准备用100天时间,基于Java岗面试中的高频面试题,以每日3题的形式,带你过一遍热门面试题及恰如其分的解答。当然,我不会太深入,因为我怕记不住!!


 因此,不足的地方希望各位在评论区补充疑惑、见解以及面试中遇到的奇葩问法,希望这100天能够让我们有质的飞越,一起冲进大厂!!,让我们一起学(juan)起来!!!


String、StringBuffer、StringBuilder的区别


1. String是不可变的,如果尝试去修改,会新⽣成⼀个字符串对象,StringBuffer和StringBuilder是可变的

2. StringBuffer是线程安全的,StringBuilder是线程不安全的,所以在单线程环境下StringBuilder效率会更⾼


重载和重写的区别


1. 重载: 发⽣在同⼀个类中,⽅法名必须相同,参数类型不同、个数不同、顺序不同,⽅法返回值和访问修饰符可以不同,发⽣在编译时。

2. 重写: 发⽣在⽗⼦类中,⽅法名、参数列表必须相同,返回值范围⼩于等于⽗类,抛出的异常范围⼩于等于⽗类,访问修饰符范围⼤于等于⽗类;如果⽗类⽅法访问修饰符为private则⼦类就不能重写该⽅法。


public int add(int a,String b)
public String add(int a,String b)
//编译报错


接⼝和抽象类的区别


抽象类可以存在普通成员函数,⽽接⼝中只能存在public abstract ⽅法。

抽象类中的成员变量可以是各种类型的,⽽接⼝中的成员变量只能是public static final类型的。抽象类只能继承⼀个,接⼝可以实现多个。

接⼝的设计⽬的,是对类的⾏为进⾏约束(更准确的说是⼀种“有”约束,因为接⼝不能规定类不可以有什么⾏为),也就是提供⼀种机制,可以强制要求不同的类具有相同的⾏为。它只约束了⾏为的有⽆,但不对如何实现⾏为进⾏限制。


⽽抽象类的设计⽬的,是代码复⽤。当不同的类具有某些相同的⾏为(记为⾏为集合A),且其中⼀部分⾏为的实现⽅式⼀致时(A的⾮真⼦集,记为B),可以让这些类都派⽣于⼀个抽象类。在这个抽象类中实现了B,避免让所有的⼦类来实现B,这就达到了代码复⽤的⽬的。⽽A减B的部分,留给各个⼦类⾃⼰实现。正是因为A-B在这⾥没有实现,所以抽象类不允许实例化出来(否则当调⽤到A-B时,⽆法执⾏)。

抽象类是对类本质的抽象,表达的是 is a 的关系,⽐如: BMW is a Car 。抽象类包含并实现⼦类的通⽤特性,将⼦类存在差异化的特性进⾏抽象,交由⼦类去实现。⽽接⼝是对⾏为的抽象,表达的是 like a 的关系。⽐如: Bird like a Aircraft (像⻜⾏器⼀样可

以⻜),但其本质上 is a Bird 。接⼝的核⼼是定义⾏为,即实现类可以做什么,⾄于实现类主体是谁、是如何实现的,接⼝并不关⼼。

使⽤场景:当你关注⼀个事物的本质的时候,⽤抽象类;当你关注⼀个操作的时候,⽤接⼝。

抽象类的功能要远超过接⼝,但是,定义抽象类的代价⾼。因为⾼级语⾔来说(从实际设计上来说也是)每个类只能继承⼀个类。在这个类中,你必须继承或编写出其所有⼦类的所有共性。虽然接⼝在功能上会弱化许多,但是它只是针对⼀个动作的描述。⽽且你可以在⼀个类中同时实现多个接⼝。在设计阶段会降低难度


相关文章
|
8月前
|
存储 关系型数据库 MySQL
备战春招系列】历年来关于MySQL高频面试真题的梳理
备战春招系列】历年来关于MySQL高频面试真题的梳理
133 2
|
Java
Java基础知识日积月累(Tip of the Day10)
Java基础知识日积月累(Tip of the Day10)
49 0
|
缓存 NoSQL 算法
【Java面试八股文宝典之Redis篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day14
【Java面试八股文宝典之Redis篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day14
317 0
【Java面试八股文宝典之Redis篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day14
|
NoSQL Java 中间件
备战金九银十:4000道Java面试真题合集,助你搞定面试官
又逢金九银十,意味着很多人又面临着就职和跳槽,相信还有很多人对于自己就职没有很大的把我,今天就给大家分享我一个朋友总结的4000到Java必问核心知识点,以及面试真题解答。
|
8月前
|
消息中间件 算法 NoSQL
两年CRUD,二本毕业,备战两个月面试阿里,侥幸拿下offer定级P6
本文素材来自一位关注我一年多的铁粉 对于很多没有学历优势的人来说,面试大厂是非常困难的,这对我而言,也是一样,出身于二本,原本以为就三点一线的生活度过一生,直到生活上的变故,才让我有了新的想法和目标,因此我这个二本渣渣也奋斗了起来,竟拿下了阿里P6岗。今天分享这波面经,主要是希望能够激励到同样被学历所困扰的技术人,能够对职业生涯和技术规划有一个参考价值,感谢!
两年CRUD,二本毕业,备战两个月面试阿里,侥幸拿下offer定级P6
|
8月前
|
算法 网络协议 Java
备战春招狂刷这份大厂级24W字java面试手册2个月可成功逆袭上岸!
前言 2023年金九银十程序员跳槽或者找工作并不理想,迟迟找不到工作,甚至大厂还进行几轮裁员,导致整个就业市场都不是太好! 出现这种情况是因为中美贸易战,导致大环境不好、大厂裁员、就业情况差、企业要求变高、各行各业越来越卷,尤其是程序员,处于这个阶段,感觉特别明显! 对于程序员这个群体来说,java程序员的占比就非常之高,就业市场等于说是千军万马过独木桥,简直可以说是太难了!卷不过、根本卷不过! 在这里想说的是,大环境已经这样了,我们已经也无法左右这个市场,根本没有选择的余地,所以,打不过就加入,努力的提升自己能技术能力,直接吊打面试官! 这不,就迎来了大厂级24W字java面试手册!
|
8月前
|
Web App开发 前端开发 JavaScript
【前端实习生备战秋招】—CSS面试题汇总,建议收藏系列
【前端实习生备战秋招】—CSS面试题汇总,建议收藏系列
|
8月前
|
存储 缓存 前端开发
【前端实习生备战秋招】—HTML 和 CSS面试题总结(三)
【前端实习生备战秋招】—HTML 和 CSS面试题总结(三)
|
算法 Cloud Native 程序员
面试前的准备:程序员应该如何备战面试
面试前的准备:程序员应该如何备战面试
69 0
|
搜索推荐 关系型数据库 MySQL
【Java面试八股文宝典之MySQL篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day21
【Java面试八股文宝典之MySQL篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day21
87 0
【Java面试八股文宝典之MySQL篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day21

热门文章

最新文章