某游戏公司Java面试八股文总结

1.值传递和引用传递区别?Java中为什么都是值传递?

值传递(Pass by Value):

  • 在值传递中,函数或方法的参数是原始数据的拷贝,而不是原始数据本身。
  • 当你将一个值传递给函数时,函数内部对该值的任何修改不会影响原始值
  • Java 中的基本数据类型(如int、float、char等)都是通过值传递传递给方法的。

引用传递(Pass by Reference):

  • 在引用传递中,函数或方法的参数是原始数据的引用或地址,而不是拷贝
  • 当你将一个引用传递给函数时,函数内部对该引用所指向的对象的任何修改都会影响原始对象。
  • Java 中的对象(除了基本数据类型之外)是通过引用传递传递给方法的。

在Java中,通常说Java是值传递,是因为所有的参数传递都是按值传递的。但是需要注意的是,对于对象类型的参数,传递的是对象引用的值(地址或者说指针),而不是对象本身。这意味着,虽然对象引用是通过值传递传递的,但仍然可以在方法内部修改对象的状态。

2.优先队列和队列?

优先队列(Priority Queue)和普通队列(Queue)是两种不同的数据结构,它们的主要区别在于元素的排列和取出顺序。

队列(Queue):

  • 队列是一种基本的数据结构,遵循先进先出(FIFO)的原则。这意味着先进入队列的元素将首先被取出。
  • 队列通常用于处理任务或数据按照顺序到达的情况,例如,打印队列中的文档或处理消息队列中的消息。
  • 常见的队列操作包括入队(enqueue)和出队(dequeue)。

优先队列(Priority Queue):

  • 优先队列也是一种队列,但它与普通队列不同,因为元素在插入时具有优先级,并且元素的取出顺序取决于它们的优先级,而不是它们进入队列的顺序。
  • 具有较高优先级的元素会在具有较低优先级的元素之前被取出。
  • 优先队列通常用于需要根据某种规则或权重来处理元素的情况,例如任务调度、最小堆或最大堆数据结构等。
  • 常见的操作包括插入元素(insert)和取出优先级最高的元素(extract-min或extract-max,取决于实现)。

在Java中,可以使用PriorityQueue类来实现优先队列,而标准队列可以使用Queue接口的不同实现类来实现,例如LinkedList或ArrayDeque。

3.git中的暂存区是什么?有什么作用?为什么要有它?SVN都没有暂存区

Git中的暂存区(Staging Area)是一个关键的概念,用于在提交更改到版本库之前,存储和准备要包含在下一次提交中的文件。暂存区充当了临时缓冲区,允许你选择性地添加、修改或删除文件,以便更好地控制提交的内容。它的主要作用包括以下几点:

  • 分离工作目录和版本库:暂存区允许你将工作目录中的更改分成多个步骤,你可以先将一部分更改添加到暂存区,然后在适当的时候提交这些更改。这使得你可以更灵活地控制提交的内容,以确保只提交了你想要的更改。

  • 检查更改:暂存区允许你仔细检查你的更改,确保它们符合你的期望,然后再将它们提交。这有助于减少错误提交的风险。

  • 分支工作:暂存区有助于处理分支工作。你可以在不同分支上进行更改,将它们分别添加到暂存区,然后根据需要切换分支并提交相应的更改。

  • 提交清晰度:暂存区提供了更清晰的提交历史。你可以通过暂存区来构建逻辑上有序的提交,将相关更改分组在一起,以便更容易追踪和理解项目的发展历史。

相比之下,SVN(Subversion)等传统版本控制系统通常不具备暂存区的概念。在这些系统中,你必须一次性提交所有更改,包括工作目录中的所有文件更改。这可能导致一些问题,如无法选择性提交、更改未准备好提交等。Git引入了暂存区,以解决这些问题并提供更多灵活性。

暂存区是Git的一个重要特性,它使版本控制更加灵活,允许开发人员更好地管理和控制他们的更改,以便构建更可靠和清晰的版本历史。

4. 数组和arraylist区别 都能装什么类型的数据?

数组(Array):

  • 数组是一个固定大小的数据结构,一旦创建,其大小通常不能更改
  • 数组可以包含基本数据类型(如int、double、char等 和包装类)以及对象类型(如自定义类的对象)。
  • 数组元素的类型必须是相同的,即数组可以存储相同类型的数据。

ArrayList:

  • ArrayList是Java集合框架中的一个类,它实现了可变大小的动态数组
  • ArrayList可以包含对象类型,而不限于基本数据类型。你可以存储任何对象(包括基本数据类型的包装类)。
  • ArrayList可以自动增长以适应添加的元素,因此不需要提前指定大小。
  • ArrayList提供了丰富的方法来操作和管理列表,例如添加、删除、查找、遍历等。
  • ArrayList是泛型容器,泛型参数需要是一个引用类型(对象类型)基本数据类型不是引用类型,而是值类型

5.p2p 是什么?

P2P,或点对点(Peer-to-Peer)是一种网络架构,其中每个节点(或计算机)在网络中扮演相同的角色,与其他节点直接通信,而不依赖于中央服务器或中心节点。在P2P网络中,节点之间可以充当客户端和服务器,允许它们相互交换数据、资源或服务。

主要特点和优点包括:

  • 去中心化:P2P网络不需要中央服务器来协调节点之间的通信。每个节点都可以直接与其他节点通信,从而减少单点故障的风险。

  • 分布式:数据和资源可以在网络中分布存储,从而提高了数据冗余性和可靠性。这有助于降低网络中断的风险。

  • 自扩展性:P2P网络通常具有自扩展性,允许新节点加入网络并贡献资源,从而扩大网络的规模和性能。

  • 隐私和安全:P2P网络可以提供更好的隐私和安全,因为数据不需要通过中央服务器传递,而是在节点之间直接交换。

  • 分担负载:P2P网络分散了数据传输的负担,因此可以减轻服务器的负载,提高整体性能。

P2P网络在许多领域都有应用,包括文件共享(如BitTorrent)、区块链、语音通信、在线游戏、视频流媒体等。然而,P2P网络也可能面临一些挑战,如安全性、管理、数据一致性等问题,需要仔细考虑和处理。

6.堆排序实现过程?时间复杂度?

  • 建立初始堆:将待排序的数组视为一个完全二叉树,并构建一个初始的最大堆(或最小堆),其中根节点的值大于(或小于)子节点的值。构建堆的过程可以从最后一个非叶子节点开始,自底向上,通过不断调整堆的结构来实现。这确保了根节点是最大(或最小)元素。

  • 交换堆顶和末尾元素:将堆顶元素(根节点)与数组的最后一个元素交换位置,这将最大(或最小)元素移至数组的末尾。

  • 调整堆:将堆的大小减一,然后对新的堆顶元素执行一次堆调整(sift down)操作,将次大(或次小)元素移到堆顶。重复这个过程直到整个数组有序。

  • 重复步骤2和3,直到整个数组排序完成。

堆排序的时间复杂度是O(n * log n),其中n是要排序的元素数量。堆排序是不稳定的排序算法,因为在交换堆顶元素的过程中,相等元素的相对顺序可能会改变。堆排序在最坏、平均和最好情况下的时间复杂度都是一样的,因此具有稳定的性能。尽管堆排序的时间复杂度相对较高,但它具有原地排序的特点,不需要额外的内存空间来存储数据,因此对于大规模数据集来说,它仍然是一个有效的排序算法。

为什么堆排序在最坏、平均和最好情况下的时间复杂度都是一样的?

因为堆排序的主要时间消耗在两个方面:建立初始堆和进行堆调整(Heapify)操作。不管数组的初始状态如何,这两个过程都具有相同的时间复杂度。

  • 建立初始堆:在最坏、平均和最好情况下,建立初始堆所需的时间都是O(n),因为我们可以通过从最后一个非叶子节点开始,自底向上逐个进行堆调整操作,以线性时间构建初始堆。

  • 堆调整操作:堆调整操作的时间复杂度是O(log n),因为在每次调整过程中,我们将堆的高度减小1。

7.http和tcp关系?

TCP(Transmission Control Protocol):

  • TCP是一种面向连接的、可靠的传输层协议,它负责确保数据可靠地传输。它处理数据的分割、重组、流控制、错误检测和纠正等任务
  • 在进行数据通信时,客户端和服务器之间首先建立TCP连接,然后可以在连接上进行数据传输。
  • TCP是一种基于字节流的协议,它提供了有序的、可靠的数据传输,并在通信结束时关闭连接。

HTTP(Hypertext Transfer Protocol):

  • HTTP是一种应用层协议,用于在Web上传输超文本文档,如网页。它建立在TCP之上,利用TCP的可靠性和连接功能
  • HTTP定义了客户端和服务器之间的请求和响应的消息格式,以便获取和传递Web资源。
  • HTTP是一种无状态协议,每个HTTP请求都是独立的,服务器不会保留关于之前请求的信息,除非使用会话或Cookie等机制来维护状态信息。

HTTP使用TCP作为其传输层协议,这是因为TCP提供了可靠的、面向连接的通信,适合于需要确保数据完整性和可靠性的Web通信。在HTTP通信中,客户端(通常是Web浏览器)向服务器发送HTTP请求,服务器接收并处理请求,然后返回HTTP响应。这些HTTP请求和响应都被封装在TCP连接中,以便安全可靠地传输数据。

8.操作系统局部性原理是什么?有什么作用?

操作系统的局部性原理是一种关于计算机性能优化的原则,它包括两个重要概念:时间局部性(Temporal Locality)和空间局部性(Spatial Locality)。这些原理描述了在程序执行期间,计算机系统访问数据和指令的方式,以便更有效地利用计算机的存储系统和缓存,从而提高性能。

时间局部性(Temporal Locality):

  • 时间局部性指的是在短时间内,如果程序访问了某个数据或指令,那么在不久的将来它可能会再次访问相同的数据或指令
  • 这意味着一旦数据被加载到计算机的高速缓存或寄存器中,它在接下来的指令中可能会被多次使用,从而减少了内存访问的开销。

空间局部性(Spatial Locality):

  • 空间局部性指的是如果程序访问了某个数据或指令,那么它可能会在附近的位置上访问其他数据或指令
  • 这意味着程序往往在内存中访问一块连续的数据,从而可以从内存中读取较大块的数据,以满足未来的需求。

局部性原理的作用包括:

  • 提高性能:局部性原理有助于减少内存访问的延迟,从而提高计算机程序的性能。通过减少缓存未命中和内存访问次数,可以大幅降低程序的执行时间。

  • 更好地利用缓存:局部性原理有助于更好地利用计算机的高速缓存。缓存是一种存储子系统,可以加速数据访问,而局部性原理可以最大限度地减少缓存的未命中率。

  • 减少I/O开销:对于磁盘和网络访问,局部性原理同样适用。减少磁盘和网络访问次数可以显著减小I/O开销,提高整体系统性能。

9.泛型是什么?有什么作用?

所谓泛型,就是允许在定义类、接口时通过 一个标识 表示类中某个属性的类型或者是某个方法的返回值及参数类型。这个类型参数将在使用时确定。
泛型

10.Java序列化、serialVersionUID什么作用?如果序列化时serialVersionUID不一致会怎么样?

  • Java序列化是将对象转换为字节流,以便在网络传输或保存到磁盘上。它允许对象的状态在不同应用程序和平台之间进行传输和重建。
  • serialVersionUID 是一个序列化版本号,用于标识类的不同版本。它在类的序列化和反序列化过程中用于检查类的版本是否匹配,以确保反序列化的对象与序列化时的类版本兼容。如果版本不一致,反序列化会失败并抛出 InvalidClassException。

11.Java泛型中的类型擦除:

  • 类型擦除是Java泛型的特性之一。它意味着在编译时泛型类型信息会被擦除,编译后的字节码中不再包含泛型类型信息。这是为了保持Java的向后兼容性和减少运行时开销。
  • 例如,List 和 List 在运行时都被视为 List<Object&gt;泛型类型参数被擦除为它们的上界(通常是 Object)。

类型擦除的特征

  • 所有泛型类的类型参数在编译时都会被擦除,虚拟机运行时中没有泛型,只有普通类和普通方法,从这一点上来说,Java中的泛型从某种程度上是一种语法糖
  • Java泛型不支持基本类型 例如: short int double等
  • 在泛型代码内部,无法获得任何有关泛型参数类型的信息,如果传入的类型参数为T,那么在泛型代码内部你不知道T有什么方法,属性,关于T的一切信息都丢失了
  • 创建泛型对象时请指明类型,让编译器尽早的做参数检查
  • 不要忽略编译器的警告信息,那意味着潜在的ClassCastException等着你
  • Java的泛型类型不能用于new构建对象(也不能用于初始化数组).泛型不能用于显性地引用运行时类型的操作之中,例如转型,instanceof和new操作(包括new一个对象,new一个数组),因为所有关于参数的类型信息都在运行时丢失了,所以任何在运行时需要获取类型信息的操作都无法进行工作。

12.MYSQL的时间类型:

  • MySQL支持多种时间类型,常见的有 DATE、TIME、DATETIME、TIMESTAMP、YEAR 等。
  • 选择哪种时间类型取决于需求,一般建议使用 DATETIME 或 TIMESTAMP,它们提供了日期和时间的完整信息。
  • TIMESTAMP 和 DATETIME 都占用8字节的存储空间。
  • TIMESTAMP 的优点是自动更新时间戳,适合存储记录的创建和修改时间。缺点是其范围有限,从1970年到2038年。
  • DATETIME 不受时间戳范围限制,但需要手动设置时间值。

13.MYSQL聚簇索引(索引分类)

在InnoDB存储引擎中,根据索引的存储形式,可以分为以下两种:
在这里插入图片描述
二级索引细分:
单列索引:即一个索引只包含单个列。

联合索引:即一个索引包含了多个列。

14.JPA和MyBatis的区别、优缺点:

  • JPA(Java Persistence API)和 MyBatis 是两种不同的持久化框架。
  • JPA 是一种ORM(对象关系映射)框架,它将Java对象映射到数据库表,提供了对象级的数据访问。它具有标准化的API,例如Java EE标准中的JPA规范。
  • MyBatis 是一种SQL映射框架,将SQL语句映射到Java方法,并提供了更直接的数据库访问控制。
  • JPA的优点包括标准化、面向对象、自动化查询生成等。MyBatis的优点包括更灵活的SQL控制、性能调优能力、SQL可读性。
  • JPA适用于需要标准化和对象级别映射的应用,MyBatis适用于需要更细粒度控制SQL的应用。

15.MYBATIS中#和&(除了预防SQL注入,还有什么区别)

#(井号):预编译参数:

  • #用于预编译参数,它将参数值安全地填充到SQL语句中,并可以防止SQL注入攻击。
  • #在传递参数值之前会将参数值转义,使之成为SQL语句的一部分。
  • #通常用于传递参数值,如 SELECT * FROM table WHERE column = #{value}。

&(和号):直接替换参数:

  • & 用于直接替换参数,它将参数值不加处理地插入SQL语句中。
  • & 不会进行预编译,因此需要小心防止SQL注入攻击,应确保参数值是安全的。
  • & 通常用于传递SQL片段、表名、列名等不需要转义的部分,如 SELECT * FROM t a b l e N a m e W H E R E c o l u m n = ′ {tableName} WHERE column = ' tableNameWHEREcolumn={value}'。

除了预防SQL注入之外,这两种参数处理方式还有其他区别和使用场景:

  • #适用于传递参数值,如数字、字符串等。它可以确保参数值的安全性,并且不需要手动处理引号等问题。
  • & 适用于传递SQL片段表名、列名等需要直接插入SQL语句的情况。在使用 & 时,需要特别小心,确保传递的内容是受信任且不会引发SQL注入问题。
  • 总的来说,选择 # 还是 & 取决于你要传递的内容和是否需要防止SQL注入。通常,建议尽量使用 # 来确保安全性,只有在特殊情况下使用 & 并小心防范潜在的风险。

16.HTTP常见状态码、302和301的区别

在这里插入图片描述
1xx 信息

  • 100 Continue :表明到目前为止都很正常,客户端可以继续发送请求或者忽略这个响应。

2xx 成功

  • 200 OK
  • 204 No Content :请求已经成功处理,但是返回的响应报文不包含实体的主体部分。一般在只需要从客户端往服务器发送信息,而不需要返回数据时使用。
  • 206 Partial Content :表示客户端进行了范围请求,响应报文包含由 Content-Range 指定范围的实体内容。

3xx 重定向

  • 301 Moved Permanently :永久性重定向

  • 302 Found :临时性重定向

    • 当客户端发送一个请求后,服务器可以返回 302 响应,同时提供一个新的URL,客户端会被重定向到新的URL来获取资源。
    • 302 是一种临时性重定向,客户端应该继续使用原始URL
    • 与 302 不同,301 表示资源的重定向是永久的,客户端应该将原始URL更新为新的URL,并在以后的请求中使用新URL。
    • 301 对于搜索引擎优化(SEO)很重要,因为它告诉搜索引擎新的URL是永久性的,应该更新索引。
  • 303 See Other :和 302 有着相同的功能,但是 303 明确要求客户端应该采用 GET 方法获取资源。

  • 304 Not Modified :如果请求报文首部包含一些条件,例如:If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since,如果不满足条件,则服务器会返回 304 状态码。

  • 307 Temporary Redirect :临时重定向,与 302 的含义类似,但是 307 要求浏览器不会把重定向请求的 POST 方法改成 GET 方法。

4xx 客户端错误

  • 400 Bad Request :请求报文中存在语法错误。
  • 401 Unauthorized :该状态码表示发送的请求需要有认证信息(BASIC 认证、DIGEST 认证)。如果之前已进行过一次请求,则表示用户认证失败。
  • 403 Forbidden :请求被拒绝。
  • 404 Not Found

5xx 服务器错误

  • 500 Internal Server Error :服务器正在执行请求时发生错误。
  • 503 Service Unavailable :服务器暂时处于超负载或正在进行停机维护,现在无法处理请求。

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

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

相关文章

消失的人!消除视频中不需要的人物

视频拍摄中拍摄了不相干或者是不需要出现的人物&#xff0c;想要从视频中去除&#xff0c;应该如何操作呢&#xff1f;有什么快捷方法可以轻松扣除视频中的人物&#xff1f; 我们在视频剪辑的时候都有这样的烦恼吧&#xff1f;就是在一段视频素材里有多余的人物出现&#xff0…

uniapp 使用和引入 thorui

1. npm install thorui-uni 2. "easycom": { "autoscan": true, "custom": { "tui-(.*)": "thorui-uni/lib/thorui/tui-$1/tui-$1.vue" } }, 3.

身份证照片怎么弄成200k以内?三个方法轻松搞定!

在日常生活中&#xff0c;为了方便上传和保存、便于传输和处理以及符合相关规定等方面的考虑&#xff0c;身份证照片大小常常被要求控制在200k以内&#xff0c;可是手机随便一拍&#xff0c;任凭如何截图都在超过1M&#xff0c;这个时候就需要借助一些图片压缩工具&#xff0c;…

前端项目--尚医通学习分享

这段时间跟着线上课程完成了一个项目&#xff1a;商医通&#xff08;基于Vue3TypeScript的医院挂号平台&#xff09;。具体我就不过多地介绍其具体功能以及详细的实现步骤了&#xff0c;感兴趣的小伙伴直接&#xff1a;传送门 。该文章我就分享一下在该项目中学习到的一些知识点…

OJ项目【登录】——验证码、失败登录多次账户冻结、用户密码加密,我是如何实现的?

目录 前言 1、验证码 1.1、引入pom 1.2、前端核心代码 1.3、后端核心代码 2、账户冻结 2.1、思路&#xff1a; 2.2、核心代码示例&#xff1a; 3、密码加密——加盐算法 3.1、思路&#xff1a; 3.2、代码实现示例&#xff1a; 4、小结&#xff1a;展示我的项目 4…

在 Elasticsearch 中实现自动完成功能 2:n-gram

在第一部分中&#xff0c;我们讨论了使用前缀查询&#xff0c;这是一种自动完成的查询时间方法。 在这篇文章中&#xff0c;我们将讨论 n-gram - 一种索引时间方法&#xff0c;它在基本标记化后生成额外的分词&#xff0c;以便我们稍后在查询时能够获得更快的前缀匹配。 但在此…

MySQL InnoDB引擎深入学习的一天(InnoDB架构 + 事务底层原理 + MVCC)

目录 逻辑存储引擎 架构 概述 内存架构 Buffer Pool Change Buffe Adaptive Hash Index Log Buffer 磁盘结构 System Tablespace File-Per-Table Tablespaces General Tablespaces Undo Tablespaces Temporary Tablespaces Doublewrite Buffer Files Redo Log 后台线程 事务原…

30天工作量,推荐4个ai写作生成器工具,一键搞定!

全新升级&#xff01;畅销热门AI写作工具盘点40强&#xff0c;助你一键呈现顶尖文案&#xff01; AI写作工具&#xff0c;引领时代潮流&#xff0c;让办公生活更高效&#xff01;小编特意整理了市面上最好用的AI写作工具&#xff0c;共计40款&#xff01;你使用过哪些&#xff…

【JAVA-Day45】Java常用类StringBuffer解析

Java常用类StringBuffer解析 Java常用类StringBuffer解析一、什么是StringBuffer类二、StringBuffer类的方法2.1 append方法2.2 insert方法2.3 delete方法2.4 replace方法2.5 reverse方法2.6 toString方法2.7 capacity方法2.8 length方法 三、StringBuffer类的应用场景深入了解…

选择适合自身业务的HTTP代理有哪些因素决定?

相信对很多爬虫工作者和数据采集的企业来说&#xff0c;如何选购适合自己业务的HTTP代理是一个特别特别困扰的选题&#xff0c;市面上那么多HTTP代理厂商&#xff0c;好像这家有这些缺点&#xff0c;转头又看到另外一家的缺点&#xff0c;要找一家心仪的仿佛大海捞针。今天我们…

【音视频|ALSA】SS528开发板编译Linux内核ALSA驱动、移植alsa-lib、采集与播放usb耳机声音

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

二、深度测试(Z Test)

1.是什么 ①从渲染管线出发 ②书面上理解 所谓深度测试&#xff0c;就是针对当前对象在屏幕上&#xff08;更准确的说是frame buffer&#xff09;对应的像素点&#xff0c;讲对象自身的深度值与当前该像素点缓存的深度值进行比较&#xff0c;如果通过了&#xff0c;本对象再改…

使用 Github Actions 工作流自动部署 Github Pages

GitHub-Actions actions顾名思义就是一堆动作&#xff0c;是一个持续集成服务&#xff0c;持续集成包含了拉代码、运行测试、编译代码、登录远程服务器&#xff0c;发布到第三方服务等等的操作&#xff0c;GitHub将这些操作称为actions。 概念&#xff1a;Workflows, Events,…

【Java学习之道】网络编程的基本概念

引言 这一章我们将一同进入网络编程的世界。在开始学习网络编程之前&#xff0c;我们需要先了解一些基本概念。那么&#xff0c;我们就从“什么是网络编程”这个问题开始吧。 一、网络编程的基本概念 1.1 什么是网络编程 网络编程&#xff0c;顾名思义&#xff0c;就是利用…

【算法-动态规划】完全背包问题

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…

使用vue3+element-ui plus 快速构建后台管理模板

一、安装 vue3 脚手架 npm create vuelatestcd vue-ui-template #切换到刚刚创建好的vue项目根目录中 npm install #下载项目所需要的依赖包 npm run dev #启动运行项目服务项目启动后&#xff0c;默认页面显示如下&#xff1a; 二、安装element-ui plus 官网链接&#xff1a;…

Vue-3.0路由

生活中的路由&#xff1a;设备和ip的映射关系 路由就是一种映射关系 Vue中路由&#xff1a;路径和组件的映射关系&#xff0c;根据路由就能知道不同路径的&#xff0c;应该匹配渲染哪个组件 VueRouter的介绍 作用&#xff1a;修改地址栏路径时&#xff0c;切换显示匹配的组…

idea中父工程Project创建

1.file-->new-->Project 2.选择maven包和JavaSDK 3.填写项目名&#xff0c;选择文件目录&#xff0c;项目包等 4.配置maven tip&#xff1a;约定>配置>编码 5.设置项目编码 6.注解生效激活&#xff0c;便于项目中使用注解 7.Java编译版本选择8 8.File Type 过滤&a…

php74 安装sodium

下载编译安装libsodium wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.18-stable.tar.gz tar -zxf libsodium-1.0.18-stable.tar.gz cd libsodium-stable ./configure --without-libsodium make && make check sudo make install下载编译安装…

ChatGPT DALL-E 3的系统提示词大全

每当给出图像的描述时&#xff0c;使用dalle来创建图像&#xff0c;然后用纯文本总结用于生成图像的提示。如果用户没有要求创建特定数量的图像&#xff0c;默认创建四个标题&#xff0c;这些标题应尽可能多样化。发送给Dalle的所有标题都必须遵循以下策略&#xff1a;1.如果描…