Java 2024年面试总结(持续更新)
目录
最近趁着金三银四面了五六家公司吧,也整理了一些问题供大家参考一下(适合经验三年左右的)。
面试问题(答案是我自己总结的,不一定正确):
总结:
最近趁着金三银四面了五六家公司吧,也整理了一些问题供大家参考一下(适合经验三四年左右的)。
面试问题(答案是我自己总结的,不一定正确):
1.自我介绍简单一点吧,把自己的情况说清楚,一两分钟即可。
2.微服务的组件
答:微服务是把一个类似单体项目根据某种维度进行拆分,比如根据功能模块进行拆分。
拆分之后,具备了更好的抗压性/扩展性,还可以更好的解耦,但是维护相比之前会更麻烦了
常用的组件有Spring Cloud。其中里面有:
Nacos:用来做注册中心/配置中心
Gateway:用来做网关
Hystrx:做限流、熔断、降级
Dubbo:做服务间的调用
Feign:也是服务间的调用
3.mq的运用
答:本项目中是用作削峰和解耦。
4.项目的并发量
5.机器搭建
6.团队的规模
7.查询优化
答:索引
8.spring的知识点
9.@resource/@Autowired区别
答:(1)来源不一样:@Autowired 是 Spring 定义的注解,而 @Resource 是 Java 定义的注解
(2)依赖查找的顺序不同:依赖注入的功能,是通过先在 Spring IoC 容器中查找对象,再将对象注入引入到当前类中,
@Autowired 是先根据类型(byType)查找,如果存在多个 Bean 再根据名称(byName)进行查找
@Resource 是先根据名称查找,如果(根据名称)查找不到,再根据类型进行查找
(3)支持的参数不同:@Autowired 和 @Resource 在使用时都可以设置参数,其中 @Autowired 只支持设置一个 required 的参数,而 @Resource 支持 7 个参数
(4)依赖注入的用法不同:@Autowired 支持属性注入、构造方法注入和 Setter 注入,而 @Resource 只支持属性注入和 Setter 注入
(5)编译器 IDEA 的提示不同:@Autowired 编译器会提示报错信息
10.设计模式
答:单例模式、设配器模式、工厂模式、代理模式
11.单例模式如何避免线程安全以及应用场景
答:
单例模式在多线程的,应用场合下必须小心使用。如果当唯一实例尚未创建时,有两个线程同时调用创建方法,
那么它们同时没有检测到唯一实例的存在,从而同时各自创建了一个实例,这样就有两个实例被构造出来,从而违反了单例模式中实例唯一的原则。解决这个问题的办法是为指示类是否已经实例化的变量提供一个互斥锁(虽然这样会降低效率)。
应用场景:对象需要被公用的场合适合使用,如多个模块使用同一个数据源连接对象等等
12.设计模式里面的工程模式?
答:(1)简单工厂模式:建立一个工厂类,对实现了同一接口的一些类进行实例的创建。优点是比较好理解,简单易操作。
缺点是类的创建依赖工厂类,如果想要拓展程序,必须对工厂类进行修改
(2) 工厂方法模式:对简单工厂模式的改进,使用一个工厂接口,创建多个工厂类,每个工厂创建对应的对象。
创建一个工厂接口和创建多个工厂实现类,一旦需要增加新的功能,直接增加新的工厂类就可以了,
不需要修改之前的代码。有利于代码的维护和扩展。
(3) 抽象工厂模式:
MyBatis中使用的比较多,事务模块和数据源模块都使用了工厂方法模式。
13.代码review工作的重点
答:(1)代码规范:命名、格式、内容、位置(包结构)
(2)耦合、性能、内存
13.sql xml语句(实体字段和数据库怎么对应?)
14.修改表结构语句(mysql中change和modify 的区别)
答:ALTER TABLE `ry-cloud`.sys_user_role CHANGE role_id role_id1 bigint(20) NOT NULL COMMENT ‘角色ID’;
(1)change 可以更改列名 和 列类型 (每次都要把新列名和旧列名写上, 即使两个列名没有更改,只是改了类型)
(2)modify 只能更改列属性 只需要写一次列名, 比change 省事点15.数据库mvcc(多版本解决的是读写并发冲突)
答:是数据库的多版本并发控制,在读取数据不用加锁也可以提高读取效率和并发性的手段。
实现原理:一种读取操作, 使用数据在某个时间点的快照显示查询结果, 而不考虑同时运行的其他事务所执行的更改.
如果查询的数据已被另一个事务更改, 则会根据undo log的内容重建原始数据. 该技术避免了一些锁定问题,这些问题可以通过强制事务等待其他事务完成来减少并发性.
隐含字段:一个事务最新id,回滚的指针16.不用or,会导致索引失效,如何改造?
答:(1)代码层面查两次
(2)或者用UNION来代替17.数据库视图、序列化、存储过程
答:(1)数据库视图:数据库一个或多个表导出的虚拟表,方便用户对数据进行操作。视图的数据依赖原数据,二者会互相影响。
(2)数据库序列化:是将数据结构或者对象转换成字节流、json等方便去存储或者是传输。
(3)18.数据库的事务
19.分库分表
答:关系型数据库容易成为系统瓶颈,链接数量,存储容量都是有限的,超过1千万之后因其查询维度的较多,性能会下降严重。
(1)垂直切分:分库:根据业务不同拆成不同库;分表:把不常用的字段或者长度比较大的字段拆到另一张表(主键跟着走)。缺点:只能在代码里面去聚合,增加了其复杂度
(2)水平切分:库内分表、分库分表。将按照不同的条件分散到多个数据库或者多个表中,使单表数据量变小。缺点:维护难度加大、跨分片的事务不好保证20.事务不生效的原因
答:(1)方法不是public;(2)异常被方法吞掉了;(3)抛出异常类型大于@Transactional 默认回滚的是 RuntimeException 和 Error;(4)非同一个线程
21.jdk 1.8的新特性
答:Lambda表达式、Stream API、map数据结构优化
22.java8函数式接口,Functional Interface
答:函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。为lambda表达式和方法引用(用冒号::来进行方法的调用)提供目标类型
23.spring的知识点
24.aop底层
答:面向切面的编程,通过预编译和运行期间动态代理实现程序功能统一的技术。实现invocationHandle类则是JDK动态代理,否则是CGLib动态代理。
25.SpringCloud会出现那些安全问题
26…SpringBoot监听器
27.SpringBoot的优势以及创建方式
答:(1)主要是简化新spring应用的初始搭建和开发过程(使用IntelliJ IDEA,可以利用创建Spring Initializr的方式创建Spring Boot项目、
使用官方文档创建项目,在Spring官方文档上面提供了一种在线生成Spring Boot项目的方式、
使用Spring Tool Suite,可以直接新建Spring Starter Project项目)
(2)嵌入式Web容器、自动化配置、可执行Jar部署28.SpringCloud的配置文件
答:nacos或者阿波罗都可以。
29.springMVC(Model(模型)、View(视图)、Controller(控制器))
答:是一种软件设计规范,将业务逻辑、数据、显示分离的方法来组织代码,降低了视图和业务逻辑之间的耦合。
浏览器把请求放到试图层=控制器收到请求模型处理数据=返回视图=响应给浏览器
30.map的实现类
答:HashMap、TreeMap、
31.流的并行和串行
答:串行:Stream,并行:parallelStream(其底层使用Fork/Join框架实现,通过Fork把任务拆开,Join把结果进行合并)
32.环境切换(idea的设置)
答:spring.profiles.active====》VM options两处改动33.Java中的值传递和引用传递
答:(1)值传递(pass by value):在调用函数时,将实际参数复制一份传递到函数中,这样在函数中对参数进行修改,就不会影响到原来的实际参数;
(2)引用传递(pass by reference):在调用函数时,将实际参数的地址直接传递到函数中。这样在函数中对参数进行的修改,就会影响到实际参数;
个人认为:在一个类中调用其他方法,这个方法中如果是直接复制对象则是值传递,如果是在参数基础上改则是引用传递34.反射应用场景
答:(1)可以动态的加载类,并创建其实例。String className = “com.example.MyClass”;
Class<> clazz = Class.forName(className);
Object obj = clazz.newInstance();
(2)通过反射,我们可以在运行时动态地获取类的信息。这样就可以获取类的构造方法、字段、方法等信息,并进行相应的操作。35.异常处理,finaly里面的执行
答:(1)不管try中是否出现异常,finally块中的代码都会执行;
(2)当try和catch中有return时,finally依然会执行;
(3)finally中如果包含return,那么程序将在这里返回,而不是try或catch中的return返回,返回值就不是try或catch中保存的返回值了36.dubbo一次性数据量太大出现的情况
答:会出现Dubbo报错Data length too large;首先看这种大数据是不是符合双方约定的,如果是的话就去修改生产者xml payload参数,否则可以加一些限制。
37.throw 和 throws 的区别
答:throw代表动作,表示抛出一个异常的动作;
throws代表一种状态,代表方法可能有异常抛出throw用在方法实现中,而throws用在方法声明中;
throw只能用于抛出一种异常,而throws可以抛出多个异常
38.多线程锁
39.分布式锁原理
答:在多进程环境里面,通过外部的工具来达到加锁功能
40.redis的看门狗(在没有自定义释放时间才会生效)
答:是redission提供的自动延期机制,使得分布式锁可以自动延期,默认30秒。
41.分布式锁遇到的问题
答:(1)可能忘记了释放锁;(2)释放了别人的锁;(3)锁超时等问题
42.分布式锁的方式
答:redission、zk、数据库
43.线程池参数的设定
答:(1) IO 密集型任务:2*核心数+1
(2) CPU密集型任务:核心数+1
即使当计算(CPU)密集型的线程偶尔由于页缺失故障或者其他原因而暂停时,这个“额外”的线程也能确保 CPU 的时钟周期不会被浪费。
44.网络状态的含义:401等等
答:(1)401 Unauthorized:请求要求身份验证。客户端需要进行身份验证才能获取请求的内容。如果请求未包含有效的身份验证凭据,服务器可能返回此状态码。
(2)400 Bad Request:客户端发送的请求有错误。服务器不理解或无法处理客户端发送的请求。这可能是由于参数错误、缺少必要的信息或语法错误等引起的。
(3)403 Forbidden:服务器拒绝了客户端的请求。客户端没有访问请求的权限,无法获取请求的资源。
(4)404 Not Found:请求的资源不存在。服务器未能找到请求的资源。这可能是由于资源被删除或请求的 URL 错误等引起的。
(5)502 Bad Gateway:服务器作为网关或代理,从上游服务器接收到无效的响应。通常表示上游服务器发生了故障或响应超时。45.如何快速找到nginx目录
答:(1)在默认安装位置下查看,大多数一般会安装在默认位置下(/usr/local/openresty/nginx 或/usr/local/nginx)
(2)查看nginx进程(ps -aux|grep nginx)
(3)nginx运行进程,执行ls -l /proc/进程号/exe ,然后会打印出安装/运行位置46.docker
答:docker是一个开源的应用容器引擎,开发者可以把程序及其依赖项打包到一个可移值的镜像中,可以在任意的linux/Windows系统上运行
这些镜像。47.主从复制
48.jvm调优
49.Linux命令
50.消息中间件的原理(Kafka、Pulsar等等)以及项目运用情况
51.数据库死锁(互斥条件、请求与保持条件、不剥夺条件、循环等待条件)
答:两个或多个事务竞争资源导致互相等待称为死锁52.如何查看死锁
答:查看错误日志、使用命令:SHOW ENGINE INNODB STATUS53.死锁解决方法:
答:手动解决:回滚其中一个事务
设置锁等待超时时间让其自动解除54.如何避免死锁:
答:(1)避免大事务
(2)合理设计索引减少表扫描
(3)减少锁粒度55.vue的生命周期
答:(1)创建阶段:beforeCreate(进行数据侦听和事件/侦听器的配置之前同步调用),created(可以访问数据了)
(2)挂载阶段:beforeMount(dom马上被渲染),mounted(dom被渲染出来了)
(3)更新阶段:beforeUpdate(数据发送了变化,dom还没更新),updated(数据更改导致dom被更改)
(4)销毁阶段:beforeDestroy(实例销毁前的调用),destroyed(实例被销毁,vue指令被解除)56.vue如何防抖:
答:多次输入,只提交最后一次,主要思想就是定时器57.前端vue如何节流:
答:多次点击,只执行一次函数58.SpringBoot的自动装配
答:SpringBoot主要解决了Spring传统重量级xml配置bean
启动类里面有@SpringBootApplication注解,包含了@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan。
其中@SpringBootConfiguration注解标记启动类为配置类
@ComponentScan注解会去扫描启动类所在包及子包下面所标记的bean类由IOC去注册为bean
@EnableAutoConfiguration通过 @Import 注解导入 AutoConfigurationImportSelector类,然后通过AutoConfigurationImportSelector 类的 selectImports 方法去读取需要被自动装配的组件依赖下的spring.factories文件配置的组件的类全名,并按照一定的规则过滤掉不符合要求的组件的类全名,将剩余读取到的各个组件的类全名集合返回给IOC容器并将这些组件注册为bean59.nacos
答:用来做动态服务发现、配置管理、服务管理平台
优点:可以动态的添加、删除服务实例,无须重启服务或者改代码
可以提供不同环境、角色的配置
支持流量管理,可以进行控制、限流和熔断
易于操作的管理界面
社区活跃60.线程池队列类型:
LinkedBlockingDeque:链表同步阻塞队列
ArrayBlockingQueue:数组同步阻塞队列
SynchronousQueue:同步阻塞队列61.如何引用bean,除了Resource和Autowired,出现了null什么原因,静态类不会依赖管理
答:静态方法获取bean实例,采用Resource和Autowired会导致空指针。
首先说说场景:我有一个工具类,这个工具类要去调数据库mapper做一些处理,静态方法里面要使用mapper,这个mapper必须有static。
分析原因:静态方法属于类本身,不依赖类的实例状态,无法直接访问。
解决办法:在某个类持有ApplicationContext 引用,通过他的上下文获取62.hashmap如果冲突了,自身如何解决冲突
答:采用拉链法:类似hashmap在数组内添加一个链表63.有一个Kafka配置页面,页面有信息录入和是否消费开关按钮,如何去设计(如果用多线程,如果管理)
答:64.创建对象5种方式
答:省略65.if/else 和swatch case
答:swith/case使用跳转表来提高效率,如果case数量较多,性能优于if/else
if/else是去遍历每个条件
如果分支少且条件复杂,选择if/else更合适66.kafka分区和gourp
答:Kafka为了提高并发性,生产者会把数据分发到多个分区,多个消费者可以组成一个消费组,一个分区数据只会被消费组的一个消费。
建议消费组中的消费者数量和分区partition保持一致67.Kafka消息堆积处理
答:分析是消费数量不够还是消费处理时间较长68.同一个类,一个方法调用带@Transctional的方法,会导致事务不生效?
答:调用实际上是在当前类的实例内部发生的。因此,它不会触发 Spring AOP 代理的拦截,也就意味着不会触发事务管理器的拦截器69.冒泡算法:
答:冒泡排序就是对待排序的的序列从前往后两两比较,如果发现逆序则交换,最终得到从小到大的顺序70.修改文件权限、查看系统端口Linux命令
答:(1)修改文件权限:chmod 644 test.php #只有拥有者可以修改, 其他人只能看文件内容.,chmod o+w test.php
文件所有者可以用字母 u (user)表示. 用户所在的组可以用字母 g (group)来表示. 其他人可以用字母 o (other)来表示. 所有人可以用字母 a (all)来表示.
(2)查看系统端口:netstat -ntlp//查看当前所有tcp端口·,查看一台服务器上面哪些服务及端口:netstat -lanp71.gateway断言、过滤器类型
答:断言功能可以决定http请求应该由那个Route来做路由。就是我们nacos的predicates匹配规则
过滤器类型:
答:(1)网关过滤器(GatewayFilter):一般放在配置文件里面,比如nacos(spring.cloud.routes.filters),作用在所有路由上面
(2)全局过滤器(GlobalFilter):不用在配置文件中,比如全局日志过滤器,打印日志72.AQS?
答:用于构建锁和同步器的基础框架,用于并发编程,基于FIFO(First In, First Out)等待队列的阻塞锁和同步器73.maven命令
答:mvn -v、mvn package(依据项目生成 jar 文件 )、mvn install(在本地 Repository 中安装 jar )、mvn clean(清除目标目录中的生成结果)74.Kafka的Broker、Partition
答:(1)Broker是Kafka的实例,
(2)Topic是消息的主题,可以理解为消息的分类,数据就保存在里面,每个Broker可以建立多个Topic
(3)Partition是Topic的分区,分区的作用就是负载,提高Kafka的吞吐量75.java数据类型几种
答:八种基本数据类型:byte、short、int、long;float、double;char;boolean
四种引用类型:数组、接口、类、(枚举、注解、字符串、)76.docker
答:77.sa-token登录考虑
答:78.xml模糊查询的写法
答:select * form user where name like concat(‘%’,#{name},‘%’)79.用mybatis的插件,需要实现什么
答:实现Interceptor80.redis list数据写入命令
答:lpush key value(将元素添加到列表左边),Rpush key value(将元素添加到列表右边)81.ConcurrentHashMap的锁粒度
答:ConcurrentHashMap在jdk1.8采用CAS+synchronized实现更加细粒度的锁
锁的粒度指的是锁定共享资源的范围大小
在jdk1.7锁粒度是每个段(Segment),1.8是每个链表或红黑树的根节点82.java内存
答:指的就是jvm内存模型83.多线程包(JUC包):
答:JUC是java.util.concurrent包的简称84.并发
答:85.多线程
86.mysql批量插入
答:mybatis-plus实现批量插入:开启insertBatchSomeColumn();
自定义sql注入器,继承DefaultSqlInjector
将自定义sql注入器注册为bean
新建mapper继承BaseMapper,配置insertBatchSomeColumn()方法;87.springboot的缺点
答:(1)升级困难,每次升级变更较大
(2)依赖大量第三方库,管理复杂且容易冲突
(3)资源占用较多88.SpringBoot读取配置的6种方式
(1)使用@Value注解
(2)使用Environment接口
(3)使用@ConfigurationProperties注解
(4)使用PropertySource注解89.对于一个大文件,如何分批读取来减轻内存压力呢
答:采用OpenCsv来读取,设置一个每次读取的行数,如果集合size大于了这个行数,就去处理数据并清空集合。90.dubbo如何熔断
答:使用mock机制:@Reference(mock = “return 666”)
配置熔断参数:配置超时时间和重试次数来,停止调用服务91.Kafka和RabbitMQ的区别
答:应用场景方面:mq用于实时方面,可靠性要求比较高
Kafka用于活跃的流式数据,适合处理大数据量
消费模型:92.mysql的@符号
答:主要用于定义和使用用户变量,93.vue3路由类型
答:(1)基本路由:只包含一个路由对象参数
(2)命名路由:包含了多个路由参数94.v-for为什么要用key
答:key的作用可以通过diff算法提高页面的渲染效率95.left join 有大表和小表,谁放在前面?
答:让小表作为驱动表效率更高,他的扫描rows会更少96.学生表,姓名、科目、成绩,找出全部科目都及格的学生
答:select name ,count(*) from student s
where grades >=60 group by name having count(*)>=3 ;
这里我限定三门了97.领域驱动DDD(Domain-Driven Design,简称 DDD)
答:他是一种面向对象的设计方法,强调业务逻辑和领域模型置于软件设计中心。
总结:
首先就是把自己的项目讲清楚,特别是自己项目涉及的技术尽量把底层也弄懂,现在的面试占比可能项目占70%,八股文也就30%。如果有涉及笔试的话,建议多看看表结构设计,sql要能手写出来比较好。还有就是自己的简历可以多优化一下,不要太简单了,多找厉害的朋友参考参考。
其次感觉整个行情变差了,工资也压得厉害。对于中小型自研公司他们需要比较全能的人吧,对于我这种底层码农感觉横向的学习挺重要的,比如前端开发、Python这种可以多学学。
对于社招感觉面比较窄,比如零售的行业你必须要有零售开发项目,制造业你可能得会ERP之类的。
感觉现在五年经验还挺受欢迎的,随便瞎写的,大家将就看。
外包慎重,加油!
相关文章:
Java 2024年面试总结(持续更新)
目录 最近趁着金三银四面了五六家公司吧,也整理了一些问题供大家参考一下(适合经验三年左右的)。 面试问题(答案是我自己总结的,不一定正确): 总结: 最近趁着金三银四面了五六家公…...
亚博microros小车-原生ubuntu支持系列:22 物体识别追踪
背景知识 跟上一个颜色追踪类似。也是基于opencv的,不过背后的算法有很多 BOOSTING:算法原理类似于Haar cascades (AdaBoost),是一种很老的算法。这个算法速度慢并且不是很准。MIL:比BOOSTING准一点。KCF:速度比BOOST…...
JAVA异步的TCP 通讯-客户端
一、客户端代码示例 import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.AsynchronousSocketChannel; import java.nio.channels.CompletionHandler; import java.util.concurrent.ExecutorService; impo…...
python:递归函数与lambda函数
递归函数:1.函数内调用自己 2.有一个出口 1.递归 一.有出口时 def sum(num):if num1:return 1return numsum(num-1) asum(3) print(a) #num3 3sum(2) #num2 2sum(1) #num1是返回1 #即3sum(2)即32sum(1)即321运行结果 6 二.无出口时 def sum(num)…...
G1相对于CMS的的优势
1.G1在压缩空间方面有优势。 2.G1通过将内存空间分成区域(Region)的方式避免内存碎片问题 3.Eden、Survivor、Old区不再固定,在内存使用率上来说更灵活 4.G1可以通过设置预期停顿时间(Pause Time)来控制垃圾收集时间…...
java进阶之并发编程一ReentrantLock的实际应用和线程中断EXAMPLE
引言:继上一篇ReentrantLock的介绍来做俩个小demo。 实现3个线程分别打印指定数字和线程死锁进行线程中断。 上一篇:<<java进阶之并发编程一ReentrantLock同步锁的学习和syncthronized的区别>> **demo1:**ReentrantLock搭配三个线程分别打印指定的数字,直接上代…...
消费kafka消息示例
以下是使用 Java 结合 Spring Kafka 框架来监听 updated-topic-test 这个 Kafka Topic 的详细实现步骤及代码示例,用于捕获人员信息变更的事件。 1. 添加依赖 在 pom.xml 文件中添加 Spring Kafka 相关依赖: <dependencies><!-- Spring Boot…...
分享2款 .NET 开源且强大的翻译工具
前言 对于程序员而言永远都无法逃避和英文打交道,今天大姚给大家分享2款 .NET 开源、功能强大的翻译工具,希望可以帮助到有需要的同学。 STranslate STranslate是一款由WPF开源的、免费的(MIT License)、即开即用、即用即走的翻…...
SpringBoot+Dubbo+zookeeper 急速入门案例
项目目录结构: 第一步:创建一个SpringBoot项目,这里选择Maven项目或者Spring Initializer都可以,这里创建了一个Maven项目(SpringBoot-Dubbo),pom.xml文件如下: <?xml versio…...
Java 面试之结束问答
技术优化 线程池优化 设置最大线程数设置最小核心线程数设置额外线程存活时间选择线程池队列选择合适的线程池选择合适的饱和策略 锁优化 尽量不要锁住方法缩小同步代码块,只锁数据锁中尽量不要再包含锁将锁私有化,在内部管理锁进行适当的锁分解 HT…...
[LeetCode] 二叉树 I — 深度优先遍历(前中后序遍历) | 广度优先遍历(层序遍历):递归法迭代法
二叉树 基础知识深度优先遍历递归法迭代法(栈)144# 二叉树的前序遍历94# 二叉树的中序遍历145# 二叉树的后序遍历 广度优先遍历递归法迭代法(队列)102# 二叉树的层序遍历107# 二叉树的层序遍历 II199# 二叉树的右视图637# 二叉树的…...
主动管理的基本概念
什么是主动管理? 主动管理,又称主动投资,是一种投资策略,投资组合经理进行特定投资的目的是超越投资基准指数。与被动管理不同,主动管理者依靠分析研究、预测以及自己的判断和经验来决定买入、持有和卖出哪些证券。“…...
Python aiortc API
本研究的主要目的是基于Python aiortc api实现抓取本地设备(摄像机、麦克风)媒体流实现Web端预览。本文章仅仅描述实现思路,索要源码请私信我。 demo-server解耦 原始代码解析 http服务器端 import argparse import asyncio import json…...
OpenCV4,快速入门,第二讲:图像色彩空间转换
文章目录 引言一、色彩空间概述1.1 RGB与HSV的区别1.2 HSV的详细含义cvtColor二、cvtColor函数详解2.1 函数原型2.2 参数说明2.3 使用示例三、imwrite函数详解3.1 函数原型3.2 参数说明3.3 使用示例四、完整示例代码五、应用场景与注意事项5.1 HSV的典型应用5.2 注意事项结语引…...
86.(2)攻防世界 WEB PHP2
之前做过,回顾一遍,详解见下面这篇博客 29.攻防世界PHP2-CSDN博客 既然是代码审计题目,打开后又不显示代码,肯定在文件里 <?php // 首先检查通过 GET 请求传递的名为 "id" 的参数值是否严格等于字符串 "admi…...
【Leetcode 每日一题】90. 子集 II
问题背景 给你一个整数数组 n u m s nums nums,其中可能包含重复元素,请你返回该数组所有可能的 子集(幂集)。 解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。 数据约束 ● 1 ≤ n u m s . …...
RK3588——解决Linux系统触摸屏坐标方向相反问题
问题描述:触摸正常产生中断,但系统上报的触摸坐标不正确,是反向的坐标。 解决办法通过修改设备树添加属性翻转坐标。 注:需确认对应的驱动是否有解析该属性的具体内容,否则仍然无法生效。...
面对全球化的泼天流量,出海企业如何观测多地域网络质量?
作者:俞嵩、白玙 泼天富贵背后,技术挑战接踵而至 随着全球化进程,出海、全球化成为很多 Toc 产品的必经之路,保障不同地域、不同网络环境的一致的用户体验成为全球化应用的不得不面对的问题。在跨运营商、跨地域的网络环境中&am…...
YOLOv11实时目标检测 | 摄像头视频图片文件检测
在上篇文章中YOLO11环境部署 || 从检测到训练https://blog.csdn.net/2301_79442295/article/details/145414103#comments_36164492,我们详细探讨了YOLO11的部署以及推理训练,但是评论区的观众老爷就说了:“博主博主,你这个只能推理…...
PyQt6/PySide6 的 QPushButton 类
QPushButton 是 PyQt6 或 PySide6 库中用于创建按钮控件的类。按钮是用户界面中最常用的控件之一,用于触发特定的动作或事件。QPushButton 提供了丰富的功能和灵活性,使得开发者可以轻松地创建各种类型的按钮。下面我将详细介绍 QPushButton 的主要特性及…...
libdrm移植到arm设备
一、环境资源要求 下载libdrm Index of /libdrm 这边使用的是2.4.114版本,版本太高对meson版本要求也很高,为了省事用apt安装meson就不用太高版本了,1.x版本虽然使用makefile编译方便但是太老,对应用支持不太好。 https://dri…...
自定义序列化数据类型
目录 1. WritableComparable1.1 Writable1.2 Comparable1.3 IntWritable 2. 自定义序列化数据类型RectangleWritable3. 矩形面积计算3.1 Map3.2 Reduce 4. 代码和结果4.1 pom.xml中依赖配置4.2 工具类util4.3 矩形面积计算4.4 结果 参考 本文引用的Apache Hadoop源代码基于Apac…...
【Linux网络编程】:URL(encode),HTTP协议,telnet工具
🎁个人主页:我们的五年 🔍系列专栏:Linux网络编程 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 Linux网络编程笔记: https://mp.csdn…...
C语言基础系列【3】VSCode使用
前面我们提到过VSCode有多么的好用,本文主要介绍如何使用VSCode编译运行C语言代码。 安装 首先去官网(https://code.visualstudio.com/)下载安装包,点击Download for Windows 获取安装包后,一路点击Next就可以。 配…...
学前端框架之前,你需要先理解 MVC
MVC 软件架构设计模式鼎鼎大名,相信你已经听说过了,但你确定自己已经完全理解到 MVC 的精髓了吗? 如果你是新同学,没听过 MVC,那可以到网上搜一些文章来看看,不过你要有心理准备,那些文章大多都…...
Mysql:数据库
Mysql 一、数据库概念?二、MySQL架构三、SQL语句分类四、数据库操作4.1 数据库创建4.2 数据库字符集和校验规则4.3 数据库修改4.4 数据库删除4.4 数据库备份和恢复其他 五、表操作5.1 创建表5.2 修改表5.3 删除表 六、表的增删改查6.1 Create(创建):数据新增1&#…...
python的函数介绍
一.定义和调用函数 1.定义函数 在 Python 中,使用 def 关键字来定义一个函数。函数可以包含参数,也可以包含返回值 基本语法 def function_name(parameters):"""docstring"""# Function bodyreturn resultdef greet(n…...
要完成使用MLflow比较模型运行、选择模型并将其部署到REST API的教程
要完成使用MLflow比较模型运行、选择模型并将其部署到REST API的教程,请按照以下有序步骤操作: 设置环境 导出MLflow跟踪URI:设置环境变量以指向您的MLflow跟踪服务。export MLFLOW_TRACKING_URIyour-organizations-MLflow-server-url 加载数…...
Windows Docker笔记-简介摘录
Docker是一个开源的容器化平台,可以帮助开发人员将应用程序与其依赖项打包在一个独立的容器中,然后在任何安装的Docker的环境中快速、可靠地运行。 几个基本概念和优势: 容器:容器是一个轻量级、独立的运行环境,包含了…...
MVC 文件夹:架构之美与实际应用
MVC 文件夹:架构之美与实际应用 引言 MVC(Model-View-Controller)是一种设计模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种架构模式不仅提高了代码的可维护性和可扩展性,而且使得开发流程更加清晰。本文将深入探讨MVC文…...
