【后端面经-Java】Java基本概念

这篇具有很好参考价值的文章主要介绍了【后端面经-Java】Java基本概念。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【后端面经-Java】Java基本概念

目录
  • 【后端面经-Java】Java基本概念
    • 1. 面向对象和面向过程
      • 1.1 概念
      • 1.2 优缺点对比
    • 2. C++和Java的区别
      • 2.1 "去其糟粕"——Java同学,你对C++的这些东西有什么意见?
      • 2.2 改进之处————Java同学,你的这个论文,,,创新点是什么?
    • 面试模拟
    • 参考资料

1. 面向对象和面向过程

1.1 概念

  • 面向过程:将一个事件拆分为小步骤,每个步骤封装为一个函数,通过对函数的线性调用来实现一个大事件;
  • 面向对象:先对一个事件需要用到的实体类进行抽象,封装成类,通过对类的实例化对象进行操作,实现这个事件过程。特点是:封装、继承、多态。

1.2 优缺点对比

如下表所示:

2. C++和Java的区别

从某种意义上,Java是在C++的基础上,取其精华去其糟粕,进行改进之后得到的一门语言,因此,Java和C++都是面向对象的语言,大量的语法都是相通的,但是既然是C++2.0版本,总是会有所不同的。下面就来总结一下Java和C++的区别。

2.1 "去其糟粕"——Java同学,你对C++的这些东西有什么意见?

  • 指针
    大家学习C++的过程中,都被指针折磨过,包括什么数组指针、指针数组之类的,Java不支持指针,避免了指针越界、指针类型不匹配等问题。
  • 多重继承
    所谓多重继承,就是一个子类继承多个父类(奉先吾儿,是你吗?)。支持多重继承对于程序结构来说并不友好,因此Java不支持多重继承,但是可以通过接口来实现多重继承的效果。
  • 操作符重载
    C++的操作符重载,指的是一个操作符可以在不同的类中使用重载方式定义不同的含义,Java也不支持操作符重载,避免运算中的模糊性。
  • goto语句
    C++中的goto语句,可以跳转到任意位置,这样的话,程序的结构就会变得混乱,Java不支持goto语句。
  • 结构体联合
    C++能够使用结构体联合实现自定义的类型集合,而Java不支持结构体联合,Java中的数据类型只包括基本数据类型引用数据类型
  • 隐性类型转换
    C++在运算过程中,不同类型的数据可以进行隐性转换,而Java不支持隐性类型转换,需要进行强制类型转换。
  • 预处理器
    C++使用预处理引入一些库文件,但是Java并不支持,Java可使用import进行引入,但是import是在编译阶段进行的。
  • 缺省参数的函数定义
    C++的函数定义允许缺省参数,但是Java不允许。

2.2 改进之处————Java同学,你的这个论文,,,创新点是什么?

  • 垃圾回收机制
    C++需要程序员手动进行内存的申请和释放,而Java使用垃圾回收机制,自动进行内存的申请和释放,避免了内存泄漏的问题。
  • 完全面向对象
    C++是面向对象语言,但是承袭于C语言,依然保留着面向过程的特点,但是Java是完全面向对象的语言,没有面向过程的特点。
  • 跨平台——解释性语言
    C++是编译型语言,编译产生可执行文件,程序在不同的平台上需要重新编译;Java是解释性语言,程序在编译之后,会生成字节码文件,这些字节码文件可以在不同的平台上运行。

面试模拟

Q:面向过程和面向对象的区别是什么?
A: 面向过程指的是一个功能的实现拆分为多个小步骤,先行调用这些小步骤实现功能,逻辑简单,适用于小型项目,但是代码复用率低、维护成本高,不适合大型项目开发,而面向对象则是在功能实现上先抽象出多个类,通过对类的实例化对象进行操作实现功能,复用性高,更容易维护,但是开发较为复杂,且构建类将会占用更大的内存空间。

Q:C++和Java的区别
A:Java去除了C++中的指针、多重继承、结构体、联合、预处理等容易导致程序复杂性问题的特点,添加了自动垃圾回收机制,可靠性更高,并且Java是完全面向对象的编程语言。此外,C++是编译型语言,一次编译只能在当前平台运行,而Java则是解释性语言,编译之后产生的不是可执行文件,而是字节码,在不同平台通过JVM转换为可执行文件,具有跨平台性。文章来源地址https://www.toymoban.com/news/detail-602829.html

参考资料

  1. 面向过程 VS 面向对象
  2. 大神级回答---【面向对象和面向过程的区别】
  3. Java君与C、C++君的10大区别-总结
  4. C++与Java的区别

到了这里,关于【后端面经-Java】Java基本概念的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java中int的基本概念

    int可以用2进制,8进制,10进制,16进制来表示。 比如用来表示11时,以上几种表示方式如下: 2进制:int i = 0b1011; 8进制:int i = 013; 10进制:int i = 10; 16进制:int i = 0xB; 用来表示Integer.MAX_VALUE=2147483647时,以上几种表示方式如下: 2进制:int i = 0b0111_1111_1111_1111_1111_1111_1111_

    2024年02月12日
    浏览(62)
  • Java异常:基本概念、分类和处理

    在Java编程中,异常处理是一个非常重要的部分。了解如何识别、处理和避免异常对于编写健壮、可维护的代码至关重要。本文将介绍Java异常的基本概念、分类和处理方法,并通过简单的代码示例进行说明。 Java异常是程序在运行过程中出现的问题或意外情况,导致程序无法正

    2024年02月07日
    浏览(46)
  • Java网络编程(一)基本网络概念

            网络(network) 是几乎可以实时相互发送和接收数据的计算机和其他设备的集合。网络通常用线缆连接,数据位转换为电磁波,通过线缆移动。不过,无线网络会通过无线电波传输数据,许多长距离的传输现在会用通过玻璃纤维发送可见光的光纤电缆来完成。传输数

    2024年02月16日
    浏览(45)
  • java中springcloud面试题01——基本概念

    什么是SpringCloud ? Spring Cloud是一套基于Spring Boot的微服务框架,它提供了各种工具和组件,用于帮助开发者快速构建和部署云原生应用程序。Spring Cloud采用了微服务架构的思想,将大型应用程序拆分成小而独立的服务,每个服务都可以独立开发、部署和扩展,以实现更高的灵活

    2024年01月23日
    浏览(41)
  • Java 代理模式的基本概念、使用场景、应用示例和实现方法

    代理模式是一种常见的设计模式,在 Java 开发中被广泛应用。它允许我们通过添加一个代理对象来控制对另一个对象的访问,从而提供了一种间接访问实际对象的方法。本文将详细介绍 Java 代理模式的基本概念、使用场景、应用示例和实现方法等相关内容。 代理模式是一种结

    2024年02月05日
    浏览(59)
  • 一文带你彻底了解java 网络编程的基本概念

    主题:探索Java网络编程:构建连接世界的桥梁 作者:Stevedash 发布日期:2023年8月11日 15点18分 (PS:这一篇文章作为总章,今天着重讲“Socket套接字编程”这里的知识,其他模块的知识,后续补上,拆分成单独章节来慢慢完善该文,并且后面会附带上其他文章的链接,会持续

    2024年02月13日
    浏览(51)
  • Java后端面试题——Mysql篇

    在Mysql中,如何定位慢查询呢? 表象:页面加载过慢、接口压测响应时间过长(超过1s) 原因: 聚合查询 多表查询 表数据量过大查询 深度分页查询 方案:MySQL自带慢日志 需要在MySQL的配置文件(/etc/my.cnf)中配置如下信息: # 开启MySQL慢日志查询开关 slow_query_log=1 # 设置慢日

    2024年02月12日
    浏览(39)
  • 【后端面经-Java】AQS详解

    目录 1. AQS是什么? 2. AQS核心思想 2.1 基本框架 2.1.1 资源state 2.1.2 CLH双向队列 2.2 AQS模板 3. 源码分析 3.1 acquire(int) 3.1.1 tryAcquire(int) 3.1.2 addWaiter(Node.EXCLUSIVE) 3.1.3 acquireQueued(Node node, int arg) 3.2 release(int) 3.2.1 tryRelease(int) 3.2.2 unparkSuccessor(h) 3.3 acquireShared(int)和releaseShared(int) 3.3.1 acq

    2024年02月11日
    浏览(54)
  • 【后端面经-Java】Java创建线程的方法简介

    目录 1. 线程的基本概念 1.1 线程 1.2 线程状态和生命周期 2. 创建线程的四种方法 2.1 继承Thread类 2.2 实现Runnable接口 2.3 实现Callable接口 2.4 使用线程池 3. 参考资料 学过操作系统的同学应该不陌生,线程是计算机中的最小调度单元,一个进程可以有多个线程,执行并发操作,提

    2024年02月09日
    浏览(40)
  • 2023年精选出来的Java后端面试题

    1、Java与C++的区别? Java源码会先经过编译器编译成字节码(class文件),然后由JVM中内置的解释器解释成机器码。而C++源码直径过一次编译,直接在编译的过程中链接了,形成机器码 C++比Java执行效率快,但是Java可以利用JVM跨平台 Java是纯面向对象的语言,所有代码都必须在勒种

    2024年02月09日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包