你为什么用 Java 而不用 C++ ?

文章讨论了Java相对于C++在易用性、跨平台性、异常处理方面的优势,以及try-catch、throw和throws的关键作用,强调了面试中这类问题对于考察Java理解的重要性。
摘要由CSDN通过智能技术生成

前言

这个问题是上次面试的时候面试官问我的,也是我面试的第一道题目。当时我没有复习过这个题目,所以回答的时候没有思路。加上又有点紧张,结果回答了他 Java 和 C语言 的不同哈哈哈。后来我复盘了一下,我发现我应该要从 Java 的一些特点来回答他。因为这是一个泛问题,每个人都可以回答出不同的答案,通过这个问题,其实可以考察出一个人对 Java 的理解程度。今天趁着有时间,我就自己思考了一下,假如下次面试官再问到我这种问题,我该怎么回答。

回答思路

Java 相对于 C++ 更加简单易用。C++ 的语法会比较复杂。

Java 是一门跨平台的语言。一般情况下,同一份代码在不同的操作系统上是无法直接运行的,因为不同的操作系统的指令集不一样。但 Java 中的 jvm 可以将编译后的 Java 代码翻译成操作系统所需的指令集,这样只需根据不同的操作系统提供对应的 jvm 既可。所以 Java 是跨平台的语言。而 C++ 做不到这点。

Java 有异常处理机制。假如程序出现了异常(这里的异常不是指那种内存溢出,class 没有主方法这种严重错误,这种错误神仙都救不了),一般的编译异常(比如文件找不到)和运行异常(数组下标越界),Java 程序都可以自己捕获处理。

关于程序的捕获处理,这一块可以好好讲讲。程序其实是用 try-catch 块来做捕获处理的。try 里面写的是有可能出现异常的代码,catch 里面写的是用于捕获处理异常的代码。

关于异常处理,我们还可以探讨一个点,我之前有想过一个问题,就是既然已经有了 try-catch 了,那为什么还需要有 throw、throws 这些关键字呢?throw 和 throws 的作用是,程序一旦有异常,就将异常抛给上层调用者。try-catch 还不够吗?这个问题困惑了我很久,直到有一天我看了一篇关于这个问题的文章,那篇文章说,有时候一些异常是无法处理的,比如说 dao 层想从数据库里面找某个用户的相关信息,如果找不到,dao 层自己是处理不了的,因为它就不会处理。所以,这个时候就可以用 throw 或者 throws 来将这个异常抛给 service 层,让 service 层处理。service 层已经写好了这种异常的相关代码了。

小结

这篇文章讲了为什么用 Java 而不用 C++ 这个问题。通过这道题,我又串联了几个 Java 的基础知识点。包括异常的种类,关于 try-catch 捕获异常,为什么要用 throw、throws 抛出异常,Java 跨平台的原理。说实话,这些知识有点散,而且不太好记,我需要多加复习这里,不然容易忘。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值