普联一面4.2面试记录

news2024/11/18 13:48:24

普联一面4.2面试记录

文章目录

    • 普联一面4.2面试记录
          • 1.jdk和jre的区别
          • 2.java的容器有哪些
          • 3.list set map的区别
          • 4.get和post的区别
          • 5.哪个更安全
          • 6.java哪些集合类是线程安全的
          • 7.创建线程有哪几种方式
          • 8.线程的状态有哪几种
          • 9.线程的run和start的区别
          • 10.什么是java序列化
          • 11.redis的优缺点
          • 12.redis主要数据类型
          • 13.用spring有什么优点 这么多框架为什么要选spring
          • 14.java链接数据库的步骤
          • 15.数据库用过哪些
          • 16.mybatis框架和jdbc相比有什么优势
          • 17.了解过mybatis怎么配置事务吗
          • 18.mybatis怎么实现的懒加载
          • 19.linux部署时进行了哪些操作
          • 20.linux部署过程中用到的常用命令
          • 21.nginx反向代理有什么作用

1.jdk和jre的区别

JDK(Java Development Kit),它是功能齐全的 Java SDK,是提供给开发者使用,能够创建和编译 Java 程序的开发套件。它包含了 JRE,同时还包含了编译 java 源码的编译器 javac 以及一些其他工具比如 javadoc(文档注释工具)、jdb(调试器)、jconsole(基于 JMX 的可视化监控⼯具)、javap(反编译工具)等等。

JRE(Java Runtime Environment) 是 Java 运行时环境。它是运行已编译 Java 程序所需的所有内容的集合,主要包括 Java 虚拟机(JVM)、Java 基础类库(Class Library)。

也就是说,JRE 是 Java 运行时环境,仅包含 Java 应用程序的运行时环境和必要的类库。而 JDK 则包含了 JRE,同时还包括了 javac、javadoc、jdb、jconsole、javap 等工具,可以用于 Java 应用程序的开发和调试。如果需要进行 Java 编程工作,比如编写和编译 Java 程序、使用 Java API 文档等,就需要安装 JDK。而对于某些需要使用 Java 特性的应用程序,如 JSP 转换为 Java Servlet、使用反射等,也需要 JDK 来编译和运行 Java 代码。因此,即使不打算进行 Java 应用程序的开发工作,也有可能需要安装 JDK。

JDK 包含 JRE

不过,从 JDK 9 开始,就不需要区分 JDK 和 JRE 的关系了,取而代之的是模块系统(JDK 被重新组织成 94 个模块)+ jlinkopen in new window 工具 (随 Java 9 一起发布的新命令行工具,用于生成自定义 Java 运行时映像,该映像仅包含给定应用程序所需的模块) 。并且,从 JDK 11 开始,Oracle 不再提供单独的 JRE 下载。

在 Java 9 新特性概览open in new window这篇文章中,我在介绍模块化系统的时候提到:

在引入了模块系统之后,JDK 被重新组织成 94 个模块。Java 应用可以通过新增的 jlink 工具,创建出只包含所依赖的 JDK 模块的自定义运行时镜像。这样可以极大的减少 Java 运行时环境的大小。

也就是说,可以用 jlink 根据自己的需求,创建一个更小的 runtime(运行时),而不是不管什么应用,都是同样的 JRE。

定制的、模块化的 Java 运行时映像有助于简化 Java 应用的部署和节省内存并增强安全性和可维护性。这对于满足现代应用程序架构的需求,如虚拟化、容器化、微服务和云原生开发,是非常重要的。


著作权归JavaGuide(javaguide.cn)所有 基于MIT协议 原文链接:https://javaguide.cn/java/basis/java-basic-questions-01.html

2.java的容器有哪些

List:特定顺序保存一组数据。

Set:集合;不允许有重复的数据。

Queue:队列:在一端插入数据,一端弹出数据。

Map:关联数据,字典。存储一组(Key-Value)值。

3.list set map的区别

List:可以存储重复数组,基于数组或者链表实现。

Set:不可以存储重复元素,基于Map实现。

Map:键值对方式存储,存储的键的不能重复,基于哈希表或者红黑色实现。

4.get和post的区别

(1)post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)

(2)post发送的数据更大(get有url长度限制)

(3)post能发送更多的数据类型(get只能发送ASCII字符)

(4)post比get慢

(5)post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作(淘宝,支付宝的搜索查询都是get提交),目的是资源的获取,读取数据

5.哪个更安全

post

6.java哪些集合类是线程安全的
  1. Vector

    Vector 是 Java 中最早的一个集合类,它使用 synchronized 关键字来实现线程安全。即使是在多线程环境下,多个线程操作同一个 Vector 实例时也可以保证线程安全。虽然 Vector 在多线程环境中有很好的线程安全性,但它的性能比较低,建议在单线程环境中使用。

  2. Hashtable

    Hashtable 是 Java 中最早的一个键值对映射容器,也是使用 synchronized 关键字来实现线程安全的。它的每个 put、remove 和 get 操作都是原子性的,因此它能够保证对于多个线程同时访问 Hashtable 的情况下,没有线程会看到错误的值。

  3. ConcurrentHashMap

    ConcurrentHashMap 是 Java 并发包中提供的一个线程安全的哈希表实现,它会将整个表分为多个段(Segment),每个段都是一个独立的哈希表,每个线程只能访问特定的段,从而实现了并发访问时的线程安全。

  4. CopyOnWriteArrayList

    CopyOnWriteArrayList 是 Java 并发包中提供的一个线程安全的 List 实现,它通过复制原有的 List 来实现并发访问的线程安全。每次对 CopyOnWriteArrayList 进行修改时都会创建一个新的数组,因此它的写操作性能比较低,但它的读操作性能非常高。

  5. ConcurrentLinkedQueue

    ConcurrentLinkedQueue 是 Java 并发包中提供的一个线程安全的队列实现,它使用链表来存储元素,从而实现了高效的并发性能。和 CopyOnWriteArrayList 一样,它的读操作是非常高效的。

7.创建线程有哪几种方式

java创建线程(Thread)的5种方式_java new thread 方法-CSDN博客

8.线程的状态有哪几种

java源码:

/**
 * A thread state.  A thread can be in one of the following states:
 * <ul>
 * <li>{@link #NEW}<br>
 *     A thread that has not yet started is in this state.
 *     </li>
 * <li>{@link #RUNNABLE}<br>
 *     A thread executing in the Java virtual machine is in this state.
 *     </li>
 * <li>{@link #BLOCKED}<br>
 *     A thread that is blocked waiting for a monitor lock
 *     is in this state.
 *     </li>
 * <li>{@link #WAITING}<br>
 *     A thread that is waiting indefinitely for another thread to
 *     perform a particular action is in this state.
 *     </li>
 * <li>{@link #TIMED_WAITING}<br>
 *     A thread that is waiting for another thread to perform an action
 *     for up to a specified waiting time is in this state.
 *     </li>
 * <li>{@link #TERMINATED}<br>
 *     A thread that has exited is in this state.
 *     </li>
 * </ul>
 *
 * <p>
 * A thread can be in only one state at a given point in time.
 * These states are virtual machine states which do not reflect
 * any operating system thread states.
 *
 * @since   1.5
 * @see #getState
 */
public enum State {
    /**
     * Thread state for a thread which has not yet started.
     */
    NEW,

    /**
     * Thread state for a runnable thread.  A thread in the runnable
     * state is executing in the Java virtual machine but it may
     * be waiting for other resources from the operating system
     * such as processor.
     */
    RUNNABLE,

    /**
     * Thread state for a thread blocked waiting for a monitor lock.
     * A thread in the blocked state is waiting for a monitor lock
     * to enter a synchronized block/method or
     * reenter a synchronized block/method after calling
     * {@link Object#wait() Object.wait}.
     */
    BLOCKED,

    /**
     * Thread state for a waiting thread.
     * A thread is in the waiting state due to calling one of the
     * following methods:
     * <ul>
     *   <li>{@link Object#wait() Object.wait} with no timeout</li>
     *   <li>{@link #join() Thread.join} with no timeout</li>
     *   <li>{@link LockSupport#park() LockSupport.park}</li>
     * </ul>
     *
     * <p>A thread in the waiting state is waiting for another thread to
     * perform a particular action.
     *
     * For example, a thread that has called {@code Object.wait()}
     * on an object is waiting for another thread to call
     * {@code Object.notify()} or {@code Object.notifyAll()} on
     * that object. A thread that has called {@code Thread.join()}
     * is waiting for a specified thread to terminate.
     */
    WAITING,

    /**
     * Thread state for a waiting thread with a specified waiting time.
     * A thread is in the timed waiting state due to calling one of
     * the following methods with a specified positive waiting time:
     * <ul>
     *   <li>{@link #sleep Thread.sleep}</li>
     *   <li>{@link Object#wait(long) Object.wait} with timeout</li>
     *   <li>{@link #join(long) Thread.join} with timeout</li>
     *   <li>{@link LockSupport#parkNanos LockSupport.parkNanos}</li>
     *   <li>{@link LockSupport#parkUntil LockSupport.parkUntil}</li>
     * </ul>
     */
    TIMED_WAITING,

    /**
     * Thread state for a terminated thread.
     * The thread has completed execution.
     */
    TERMINATED;
}

在这里插入图片描述

总算把线程六种状态的转换说清楚了! - 掘金 (juejin.cn)

9.线程的run和start的区别

Java中的run()方法和start()的区别_start()方法和 run()的区别-CSDN博客

10.什么是java序列化

如果我们需要持久化 Java 对象比如将 Java 对象保存在文件中,或者在网络传输 Java 对象,这些场景都需要用到序列化。

简单来说:

  • 序列化:将数据结构或对象转换成二进制字节流的过程
  • 反序列化:将在序列化过程中所生成的二进制字节流转换成数据结构或者对象的过程

对于 Java 这种面向对象编程语言来说,我们序列化的都是对象(Object)也就是实例化后的类(Class),但是在 C++这种半面向对象的语言中,struct(结构体)定义的是数据结构类型,而 class 对应的是对象类型。

下面是序列化和反序列化常见应用场景:

  • 对象在进行网络传输(比如远程方法调用 RPC 的时候)之前需要先被序列化,接收到序列化的对象之后需要再进行反序列化;
  • 将对象存储到文件之前需要进行序列化,将对象从文件中读取出来需要进行反序列化;
  • 将对象存储到数据库(如 Redis)之前需要用到序列化,将对象从缓存数据库中读取出来需要反序列化;
  • 将对象存储到内存之前需要进行序列化,从内存中读取出来之后需要进行反序列化。

维基百科是如是介绍序列化的:

序列化(serialization)在计算机科学的数据处理中,是指将数据结构或对象状态转换成可取用格式(例如存成文件,存于缓冲,或经由网络中发送),以留待后续在相同或另一台计算机环境中,能恢复原先状态的过程。依照序列化格式重新获取字节的结果时,可以利用它来产生与原始对象相同语义的副本。对于许多对象,像是使用大量引用的复杂对象,这种序列化重建的过程并不容易。面向对象中的对象序列化,并不概括之前原始对象所关系的函数。这种过程也称为对象编组(marshalling)。从一系列字节提取数据结构的反向操作,是反序列化(也称为解编组、deserialization、unmarshalling)。

综上:序列化的主要目的是通过网络传输对象或者说是将对象存储到文件系统、数据库、内存中。

img

https://www.corejavaguru.com/java/serialization/interview-questions-1


著作权归JavaGuide(javaguide.cn)所有 基于MIT协议 原文链接:https://javaguide.cn/java/basis/serialization.html

11.redis的优缺点

优点

  1. 高性能:Redis是一个基于内存的数据库,数据存储在RAM中,因此具有非常快的读写速度。它采用了高效的数据结构和算法,能够在微秒级别完成大量的操作,使其成为处理高并发场景的理想选择。
  2. 简单易用:Redis提供了简洁、直观的命令行接口和易于使用的API,使开发人员可以轻松地进行数据存储和检索。其支持丰富的数据类型,如字符串、哈希表、列表、集合和有序集合,可以满足不同场景下的需求。
  3. 数据持久化:Redis支持数据的持久化存储,可以将内存中的数据保存到磁盘上,以防止数据丢失。它提供了两种持久化方式:快照(snapshotting)和日志追加(append-only file),用户可以根据实际需求选择适合的方式。
  4. 高可用性:Redis支持主从复制和Sentinel机制,可以实现数据的自动备份和故障转移。主从复制可以将数据从主节点复制到多个从节点,提高读取性能和数据冗余;Sentinel机制可以监控主节点的状态,并在主节点故障时自动切换到从节点,确保系统的高可用性。

缺点

  1. 内存限制:由于Redis的数据存储在内存中,因此受到可用内存大小的限制。当数据量超过内存容量时,性能会受到影响,甚至导致系统崩溃。虽然Redis提供了数据淘汰策略和内存优化选项,但仍需要合理规划和管理内存资源。
  2. 单线程模型:Redis采用单线程模型来处理客户端请求,这意味着在高并发场景下,性能可能受到限制。虽然Redis通过异步操作和事件驱动的方式提高了并发处理能力,但在某些特定场景下,单线程模型可能成为瓶颈。
  3. 缺乏复杂查询支持:Redis主要用于键值对存储和简单的数据结构操作,并不支持复杂的查询操作。相比之下,关系型数据库具有更强大的查询语言和查询优化。
12.redis主要数据类型

Redis 提供了丰富的数据类型,常见的有五种:String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合)

一文读懂Redis五种数据类型及应用场景 - 知乎 (zhihu.com)

**这篇知乎强烈推荐!!!**从底层数据结构到应用场景及解决办法,佬太强了

13.用spring有什么优点 这么多框架为什么要选spring

1)方便解耦,简化开发

Spring 就是一个大工厂,可以将所有对象的创建和依赖关系的维护交给 Spring 管理。

2)方便集成各种优秀框架

Spring 不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如 Struts2、Hibernate、MyBatis 等)的直接支持。

3)降低 Java EE API 的使用难度

Spring 对 Java EE 开发中非常难用的一些 API(JDBC、JavaMail、远程调用等)都提供了封装,使这些 API 应用的难度大大降低。

4)方便程序的测试

Spring 支持 JUnit4,可以通过注解方便地测试 Spring 程序。

5)AOP 编程的支持

Spring 提供面向切面编程,可以方便地实现对程序进行权限拦截和运行监控等功能。

6)声明式事务的支持

只需要通过配置就可以完成对事务的管理,而无须手动编程。

14.java链接数据库的步骤
  • 注册驱动 (告诉Java要连接什么数据库)

  • 获得连接 (表示JVM的进程与数据库之间的通道打开)

  • 获得数据库操作对象 (它专门执行sql语句的对象)

  • 执行sql 语句

  • 处理查询结果集 (只有执行select 语句才有的步骤)

  • 释放资源 (使用完后,一定要关闭)

原文链接:https://blog.csdn.net/qq_52252193/article/details/121348505

15.数据库用过哪些

mysql mongodb

16.mybatis框架和jdbc相比有什么优势

针对JDBC编程的劣势,MyBatis提供了以下解决方案,具体如下。

  • 问题一:数据库链接创建、释放频繁会造成系统资源浪费,从而影响系统性能。

    解决方案:在SqlMapConfig.xml中配置数据链接池,使用连接池管理数据库链接。

  • 问题二:SQL语句在代码中硬编码,造成代码不易维护。在实际应用的开发中,SQL变化的可能较大。在传统JDBC编程中,SQL变动需要改变Java代码,违反了开闭原则。

    解决方案:MyBatis将SQL语句配置在MyBatis的映射文件中,实现了与Java代码的分离。

  • 问题三:使用preparedStatement向占位符传参数存在硬编码,因为SQL语句的where条件不一定,可能多也可能少,修改SQL需要修改代码,造成系统不易维护。

    解决方案:MyBatis自动将Java对象映射至SQL语句,通过Statement中的parameterType定义输入参数的类型。

  • 问题四:JDBC对结果集解析存在硬编码(查询列名),SQL变化导致解析代码变化,造成系统不易维护。

    解决方案:MyBatis自动将SQL执行结果映射至Java对象,通过Statement中的resultType定义输出结果的类型。

作者:黑马程序员
链接:https://www.zhihu.com/question/21186788/answer/2516715579
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

17.了解过mybatis怎么配置事务吗

MyBatis(六)MyBatis使用事务 - 青杉 - 博客园 (cnblogs.com)

18.mybatis怎么实现的懒加载

MyBatis 延迟加载(懒加载)一篇入门 - 知乎 (zhihu.com)

19.linux部署时进行了哪些操作

宝塔面板 基础环境搭建 开放端口 上传jar包;前端打包成dist同样上传;

20.linux部署过程中用到的常用命令

部署项目时常用的 Linux 命令-CSDN博客

21.nginx反向代理有什么作用

终于有人把正向代理和反向代理解释的明明白白了!-腾讯云开发者社区-腾讯云 (tencent.com)

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

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

相关文章

《C Prime Plus》02

1. UNIX 系统 C语言因UNIX系统而生&#xff0c;也因此而流行&#xff0c;所以我们从UNIX系统开始&#xff08;注意&#xff1a;我们提到的UNIX还包含其他系统&#xff0c;如FreeBSD&#xff0c;它是UNIX的一个分支&#xff0c;但是由于法律原因不使用该名称&#xff09;。 UN…

动手做一个最小Agent——TinyAgent!

Datawhale干货 作者&#xff1a;宋志学&#xff0c;Datawhale成员 前 言 大家好&#xff0c;我是不要葱姜蒜。在ChatGPT横空出世&#xff0c;夺走Bert的桂冠之后&#xff0c;大模型愈发地火热&#xff0c;国内各种模型层出不穷&#xff0c;史称“百模大战”。大模型的能力是毋…

备战蓝桥杯Day36 - 动态规划 - 三角形最小路径和问题

一、什么是动态规划 通过拆分问题&#xff0c;定义问题状态和状态之间的关系&#xff0c;使得问题能够以递推的方式解决。 哪些问题可以使用动态规划&#xff1f; 1、具有最优子结构&#xff1a;问题的最优解所包含的子结构的解也是最优的 2、具有无后效性&#xff1a;未来…

typdef:深入理解C语言中typdef关键词的用法

typedef&#xff1a;C语言中的类型重命名关键词 在C语言中&#xff0c;typedef 是一个非常有用的关键词&#xff0c;它允许我们为现有的数据类型定义一个新的名称。这不仅使得代码更加清晰易读&#xff0c;还提高了代码的可维护性。在这篇博客中&#xff0c;我们将深入探讨 ty…

0.17元的4位数码管驱动芯片AiP650,支持键盘,还是无锡国家集成电路设计中心某公司的

推荐原因&#xff1a;便宜的4位数码管驱动芯片 只要0.17元&#xff0c;香吗&#xff1f;X背景的哦。 2 线串口共阴极 8 段 4 位 LED 驱动控制/7*4 位键盘扫描专用电路 AIP650参考电路图 AIP650引脚定义

代码随想录第29天|491.递增子序列 46.全排列 47.全排列 II

目录&#xff1a; 491.递增子序列 46.全排列 47.全排列 II 491.递增子序列 491. 非递减子序列 - 力扣&#xff08;LeetCode&#xff09; 代码随想录 (programmercarl.com) 回溯算法精讲&#xff0c;树层去重与树枝去重 | LeetCode&#xff1a;491.递增子序列_哔哩哔哩_bili…

C语言——常用库函数的使用及模拟实现

C语言编译系统为使用者提供了很多的预定义库函数。用户在编写程序时&#xff0c;可以直接调用这些库函数。这里选择了一些常用的库函数&#xff0c;简单介绍各个函数的使用方法&#xff1a; 字符串函数 字符串函数函数分为长度不受限制的字符串函数&#xff0c;和长度受限制的…

图的应用解析

01&#xff0e;任何一个无向连通图的最小生成树(B )。 A.有一棵或多棵 B.只有一棵 C.一定有多棵 D.可能不存在 02.用Prim算法和Kruskal算法构造图的最小生成树&#xff0c…

每日一题————P5725 【深基4.习8】求三角形

题目&#xff1a; 题目乍一看非常的简单&#xff0c;属于初学者都会的问题——————————但是实际上呢&#xff0c;有一些小小的坑在里面。 就是三角形的打印。 平常我们在写代码的时候&#xff0c;遇到打印三角形的题&#xff0c;一般简简单单两个for循环搞定 #inclu…

Element-Plus日期选择组件封装农历日期

背景 在使用element-plus开发项目过程中&#xff0c;需要填入人员的生卒日期&#xff0c;经观察&#xff0c;对于大部分人来说&#xff0c;这类日期通常是农历日期&#xff0c;然而我们在系统建设过程中&#xff0c;对于日期字段&#xff0c;约定成俗的都会使用公历日期&#…

机器学习的模型校准

背景知识 之前一直没了解过模型校准是什么东西&#xff0c;最近上班业务需要看了一下&#xff1a; 模型校准是指对分类模型进行修正以提高其概率预测的准确性。在分类模型中&#xff0c;预测结果通常以类别标签形式呈现&#xff08;例如&#xff0c;0或1&#xff09;&#xf…

day03-Docker

1.初识 Docker 1.1.什么是 Docker 1.1.1.应用部署的环境问题 大型项目组件较多&#xff0c;运行环境也较为复杂&#xff0c;部署时会碰到一些问题&#xff1a; 依赖关系复杂&#xff0c;容易出现兼容性问题开发、测试、生产环境有差异 例如一个项目中&#xff0c;部署时需要依…

拯救者Legion R9000X 2021(82HN)原装出厂Win10系统镜像ISO下载

lenovo联想拯救者笔记本R9000X 2021款原厂Windows10系统安装包&#xff0c;恢复出厂开箱状态预装OEM系统 链接&#xff1a;https://pan.baidu.com/s/1tx_ghh6k0Y9vXBz-7FEQng?pwd7mih 提取码&#xff1a;7mih 原装出厂系统自带所有驱动、出厂主题壁纸、系统属性联机支持标…

C++核心编程——4.2(2)对象的初始化和清理

4.2.5 深拷贝与浅拷贝 浅拷贝&#xff1a;编译器提供的简单的赋值拷贝操作 深拷贝&#xff1a;在堆区重新申请空间&#xff0c;进行拷贝操作 示例&#xff1a; class Person { public://无参&#xff08;默认&#xff09;构造函数Person() {cout << "无参构造函数…

并发编程之线程池的应用以及一些小细节的详细解析

线程池在实际中的使用 实际开发中&#xff0c;最常用主要还是利用ThreadPoolExecutor自定义线程池&#xff0c;可以给出一些关键的参数来自定义。 在下面的代码中可以看到&#xff0c;该线程池的最大并行线程数是5&#xff0c;线程等候区&#xff08;阻塞队列)是3&#xff0c;即…

基于Python的微博旅游情感分析、微博舆论可视化系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

JAVAEE之Cookie/Session

1.Cookie HTTP 协议自身是属于 "无状态" 协议. "无状态" 的含义指的是: 默认情况下 HTTP 协议的客户端和服务器之间的这次通信, 和下次通信之间没有直接的联系. 但是实际开发中, 我们很多时候是需要知道请求之间的关联关系的. 例如登陆网站成功后, 第二…

绩效考核存在合理性、公平性、客观性吗?

目录 一、绩效考核流于形式&#xff1a;没有实际考核过 二、考核结果的确定: 主管一人说了算 三、考核结果&#xff1a; 与绩效奖金挂钩吗&#xff1f; 四、考核的滥用&#xff1a;成为公司排挤迫使员工离职的手段 五、公司说&#xff1a; 让你滚蛋&#xff0c;谁还会发你奖…

[HackMyVM]靶场Boxing

难度:Medium kali:192.168.56.104 靶机:192.168.56.143 端口扫描 ┌──(root㉿kali2)-[~/Desktop] └─# nmap 192.168.56.143 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-03 19:25 CST Nmap scan report for staging-env.boxing.hmv (192.168.56.143) Host …

智慧展览馆:基于AI智能识别技术的视频智慧监管解决方案

一、建设背景 随着科技的不断进步和社会安全需求的日益增长&#xff0c;展览馆作为展示文化、艺术和科技成果的重要场所&#xff0c;其安全监控系统的智能化升级已成为当务之急。为此&#xff0c;旭帆科技&#xff08;TSINGSEE青犀&#xff09;基于视频智能分析技术推出了展览馆…