货拉拉Java开发实习

news2024/11/19 4:29:05

目录

    • 1.Java的重载和重写有什么区别
    • 2.什么情况下需要用到重载
    • 3.有很多个字符串和变量,需要把它们加起来,这时候用String会有什么问题
    • 4.有没有其它的替代方案
    • 5.StringBuffer和StringBuilder有什么区别
    • 6.一个自定义对象,分别创建了两个实例,怎么样比较它们的大小,使用equals可以比较吗
    • 7.String是一个不可变的类型,这种类型一般用什么关键字修饰
    • 8.final除了修饰String还可以修饰其它的吗
    • 9.Java里有哪些集合
    • 10.如果要存一个自定义对象,适合用哪个数据结构来存储
    • 11.HashMap有提供什么方法吗
    • 12.先判断再put这个方案,这两步操作下是否存在问题,怎么解决
    • 13.CAS的ABA问题了解吗,一般怎么解决
    • 14.列举一下你了解的数据结构
    • 15.队列的特点
    • 16.Java中的队列
    • 17.LinkedList和ArrayList的区别是什么
    • 18.二叉树有什么特点
    • 19.二叉树有什么缺点,有什么数据结构可以解决这个问题
    • 20.平衡二叉树有什么特点
    • 21.Java中有哪些平衡二叉树的应用例子
    • 22.简单介绍一下tcp的三次握手和四次挥手
    • 23.Linux哪个命令是用来发送请求的
    • 24.spring中事务的隔离级别有几种
    • 25.spring的两大特性是什么
    • 26.MySQL索引可以提升查询性能,那索引是越多越好吗
    • 27.索引使用过程中什么情况会失效
    • 28.MySQL如果想查最大的一行怎么查,比如要查id最大的那一行
    • 29.limit后面接两个数字,那两个数字分别是什么意思
    • 30.现在如果有一个字符串是驼峰命名的,怎么转化为下划线命名
    • 31.怎么样把字符串所有的字符倒过来

1.Java的重载和重写有什么区别

1、重载发生在本类,重写发生在父类与子类之间;
2、重载的方法名必须相同,重写的方法名相同且返回值类型必须相同;
3、重载的参数列表不同,重写的参数列表必须相同。
4、重写的访问权限不能比父类中被重写的方法的访问权限更低。
5、构造方法不能被重写

2.什么情况下需要用到重载

重载应该在需要让方法对不同类型的参数进行操作时使用。例如,如果您需要编写一个加法方法来将两个数字相加,那么您可能会编写多个实现方式,以便以不同的方式来处理不同类型的数字。这种方法可以使您的代码更加灵活和复用。

3.有很多个字符串和变量,需要把它们加起来,这时候用String会有什么问题

在将多个字符串和变量拼接成一个字符串时,使用String类型可能会导致性能问题和内存浪费。这是因为String类型是不可变的,每次对字符串进行修改时都会创建一个新的String对象,而原来的String对象则会被丢弃。

4.有没有其它的替代方案

StringBuilder和StringBuffer都是不可变的

5.StringBuffer和StringBuilder有什么区别

StringBuffer是线程安全的,因为它每个操作方法都加了synchronized同步关键字。
StringBuilder不是线程安全的,所以在多线程环境下对字符串进行操作,应该使用StringBuffer,否则使用StringBuilder

6.一个自定义对象,分别创建了两个实例,怎么样比较它们的大小,使用equals可以比较吗

不可以

  • 如果你想比较两个自定义对象的大小,你需要在自定义对象中实现Comparable接口,并重写compareTo方法。在compareTo方法中,你需要定义比较规则,然后根据规则比较两个对象的大小。比较规则可以根据对象的某个属性进行比较,例如按照对象的id属性进行比较。
  • 如果你想比较两个自定义对象是否相等,你需要在自定义对象中实现equals方法,并重写hashCode方法。在equals方法中,你需要定义相等的规则,例如两个对象的id属性相等,则认为它们相等。在hashCode方法中,你需要根据相等的规则生成hashCode值,以便在使用希表等数据结构时能够正确地处理相等的对象。
  • 需要注意的是,equals方法只能用于比较两个对象是否相等,而不能用于比较它们的大小。如果你想比较两个对象的大小,你需要使用compareTo方法。

7.String是一个不可变的类型,这种类型一般用什么关键字修饰

final
在这里插入图片描述

8.final除了修饰String还可以修饰其它的吗

  • final 变量:被修饰的变量不可变,不可变分为引用不可变和对象不可变,final 指的是引用不可变,final 修饰的变量必须初始化,通常称被修饰的变量为常量。
  • final 方法:被修饰的方法不允许任何子类重写,子类可以使用该方法。
  • final 类:被修饰的类不能被继承,所有方法不能被重写。

9.Java里有哪些集合

在这里插入图片描述

10.如果要存一个自定义对象,适合用哪个数据结构来存储

  • List:List是一个有序的集合,可以存储重复的素。常用的实现类有ArrayList和LinkedList。如果需要按照插入顺序存储自定义对象,可以使用ArrayList;如果需要频繁地在集合中间插入或删除元素,可以使用LinkedList。
  • Set:Set是一个不允许重复元素的集合,可以用于去重。常用的实现类有HashSet和TreeSet。如果需要快速地判断一个元素是否存在于集合中,可以使用HashSet;如果需要按照元素的自然顺序进行排序,可以使用TreeSet。
  • Map:Map是一个键值对的集合,可以用于存储具有映射关系的数据。常用的实现类有HashMap和TreeMap。如果需要快速地根据键查找值,可以使用HashMap;如果需要按照键的自然顺序进行排序,可以使用TreeMap。

如果存Key-Value数据时候,如果有多条同名Key数据,现在只想存第一条其它忽略掉,那么用HashMap来存储,用什么方法比较简单

11.HashMap有提供什么方法吗

  • put(key, value):将指定的键值对存储到HashMap中。
  • get(key):根据指定的键获取对应的值。
  • remove(key):根据指定的键删除对应的键值对。
  • containsKey(key):判断HashMap中是否包含指定的键。
  • size():返回HashMap中键值对的数量。

12.先判断再put这个方案,这两步操作下是否存在问题,怎么解决

  • 先判断再put的方案是一种常见的HashMap操作,可以用于避免重复添加键值对。但是,在多线程环境下,这两步操作可能存在问题,因为在判断和添加之间可能会有其他线程修改了HashMap,导致判断结果不准确或者添加的键值对被覆盖。
  • 为了解决这个问题,可以使用Java中的ConcurrentHashMap类,它是线程安全的HashMap实现,支持并发访问。ConcurrentHashMap提供了putIfAbsent(key, value)方法,可以在添加键值对之前先判断指定的键是否已经存在,如果不存在则添加键值对,否则返回已存在的值。这个方法是原子性的,可以保证在多线程环境下的正确性。

13.CAS的ABA问题了解吗,一般怎么解决

CAS算法实现一个重要前提需要取出内存中某时刻的数据并在当下时刻比较并替换,那么在这个时间差类会导致数据的变化。
如说一个线程one从内存位置V中取出A,这时候另一个线程two也从内存中取出A,并且线程two进行了一些操作将值变成了B,然后线程two又将V位置的数据变成A,这时候线程one进行CAS操作发现内存中仍然是A,然后线程one操作成功。
尽管线程one的CAS操作成功,但是不代表这个过程就是没有问题的。
解决方案
Java 提供了一个 AtomicStampedReference 原子引用变量

14.列举一下你了解的数据结构

栈、堆、队列、树、图、数组、哈希表、链表

15.队列的特点

  • 先进先出(FIFO):队列中的元素按照它们进入队列的顺序进行处理。也就是说,先进入队列的元素先被处理,后进入队列的元素后被处理。
  • 只能在队首删除元素,只能在队尾添加元素:队列的操作只能在队首和队尾进行。在队首删除元素,队尾添加元素。

16.Java中的队列

Java中提供了多种队列实现,其中常用的有以下几种:

  1. LinkedList:LinkedList是Java中的一个双向链表实现,也可以用来实现队列。在LinkedList中,队列的头部对应链表的头部,队列的尾部对应链表的尾部。因此,可以使用LinkedList来实现一个FIFO队列。

  2. ArrayDeque:ArrayDeque是Java中的一个双端队列实现,也可以用来实现队列。在ArrayDeque中,队列的头部对应数组的第一个元素,队列的尾部对应数组的最后一个元素。因此,可以使用ArrayDeque来实现一个FIFO队列。

  3. PriorityQueue:PriorityQueue是Java中的一个优先队列实现,它可以根据元素的优先级进行排序。在PriorityQueue中,元素的优先级由元素的自然顺序或者Comparator指定。因此,可以使用PriorityQueue来实现一个按照优先级排序的队列。

  4. BlockingQueue:BlockingQueue是Java中的一个阻塞队列接口,它提供了多种阻塞操作,例如put、take等。在多线程环境下,BlockingQueue可以用来实现线程间的通信。

这些队列实现都是线程安全的,可以在多线程环境下使用。选择哪种队列实现取决于具体的需求,例如是否需要排序、是否需要阻塞等。

17.LinkedList和ArrayList的区别是什么

ArrayList

  • 基于数组,需要连续内存
  • 随机访问快(指根据下标访问)
  • 尾部插入、删除性能可以,其它部分插入、删除都会移动数据,因此性能会低
  • 可以利用 cpu 缓存,局部性原理

LinkedList

  • 基于双向链表,无需连续内存
  • 随机访问慢(要沿着链表遍历)
  • 头尾插入删除性能高
  • 占用内存多

18.二叉树有什么特点

二叉树的特性就是每个节点的子结点不允许超过两个。
二叉树的特点使得它非常适合这些场景,因为它可以方便地表示层次关系,并且可以进行快速的查找、插入和删除操作。

19.二叉树有什么缺点,有什么数据结构可以解决这个问题

二叉树的主要缺点是可能会退化成链表,这种情况下,二叉树的查找、插入和删除操作的时间复杂度会退化为O(n),其中n是节点的数量。这种情况下,二叉的性能会变得非常差,因为它失去了平衡性。
为了解决这个问题,有平衡二叉树,例如AVL树、红黑树等。

20.平衡二叉树有什么特点

  • 平衡二叉树是一种特殊的二叉树,它保证了左右子树的高度差不超过1,从而保证了树的平衡性
  • 平衡二叉树的查找、插入和删除操作的时间复杂度都是O(log n),其中n是节点的数量。因此,平衡二叉树比普通的二叉树更加高效。

21.Java中有哪些平衡二叉树的应用例子

  • TreeMap:TreeMap是Java中的一种基于红黑树实现的有序映射表,它可以根据键的自然顺序或者自的比较器进行排序。TreeMap的查找、插入和删除操作的时间复杂度都是O(log n),其中n是元素的数量。
  • TreeSet:TreeSet是Java中的一种基于红黑树实现的有序集合,它可以根据元素的自然顺序或者自定义的比较器进行排序。TreeSet的查找、插入和删除操作的时间复杂度都是O(log n),其中n是元素的数量。

22.简单介绍一下tcp的三次握手和四次挥手

TCP协议
保证传输过程的三个关键的步骤,分别为三次握手、传输确认、四次挥手。
三次握手
在这里插入图片描述
三次握手是建立连接的过程,当客户端向服务端发起连接时,会先发一包连接请求数据,过去询问一下,能否与你建立连接,这包数据我们称之为SYN包。如果对端同意连接,则回复一包SYN+ACK包,客户端收到之后回复一包ACK包连接建立。
因为这个过程中互相发送了三包数据,所以称之为三次握手。
Q:为什么要三次握手,而不是两次握手,服务端回复完SYN+ACK包之后就建立连接
A:这是为了防止因为已失效的请求报文突然又传到服务器引起错误。解决网络信道不可靠的问题
如果没有第三次握手告诉服务器端客户端收的到服务器端传输的数据的话,服务器端是不知道客户端有没有接收到服务器端返回的信息的。服务端就认为这个连接是可用的,端口就一直开着,等到客户端因超时重新发出请求时,服务器就会重新开启一个端口连接。
这样一来,就会有很多无效的连接端口白白地开着,导致资源的浪费。
在这里插入图片描述
还有一种情况是已经失效的客户端发出的请求信息,由于某种原因传输到了服务器端,服务器端以为是客户端发出的有效请求,接收后产生错误。
在这里插入图片描述
Q:为什么不是四次握手?
A:因为通信不可能100%可靠,而上面的三次握手已经做好了通信的准备工作,再四次握手,并不能显著提高可靠性,而且也没有必要。
数据传输
在这里插入图片描述
经过三次握手之后,客户端和服务端都进入了数据传输状态。tcp协议需要在不可靠的信道上保证可靠的连接。现在就有几个问题需要面对:1. 一包数据有可能被拆成多包发送,如何处理丢包问题 ;2. 这些数据包到达的先后顺序不同,如何处理乱乱序问题。

针对以上的要求,TCP协议为每一个连接建立了一个发送缓冲区,从建立链接后的第一个字节的序列号为0,后面每个字节的序列号就会增加1。发送数据时,从发送缓冲区,取一部分数据组成发送报文,在其tcp协议头中会附带序列号和长度,接受端在收到数据后,需要回复确认报文。确认报文中的ACK,等于接收序列号加长度,也就是下一包数据需要发送的起始序列号。

这样一问一答的发送方式,能够使发送端确认发送的数据已经被对方收到,发送端也可以一次发送连续多包数据,接收端只需要回复一次ACK就可以了,这样发送端可以把待发送的数据分割成一系列的碎片,发送到对端。对端根据序列号和长度,在接受后重构出来完整的数据,假设其中丢失了某些数据包,在接收端可以要求发送端重传。比如丢失了100-199,这100个字节,接收端向发送端发送ACK = 100 报文,发送端收到后重传这一包数据,接受端进行补齐。

以上过程不区分客户端和服务端,TCP连接是全双工的,对于两端来说均采用上述机制。

四次挥手
处于连接状态的客户端和服务端都可以发起关闭连接请求,此时需要四次挥手来进行连接关闭。

1.假设客户端主动发起连接关闭请求,他需要将服务端发起一包FIN包,表示要关闭连接,自己进入终止等待1状态,这是第一次挥手。

2.服务端收到FIN包,发送一包ACK包,表示自己进入了关闭等待状态,客户端进入终止等待2状态,这是第二次挥手。

3.服务端此时还可以发送未发送的数据,而客户端还可以接收数据,待服务端发送完数据之后,发送一包FIN包,进入最后确认状态,这是第三次挥手。

4.客户端收到之后回复ACK包,进入超时等待状态,经过超时时间后关闭连接,而服务端收到ACK包后,立即关闭连接,这是第四次挥手。

Q:为什么客户端需要等待超时时间?
A:为了保证对方已收到ACK包,因为假设客户端发送完最后一包ACK包后就释放了连接,一旦ACK包在网络中丢失,服务端将一直停留在最后确认状态;如果客户端发送最后一包ACK包后,等待一段时间,这是服务端会因为没有收到ACK包会重发FIN包,客户端会响应这个FIN包重发ACK包并刷新超时时间。这个机制跟三次握手一样,也是为了保证在不可靠的网络链路中进行可靠的连接断开确认。

23.Linux哪个命令是用来发送请求的

curl的使用示例:

curl http://example.com/api

这个命令会发送一个GET请求到http://example.com/api,并且输出响应内容到控制台。
如果需要发送POST请求,可以使用-d参数来设置请求体:

curl -d "param1=value1&param2=value2" http://example.com/api

这个命令会发送一个POST请求到http://example.com/api,并且设置请求体为param1=value1&param2=value2。

24.spring中事务的隔离级别有几种

  • DEFAULT:使用数据库默认的隔离级别,以连接的数据库的事务隔离级别为准;
  • READ_UNCOMMITTED:最低的隔离级别,允许读取未提交的数据变更,可能导脏读、不可重复读和幻读问题。
  • READ_COMMITTED:允许读取已提交的数据变更,可以避免脏读问题,但是可能会出现不可重复读和幻读问题。
  • REPEATABLE_READ:保证同一事务中多次读取同一数据时,结果始终一致,可以避免脏读和不可重复读问题,但是可能会出现幻读问题
  • SERIALIZABLE:最高的隔离级别,强制事务串行执行,可以避免脏读、不可重复读和幻读问题,但是会影响并发性能。

25.spring的两大特性是什么

IOC
IOC—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想。在Java开发中,IOC意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制。
AOP
面向切面编程,用于将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取公共模块复用,降低耦合。

26.MySQL索引可以提升查询性能,那索引是越多越好吗

不是的,索引并不是越多越好。虽然索引可以提升查询性能,但是过多的索引会带来以下几个问题:

  1. 索引占用磁盘空间。每个索引都需要占用一定的磁盘空间,如果过多的创建索引,会导致磁盘空间的浪费。

  2. 索引会影响写操作的性能。每次对表进行插入更新或删除操作时,都需要更新索引,如果过多的创建引,会导致写操作的性能下降。

  3. 索引会增查询优化器的负担。查询优化器需要考虑多个索引的选择,如果过多的创建索引,会增加查询优化器的负担,导致查询性能下降。

  4. 索引会增加查询的复杂度。每个索引都需要维护一定的数据结构,如果过多的创建索引,会增加查询的复杂度,导致查询性能下降。

因此,在创建索引时,需要根据具体的业务场景进行选择,只创建必要的索引。一般来说,可以根据以下几个原则来选择创建索引的列:

  1. 频繁作为查询条件的列。

  2. 用于连接表的外键列。

  3. 频繁作为排序条件的列。

  4. 频繁作为分组条件的列。

需要注意的是,虽然索引可以提升查询性能,但是过多的创建索引也会带来一些问题。因此,在创建索引时,需要根据具体的业务场景进行选择,只创建必要的索引。

27.索引使用过程中什么情况会失效

  • 1.最佳左前缀法则
    结论:过滤条件要使用索引必须按照索引建立时的顺序,依次满足,一旦跳过某个字段,索引后面的字段都无法被使用。
  • 2.计算、函数导致索引失效
  • 3.范围条件右边的列索引失效
  • 4.不等于(!= 或者<>)索引失效
  • 5.is not null无法使用索引,is null可使用索引
  • 6.like以通配符%开头索引失效

28.MySQL如果想查最大的一行怎么查,比如要查id最大的那一行

SELECT * FROM table_name ORDER BY id DESC LIMIT 1;

29.limit后面接两个数字,那两个数字分别是什么意思

第一个数字表示返回结果的起始位置,第二个数字表示返回结果的数量。

SELECT * FROM table_name LIMIT 20, 10;

这个查询语句表示返回table_name表中从第21行开始的10行数据。

30.现在如果有一个字符串是驼峰命名的,怎么转化为下划线命名

String camelCaseString = "camelCaseString";
String underScoreString = camelCaseString.replaceAll("([a-z])([A-Z]+)", "$1_$2").toLowerCase();
System.out.println(underScoreString);

31.怎么样把字符串所有的字符倒过来

在Java中,可以使用StringBuilder类的reverse方法将字符串中的所有字符倒过来。具体来说,可以使用以下代码实现:

String originalString = "Hello, world!";
StringBuilder reversedString = new StringBuilder(originalString).reverse();
System.out.println(reversedString);

执行以上代码的结果为:

!dlrow ,olleH

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

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

相关文章

5分钟梳理银行测试,文末附带实战项目

很多银行招聘都要求有相关从业经验&#xff0c;这对于想跨入这个岗位的0经验从业同学可真犯了难 “你都不让我上岗&#xff0c;我哪来的工作经验呢&#xff1f;” 为了解决这个问题&#xff0c;小柠檬整理了本篇文章&#xff0c;从3个方面介绍银行项目是如何进行测试的 银行…

springboot---IoC 和 AOP

目录 引语IoC传统开发模式的弊端控制反转和依赖注入 AOP面向对象的局限性面向切面编程 总结 引语 Inversion of Control&#xff0c;缩写为IoC&#xff1a;控制反转 Aspect-oriented programming&#xff0c;缩写为AOP&#xff1a;面向切面编程 IoC和AOP是spring框架最核心的…

VMware Workstation 与 Device/Credential Guard 不兼容.在禁用 Device/Credenti

这个时候我们需要去关掉几个功能 1、关闭Hyper-V 打开控制面板首页&#xff0c;找到“程序”&#xff0c;然后找到“启用或关闭Windows功能”&#xff0c;找到“Hyper-V”&#xff0c;有勾中的全部都取消掉&#xff0c;如果这一步操作失败&#xff0c;不要紧&#xff0c;继续…

使用马哈鱼SQLFlow分析聚合函数中的数据流列

聚合函数通常将列作为参数&#xff0c;在本文中&#xff0c;我们将讨论在用作函数参数的列和聚合函数之间创建什么样的数据流。 1. COUNT() COUNT()可以采用COUNT()&#xff0c;也可以采用任何列名&#xff0c;甚至可以采用空参数。如果参数为空或为列&#xff0c;则参数和函…

DatenLord前沿技术分享 No.25

达坦科技专注于打造新一代开源跨云存储平台DatenLord&#xff0c;通过软硬件深度融合的方式打通云云壁垒&#xff0c;致力于解决多云架构、多数据中心场景下异构存储、数据统一管理需求等问题&#xff0c;以满足不同行业客户对海量数据跨云、跨数据中心高性能访问的需求。在本周…

【已解决】使用Arduino调试ARM时编译错误error: ordered comparison of pointer with integer zero的解决方法

在使用Arduino的资源库对STM32编程时&#xff0c;出现&#xff1a; error: ordered comparison of pointer with integer zero (byte* {aka unsigned char*} and int) 编译错误的解决方法。 Arduino因其开源和易用性&#xff0c;丰富的三方资源&#xff0c;受到很多人的喜欢…

Android无线调试

1、首先在系统环境变量——》新建——》"ANDROID_ADB_SERVER_PORT"&#xff0c;值&#xff1a;手机的端口号 2、通过adb kill-server&#xff0c;adb start-server&#xff0c;重启abd 3、最后使用&#xff1a;adb connect ip:port&#xff08;如&#xff1a;192.16…

【SpringBoot】SpringBoot 纯后端项目如何自定义异常页面(Whitelabel Error Page)

文章目录 背景安排方案步骤 验证 背景 一个短链服务&#xff0c;业务将长链接给我&#xff0c;我转换成短地址&#xff0c;用户访问短地址时&#xff0c;我再做redirect&#xff1b;没有前端&#xff0c;纯后端项目短链会有过期时间&#xff0c;过期后将返回错误信息某一天一个…

GPT 专业应用:如何让GPT策划方案

身为一名职场打工人&#xff0c;或多或少会面临需要写策划案的难题。 不管是策划一场线下活动&#xff0c;还是策划业务发展的方向&#xff1b; 甚至到生活中还需要策划婚礼&#xff0c;策划房屋装修&#xff0c;策划和朋友的聚会等等。那么如何快速积累经验&#xff0c;找准…

JavaScript全解析——Ajax教程(上)

AJAX 是Asynchronous JavaScript And XML的缩写。 它不是一种编程语言。它是一种基于HTML、CSS、JavaScript 和 XML&#xff0c;让开发更好、更快和更有互动的 Web 应用的技术。 什么是ajax 认识前后端交互 前后端交互就是前端与后端的一种通讯方式&#xff0c;主要使用的技…

关于一个C++项目:高并发内存池的开发过程(二)

文章目录 内存释放操作的总述thread cachecentral cachepage cachecentral cache的TODO实现何时维护这张映射表&#xff1f; tc_dealloc的修改申请大内存的适配写在最后 上篇文章梳理了内存申请操作的流程&#xff0c;大概测试了一下&#xff0c;没有发现什么问题。这篇文章将梳…

Simulink 自动代码生成电机控制:软件在环测试(SIL)步骤总结

目录 前言 模型配置 SIL模型生成 模型仿真对比 总结 前言 电机模型仿真可以叫做模型在环测试&#xff08;MIL&#xff09;&#xff0c;至于SIL就是软件在环仿真测试&#xff0c;说白了就是验证生成的代码有没有问题&#xff0c;如果有问题那在模型里面修复&#xff0c;不要…

点餐小程序实战教程05-点餐功能开发

目录 1 点餐需求分析2 变量定义3 点餐分类功能实现4 菜品展示功能开发5 实现切换分类时过滤数据总结我们上一篇设计了点餐分类及点餐信息数据源的功能,本篇我们介绍一下如何开发点餐功能。 1 点餐需求分析 看一下页面是分为两部分,左侧是侧边栏导航,用来展示点餐的分类信息。…

论文解读 | 《基于采样的MPC控制的约束视觉》

原创 | 文BFT机器人 引言 Introduction 视觉伺服控制方案&#xff0c;如基于图像的(IBVS)&#xff0c;基于姿态的(PBVS)或基于混合的(HBVS)&#xff0c;在过去的几十年里得到了广泛的发展。众所周知&#xff0c;要处理的主要问题涉及局部极小点或奇异点的存在、可见性约束、联合…

缺少ssl模块

nginx采用源码安装方式 1、 查看是否有模块&#xff0c;如下没有 /usr/local/nginx/sbin/nginx -V1.1、 备份nginx配置文件 cp -a nginx.conf nginx.conf.bak2、 进nginx安装包目录 ./configure --prefix/usr/local/nginx --with-http_stub_status_module --with-http_ssl_mo…

将 NGINX 部署为 API 网关

现代应用架构的核心是 HTTP API。HTTP 支持快速构建和轻松维护应用。HTTP API 提供了一个通用接口&#xff0c;因此不必考虑应用的规模大小&#xff0c;无论是单独用途的微服务还是大型综合应用。 HTTP 不仅可以支持超大规模互联网&#xff0c;也可用于提供可靠和高性能的 API …

解决一个诡异的java空指针问题的案例

最近在看java类加载器的资料&#xff0c;于是写了一个自定义类加载器测试一下&#xff0c;结果就悲剧了&#xff0c;直接报空指针&#xff01; 跟着报错指引看代码37行是什么东东&#xff1f; 就是一个inputStream, 然后看看它的定义&#xff1a; 这玩意就是从classpath读取cla…

html实现一个一闪一闪的按钮,CSS实现一个一闪一闪的按钮,Css闪烁点标,css设置按钮层次感,css按钮美化,CSS按钮动画过渡,CSS按钮添加阴影

效果 动态 静态 实现 底部多加了几个过渡按钮 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><style>#app {margin: 2% auto;text-align: center;}.lay-btn-box {position: relative;display: …

【达梦数据库】达梦数据库windows安装

目录 1.选择语言与时区 2.安装向导 3.许可证协议 4.验证 Key 文件 5.选择安装组件 6.选择安装目录 7.目录确认 8.开始安装 9.安装过程 10.安装完成 11.创建数据库实例 12.创建数据库模板 13.数据库目录 14.数据库标识 15.数据库文件 16.初始化参数 17.口令管理…

VoxelNeXt:用于3D检测和跟踪的纯稀疏体素网络

VoxelNeXt:Fully Sparse VoxelNet for 3D Object Detection and Tracking 目前自动驾驶场景的3D检测框架大多依赖于dense head&#xff0c;而3D点云数据本身是稀疏的&#xff0c;这无疑是一种低效和浪费计算量的做法。我们提出了一种纯稀疏的3D 检测框架 VoxelNeXt。该方法可以…