面经学习三

news2024/12/23 9:52:52

目录

Java 与 C++ 的区别

面向对象和面向过程的区别

面向对象特性

Java的基本数据类型

深拷贝和浅拷贝

Java创建对象的几种方式

final, finally, finalize 的区别


Java 与 C++ 的区别

  • Java 是纯粹的面向对象语言,所有的对象都继承自 java.lang.Object,C++ 兼容 C ,不但支持面向对象也支持面向过程。
  • Java 通过虚拟机从而实现跨平台特性, C++ 依赖于特定的平台。
  • Java 没有指针,它的引用可以理解为安全指针,而 C++ 具有和 C 一样的指针。
  • Java 支持自动垃圾回收,而 C++ 需要手动回收。
  • Java 不支持多重继承,只能通过实现多个接口来达到相同目的,而 C++ 支持多重继承。

其中 C++ 依赖于特定的平台原因在于C语言的语法GCC是帮开发者实现了跨平台,但是不同的操作系统和不同CPU提供的接口不一致,所以需要C语言开发者去完成适配工作。

面向对象和面向过程的区别

面向对象和面向过程是一种软件开发思想。

  • 面向过程就是分析出解决问题所需要的步骤,然后用函数按这些步骤实现,使用的时候依次调用就可以了。
  • 面向对象是把构成问题事务分解成各个对象,分别设计这些对象,然后将他们组装成有完整功能的系统。面向过程只用函数实现,面向对象是用类实现各个功能模块。

面向对象特性

面向对象四大特性:封装,继承,多态,抽象。

1、封装就是将类的信息隐藏在类内部,不允许外部程序直接访问,而是通过该类的方法实现对隐藏信息的操作和访问。 良好的封装能够减少耦合。

2、继承是从已有的类中派生出新的类,新的类继承父类的属性和行为,并能扩展新的能力,大大增加程序的重用性和易维护性。在Java中是单继承的,也就是说一个子类只有一个父类。

3、多态是同一个行为具有多个不同表现形式的能力。在不修改程序代码的情况下改变程序运行时绑定的代码。实现多态的三要素:继承、重写、父类引用指向子类对象。

  • 静态多态性:通过重载实现,相同的方法有不同的參数列表,可以根据参数的不同,做出不同的处理。
  • 动态多态性:在子类中重写父类的方法。运行期间判断所引用对象的实际类型,根据其实际类型调用相应的方法。

4、抽象。把客观事物用代码抽象出来。

Java的基本数据类型

byte

8

char

16

short

16

int

32

float

32

long

64

double

64

boolean

只有两个值,true,false,可以用1bit来存储

单位:bit

在Java规范中,没有明确指出boolean的大小。在《Java虚拟机规范》给出了单个boolean占4个字节,和boolean数组1个字节的定义,具体 还要看虚拟机实现是否按照规范来,因此boolean占用1个字节或者4个字节都是有可能的。

深拷贝和浅拷贝

浅拷贝:拷⻉对象和原始对象的引⽤类型引用同⼀个对象。

深拷贝:拷贝对象和原始对象的引用类型引用不同的对象。

Java创建对象的几种方式

参考:【Java基础】Java对象创建的几种方式 - 知乎

  • 用new语句创建对象。
  • 使用反射,使用Class.newInstance()创建对象。
  • 调用对象的clone()方法。
  • 运用反序列化手段,调用java.io.ObjectInputStream对象的readObject()方法。
  • 使用Constructor类的newInstance()方法创建对象。

final, finally, finalize 的区别

  • final 用于修饰属性、方法和类, 分别表示属性不能被重新赋值,方法不可被覆盖,类不可被继承。
  • finally 是异常处理语句结构的一部分,一般以try-catch-finally出现,finally代码块表示总是被执行。
  • finalize 是Object类的一个方法,该方法一般由垃圾回收器来调用,当我们调用System.gc()方法的时候,由垃圾回收器调用finalize()方法,回收垃圾,JVM并不保证此方法总被调用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1021089.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

mybatis学习记录(三)-----关于SQL Mapper的namespace

关于SQL Mapper的namespace 视频总结笔记&#xff1a; 在SQL Mapper配置文件中<mapper>标签的namespace属性可以翻译为命名空间&#xff0c;这个命名空间主要是为了防止SQL id 冲突的。 创建CarMapper2.xml文件&#xff0c;代码如下&#xff1a; CarMapper2.xml: <?…

天机学堂项目微服务架构实战

1.学习背景 各位同学大家好&#xff0c;经过前面的学习我们已经掌握了《微服务架构》的核心技术栈。相信大家也体会到了微服务架构相对于项目一的单体架构要复杂很多&#xff0c;你的脑袋里也会有很多的问号&#xff1a; 微服务架构该如何拆分&#xff1f;到了公司中我需要自己…

JDK14特性——概述语法变化

文章目录 Java14概述语法变化&#xff1a;instanceof语法变化&#xff1a;switch表达式语法变化&#xff1a; 文本块的改进语法变化&#xff1a; Records记录类型Records限制Records额外的变量类型 Java14概述 Oracle在2020年3月17日宣布JAVA14 全面上市&#xff0c;JAVA14通过…

Anomalib库安装以及使用

Anomalib: A Deep Learning Library for Anomaly Detection PDF&#xff1a;https://arxiv.org/pdf/2202.08341.pdf 代码&#xff1a;https://github.com/openvinotoolkit/anomalib 1 概述 Anomalib是一个专注于异常检测的深度学习库。它的目标是收集最新的异常检测算法&…

旧版office如何卸载干净,Mac电脑移除office教程

版office卸载不干净导致无法激活新版Microsoft office&#xff0c;这个问题如何解决呢&#xff1f;深受这一烦恼的小伙伴看过来&#xff01; 旧版office由于证书一直清理不干净&#xff0c;电脑上有旧证书存在导致新版offce激活不成功&#xff0c;具体手动清理方法带给大家。 …

Makefile 神奇:驾驭编译的力量

一.make和Makefile 当谈到 make 和 Makefile 时&#xff0c;通常是指构建工具 make 和用于描述编译和构建过程的文本文件 Makefile。 make 是一个在类Unix系统中广泛使用的构建工具。它基于文件的时间戳比较&#xff0c;只编译发生了变化的文件&#xff0c;从而提高了编译效率…

软考和PMP哪个含金量更高?

软考中&#xff0c;能和pmp一起来比较的是软考高项&#xff0c;软考高级信息系统项目管理师&#xff0c;和PMP的共同点&#xff0c;基本来说都是项目管理类的证书。本质也都是适用于项目经理岗位的证书&#xff0c;软考高项中大部分考试内容是PMPIT技术两部分&#xff0c;其中项…

JDK19特性

文章目录 JAVA19概述1. 记录模式(预览版本)2.Linux/RISC-V 移植3.外部函数和内存 API &#xff08;预览版&#xff09;4.虚拟线程(预览版)5.Vector API &#xff08;第四次孵化&#xff09;6.Switch 模式匹配&#xff08;第三预览版&#xff09;7.结构化并发&#xff08;孵化阶…

uniapp视频播放功能

UniApp提供了多种视频播放组件&#xff0c;包括视频播放器&#xff08;video&#xff09;、多媒体组件&#xff08;media&#xff09;、WebView&#xff08;内置Video标签&#xff09;等。其中&#xff0c;video和media组件是最常用的。 video组件 video组件是基于HTML5 vide…

北工大汇编——子程序设计

题目要求 完成一个字母或数制之间的转化程序&#xff0c;主程序分别具有 5种可选择的子功能&#xff0c;按相应的宇符可分别进入相应的子功能并在屏幕上显示结果&#xff0c;按“q”键退出。子功能分别为&#xff1a; 1&#xff09; 实现小写字母向大写字母的转换&#xff1b;…

Cesium与Threejs融合

融合demo 一、简介 将Cesium与three.js进行融合,从而是3d具备大场景GIS能力,使GIS具备3d能力。 关键步骤如下: 1、局部坐标系定义和坐标转换 2、相机同步 3、事件同步 二、代码 <script setup lang="ts"> import { onMounted } from vue import @ano…

批量剪辑的视频重复率高怎么去重?有可以批量剪出原创视频、脚本创作、矩阵分发的软件推荐吗?

对于批量剪辑生成的视频&#xff0c;大多朋友都会为重复率发愁&#xff0c;速度是快了&#xff0c;但是视频都是重复的&#xff0c;发出去效果不好又有什么用呢&#xff1f; 网上也能看到许多人提出&#xff0c;对素材进行改变&#xff0c;比如更换不一样的BGM&#xff0c;修改…

【MongoDB】docker部署社区版(一)

0、背景介绍 项目中使用MongoDB了&#xff0c;服务器挂掉&#xff0c;自己在本地搭一个试试。 1、版本选择 首先有社区版和和商业版。我选的是社区版。链接&#xff1a;https://hub.docker.com/r/mongodb/mongodb-community-server/tags 1.1、标签选择 看到标签有两个大类…

23 DRF快速入门+部分源码分析

文章目录 前言知识前后端不分离前后端分离RESTful APIHTTP请求方法详解部分状态码&#xff08;常见&#xff09; Django补充知识创建多个app 安装安装完后的配置 Drf框架介绍相比于Django的优势基础介绍--快速入门--了解框架的大概实现Serializers基础准备编写Serializers.py 以…

S1FD40A180H-ASEMI快恢复二极管S1FD40A180H

编辑&#xff1a;ll S1FD40A180H-ASEMI快恢复二极管S1FD40A180H 型号&#xff1a;S1FD40A180H 品牌&#xff1a;ASEMI 封装&#xff1a;TO-247 特性&#xff1a;大功率、快恢复二极管 正向电流&#xff1a;40A 反向耐压&#xff1a;1800V 恢复时间&#xff1a;<300n…

【全志V3s】SPI NAND Flash 驱动开发

文章目录 一、硬件介绍V3s的启动顺序 二、驱动支持U-Boot驱动主线 Linux 驱动已经支持 三、烧录工具 xfel四、构建U-Boot&#xff08;官方的Uboot&#xff09;先编译一下开始spi nand flash 代码层面的适配修改menuconfig配置ARM architecture配置Support for SPI Nand Flash o…

Windows的远程桌面 Server+frp 配置

前言 通过华为云耀服务器给的优惠&#xff0c;购买了一个镜像实例&#xff0c;用来配置远程桌面服务&#xff0c;采用frp进行内网穿透&#xff0c;云服务环境为Ubuntu22.04。 配置 1.服务器端frp配置 cd /usr/local # 进入默认的程序安装路径 wget clone https://github…

前端VUE---JS实现数据的模糊搜索

实现背景 因为后端实现人员列表返回&#xff0c;每次返回的数据量在100以内&#xff0c;要求前端自己进行模糊搜索 页面实现 因为是实时更新数据的&#xff0c;就不需要搜索和重置按钮了 代码 HTML <el-dialogtitle"团队人员详情":visible.sync"centerDi…

一文了解亚马逊云科技适用于 Amazon Lightsail 的托管数据库

Amazon Lightsail 是亚马逊云科技提供的一种易上手使用、月度价格经济实惠&#xff0c;并包括了计算实例、容器、存储、数据库的虚拟专用服务器。在创建时可以进行业务蓝图选择&#xff0c;可选择包含多种操作系统&#xff08;Linux/Windows 等&#xff09;或操作系统加上典型应…

使用Python来写模拟Xshell实现远程命令执行与交互

一、模块 这里使用的是 paramiko带三方库 pip install paramiko二、效果图 三、代码实现&#xff08;这里的IP&#xff0c;用户名&#xff0c;密码修改为自己对应服务器的&#xff09; import paramiko import timeclass Linux(object):# 参数初始化def __init__(self, ip, us…