掘友等级
获得徽章 0
#每天一个知识点# 在Java中可以通过几种方式执行JavaScript代码:
1. 使用Nashorn引擎
Nashorn是Java 8自带的JavaScript引擎,可以在Java中解析和执行JS代码。
2. 使用Rhino引擎
Rhino是一个开源的JavaScript引擎,可以用于Java中执行JS。
3. 使用Mozilla的JavaScript引擎
可以通过Java与JavaScript的绑定来调用Mozilla的JS引擎。例如envjs, armyknife等。
4. 使用headless浏览器
可以通过headless浏览器来执行JS代码,比如PhantomJS。需要将JS代码传给浏览器执行。
5. 调用JS函数
可以使用一些JS绑定库,直接在Java代码中调用JS函数,例如J2V8。
#每天一个知识点# Redis事务的主要特点:
- 原子性(atomicity):一个事务中的所有命令要么全部执行,要么全部不执行。
- 隔离性(isolation):一个事务的执行不会被其他事务在其执行期间对外部资源所作的修改所打断。
- 一致性(consistency):执行事务前后,系统从一个一致状态切换到另一个一致状态。
#每天一个知识点# 修改mybatisplus 更新null值的策略:
- 通过Configuration配置全局更新null值
- 通过BoundSQL中的setSqlSelective()临时更新null值
- 通过setSql()恢复默认配置
#每天一个知识点# 对于基于 Spring Boot 构建的微服务或 Web 构建的 SaaS 产品,提供 License 授权的方法主要有:
1. 对外售卖二进制 License 文件,比如 .lic 文件。该 License 文件中包含了客户信息(如公司名称、许可数量等)和授权密钥。
2. 将 License 文件内容保存到数据库中,根据读取 License 文件授权给客户。
3. 基于公钥/私钥 加密算法,生成 License 授权凭证。客户提供公钥后,服务端使用私钥生成 License,客户使用公钥验证 License。
4. 在服务端保存免费/试用版和付费版之间的权限差异,然后根据License类型分配不同的权限。
#每天一个知识点# Redis的发布订阅(Publish/Subscribe)模式:
发布订阅是一种消息通信模式:发送者(发布者)不会将信息直接发送给接收者(订阅者),而是将信息发送到中间的消息队列,然后接收者从消息队列中获取这些信息。
Redis实现了一种发布订阅模式,允许发送端到发布消息,只有订阅这个消息的订阅者才能收到,其他 subscriber 没有收到。
#每天一个知识点# Docker镜像是 Docker 容器运行时的唯一依赖。也可以说,Docker 镜像是 Docker 容器的模板,它由一系列层组成,每一层都对应复杂的目录结构和文件。
我们可以通过 Dockerfile 来创建自己的 Docker 镜像。Dockerfile 里面包含了一条条的指令,每一条指令都对应创建一层,每一层都是只读的,在上一层之上叠加。
#每天一个知识点# 线程在其生命周期中会处于不同的状态,主要有5种状态:
1. New:线程刚被创建,但是还没有启动。
2. Runnable:线程处于就绪状态,随时可以被CPU调度执行。
3. Running:线程正在JVM中执行。
4. Waiting/Blocked:线程处于等待状态,等待某个事件发生或资源释放。
5. Terminated:线程已终止执行。
#每天一个知识点# ArrayList和LinkedList对比:
- ArrayList更适合随机查找与遍历,时间复杂度较低。
- LinkedList更适合插入与删除操作,不需要频繁移动元素。
- 如果涉及大量插入删除操作与存储空间,LinkedList会更优。
- 如果涉及大量查找遍历操作,ArrayList会更优。
下一页