Java 中高级面试题:16题

news2024/11/13 9:59:34

1. Java 中有哪些不同类型的线程优先级?JVM 分配的线程默认优先级是多少?

线程优先级是这样的概念:每个线程都有一个优先级,用外行人的语言来说,可以说每个对象都有优先级,用 1 到 10 之间的数字表示。Java 中有不同类型的线程属性:

  • 最低优先级
  • 最大优先级
  • 正常优先级 

默认情况下,该线程被分配有NORM_PRIORITY。

2. 为什么 Java 中需要垃圾收集?

对于 Java,垃圾收集是必要的,以避免内存泄漏,内存泄漏会导致程序崩溃和变得不稳定。Java 中没有办法避免垃圾收集。与 C++ 不同,Java 中的垃圾收集可帮助程序员专注于应用程序的开发,而不是管理内存资源和担心内存泄漏。Java 虚拟机 (JVM) 通过运行垃圾收集器定期自动管理内存,从而释放应用程序中未使用的内存。垃圾收集使 Java 内存更加高效,因为它会从堆内存中删除未引用的对象。

3.垃圾收集的缺点是什么?

除了许多优点之外,垃圾收集器还具有以下某些缺点:

  1. 垃圾收集的主要缺点是它会导致应用程序执行暂停,因为它会清除内存,从而降低应用程序的性能。 
  2. 垃圾收集过程是不确定的,因此很难预测垃圾收集何时发生,从而导致应用程序出现不可预测的行为。例如,如果我们编写任何程序,那么程序员很难确定问题是由垃圾收集引起的还是由程序中的任何其他因素引起的。 
  3. 如果程序创建并丢弃大量短暂生存的对象,垃圾收集也会增加内存使用量。

4. 解释次要垃圾收集、主要垃圾收集和完整垃圾收集之间的区别。

Java 虚拟机 (JVM) 使用垃圾收集器删除不再使用的对象,垃圾收集器会定期检查并删除这些对象。JVM 中有不同类型的垃圾收集,每种垃圾收集都有不同的特点和性能影响。主要的垃圾收集类型包括:

  • 小型垃圾收集:也称为年轻代垃圾收集,这种类型的垃圾收集用于收集和回收由短暂生存的对象(快速创建和丢弃的对象)使用的内存。 
  • 主垃圾收集:也称为老生代垃圾收集,这种类型的垃圾收集用于收集和回收长寿命对象(在多次小垃圾收集中幸存下来并被提升到老生代的对象)使用的内存。
  • 全面垃圾回收:在全面垃圾回收期间,所有代的内存都会被收集和回收,包括年轻代和年老代的内存。全面垃圾回收通常比小型垃圾回收或大型垃圾回收需要更长的时间才能完成,后者会导致应用暂时暂停。

5. 如何识别 Java 中的主要垃圾收集和次要垃圾收集?

主垃圾收集在幸存者空间上工作,次要垃圾收集在伊甸园空间上工作,以执行标记和清除例程。我们可以根据输出来识别它们,其中次要收集打印“GC”,而主收集打印“Full GC”,这是在使用“-XX:PrintGCDetails”或“verbose:gc”启用垃圾收集日志记录的情况下。

6. 什么是内存泄漏,它如何影响垃圾收集?

在 Java 中,内存泄漏可能由多种因素引起,例如未正确关闭资源、持有对象引用的时间超过必要时间或不必要地创建过多对象。在某些情况下,垃圾收集器不会收集对象,因为存在对这些对象的引用。在这些情况下,应用程序创建了大量对象但并未使用它们,并且每个对象都有一些有效引用,Java 中的垃圾收集器无法销毁这些对象。这些对程序没有任何价值的无用对象称为内存泄漏。内存泄漏会阻止垃圾收集器回收未使用的内存,从而对垃圾收集产生负面影响。此行为会导致性能下降或有时导致系统故障。在程序中,通过正确管理资源和对象引用来避免内存泄漏非常重要。 

例子:

// Java Program to demonstrate memory leaks
import java.io.*;
import java.util.Vector;
class GFG {
    public static void main(String[] args)
    {
        Vector a = new Vector(21312312);
        Vector b = new Vector(2147412344);
        Vector c = new Vector(219944);
        System.out.println("Memory Leak in Java");
    }
}

输出:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
    at java.base/java.util.Vector.<init>(Vector.java:142)
    at java.base/java.util.Vector.<init>(Vector.java:155)
    at GFG.main(GFG.java:9)

7. 说出 java.util.regex 包中的一些类。

Java 中的正则表达式或 Regex 是用于在 Java 中搜索和操作字符串的 API。它创建字符串模式,可以从字符串中提取所需的数据或概括出一个模式。

java.util.regex 中有下面提到的 3 个类:

  • 图案类:可以定义图案
  • Matcher 类:可以使用模式对文本执行匹配操作
  • PatternSyntaxException 类:可以指示正则表达式模式中的语法错误。

此外,除了这 3 个类之外,包还包含一个单一接口 MatchResult 接口,可用于表示匹配操作的结果。

8. 编写一个正则表达式来验证密码。密码必须以字母开头,后跟字母数字字符;其长度必须在 8 到 20 之间。

regex = “^(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^&-+=()])(?=\\S+$).{8, 20}$”

解释:

  • ^ 用于字符串的起始字符。
  • 用于数字的 (?=.*[0-9]) 必须至少出现一次。
  • 用于小写字母的 (?=.*[az]) 必须至少出现一次。
  • (?=.*[AZ]) 表示大写字母,其在子字符串中必须至少出现一次。
  • (?=.*[@#$%^&-+=()] 表示必须至少出现一次的特殊字符。
  • (?=\\S+$) 整个字符串中不允许出现空格。
  • .{8, 20} 至少使用 8 个字符,最多使用 20 个字符。
  • $ 用于字符串的结尾。

9.什么是JDBC?

JDBC标准 API 用于链接 Java 应用程序和关系数据库。它提供了一组类和接口,让程序员可以使用 Java 编程语言与数据库进行通信。JDBC 的类和接口允许应用程序将用户发出的请求发送到指定的数据库。JDBC 通常有四个组件用于与数据库交互:

  • JDBC 接口
  • JDBC 驱动管理器
  • JDBC 测试套件
  • JDBC-ODBC 桥驱动程序

10.什么是JDBC驱动程序?

JDBC 驱动程序是一个软件组件,用于使 Java 应用程序能够与数据库交互。JDBC 为特定的数据库管理系统提供了 JDBC API 的实现,使其能够连接数据库、执行 SQL 语句并检索数据。JDBC 驱动程序有四种类型:

  • JDBC-ODBC 桥驱动程序
  • 本机API驱动程序
  • 网络协议驱动程序
  • 薄型驱动器

11.Java中连接数据库的步骤有哪些?

连接数据库和 Java 程序的具体步骤如下:

  • 导入驱动包
  • 使用 forName() 方法加载驱动程序 
  • 使用 DriverManager 注册驱动程序 
  • 使用 Connection 类对象建立连接
  • 创建一个statement
  • 执行查询
  • 关闭连接

12. JDBC API 组件有哪些?

JDBC API 组件提供了各种方法和接口,以便于与数据库进行轻松通信,同时还提供了 java Se 和 java EE 等软件包,提供了一次编写即可在任何地方运行 (WORA) 的功能。

句法:

java.sql.*;

13.什么是 JDBC Connection 接口?

Java 数据库连接接口 (JDBC) 是一个允许 Java 应用程序与数据库交互的软件组件。为了增强连接,JDBC 需要每个数据库的驱动程序。

14.JDBC ResultSet 接口是什么?

JDBC ResultSet 接口用于存储数据库中的数据并在 Java 程序中使用它。我们还可以使用 ResultSet 通过 updateXXX() 方法更新数据。ResultSet 对象将光标指向结果数据的第一行之前。使用 next() 方法,我们可以遍历 ResultSet。

15. 什么是 JDBC 行集?

JDBC RowSet 提供了一种以表格形式存储数据的方法。RowSet 是 Java 中的一个接口,可以在 java.sql 包中使用。RowSet 对象与数据源之间的连接在其整个生命周期内都得到维护。RowSet 根据以下实现分为五类:

  1. JdbcRowSet
  2. CachedRowSet
  3. WebRowSet
  4. FilteredRowSet
  5. JoinRowSet

16.JDBC DriverManager类的作用是什么?

JDBC DriverManager 类充当用户和驱动程序的接口。它有多种用途,如下所述: 

  • 它用于创建 Java 应用程序和数据库之间的连接。 
  • 帮助跟踪可用的驱动程序。
  • 它有助于建立数据库和适当的驱动程序之间的连接。
  • 它包含所有可以注册和注销数据库驱动程序类的方法。
  • DriverManager.registerDriver()方法可以维护已经注册自身的Driver类列表。

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

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

相关文章

Openleyer 获取features样式

目录 一、需求说明&#xff1a; 二、业务功能分析&#xff1a; 三、地图点击事件 四、地图要素select事件 五、地图双击事件 六、移动到地图点事件 一、需求说明&#xff1a; 若聚合情况下&#xff0c;点击聚合要素&#xff0c;若只有一个要素&#xff0c;则显示详情信息…

【安卓】WebView的用法与HTTP访问网络

文章目录 WebView的用法使用http访问网络使用HttpURLConnection使用OkHttp 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。 点击跳转到网站。 WebView的用法 新建一个WebViewTest项目&#xff0c;然后修…

管易云与金蝶K3-WISE对接集成发货单查询打通新增其他出库

管易云与金蝶K3-WISE对接集成发货单查询打通新增其他出库 对接系统&#xff1a;管易云 管易云是金蝶旗下专注提供电商企业管理软件服务的子品牌&#xff0c;先后开发了C-ERP、EC-OMS、EC-WMS、E店管家、BBC、B2B、B2C商城网站建设等产品和服务&#xff0c;涵盖电商业务全流程。…

本地连接服务器上docker中的redis

在上一篇本地连接服务器redis这篇文章中详细介绍了。 这里连接服务器中docker中的redis&#xff0c;同样的操作步骤 1.看一下服务器上redis实例的运行状态&#xff1a; [rootiZuf67k70ucx14s6zcv54dZ var]# ps aux | grep redis-server若显示&#xff1a; 则说明服务器上do…

Denser Retriever: RAG中更强大的AI检索器,让您10 分钟内构建聊天机器人应用

一、Denser Retriever 介绍 Denser Retriever 是一个企业级的RAG检索器&#xff0c;将多种搜索技术整合到一个平台中。在MTEB数据集上的实验表明&#xff0c;Denser Retriever可以显著提升向量搜索&#xff08;VS&#xff09;的基线&#xff08;snowflake-arctic-embed-m模型,…

如何在PyCharm使用conda虚拟环境,如何使用远程Linux系统上的conda虚拟环境。

目录 在PyCharm使用conda虚拟环境&#xff08;windows&#xff09; 使用远程Linux系统上的conda虚拟环境 在PyCharm使用conda虚拟环境&#xff08;windows&#xff09; 首先请创建好虚拟环境 点击输入 conda create -n pyspark python3.8 # conda create -n 名字任取 py…

智谱AI与和鲸科技签署战略合作协议,共拓大模型产业应用与人才培养新未来

8月9日&#xff0c;北京智谱华章科技有限公司&#xff08;智谱 AI&#xff09;与上海和今信息科技有限公司&#xff08;和鲸科技&#xff09;在北京签署战略合作协议。智谱 AI 总裁王绍兰与和鲸科技创始人、CEO 范向伟亲临现场&#xff0c;发表致辞并见证签约。智谱 AI AIGC 事…

Python软件包和PIP镜像下载地址

一、Python软件下载地址 1. 官网下载 https://www.python.org/downloads/ 2. 国内第三方镜像 https://mirrors.huaweicloud.com/python/ https://registry.npmmirror.com/binary.html?pathpython/ 从以上国内镜像即可下载安装程序&#xff0c;Windows平台&#xff0c;不论是In…

网络安全 DVWA通关指南 DVWA File Inclusion(文件包含)

DVWA File Inclusion&#xff08;文件包含&#xff09; 文章目录 DVWA File Inclusion&#xff08;文件包含&#xff09;本地文件包含(LFI)漏洞利用 远程文件包含(RFL)漏洞利用 修复建议 LowMediumHighImpossible 本地文件包含(LFI) 文件包含漏洞的产生原因是 PHP 语言在通过引…

我的世界 异地联机教程 无需公网IP、服务器

主要内容 什么是Minecraft&#xff08;JAVA国际版&#xff09; 搭建该服务&#xff0c;需要准备什么 详细步骤 1.启动器 安装MC并运行MC 2.运行 MoleSDN 进行异地联机 3.小伙伴皮蛋加入鼠鼠的MC 完成联机 什么是我的世界 一款3D沙盒电子游戏&#xff0c;由Mojang Studio…

ComfyUI大猫咪写真工作流,哩布线上一键运行

前言 这次教程是用ComfyUI做的大猫咪写真。 视频教程 打开下面这个网站&#xff0c;点击【在线运行工作流】就可以一键运行ComfyUI工作流了 所有的AI设计工具&#xff0c;模型和插件&#xff0c;都已经整理好了&#xff0c;&#x1f447;获取~ 正面关键词&#xff1a; Chin…

基于二叉树的近似最近邻搜索-Annoy

在推荐系统的召回阶段&#xff0c;会实时计算用户的表征向量&#xff08;user/query&#xff09;&#xff0c;然后去物料库去寻找与用户最匹配的N个物料返回给用户&#xff1b;在搜索系统&#xff0c;也同样存在这样的需求&#xff0c;用户的搜素&#xff08;query&#xff09;…

Efficient DETR:别再随机初始化了,旷视提出单解码层的高效DETR | CVPR 2021

Efficient DETR结合密集检测和稀疏集合检测的优点&#xff0c;利用密集先验来初始化对象容器&#xff0c;弥补单层解码器结构与 6 层解码器结构的差距。在MS COCO上进行的实验表明&#xff0c;仅 3 个编码器层和 1 个解码器层即可实现与最先进的目标检测方法竞争的性能&#xf…

指针函数与函数指针的区别

1、指针函数 1-1、定义 指针函数&#xff0c;顾名思义&#xff0c;是一个函数&#xff0c;但其返回类型是指针。这意味着当这个函数被调用时&#xff0c;它会返回一个地址值&#xff0c;这个地址值指向某个类型的数据。 1-2、特点 函数性质&#xff1a;首先&#xff0c;它是…

【2024】20个高级 Java 面试问题及答案

1&#xff1a;解释Java序列化中transient关键字的意义。 在 Java 中&#xff0c;“ transient ”关键字用于指示变量在对象序列化期间不应被序列化。当变量被标记为“transient”时&#xff0c;意味着该变量应被序列化机制忽略。 这在处理不应持久的敏感或临时数据时特别有用…

基础 - 前端知识体系详解

一、前端三要素 HTML&#xff08;结构&#xff09;&#xff1a; 超文本标记语言&#xff08;Hyper Text Markup Language&#xff09;&#xff0c;决定网页的结构和内容。CSS&#xff08;表现&#xff09;&#xff1a; 层叠样式表&#xff08;Cascading Style Sheets&#xff0…

基于飞腾平台的Hbase的安装配置

【写在前面】 飞腾开发者平台是基于飞腾自身强大的技术基础和开放能力&#xff0c;聚合行业内优秀资源而打造的。该平台覆盖了操作系统、算法、数据库、安全、平台工具、虚拟化、存储、网络、固件等多个前沿技术领域&#xff0c;包含了应用使能套件、软件仓库、软件支持、软件适…

人脸操作:从检测到识别的全景指南

人脸操作&#xff1a;从检测到识别的全景指南 在现代计算机视觉技术中&#xff0c;人脸操作是一个非常重要的领域。人脸操作不仅包括检测图像中的人脸&#xff0c;还涉及到人脸识别、表情分析、面部特征提取等任务。这些技术在各种应用中发挥着关键作用&#xff0c;从社交媒体…

Windows Server 2016 Standard 将程序加入开机自启动

分3步 1 打开“启动”文件夹&#xff1a;在Windows的搜索栏中输入“shell:startup”&#xff0c;点击搜索结果中的 “启动” 文件夹即可打开。 2 在启动文件夹中&#xff0c;右键点击空白区域&#xff0c;选择“新建”->“快捷方式”。 3 将 “程序的快捷方式” 添加到启动…

IP转地理位置:3个好用免费开源库代码及数据库对比体验详解

最近在做一个IP定位显示国家省市功能&#xff0c;在全网找了一圈&#xff0c;也每个安装体验过&#xff0c;测试他的数据库精准度。 本人是用PHP的第三方库&#xff0c;整理以下使用过的ip定位转地理位置库。 ip定位转地理位置库 1.itbdw/ip-database&#xff1a; **gihub地…