JAVA相关面试题分享

Java 基础知识

1.1 面向对象的特征(了解)

面向对象的特征:封装、继承、多态、抽象。 封装:就是把对象的属性和行为(数据)结合为一个独立的整体,并尽可能隐藏对 象的内部实现细节,就是把不想告诉或者不该告诉别人的东西隐藏起来,把可以告诉别人的 公开,别人只能用我提供的功能实现需求,而不知道是如何实现的。增加安全性。 继承:子类继承父类的数据属性和行为,并能根据自己的需求扩展出新的行为,提 高了代码的复用性。 多态:指允许不同的对象对同一消息做出相应。即同一消息可以根据发送对象的不 同而采用多种不同的行为方式(发送消息就是函数调用)。封装和继承几乎都是为多态而准 备的,在执行期间判断引用对象的实际类型,根据其实际的类型调用其相应的方法。 抽象表示对问题领域进行分析、设计中得出的抽象的概念,是对一系列看上去不同, 但是本质上相同的具体概念的抽象。在 Java 中抽象用 abstract 关键字来修饰,用 abstract 修饰类时,此类就不能被实例化,从这里可以看出,抽象类(接口)就是为了继承而存在的。

1.2 Java 的基本数据类型有哪些(了解)

1.3JDK JRE JVM 的区别 (必会)

JDK(Java Development Kit)是整个 Java 的核心,是 java 开发工具包,包括 了 Java 运行环境 JRE、Java 工具和 Java 基础类库。

JRE(Java Runtime Environment)是运行 JAVA 程序所必须的环境的集合,包 含 java 虚拟机和 java 程序的一些核心类库。

JVM 是 Java Virtual Machine(Java 虚拟机)的缩写,是整个 java 实现跨平台 的最核心的部分,能够运行以 Java 语言写作的软件程序。

1.4 重载和重写的区别(必会)

重载: 发生在同一个类中,方法名必须相同,参数类型不同.个数不同.顺序不同, 方法返回 值和访问修饰符可以不同,发生在编译时。 重写: 发生在父子类中,方法名.参数列表必须相同,返回值范围小于等于父类, 抛出的异 常范围小于等于父类, 访问修饰符范围大于等于父类;如果父类方法访问修饰符为 private 则子类就不能 重写该方法。

1.5 Java 中==和 equals 的区别(必会)

== 的作用: 基本类型:比较的就是值是否相同 引用类型:比较的就是地址值是否相同 equals 的作用: 引用类型:默认情况下,比较的是地址值。 特:String、Integer、Date 这些类库中 equals 被重写,比较的是内容而不是地址!3 面试题:请解释字符串比较之中 “ == ” 和 equals() 的区别? 答: ==:比较的是两个字符串内存地址(堆内存)的数值是否相等,属于数值比较; equals():比较的是两个字符串的内容,属于内容比较。

1.6 String、StringBuffer、StringBuilder 三者之间的区别(必会)

String 字符串常量 StringBuffer 字符串变量(线程安全) StringBuilder 字符串变量(非线程安全)

String 中的 String 类中使用 final 关键字修饰字符数组来保存字符串,private final char value[] ,String 对象是不可变的,也就可以理解为常量,线程安全。 AbstractStringBuilder 是 StringBuilder 与 StringBuffer 的公共父类,定义了 一些字符串的基本操作,如 expandCapacity、append、insert、indexOf 等公共方法。 StringBuffer 对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全 的。 StringBuilder 并没有对方法进行加同步锁,所以是非线程安全的。

小结: (1)如果要操作少量的数据用 String; (2)多线程操作字符串缓冲区下操作大量数据用 StringBuffer; (3)单线程操作字符串缓冲区下操作大量数据用 StringBuilder。

1.7 接口和抽象类的区别是什么?(必会)

实现:抽象类的子类使用 extends 来继承;接口必须使用 implements 来实现接 口。 构造函数:抽象类可以有构造函数;接口不能有。 main 方法:抽象类可以有 main 方法,并且我们能运行它;接口不能有 main 方 法。 实现数量:类可以实现很多个接口;但是只能继承一个抽象类。 访问修饰符:接口中的方法默认使用 public 修饰;抽象类中的方法可以是任意访 问修饰符。

1.8 string 常用的方法有哪些?(了解)

indexOf():返回指定字符的索引。

charAt():返回指定索引处的字符。

replace():字符串替换。

trim():去除字符串两端空白。

split():分割字符串,返回一个分割后的字符串数组。

getBytes():返回字符串的 byte 类型数组。

 length():返回字符串长度。

toLowerCase():将字符串转成小写字母。

toUpperCase():将字符串转成大写字符。

substring():截取字符串。

equals():字符串比较。

1.9 反射(了解)

在 Java 中的反射机制是指在运行状态中,对于任意一个类都能够知道这个类所有 的 属性和方法;并且对于任意一个对象,都能够调用它的任意一个方法;这种动态获 取信息 以及动态调用对象方法的功能成为 Java 语言的反射机制。 获取 Class 对象的 3 种方法 : 调用某个对象的 getClass()方法 Person p=new Person(); Class clazz=p.getClass(); 调用某个类的 class 属性来获取该类对应的 Class 对象 Class clazz=Person.class; 使用 Class 类中的 forName()静态方法(最安全/性能最好) Class clazz=Class.forName("类的全路径"); (最常用)

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

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

相关文章

Android手势识别面试问题及回答

问题 1: 如何在Android中实现基本的手势识别? 答案: 在Android中,可以通过使用GestureDetector类来实现基本的手势识别。首先需要创建一个GestureDetector的实例,并实现GestureDetector.OnGestureListener接口来响应各种手势事件&#xff0c…

【百度Apollo】探索自动驾驶:Apollo 新版本 Beta 全新的Dreamview+,便捷灵活更丰富

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《linux深造日志》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 文章目录 引入一、Dreamview介绍二、Dreamview 新特性2.1、基于模式的多场景——流程更简洁地图视角调节:调试流…

自动驾驶系统中的端到端学习

资料下载-《自动驾驶系统中的端到端学习(2020)》https://mp.weixin.qq.com/s/ttNpsn7qyVWvDMZzluU_pA 近年来,卷积神经网络显著提高了视觉感知能力。实现这一成功的两个主要因素是将简单的模块组合成复杂的网络和端到端的优化。然而&#xf…

电影交流|基于SprinBoot+vue的电影交流平台小程序系统(源码+数据库+文档)

电影交流平台目录 目录 基于SprinBootvue的电影交流平台小程序系统 一、前言 二、系统设计 三、系统功能设计 1用户信息管理 2 电影信息管理 3公告信息管理 4论坛信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取…

设备能源数据采集新篇章

在当今这个信息化、智能化的时代,设备能源数据的采集已经成为企业高效运营、绿色发展的重要基石。而今天,我们要向大家介绍的就是一款颠覆传统、引领未来的设备能源数据采集神器——HiWoo Box网关! 一、HiWoo Box网关:一站式解决…

解决clickhouse 启动报错

解决clickhouse 启动报错 Error response from daemon: driver failed programming external connectivity on endpoint clickhouse-server (b42457434cebe7d8ad024d31e4fd28eae2139bb2b5046c283bea17ce4398d5b0): Error starting userland proxy: listen tcp4 0.0.0.0:8123: …

RocketMQ MQTT 快速搭建验证

来自业务的需求,需要快速搭建一套支持 MQTT 协议的消息系统。 前期准备: 官方地址:https://github.com/apache/rocketmq-mqtt RocketMQ从4.9.3 版本开始才支持该功能,所以需要先检查 RocketMQ 的版本是否满足。 RocketMQ 部署参…

kube-prometheus部署到 k8s 集群

文章目录 **修改镜像地址****访问配置****修改 Prometheus 的 service****修改 Grafana 的 service****修改 Alertmanager 的 service****安装****Prometheus验证****Alertmanager验证****Grafana验证****卸载****Grafana显示时间问题** 或者配置ingress添加ingress访问grafana…

JAVA前端快速入门基础_javascript入门(02)

写在前面:本文用于快速学会简易的JS,仅做扫盲和参考作用 1.JavaScript函数 什么是函数:执行特定任务的代码块 1.1定义: 使用function来进行定义(类似于python里面的def 或者java和c里面的void,int这些返回类型开头)。定义规则如下: func…

物联网D1——建工程,配环境,注意事项

1.STLink、JLink、USB等驱动配置keil环境配置——下载芯片对应型号的包——导入库函数源文件、Core内核文件、对应芯片系统文件。 2.学会看芯片手册 3.在STM32微控制器中,CRH通常指的是控制寄存器高位(Control Register High)。 在这种情况下…

Linux修改文件权限命令 chmod

【例子引入】 以下面命令为例: chmod 777 Random.py 当写入下面名为Random.py的代码后: 如果直接运行,会显示权限不够 当输入 chmod 777 Random.py 更改权限后,才能够正常运行 在终端中输入 这条命令是关于Linux或Unix-like系…

[二叉树] 二叉树的前中后三序遍历#知二求一

标题:[二叉树] 二叉树的前中后三序遍历#知二求一 水墨不写bug (图片来源于网络) 正文开始: 其实这一类题就是考察对二叉树的结构理解,此类题目的二叉树一般通过数组传入,我们只需根据二叉树的就够特点对数…

JAVA同城服务美容美发到店服务上门服务系统源码微信小程序+微信公众号+H5+APP

随着科技的飞速发展,互联网和移动互联网已经渗透到我们生活的方方面面,同城服务美容美发到店服务上门服务系统应运而生,为整个行业带来了巨大的变革和无限的可能。该系统的重要性和优势不言而喻,对于行业发展和用户需求的影响深远…

基于YOLOV8+Pyqt5无人机航拍太阳能电池板检测系统

1.YOLOv8的基本原理 YOLOv8是一种前沿的目标检测技术,它基于先前YOLO版本在目标检测任务上的成功,进一步提升了性能和灵活性,在精度和速度方面都具有尖端性能。在之前YOLO 版本的基础上,YOLOv8 引入了新的功能和优化,…

字符串函数、内存函数——补充

目录 前言 1、strchr函数 1-1 函数介绍 1-1-1 函数功能 1-1-2 函数原型 1-1-3 函数参数 1-1-4 所属库 1-1-5 函数返回值 1-2 函数简单使用 1-3 函数使用场景 1-4 函数的使用总结 1-4-1 注意事项 2、strrchr函数 2-1 函数介绍 2-1-1 函数功能 2-1-2 函数原型 2…

【18】JAVASE-IO专题【从零开始学JAVA】

Java零基础系列课程-JavaSE基础篇 Lecture:波哥 Java 是第一大编程语言和开发平台。它有助于企业降低成本、缩短开发周期、推动创新以及改善应用服务。如今全球有数百万开发人员运行着超过 51 亿个 Java 虚拟机,Java 仍是企业和开发人员的首选开发平台。…

时间序列分析-无模型

本节内容介绍了无模型的时间序列分析方法,包括时间序列作趋势图、逐年分解、时间序列分解、直方图、ACF与PACF图,主要是作图。 首先导入数据和对应的库: import pandas as pd import numpy as np import matplotlib.pyplot as plt import se…

与Apollo共创生态:让汽车更聪明,让出行更简单

目录 前言Apollo X 企业解决方案Studio X 企业协同开发工具链Apollo开放平台携手伙伴共创生态Apollo开发平台生态共创计划 前言 百度2013年开始布局自动驾驶,2017年推出全球首个自动驾驶开放平台Apollo。目前百度Apollo已经在自动驾驶、智能汽车、智能地图等领域拥有…

Spring6 当中 Bean 的生命周期的详细解析:有五步,有七步,有十步

1. Spring6 当中 Bean 的生命周期的详细解析:有五步,有七步,有十步 文章目录 1. Spring6 当中 Bean 的生命周期的详细解析:有五步,有七步,有十步每博一文案1.1 什么是 Bean 的生命周期1.2 Bean 的生命周期 …

Flask 3 保姆级教程(一):快速上手

一、创建项目 PyCharm 中新建项目 创建完成后会出现这么个项目 以下是代码解析: # 导入了 Flask 类 from flask import Flask# 创建了一个 Flask web 应用的实例,并将其赋值给变量 app # __name__ 是一个特殊的 Python 变量,它表示当前模块…