首页 > 编程语言 >Java和C++的区别:传闻这个问题能分辨你是不是科班出生?

Java和C++的区别:传闻这个问题能分辨你是不是科班出生?

时间:2024-01-24 13:46:06浏览次数:33  
标签:面试官 Java 语言 支持 C++ 科班 小二哥

大家好,欢迎来到程序视点!我是小二哥。

今天听到一个面试的小伙伴分享了他的面试经历,说面试官第一个问题是:Java语言和C++语言的区别有哪些?

Java基础入门

坊间流传,早些年间这个问题能区分一个Java程序员是不是科班出身!小伙伴怎么认为呢?

缘由

由于 Java 本来就是从 C++ 衍生出来的, 而且 Java 语言的对象模型几乎就是 C++ 对象模型的简化版。

因此,Java语言的第一课就会谈到它们的不同点。这就导致有些面试官喜欢以此作为切入点。

但从小二哥个人觉得,面试官们大体不用这样。通过面试人员的专业不就分辨得很清除了吗。

此外,很多小伙伴可能没学过C++,也有像小二哥这样上课不认真听讲的~压根儿没注意这个问题!

Java Vs C++

针对这个问题,耐不住有的面试官喜欢拿咱们 Java 和 C++ 比呀!没办法!!!

Java基础入门

就算大家没学过 C++,也要记下来。以下是小二哥总结的一些点。

  • Java 是纯粹的面向对象语言,所有的对象都继承自 java.lang.Object,所有代码(包括函数、变量)都必须在类中定义。C++ 兼容 C ,不但支持面向对象,也支持面向过程,比如是全局变量和全局函数。。

  • Java 通过 JVM 虚拟机实现跨平台特性,但是 C++ 依赖于特定的平台。

  • Java源码先一次编译,再被解释器解释成机器码。而C++源码一次编译,直接在编译的过程中链接了,形成了机器码。

  • Java 没有指针,而是引用。Java 的引用可以理解为安全指针,而 C++ 具有和 C 一样的指针。

  • Java 支持自动垃圾回收,而 C++ 需要手动回收。Java 的 JVM 有自己的GC机制(虽然有自己的GC机制,但是也会出现OOM和内存泄漏的问题)。C++中有析构函数,需要C++程序员手动调用;Java中Object也有finalize方法,但基本不会手动调用它。

  • Java 中类都是单继承的,而 C++ 支持多重继承。虽然 Java 不支持类的多继承,但可以通过实现多个接口来达到相同目的。注意,接口是可以多继承的哦~

  • Java不支持自动强制类型转换,必须由开发人员进行显式地强制类型转换。如果类型不匹配,会出现ClassCastException宜昌。C++支持自动强制类型转换,虽然这会导致程序的不安全,但它就做了。

  • Java 不支持操作符重载,虽然可以对两个 String 对象执行加法运算,但是这是语言内置支持的操作,不属于操作符重载,而 C++ 可以。

  • Java 的 goto 是保留字,但是不可用,C++ 可以使用 goto。
    ...

嗯嗯,Java 和 C++ 之间的区别还是很多的。一次性全部死记硬背住还是比较困难。

小二哥建议大家往这个问题深处想:通过上面的答案,我们会发现这些都是Java语言自身非常鲜明的特征。因此,这个问题的本质不是看大家是不是科班出身的,而是想问Java语言的重要特征有哪些!

大家大概记住前面四五个不同点就好啦~

One more thing

欢迎来到【程序视点】,这里会不定时分享一些技术要点,更有一些深受资源收藏爱好者会喜欢的优质学习资料。

如果您对程序员日常趣事、编程技巧和技术干货等充满兴趣,那么不要错过未来我为大家奉上的精彩内容!点击关注,让您的程序员之旅更加丰富多彩,我们一同成长,一同前行!

标签:面试官,Java,语言,支持,C++,科班,小二哥
From: https://www.cnblogs.com/cxsk/p/17984498

相关文章

  • 004java运行机制
    https://edu.csdn.net/skill/java/java-2af8b309ed874ad6bd06c6f2363d098d?category=462&typeId=19830来源csdn技能树一、Java的运行过程二、Java的跨平台的解释一、Java的运行过程......
  • Java中的HTTPS通信
    在Java中实现HTTPS通信,主要涉及到SSL/TLS协议的使用,用于提供数据传输的安全性。下面我们将深入探讨如何使用Java进行HTTPS通信。一、基本概念HTTPS,全称为HypertextTransferProtocolSecure,是HTTP的安全版本。它使用SSL/TLS协议对传输的数据进行加密,确保数据在传输过程中的安全。......
  • Java中的HTTP状态码
    HTTP状态码是Web应用程序中用于表示请求响应状态的一组数字代码。在Java中,我们可以使用HttpServletResponse对象的setStatus()方法设置HTTP状态码。以下是一些常见的HTTP状态码及其含义:1. 200OK:请求成功。这是最常见的状态码,表示请求已成功处理。2. 404NotFound:服务器无法找到......
  • 使用Java编写RESTful Web服务
    RESTfulWeb服务是一种基于HTTP协议的软件架构风格,它使用不同的HTTP方法(如GET、POST、PUT、DELETE等)来执行不同的操作,并使用统一的接口来访问和操作资源。在Java中,有多种框架可用于编写RESTfulWeb服务,其中最流行的是SpringBoot和Jersey。以下是使用SpringBoot编写RESTfulWeb服......
  • 用Java实现冒泡排序:实用教程带你入门
    在处理一些特定系统功能时,经常需要使用冒泡排序。例如,在一个电子商务网站中,需要对商品进行排序和过滤。这个时候可以使用冒泡排序对商品进行排序,以便用户能够按照价格、销量、评分等不同字段进行排序。通过使用冒泡排序,系统可以提供更加灵活和个性化的排序选项,以便用户能够更加方便......
  • java使用redis 加锁
    配置类:publicclassRedisLockUtil{privatestaticRedisCacheredisCache=null;/***给key加锁,如果加锁成功,则返回true,加锁失败返回false*@return*/publicstaticbooleanlock(Stringkey,Integertimeout,TimeUnittimeUnit){......
  • 探讨Java死锁的现象和解决方法
    死锁是多线程编程中常见的问题,它会导致线程相互等待,无法继续执行。在Java中,死锁是一个需要注意和解决的重要问题。让我们通过一系列详细的例子来深入了解Java死锁的现象和解决方法。1.什么是死锁?死锁是指两个或多个线程在互相等待对方释放锁资源的情况下,导致程序无法继续执行的......
  • C++缺省参数
    缺省参数什么是缺省参数呢?简单来说,就是函数的参数可以给一个默认值,如果不给这个函数传递参数的时候那么改参数就是默认值,否则参数就是你指定的参数缺省参数分为全缺省和半缺省全缺省参数:所有的参数都有默认值voidfunc(inta=10,intb=20,intc=30){cou......
  • Java中的MinIO应用类--版本2
    1.配置类importorg.springframework.boot.context.properties.ConfigurationProperties;importorg.springframework.context.annotation.Bean;importorg.springframework.context.annotation.Configuration;importio.minio.MinioClient;@Configuration@Configuratio......
  • Java工具类强推:Hutool
    官方文档:https://www.hutool.cn/docs/#/Github地址:https://github.com/dromara/hutoolGitee地址:https://gitee.com/dromara/hutool❓背景灵魂拷问1:还在为新项目工具类搬迁而烦恼?灵魂拷问2:还在为项目中工具类维护而烦恼?......