存档: 2023 年 11 月 (64)
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.....
权限问题.汇总 有更新!
权限问题 一、有哪些java框架可以实现对实体类中通过注解实现不同用户角色对字段的增删查改精细化控制 在Java开发中,有几个常见的框架可以实现对实体类中通过注解实现不同用户角色对字段的增删查改精细化控制。以下是其中一些常用的框架: Spring Security:Spring Security是一个功能强大的安全框架,可以用于认证和授权。它提供了一套丰富的注解和配置选项,可以实现对不同角色或权限的精细化访问控制。 Apache Shiro:Apache Shiro是另一个流行的Java安全框架,提供了易于使用的身份验证、授权、加密和会话管理等功能。Shiro允许通过注解或编程方式进行细粒度的授权控制。 Spring Data JPA:Spring Data JPA是Spring框架的一个子项目,可以简化与数据库的交互。通过使用Spring Data JPA的@Query注解,你可以编写自定义查询方法,并且可以根据用户的角色或权限对查询结果进行过滤。 Hibernate Envers:Hibernate Envers是一个用于审计和版本控制的框架。它可以记录实体类的历史变更,并且支持根....
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系统上....
RestAPI与RPC 有更新!
Rest API与RPC REST API 和 RPC(Remote Procedure Call,远程过程调用)是两种常见的网络通信协议,它们有以下几点区别: 架构风格:REST 是一种基于客户端/服务器模型、无状态、可缓存的架构风格,而 RPC 是一种传统的客户端/服务器模型。 数据交换格式:REST API 通常使用 JSON 或 XML 格式来交换数据,而 RPC 可以使用多种数据格式,例如二进制流、JSON、XML 等。 接口设计:REST API 的接口设计通常基于资源,使用 HTTP 方法(GET、POST、PUT、DELETE 等)来对资源进行操作,而 RPC 的接口设计通常基于方法调用,使用类似于函数调用的方式来实现远程过程调用。 通信方式:REST API 通常基于 HTTP 协议实现,支持多种 HTTP 方法和状态码,而 RPC 可以使用多种传输协议,例如 TCP、UDP、HTTP、WebSocket 等。 总的来说,REST API 更加灵活和通用,可以使用多种编程语言和平台实现,而 RPC 更加高效和专用,通常用于内部系统之间的通信。选择何种协议应该基于实际需....
AMQP与MQTT选型 有更新!
AMQP与MQTT选型 一、AMQP优点缺点适用场景 AMQP(Advanced Message Queuing Protocol)和MQTT(Message Queuing Telemetry Transport)都是消息队列协议,用于在分布式系统中传输数据。它们各有优缺点和适用场景。 下面是它们的比较: AMQP 优点 支持广泛的消息模型,包括点对点、发布/订阅、请求/响应等。 支持事务、消息确认和持久化。 支持多种编程语言和客户端库。 可以提供更高级的可靠性和安全性,例如消息加密、身份验证和授权。 缺点 复杂性较高,学习曲线较陡。 需要更高的服务器资源。 不适合对延迟敏感的应用。 适用场景 需要高度可靠性和安全性的应用,例如金融、医疗等领域。 需要支持多种消息模型的应用,例如实时消息、任务处理等。 不需要快速响应的场景,例如数据采集、批处理等。 MQTT 优点 轻量级,协议头较小,适用于低带宽和高延迟的网络环境。 客户端资源消耗较少,可以在嵌入式系统上使用。 支持发布/订阅模型,可以实现实时数据传输。 适合在移动设备和传感器网络中使用。 缺点 不支持事务、消息确认和持久化。 不支....
modbus RTU与modbus http区别与适用场景 有更新!
modbus RTU与modbus http区别与适用场景 Modbus RTU和Modbus HTTP都是Modbus通信协议的变种,但它们在传输方式、通信协议和应用场景上有所不同。 Modbus RTU是一种基于串口通信的Modbus协议,它使用二进制编码格式在设备之间传输数据。它通常被用于连接工业自动化设备,如PLC(可编程逻辑控制器)和传感器。 Modbus RTU协议适用于需要快速和可靠的数据传输的环境,因为它具有较低的传输延迟和较小的数据包大小,可节省通信带宽。 Modbus HTTP是一种基于互联网通信的Modbus协议,它使用HTTP协议在设备之间传输数据。它通常被用于连接远程设备,如智能家居、监控系统和远程测量设备。 Modbus HTTP协议适用于需要远程数据采集和管理的环境,因为它可以通过互联网进行远程数据访问,并且支持RESTful API的Web服务接口。 因此,Modbus RTU和Modbus HTTP都有其独特的优点和适用场景。选择适当的协议取决于具体应用场景和要求。 串口通信与互联网通信 串口通信和互联网通信是两种不同的通信方式,它们各自有其独特的优缺....
ES 有更新!
ES 一、简介 The Elastic Stack,包括Elasticsearch(存储搜索数据)、Kibana、Beats和Logstash(也称为ELK Stack)。能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。Elasticsearch,简称ES,ES是一个开源的高扩展的分布式全文搜索引擎,是整个Elastic Stack技术栈的核心。它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。 存储jsonES好 存储其他格式solar较好
网络编程基础 有更新!
Netty 一、NIO基础(Non-blocking io 非阻塞IO) 1、三大组件 【管道、缓冲区、选择器】 1、1 Channel & Buffer channel 类似于stream,它是读写数据的双向通道,可以从channel将数据读入buffer,也可以将buffer中数据写入channel,而之前的stream要么是输入,要么是输出,channel比stream更为底层 常见的channel有: FileChannel 【作为文件传输通道】 DatagramChannel 【做UDP网络传输时传输通道】 SocketChannel 【做TCP时传输通道】 ServerSocketChannel 【做TCP时传输通道 专用服务器】 buffer则用来缓冲读写数据,常见的buffer有 ByteBuffer 【抽象类】 MappedByteBuffer 【实现类】 DirectByteBuffer HeapByteBuffer ShortBuffer IntBuffer LongBuffer FloatBuffer DoubleBuffer 1、2 Selector ....
Netty基础 有更新!
Netty 一、Netty入门 1.1 概述 Netty是一个异步的(这里异步主要指通过多线程完成方法调用和处理结果相分离(因为如果调用方法的线程和接收数据的线程是同一个,那么意味着是同步)指调用时的异步,不是异步IO)、基于事件驱动(即底层多路复用selector)的网络应用框架,用于快速开发可维护、高性能的网络服务器和客户端 1.2 Hello Word //客户端向服务器发送HW,服务器接收不返回 /** * 服务端 */ public class HelloServer{ public static void main(String[] args){ // 1.服务启动器,负责组装netty组件,启动服务器 new ServerBootstrap() // 2.NIO基础部分有用到BossEventLoop, WorkerEventLoop(selector, thread), group组 EventLoop包含了线程和选择器 .group(new NioEventLoopGroup()) // 3.选择服务器的ServerSocketChannel实现 .channel(N....
Netty进阶 有更新!
Netty进阶 一、黏包与半包 1.1 黏包现象 /** * 服务端 */ @Slf4j public class HelloWorldServer{ void start(){ NioEventLoopGroup boss = new NioEventLoopGroup(); NioEventLoopGroup worker = new NioEventLoopGroup(); try{ ServerBootstrap serverBootstrap = new ServerBootstrap(); serverBootstrap.channel(NioServerSocketChannel.class); // 将接收缓冲区调小些观察半包现象 serverBootstrap.option(ChannelOption.SO_RCVBUF, 10); serverBootstrap.group(boss, worker); serverBootstrap.childHandler(new ChannelInitializer<SocketChannel>(){ @Overr....
Golang 有更新!
Golang 一、 1、方向 区块链、 服务端(美团后台流量支撑(排序,推荐,搜索……),提供负载均衡,cache,容错,按条件分流,统计运行指标(qps\latency等),数据处理,大并发)、 分布式/云计算(CDN、消息推送服务、分布式文件系统) 2、优势、特点
6复杂系统论 有更新!
复杂系统 大量个体聚集之后 通过个体简单运作 产生群体复杂行为 并能通过进化产生适应性 一种系统 复杂性科学 运用跨学科方法 研究不同复杂系统之中的 涌现行为和统一性规律 迭代 闭环【工程/复杂系统】 迭代不要追求完美,尽快交付,然后闭环,然后不断改进复盘。再交付闭环复盘。 互联网创业圈: 最小可用产品【Minimum Viable Product】 产品市场契合点【Product Market Fit】(版本迭代) 人的版本迭代不是一定向目标接近,更可能的是原地踏步甚至是版本回退。直到遇到了拐点及产品市场契合点,才会有次重大更新,版本升级。 精益创业
4峰谷 有更新!
黎明前的黑暗 OR 凛冬将至 不要在遇到挫折的时候 就退出朝阳赛道 一叶障目 不见泰山 不要因为短期看起来光鲜亮丽 就忽略了整体下降的大趋势 从哲学层面理解成长: Between stimulus and response there is a space. In that space is our power to choose our response. In our response lies our growth and our freedom. 刺激与回应之间存在一段距离 成长和幸福的关键就在那里 —— George Mumford 《Mindful Athlete》