Java面试高频难题:会做的都进大厂了~

Posted 达内JAVA培训

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面试高频难题:会做的都进大厂了~相关的知识,希望对你有一定的参考价值。



 

作者 | Yujiaao
来源 | https://segmentfault.com/a/1190000019962661


分享一个 Java 面试难题。为什么 C++ 支持运算符重载而   不支持? 

有人可能会说 + 运算符在   中已被重载用于字符串连接,不要被这些论据所欺骗。
与 C++ 不同,Java 不支持运算符重载。Java 不能为程序员提供自由的标准算术运算符重载,例如+, -,*和/等。如果你以前用过 C++,那么   与 C++ 相比少了很多功能,例如   不支持多重继承,Java中没有指针, 中没有地址引用传递。
另一个类似的问题是关于 Java 通过引用传递,这主要表现为 Java 是通过值还是引用传参。虽然我不知道背后的真正原因,但我认为以下说法有些道理,为什么 Java 不支持运算符重载。
1) 简单性和清晰性。
清晰性是   设计者的目标之一。设计者不是只想复制语言,而是希望拥有一种清晰,真正面向对象的语言。添加运算符重载比没有它肯定会使设计更复杂,并且它可能导致更复杂的编译器, 或减慢  ,因为它需要做额外的工作来识别运算符的实际含义,并减少优化的机会, 以保证   中运算符的行为。
2) 避免编程错误。
Java 不允许用户定义的运算符重载,因为如果允许程序员进行运算符重载,将为同一运算符赋予多种含义,这将使任何开发人员的学习曲线变得陡峭,事情变得更加混乱。
据观察,当语言支持运算符重载时,编程错误会增加,从而增加了开发和交付时间。由于  和   已经承担了大多数开发人员的责任,如在通过提供垃圾收集器进行内存管理时,因为这个功能增加污染代码的机会, 成为编程错误之源, 因此没有多大意义。
3) JVM复杂性。
的角度来看,支持运算符重载使问题变得更加困难。通过更直观,更干净的方式使用方法重载也能实现同样的事情,因此不支持 Java 中的运算符重载是有意义的。与相对简单的   相比,复杂的   可能导致   更慢,并为保证在   中运算符行为的确定性从而减少了优化代码的机会。
4) 让开发工具处理更容易。
这是在   中不支持运算符重载的另一个好处。省略运算符重载后使语言更容易处理,如静态分析等,这反过来又更容易开发处理语言的工具,例如 IDE 或重构工具。Java 中的重构工具远胜于 C++。

END


没有人能随随便便成功,如果你想进入高薪IT行业,却不知如何入门。建议你选择参加培训,培训领你入门,给你一次最快捷的拿高薪的机会,但你的努力,你真心的想为那个结果去付出,才是最最重要的。


所以,你准备好了吗?如果你是一个做好心理准备,一定要拿高薪的有志青年,达妹送你5月免费试听课。你的努力,加上我们的平台,共同托起你的梦想!



--精彩推荐--





课程咨询达妹微信:flow_13,欢迎添加,了解课程介绍,获取学习资源。

Java面试高频难题:会做的都进大厂了~

*版权声明:转载文章和图片均来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。 



点击下方“阅读原文”抢免费Java训练营名额吧!

以上是关于Java面试高频难题:会做的都进大厂了~的主要内容,如果未能解决你的问题,请参考以下文章

大厂Mysql高频面试题!十年开发经验Java架构师,一篇文章帮你解答

❤️五万字❤️离职后一天4面,总结了204道高频Java面试题,已拿阿里offer(建议收藏)

大厂Mysql高频面试题!Java黑科技实现原理揭秘,值得推荐!

双亲委派模型,类的加载机制,搞定大厂高频面试题

圆你的大厂梦!字节跳动Java高频面试题真题:一/二/三面+常见问题

提问率高达 98%!近期 BATJ 大厂 Java 岗高频面试题~