【备战面试】每日10道面试题打卡-Day1
本篇总结的是Java基础知识相关的面试题,后续也会更新其他相关内容
文章目录
- 1、JVM、JRE和JDK的关系?
- 2、Java语言有哪些特点?
- 3、Java和C++的区别有哪些?
- 4、Java有哪些数据类型?
- 5、访问修饰符 public、private、protected,以及不写(默认)时的 区别?
- 6、面向对象和面向过程的区别?
- 7、面向对象的三大特征是什么?
- 8、抽象类和接口有哪些区别?
- 9、成员变量与局部变量的区别有哪些?
- 10、重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
1、JVM、JRE和JDK的关系?
答:JDK里面包含了JRE和JVM,JRE里面包含了JVM,它们分别是:
- JVM:全名为
Java Virtual Machine,是Java虚拟机,Java程序需要运行在虚拟机上,不同的平台有自己的虚拟机,因此Java语言可以实现跨平台。 - JRE:全名为
Java Runtime Environment,是Java的运行环境,里面包括了Java虚拟机和Java程序所需的核心类库,核心类库主要就是java.lang包,里面包含了运行Java程序必不可少的系统类。 - JDK:全名为
Java Development Kit,它是提供给Java开发人员使用的,其中包含了Java的开发工具和JRE,所以说安装了JDK,就不需要单独再去安装JRE了。其中的开发工具有:编译工具(javac.exe),打包工具(jar.exe)等。
2、Java语言有哪些特点?
答:Java有以下七个特征:
- 简单易学(Java语言的语法与C语言和C++语言很接近)
- 面向对象(封装,继承,多态)
- 平台无关性(Java虚拟机实现平台无关性)
- 支持网络编程并且很方便(Java语言诞生本身就是为简化网络编程设计的)
- 支持多线程(多线程机制使应用程序在同一时间并行执行多项任务)
- 健壮性(Java语言的强类型机制、异常处理、垃圾的自动收集等)
- 安全性
3、Java和C++的区别有哪些?
答:Java和C++的区别有:
- Java与C++都是面向对象的语言,都支持封装、继承和多态。
- C++中有指针,但是Java中不提供指针来直接访问内存,程序内存更加安全。
- Java的类是单继承的,C++支持多重继承(虽然Java的类不可以多继承,但是接口可以多继承)。
- Java有自动内存管理机制,不需要程序员手动释放无用内存。
4、Java有哪些数据类型?
答:Java语言是强类型语言,对于每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间,数据类型又分为基本数据类型和引用数据类型:
基本数据类型:
- 整数类型:byte,short,int,long
- 浮点数据类型:float,double
- 字符型:char
- 布尔型:boolean
引用数据类型:
- 类:class
- 接口:interface
- 数组:[]
- 字符串(特殊):String
这里给字符串类型加了个特殊,为什么说他特殊呢?详见:还在问String属于什么数据类型
一般来说,引用类型在堆里,基本类型在栈里
5、访问修饰符 public、private、protected,以及不写(默认)时的 区别?
private
- 同类内可见
- 使用对象:变量、方法
default
- 同包内可见,不使用任何修饰符。
- 使用对象:类、接口、变量、方法。
protected
- 同包内的类和所有子类可见。
- 使用对象:变量、方法。
public
- 所有类可见。
- 使用对象:类、接口、变量、方法。
6、面向对象和面向过程的区别?
答:面向过程是具体化、流程化的,解决一个问题,你需要一步一步地分析,一步一步地实现。面向对象是模型化的,你只需要抽象出一个类,类就像一个封闭的盒子一样,这个盒子里面有一些解决问题的方法,我们在解决问题时直接去调用这个盒子里面的方法就行了,至于这些方法是怎么实现的我们就不需要管了,我们只需要会调用就行。
面向过程
- 优点:性能比面向对象高,因为面向对象在创建对象时开销比较大,比较消耗资源。
- 缺点:没有面向对象的易维护,易复用,易扩展。
面向对象
- 优点:易维护,易复用,易扩展,由于面向对象有封装、继承、多态的特性,我们可以设计出来低耦合的系统,使系统更加灵活,更加易于维护。
- 缺点:性能比面向过程底。
7、面向对象的三大特征是什么?
答:面向对象的三大特征是封装、继承和多态,分别是:
- 封装:封装将同一类事物的特征和功能包装在一起,只对外暴露需要调用的接口。封装也称为信息的隐藏,在Java中接口是体现封装最常用的方法,在接口中我们没有任何功能的实现(具体实现都交给实现类),只是定义了一系列抽象的方法声明用于外部调用。
- 继承:继承是Java中面向对象最显著的一个特征,继承是从已有的类中派生出新的类,新的类可以吸收已有的属性、行为,并扩展新的能力。Java中不支持多继承,但是支持实现多接口。
- 多态:封装和继承都是为多态来服务的,多态是指同一个行为具有多个不同的表现形式。在Java中方法的重载和重写是实现多态的2种方式。
- 重载发生在一个类中,同名的方法如果有不同的参数列表(参数类型不同、参数个数不同或者二者都不同)则视为重载。方法重载体现了编译时的多态性。
- 重写发生在子类与父类之间,重写要求子类被重写方法与父类被重写方法有相同的返回类型,重载对返回类型没有特殊的要求。方法重写体现了运行时的多态性。
多态的三要素:继承 、重写、父类指向子类引用
8、抽象类和接口有哪些区别?
答:抽象类是用来捕捉子类的通用特性的,接口是抽象方法的集合。
从设计层面来讲,抽象类是对类的抽象,是一种模板设计;接口是行为的抽象,是一种行为的规范;
相同点
- 接口和抽象类都不能被实例化。
- 都位于继承的顶端,用于被实现或继承。
不同点

9、成员变量与局部变量的区别有哪些?
答:成员变量:方法外部,类内部定义的变量 ;局部变量:类的方法中的变量。 成员变量和局部变量的区别如下:
1. 作用域
- 成员变量:针对整个类内有效。
- 局部变量:只在某个范围内有效(一般指的就是方法,语句体内)。
2. 存储位置
- 成员变量:随着对象的创建而存在,随着对象的消失而消失,存储在堆内存中。
- 局部变量:在方法被调用,或者语句被执行的时候存在,存储在栈内存中。当方法调用完,或者语句结
束后,就自动释放。
3. 生命周期
- 成员变量:随着对象的创建而存在,随着对象的消失而消失
- 局部变量:当方法调用完,或者语句结束后,就自动释放。
4. 初始值
- 成员变量:有默认初始值。
- 局部变量:没有默认初始值,使用前必须赋值。
使用原则
在使用变量时需要遵循的原则为:就近原则,首先在局部范围找,有就使用;接着在成员位置找(由小变大)。
10、重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
答:方法的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性,而后者实现的是运行时的多态性。
重载:发生在同一个类中,方法名相同参数列表不同(参数类型不同、个数不 同、顺序不同),与方法返回值和访问修饰符无关,即重载的方法不能根据返回类型进行区分
重写:发生在父子类中,方法名、参数列表必须相同,返回值小于等于父类,抛出的异常小于等于父
类,访问修饰符大于等于父类(里氏代换原则);
如果父类方法访问修饰符为private则子类中就不是重写。
相关文章:
【备战面试】每日10道面试题打卡-Day1
本篇总结的是Java基础知识相关的面试题,后续也会更新其他相关内容 文章目录1、JVM、JRE和JDK的关系?2、Java语言有哪些特点?3、Java和C的区别有哪些?4、Java有哪些数据类型?5、访问修饰符 public、private、protected&…...
服务器重启后jar包自动重启
1、创建自动启动脚本 vi /etc/rc.d/auto_start_script.sh #!/bin/bash #添加本地Java环境,这两句必须添加!不然报错,找不到java命令 export JAVA_HOME/java/jdk1.8.0_181 export PATH$JAVA_HOME/bin:$PATH #系统引导后延迟5秒执行脚本&#x…...
Ubuntu 交叉编译工具链安装
Ubuntu 交叉编译工具链安装 1 交叉编译器安装 ARM 裸机、Uboot 移植、Linux 移植这些都需要在 Ubuntu 下进行编译,编译就需要编译器,我们在第三章“Linux C 编程入门”里面已经讲解了如何在 Liux 进行 C 语言开发,里面使用 GCC 编译器进行代…...
Vue3中ref、reactive、toRef、toRefs基本用法和区别
ref、reactivesetup 函数中默认定义的变量并不是响应式的(即数据变了以后页面不会跟着变),如果想让变量变为响应式的变量,需要使用 ref 和 reactive 函数修饰变量。区别:reactive只能传入对象类型的参数,所…...
python hash 不一致踩坑总结
背景 在线上的一次模型对照实验中,发现对同一个用户进行 hash 分流时,会生成不同的 random 值,导致实验数据污染 原因 参考:https://www.zhihu.com/question/57526436 python 的字符串 hash 算法并不是直接遍历字符串每个字符去…...
qt5.15 快速安装 国内源
1 qt5.15 安装问题 最大的问题就是需要在线下载与安装。即使挂了科学上网,国外的服务器下载速度也还是超级慢。 在网上找了各种解决办法后,终于找到一个快速下载安装的办法。 2 安装器下载 阿里源、清华源都没有Windows的安装器了,在腾讯…...
JavaScript 对象
文章目录JavaScript 对象所有事物都是对象JavaScript 对象访问对象的属性访问对象的方法创建 JavaScript 对象创建直接的实例使用对象构造器创建 JavaScript 对象实例把属性添加到 JavaScript 对象把方法添加到 JavaScript 对象JavaScript 类JavaScript for...in 循环JavaScrip…...
数据库设计三大范式
数据库设计遵循三大范式的理由:在面对复杂是数据库设计的时候,设计数据库要遵循一定的规则,有了一定的规范,这样就可以是自己看起来舒服。 1.第一范式(确保每列保持原子性) 第一范式主要是保证数据表中的每一个字段的…...
cesium学习记录02-vue项目中cesium的配置与使用
1,下载cesium包 (当然,使用npm install cesium安装也是可以的,不过在这里选择下载包放到本地) 官方下载地址 笔者的cesium版本为1.101 2,将下载的Cesium文件夹放到项目里某个位置 这里,笔者将…...
【微服务】-认识微服务
目录 1.1 单体、分布式、集群 单体 分布式 集群 1.2 系统架构演变 1.2.1 单体应⽤架构 1.2.2 垂直应⽤架构 1.2.3 分布式架构 1.2.4 SOA架构 1.2.5 微服务架构 1.3 微服务架构介绍 微服务架构的常⻅问题 1.4 SpringCloud介绍 1.4.1 SpringBoot和SpringCloud有啥关…...
容器的线程安全性
(1)c的map、vector等容器以及go中的slice、map都不是线程安全的。 (2)线程安全:多线程访问执行n次每次结果都是确定的 (3)保证线程安全:同步 (4)c同步相关…...
如何用Postman测试整套接口?测试流程是什么?
目录 基于postman测试接口(整套接口测试) 可以解决的问题 开启控制台 单个测试尝试 使用请求结果当参数 打印结果(JSON) 自定义可视化结果 随机参数 测试用例连接 一键测试接口集合 从swagger导入接口 自定义全局变量 总结感谢每一个认真阅读我文章的人!…...
【批处理脚本】-2.1-测试IP连接命令ping
"><--点击返回「批处理BAT从入门到精通」总目录--> 共4页精讲(列举了所有ping的用法,图文并茂,通俗易懂) ping是用来检查网络是否通畅,或者网络连接速度的命令。 目录 1 ping命令解析 1.1 Ping 指定的主机...
百度“文心一言”携手酷开科技,实现AI智能领域新突破!
进入21世纪,AI人工智能一直都是讨论度非常高的话题之一,各行各业的领导者都开始在智能领域进行了初步探索,这也证明了AI人工智能在未来一定会在很大程度上影响我们的生活、工作。 近日,深圳市酷开网络科技股份有限公司成为百度文…...
Elasticsearch索引全生命周期管理一网打尽
文章目录一、索引增删改查1.1、创建索引1.2、查询索引1.3、修改索引1.4、删除索引二、索引关闭和打开2.1、关闭索引2.2、打开索引三、索引收缩和拆分3.1、索引收缩3.2、索引拆分3.2.1、索引拆分的工作过程3.2.2、为什么Elasticsearch不支持增量的重新分片?3.2.3、如…...
MySQL的SELECT
简单SELECT语句我们从最简单的SELECT语句开始起简单的SELECT语句: SELECT {*, column [alias], . } FROM table; 说明: –SELECT列名列表。*表示所有列。 –FROM 提供数据源(表名/视图名) –默认选择所有行例子 查询数据:select * from stude…...
conda 搭建tensorflow-GPU和pycharm以及VS2022 软件环境配置
conda 搭建tensorflow-GPU和pycharm以及VS2022 软件环境配置一、TensorFlow 环境配置安装1. Anaconda下载安装2.conda创建tensorflow环境二、pycharm以及VS2022 环境配置2.1 pycharm 软件安装以及环境配置2.2.1 pycharm 软件安装2.2.2 pycharm 软件conda环境配置2.2 Visual Stu…...
HACKTHEBOX——Teacher
nmapnmap -sV -sC -p- -T4 -oA nmap 10.10.10.153nmap只发现了对外开放了80端口,从http-title看出可能是某个中学的官网http打开网站确实是一个官网,查看每个接口看看有没有可以利用的地方发现了一个接口,/images/5.png,但是响应包…...
干货| Vue小程序开发技术原理
目前应用最广的三大前端框架分别是Vue、 React 和 Angular 。其中,不管是 BAT 大厂,还是创业公司,Vue 都有广泛的应用。如今,再随着移动开发小程序的蓬勃发展,Vue也广泛应用到了小程序开发当中。今天,就来详…...
unity-web端h5记录
title: unity-web端h5记录 categories: Unity3d tags: [unity, web, h5] date: 2023-02-23 17:00:53 comments: false mathjax: true toc: true unity-web端h5记录 前篇 5款常用的html5游戏引擎以及优缺点分析 - https://imgtec.eetrend.com/blog/2022/100557792.htmlUnity We…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
20个超级好用的 CSS 动画库
分享 20 个最佳 CSS 动画库。 它们中的大多数将生成纯 CSS 代码,而不需要任何外部库。 1.Animate.css 一个开箱即用型的跨浏览器动画库,可供你在项目中使用。 2.Magic Animations CSS3 一组简单的动画,可以包含在你的网页或应用项目中。 3.An…...
Ubuntu系统多网卡多相机IP设置方法
目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...
Python常用模块:time、os、shutil与flask初探
一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...
WEB3全栈开发——面试专业技能点P4数据库
一、mysql2 原生驱动及其连接机制 概念介绍 mysql2 是 Node.js 环境中广泛使用的 MySQL 客户端库,基于 mysql 库改进而来,具有更好的性能、Promise 支持、流式查询、二进制数据处理能力等。 主要特点: 支持 Promise / async-await…...
ThreadLocal 源码
ThreadLocal 源码 此类提供线程局部变量。这些变量不同于它们的普通对应物,因为每个访问一个线程局部变量的线程(通过其 get 或 set 方法)都有自己独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段,这些类希望将…...
【Zephyr 系列 16】构建 BLE + LoRa 协同通信系统:网关转发与混合调度实战
🧠关键词:Zephyr、BLE、LoRa、混合通信、事件驱动、网关中继、低功耗调度 📌面向读者:希望将 BLE 和 LoRa 结合应用于资产追踪、环境监测、远程数据采集等场景的开发者 📊篇幅预计:5300+ 字 🧭 背景与需求 在许多 IoT 项目中,单一通信方式往往难以兼顾近场数据采集…...
使用homeassistant 插件将tasmota 接入到米家
我写一个一个 将本地tasmoat的的设备同通过ha集成到小爱同学的功能,利用了巴法接入小爱的功能,将本地mqtt转发给巴法以实现小爱控制的功能,前提条件。1需要tasmota 设备, 2.在本地搭建了mqtt服务可, 3.搭建了ha 4.在h…...
