面试题30天打卡-day13

news2024/12/29 0:49:44

1、Linux 中的硬链接和软连接是什么,二者有什么区别?

在Linux系统下,有两种链接文件,一种是硬链接(Hard Link),一种是软链接,也称为符号链接(Symbolic Link)。它们的区别如下:

硬链接:

  • 硬链接通过文件系统中的inode节点进行链接,因此,硬链接和源文件具有相同的inode节点号。
  • 硬链接只能在同一文件系统中的文件之间创建,不能对目录进行创建。
  • 可以有多个硬链接指向同一个inode节点,或者说一个文件可以拥有多个路径名,因此一个文件可以对应多个文件名。
  • 删除源文件或任何硬链接都不会影响其他链接的可用性,只有当所有链接都被删除后,inode节点才会被释放。

软链接:

  • 软链接是一个包含了另一个文件的路径名的文件,它通过一个文件名引用另一个文件。
  • 软链接可以链接不同文件系统的文件。
  • 在对软链接进行读或写操作的时候,系统会自动把该操作转换为对源文件的操作。
  • 删除软链接时,仅仅删除链接文件,不会删除源文件本身。
  • 软链接可以指向一个不存在的文件。

二者的区别如下:

  1. 文件系统中,一个硬链接是指向同一个 inode 的不同文件名,而一个软链接是一个包含目标文件路径的文件(快捷方式)。
  2. 硬链接只能链接到同一文件系统中的文件,软链接可以链接到不同的文件系统上的文件。
  3. 删除一个硬链接并不会影响其他硬链接或者真正的文件,而删除一个软链接会使得链接的目标文件或目录成为孤儿文件,除非该目标文件或目录也有其他链接。

2、请你介绍下 JVM 内存模型,分为哪些区域?各区域的作用是什么?

JVM内存区域分为五个部分,分别是堆,方法去、虚拟机栈,本地方法栈,程序计数器

image-20230304154805418

  • 堆。 堆是Java对象的存储区域,任何用new字段分配的Java对象实例和数组,都被分配在堆上,Java堆可使用-Xms -Xmx进行内存控制,值得一提的是从JDK1.7版本之后,运行时常量池从方法区移到了堆上。
  • 方法区。它用于存储已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据,方法区包括运行时常量池(Runtime Constant Pool),用于存储编译时生成的各种字面量和符号引用。方法区在JDK1.7版本及以前被称为永久代,从JDK1.8永久代被移除。
  • 虚拟机栈。虚拟机栈中执行每个方法的时候,都会创建一个栈帧用于存储局部变量表,操作数栈,动态链接,方法出口等信息。每个线程都有一个独立的虚拟机栈,栈的大小可以通过-Xss参数设置。虚拟机栈分为栈帧(Stack Frame),每个方法执行时都会创建一个栈帧用于存储局部变量和操作数栈等信息。
  • 本地方法栈。与虚拟机栈发挥的作用相似,相比于虚拟机栈为Java方法服务,本地方法栈为虚拟机使用的Native方法服务,执行每个本地方法的时候,都会创建一个栈帧用于存储局部变量表,操作数栈,动态链接,方法出口等信息。
  • 程序计数器。程序计数器是一块较小的内存区域,它用于记录当前线程所执行的字节码指令的地址,指示Java虚拟机下一条需要执行的字节码指令。每个线程都有一个独立的程序计数器,用于保证线程切换后能恢复执行的位置。

以上五个区域是Java虚拟机内存划分情况,其中方法区和堆被JVM中多个线程共享,比如类的静态常量就被存放在方法区,供类对象之间共享,虚拟机栈,本地方法栈,pc寄存器是每个线程独立拥有的,不会与其他线程共享。
所以Java在通过new创建一个类对象实例的时候,一方面会在虚拟机栈中创建一个该对象的引用,另一方面会在堆上创建类对象的实例,然后将对象引用指向该对象的实例。对象引用存放在每一个方法对应的栈帧中。

3、有哪些注解可以注入 Bean?@Autowired 和 @Resource 的区别?

在 Spring 框架中,常用的注入 Bean 的注解包括:

  1. @Autowired:自动注入,按照类型自动装配,如果有多个同类型的 Bean,则需要通过 @Qualifier 指定具体的 Bean。
  2. @Resource:Java 自带的注入方式,按照名称自动装配,默认是按照属性名称进行匹配,如果需要按照 Bean 的名称进行匹配,可以使用 @Resource(name=“beanName”)。
  3. @Inject:和 @Autowired 类似,也是按照类型进行自动装配,但是 @Inject 注解是 JSR-330 提供的,而 @Autowired 注解是 Spring 框架提供的。
  4. @Value:用于注入配置文件中的属性值,可以指定默认值。
  5. @Component:用于声明一个 Bean,作用类似于 XML 中的 标签。

以上注解都可以用于注入 Bean,不同的注解之间的区别主要在于注入方式和实现方式的不同。@Autowired 和 @Resource 最常用,其中 @Autowired 按照类型自动装配更为常用,而 @Resource 按照名称自动装配则比较适合需要明确指定 Bean 名称的情况。

百度的答案:

  1. @Autowired:Spring 官方推荐使用的注入 Bean 的方式,通过自动装配方式将 Bean 注入到需要使用的类中。
  2. @Resource:JSR-250 规范中提供的注入 Bean 的方式,可以通过指定 Bean 的名称或类型进行注入。
  3. @Inject:JSR-330 规范中提供的注入 Bean 的方式,与 @Autowired 类似,但更加灵活。
  4. @Qualifier:与 @Autowired 搭配使用,通过指定 Bean 的名称进行注入。
  5. @Value:通过配置文件中的属性值注入 Bean 中的字段或方法参数。
  6. @Component:用于声明一个 Bean,作用类似于 XML 中的 标签。

@Autowired 和 @Resource 的区别

  1. @Autowired注解是Spring提供的,而@Resource注解是J2EE本身提供的
  2. @Autowird注解默认通过byType方式注入,而@Resource注解默认通过byName方式注入
  3. @Autowired注解注入的对象需要在IOC容器中存在,否则,需要加上属性 required=false,表示忽略当前要注入的bean,如果有直接注入,没有则跳过,不会报错

在IOC容器中存在,否则,需要加上属性 required=false,表示忽略当前要注入的bean,如果有直接注入,没有则跳过,不会报错

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

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

相关文章

Linux-使用mobaxterm连接虚拟机ubuntu

一、准备工作 VMware:16.0.0 Ubuntu:18.4 MobaxTerm:链接:https://pan.baidu.com/s/1dNsahe9wO5KrWlWXtNqT0A?pwdaz39 提取码:az39 二、实操 1.检查系统是否安装ssh service sshd status 如果显示未安装&#xff0…

Notes/Domino的未来在于

大家好,才是真的好。 很多企业不谈论应用程序,让Domino的平台价值和市场前景变得有些黯淡。 毕竟作为全球第一款企业级的邮箱平台,过去大部分企业和组织都在使用Notes/Domino。而从10来年前,很多企业开始大规模地由Notes/Domino…

GPT-3.5 生成 Fabric Cypher

GPT-3.5 生成 Fabric Cypher GPT-3.5 生成 Fabric CypherFabric 架构图数据库节点设计图数据模型设计Fabric 快速开始指南下载必要资源配置 构建数据在graph-node-1节点构建股票图谱在graph-node-2节点构建高管图谱 GPT-3.5 生成 Fabric Cypher Here’s the table of contents:…

【Java】『蓝桥杯』10道编程题及答案(四)

系列文章 【Java】『蓝桥杯』10道编程题及答案(一) 本文链接:https://blog.csdn.net/youcheng_ge/article/details/130223115 【Java】『蓝桥杯』10道编程题及答案(二) 本文链接:https://blog.csdn.net/y…

五种PDF转Word免费的软件!(附带转换效果对比!)

本文将介绍种PDF转Word免费软件,让您快速将PDF文件转换为可编辑的Word文件。 随着现代科学技术的飞速发展,PDF格式已经成为我们工作和生活中常用的文档格式之一。PDF文件的格式是固定的,不容易被篡改,因此经常被用来制作各种关键文…

1691_python学习笔记之week3_递归

全部学习汇总: GreyZhang/python_basic: My learning notes about python. (github.com) 最初接触递归的时候觉得这个有点不好理解,怎么能够有这种思维方式?这完全不同于之前自己所能够了解的那种一加一等于二的方式。相对于能够看得见的那种…

企业采购都在用什么系统管理采购流程?ERP够用了吗?

ERP(企业资源计划)和采购管理系统都是企业信息化系统的一部分,它们在企业中扮演着不同的角色。下面是它们之间的区别:区别 功能不同:ERP系统是一个综合性的企业管理系统,覆盖范围广,包括财务、人…

Android12 material you 动态配色

动态配色功能是 Material You 设计的核心 一、完整的动态配色流程包括四个步骤,如下所示: 用户通过 OEM 选择器更改壁纸或主题。AOSP 逻辑会自动从所选壁纸中提取单一源颜色。将源颜色扩展到颜色API,AOSP 将单一源颜色扩展为 5 ,…

JS实现拼音(字母)匹配(搜索)汉字(姓名)

这就是个模糊查询,我们平常做的都是直接输入汉字去把对应的值过滤出来,但我还真是第一次通过拼音去查询(当然不只是拼音,汉字也是可以的),以前还真没注意这个。唉,这可咋搞,我怎么知…

python:面向对象编程(知识点+代码)

文章目录 一、类和对象1、对象属性的默认值设置2、对象属性的添加、修改与删除3 、类属性 二、类的继承 引言:面向对象编程时一门编程语言重要的功能,我们之前所学的 c,java都为面向对象编程语言,这里给大家拓展一下,…

getaddrinfo调用crash 的debug过程

前两天,产线报一例crash问题。拿到core文件后,栈展开信息: (gdb) bt #0 0x00007f64a3651aff in raise () from /lib64/libc.so.6 #1 0x00007f64a3624ea5 in abort () from /lib64/libc.so.6 #2 0x00007f64a3694097 in __libc_message () …

【论文阅读-ICSE2023】预训练目标对代码相关任务的影响

目录 简介有哪些预训练预训练的影响回答RQ1回答RQ2 总结 简介 Title: Automating Code-Related Tasks Through Transformers: The Impact of Pre-training1 Author: Rosalia Tufano, Luca Pascarella, Gabriele Bavota Published: ICSE2023 Abstract: 尽管现在很多研究能够证…

OSS的STS模式授权案例

OSS的STS模式授权 某云提供的权限管理系统主要包含两部分,RAM(资源访问管理)和STS(安全认证服务),以满足不暴露主账号AK\SK的情况下安全的授权别人访问的需求,STS提供的是一种临时访问授权。通…

XSS知识总结

XSS基础 跨站脚本(英语:Cross-site scripting,通常简称为:XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这…

楼层滚动效果(超级简单,易懂)

系列文章目录 文章目录 系列文章目录一、楼层滚动效果图如下1. 下图是纯Css实现的楼层滚动2.通过Js优化后的楼层滚动如下图(🌹🌹) 二、楼层滚动(Css实现)1.滚动原理2.代码如下 三、楼层滚动(JsCss优化后的楼层滚动&…

FreeRTOS学习笔记(二)——内核机制

文章目录 0x01 临界段Cortex-M内核快速关中断指令关中断开中断进入和退出临界段的宏进入临界段退出临界段临界段代码应用 0x02 空闲任务与阻塞延时的实现空闲任务的创建实现阻塞延时阻塞等待总结 0x03 多优先级通用方法:taskRECORD_READY_PRIORITY()taskSELECT_HIGH…

微服务学习——服务异步通讯

实用篇-RabbitMQ 初识MQ 同步调用的问题 微服务间基于Feign的调用就属于同步方式,存在一些问题。 耦合度高 每次加入新的需求,都要修改原来的代码性能下降 调用者需要等待服务提供者响应,如果调用链过长则响应时间等于每次调用的时间之和…

【数据库】事务的隔离级别以及实现原理

文章目录 前言一、事务什么是事务?事务的四大特性分别是 二、事务并发存在的问题脏读可重复读不可重复读幻读 三、以MYSQL数据库来分析四种隔离级别第一种隔离级别:Read uncommitted(读未提交)第二种隔离级别:Read committed(读提交)第三种隔…

此环境变量太大,此对话框允许将值设置为最长 2047 个字符

背景: 自己是一个计算机爱好者,又大体精通计算机各种编程语言,所以电脑上安装的各种编译或者编程软件比较多,有一天需要安装一个多版本的python环境,发现无法添加环境变量,于是乎,自己去查看原因并解决这个…

C语言 sizeof, size_t, strlen

C语言 sizeof, size_t, strlen 文章目录 C语言 sizeof, size_t, strlen一. sizeof1.1 返回结构体长度 二. size_t三. sizeof 和 strlen 一. sizeof 返回一个结构体或者类型所占的内存字节数 1.1 返回结构体长度 这里我编写了2个结构体,区别在于数组问题 #include …