标签: 踩坑记录 (29)
工具类使用问题汇总 有更新!
工具类使用问题 一、Optional.ofNullable如果值为空集合[],则Optional.ofNullable(value).isPresent()返回true 是的,如果将一个空集合 [] 作为参数传递给 Optional.ofNullable() 方法进行包装,则会返回一个包含空集合的 Optional 对象,而不是一个空的 Optional 对象。 这是由于在 Java 中,空集合 [] 并不等同于 null 值,而是一个长度为 0 的数组。因此,当将空集合 [] 传递给 Optional.ofNullable() 方法时,该方法会将其视为一个非空值,并返回一个包含该空集合的 Optional 对象。 下面是一个示例代码,展示了如何使用 Optional.ofNullable() 对空集合进行包装: java List<String> list = new ArrayList<>(); Optional<List<String>> optional1 = Optional.ofNullable(list); // 包装空集合....
Mybatis Plus使用问题汇总 有更新!
Mybatis Plus使用问题 一、用mybatis plus查询,mysql查询String类型字段a在集合List b中的所有数据 使用 MyBatis Plus 进行 MySQL 查询,可以通过使用 in 关键字和 List 参数来实现查询字符串类型字段在给定集合中的所有数据。下面是一个示例代码: import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @Service public class YourService { @Autowired private YourMapper yourMapper; public List<YourEntity> queryDataInList(List<String> li....
JDK问题汇总 有更新!
JDK问题 一、jdk32编译后的代码和jdk64编译后的代码是否不同 在Java环境中,JDK 32位和JDK 64位是不同的软件包,分别提供了对应平台的编译器、工具和运行时库等。因此,使用JDK 32位编译的代码和使用JDK 64位编译的代码在二进制上是有区别的,不能通用。 具体而言,由于32位和64位平台的CPU架构不同,对于编译后的目标代码而言,它们所使用的指令集也会有所不同。这就意味着,使用32位编译器编译出来的代码不能直接在64位平台上运行,也不能够充分利用64位处理器所提供的特性和性能优势。同样地,使用64位编译器编译出来的代码也不能在32位平台上运行。 因此,如果需要在不同平台上运行Java程序,通常需要根据不同平台提供对应的JDK版本,并使用对应平台的编译器进行编译。同时,在跨平台应用开发中还可以采用一些工具或框架,如Apache Maven或Gradle等,使得在不同平台下进行编译和打包变得更加便捷。
内网穿透问题汇总 有更新!
内网穿透问题汇总 一、使用nginx反向代理可以实现内网穿透吗 使用nginx反向代理可以实现内网穿透,因为nginx的反向代理功能可以将客户端的请求转发到内网的某个服务上,并将响应返回给客户端,从而使得外部用户可以通过Internet访问内网中的服务。这种方式通常被用于企业内部网站、应用程序、数据库等资源的外部访问,也可以用于个人电脑中搭建的服务器的外部访问。但是需要注意,要确保nginx和内网服务两者之间的通信是安全的,以免遭受网络攻击和数据泄露。 如何使用nginx反向代理实现内网穿透?如果内网IP是192.168.0.99,如何外网访问? 要使用nginx反向代理实现内网穿透,需要按照以下步骤操作: 在部署有nginx的服务器上配置反向代理。可以书写一个类似下面的nginx配置文件,将外部访问IP(比如202.101.100.99)与内部服务的IP和端口(比如192.168.0.99:8080)映射起来。 server { listen 80; server_name yourdomain.com; location / { proxy_pass http://192.168.....
Vue使用问题 有更新!
Vue使用问题 一、前端Vue,后端Java,前后端分离情况下,后端如何控制跳转到指定前端页面 在前后端分离的情况下,后端并不负责前端页面的展示,而是提供API接口来供前端调用。所以后端不会控制跳转到指定前端页面。 一种常见的解决方案是前端使用Vue Router这样的路由工具进行页面跳转,并监听路由变化发起相应的API请求,后端则根据请求参数进行相应的处理并返回数据。前端再根据数据进行页面渲染。 如果需要在后端直接控制跳转到指定前端页面,可以考虑在后端渲染HTML模板并将相关路由信息传递给前端,让前端根据这些信息进行相应的页面跳转。但是这样的实现方式并不推荐,违背了前后端分离的原则。 二、前端如何自己快速模拟数据或是否有工具 前端开发过程中,我们通常需要模拟数据来进行页面的展示和功能的测试,以及在后端接口还未完全开发完成的情况下可以先进行前端的开发。以下是一些前端模拟数据的方法和工具: 1.手动模拟数据:手动写一些 JSON 格式的数据,比较适用于数量较小的数据模拟。如: { "name": "张三", "age": 18, "gender": "male" } 2.Mock.js....
Nacos问题汇总 有更新!
Nacos问题汇总 一、启动 windows: startup.cmd -m standalone -m : 启动模式 standalone : 单机启动 (还有集群启动方式)
算法问题汇总 有更新!
算法问题汇总 一、当两个不同的数经过哈希函数计算后得到了同一个结果,即他们会被映射到哈希表的同一个位置时,即称为发生了哈希冲突。那么两个相同的数计算后结果应该如何呢 在使用哈希函数时,如果两个不同的数经过计算后得到了相同的哈希值,我们称之为哈希冲突。哈希冲突是一种常见现象,因为哈希函数通常是将一个任意长度的输入映射到固定长度的输出,很难避免。 而无论是两个不同的数还是两个相同的数,当它们经过哈希函数计算后得到的结果相同时,都会被映射到哈希表的同一个位置上,即存储在同一个桶中。这也是哈希函数在处理数据时可靠性的一个重要保证:相同的输入总是会得到相同的输出。 在哈希表中,发生哈希冲突时,通常会采用开放地址法或链式法来解决。其中,开放地址法是指继续寻找哈希表中未被占用的位置来存储冲突的元素,而链式法则是在哈希表每个位置上维护一个链表,将哈希值相同的元素存储在同一个链表中。 总之,哈希冲突是一种常见的现象,但是通过合适的解决方案,我们可以在哈希表中高效地存储和查找数据。 二、使用bitmap实现千万数据去重 使用位图(Bitmap)数据结构可以高效地进行千万级别的数据去重操作。下面是详细的思路....
架构设计问题 有更新!
架构设计问题 一、EJB模型和COM+模型 EJB(Enterprise JavaBeans)模型和COM+(Component Object Model Plus)模型是两种不同的分布式组件技术,用于开发企业级应用程序。它们在不同的平台上有不同的实现方式和特点。 EJB模型: EJB是一种基于Java语言的分布式对象模型,用于构建企业级应用程序。 EJB提供了一种将应用程序逻辑封装为可复用组件的方式,这些组件可以在分布式环境中部署和执行。 EJB通过定义接口和实现类的方式来描述组件,提供了事务管理、安全性、并发控制等功能。 EJB组件可以部署在EJB容器中,由容器负责提供生命周期管理、事务管理、线程管理等服务。 EJB模型主要用于Java EE(Enterprise Edition)平台,支持跨平台和跨语言的互操作性。 COM+模型: COM+是一种面向对象的分布式组件技术,最初由微软提出,用于构建Windows平台上的应用程序。 COM+扩展了COM(Component Object Model)模型,提供了更多的功能和服务,例如事务处理、安全性、对象池等。 COM+组件可以用多种....
Bat常用脚本文件合集 有更新!
Bat常用脚本文件合集 一、netstat -ano | findstr <端口号> taskkill /F /PID <进程ID> 使用上述两条命令在windows 10系统上强制关闭65425、65450、65401、65400、65500、65430这些端口 可以使用以下的bat文件脚本内容来强制关闭指定端口的进程: @echo off set ports=65425 65450 65401 65400 65500 65430 for %%p in (%ports%) do ( echo Killing processes on port %%p... for /f "tokens=5" %%a in ('netstat -ano ^| findstr "%%p"') do ( echo Taskkill /F /PID %%a taskkill /F /PID %%a ) ) echo All specified processes have been terminated. 将以上内容保存为一个扩展名为.bat的文件,然后在Windows 10系统上....