Java
js -- 跨域问题
js -- 跨域问题 前言 出于浏览器同源策略的影响,浏览器会阻止一个域的 js 脚本和另一个域的内容进行交互,因此产生了跨域问题,该问题也经常在面试和开发中遇到,本文来总结一下相关知识点。 正文 1、什么是同源策略 因为浏览器出于安全考虑,存在同源策略,就是说如果协议、域名、端口号有一个不同就产生了跨域,不同域之间的资源是不能交互的,比如:Ajax
Fastjson反序列化漏洞
Fastjson反序列化漏洞 目录Fastjson反序列化漏洞一、Fastjson介绍1、什么是fastjson?2、fastjson的优点二、影响范围:三、漏洞原理四、漏洞利用五、漏洞发现六、漏洞修复 一、Fastjson介绍 1、什么是fastjson? fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将JavaBean序列化为JSON字符串,也可以从JSO
【Docker】镜像管理
一、搜索镜像 1、在官方网站搜索镜像 Docker 官方镜像仓库:https://hub.docker.com/ 2、docker search 搜索镜像 Usage: docker search [OPTIONS] TERM Search the Docker Hub for images Options: -f, --filter
upsert部分hudi表字段报错“Expected table’s schema”
当 insert into 一个 hudi 表时,如果只指定了部分字段,则运行时报错“Expected table’s schema”: java.sql.SQLException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: org.apache.hudi.exception.HoodieExcepti
mybatis控制动态SQL拼接标签之choose标签
mybatis控制动态SQL拼接标签之choose标签 有时候我们并不想应用所有的条件,而只是想从多个选项中选择一个。 MyBatis提供了choose 元素,按顺序判断when中的条件出否成立,如果有一个成立,则choose结束。 当choose中所有when的条件都不满则时,则执行 otherwise中的sql。 类似于Java 的switch 语句,choose为switch,when为ca
mybatis控制动态SQL拼接标签之foreach标签
mybatis控制动态SQL拼接标签之foreach标签 foreach标签主要用于构建in条件,可在sql中对集合进行迭代。也常用到批量删除、添加等操作中。 这个标签在实际业务中非常常用,当然运维旧项目也会发现,有些坑,用java循环执行sql来表示批量插入。 属性说明: collection:collection属性的值有三个分别是list、array、map三种,分别对应的参数类型为:Lis
mybatis定义sql语句标签之insert标签
这是非常核心的一个标签,CURD是mybatis的核心功能。 insert元素相对于select元素要简单很多,mybatis会在插入之后返回一个整数,表示插入成功后插入的条数。 真实项目中,使用最多的一个点要注意,在插入过程中返回一些自动主键。 因为这个主键,在同一个事务中,还有其它用。例如级联。 属性介绍 属性 说明 id 可以理解为Mybatis执行语句的名称,与Mapper接
每日总结-23.4.27
<%@ page import="wangzhan.Thesql" %> <%@ page import="wangzhan.Pd_P_assignment" %> <%@ page import="wangzhan.Pd_S_assignment" %> <%@ page import="wangzhan.Pd_lesson" %> <%@
开启多线程,shiro报错:UnknownSessionException: There is no session with id
开启多线程,shiro报错:UnknownSessionException: There is no session with id. 如下所示: org.apache.shiro.session.UnknownSessionException: There is no session with id [c8c5715ea6524f08b2ebe9fcb0566e20] at or
CountDownLatch源码分析
1、CountDownLatch介绍 CountDownLatch让一个或多个线程等待其他线程执行完成后再执行。在创建CountDownLatch对象时,必须指定线程数count,每当一个线程执行完成调用countDown()方法,线程数count减1,当count减到0时,await()方法就不再阻塞。 2、CountDownLatch使用 1 import java.util.conc
程序员面试金典---17
堆箱子 思路: 首先进行排序,规则为: 如果宽度不相同,按照宽度从小到大排序。 如果宽度相同,深度不相同,按照深度从大到小排序。 宽度和深度都相同,高度从大到小排序。 采用动态规划进行求解: 计算以当前盒子为顶部盒子时的最大堆叠高度。 从前往后遍历每一个盒子,对于每一个盒子i,遍历i之后的所有盒子j,如果盒子能够放在盒子i上方,则更新盒子j的堆叠高度为dp[j]=max(dp[j],
Java-Day-16( 常用类 )
Java-Day-16 常用类 包装类 ( Wrapper ) 针对八种基本数据类型定义相应的引用类型 —— 包装类,有了类的特点,就可以调用类中的方法 基本数据类型 包装类 boolean Boolean char Character byte Byte short Short int Integer long Long float Float
Redis基础 - 01概述
一、Redis概述 1.1 Redis介绍 Remote Dictionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。 Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 从2010年3月15日开始,Redis
Semaphore源码分析
1、Semaphore介绍 计数信号量 - Semaphore,常用来限制访问资源的线程数量。优点类似限流中的令牌桶算法,只有拿到信号量的线程才能执行,与令牌桶算法未拿到令牌不处理请求不同的是,在Semaphore中未拿到信号量的线程会阻塞等待,直到有某个线程释放了持有的信号量。 2、Semaphore使用 1 import java.util.concurrent.Semaphore;