Java
苍穹外卖总结(未完结)
1.如果套餐库存为0或者套餐下架业务逻辑是什么样呢? 套餐库存为0的业务逻辑: 下单失败: 当用户下单时,系统可以检查套餐的库存,如果库存为0,则拒绝生成订单,返回给用户相应的提示,如“库存不足”或“该套餐已售罄”。 套餐下架的业务逻辑: 阻止下单: 当套餐下架时,用户下单时不会查询到已下架的套餐。 下架套餐: 关联菜品的套餐不能被下架 即菜品起售停售的状态会被前端查询再返回给微信小程
万物容器与 c++ 类型反射
这是一篇组会分享,并且是拖了很长很长时间的那种。这次不会再鸽了 这篇文章可以说是针对某 cpp 佬的公众号的两篇原创内容的笔记 c++反射--包容一切的all容器(上) c++反射--包容一切的all容器(中) 什么是反射 这个好像没有严格的定义,但是概括的说,「反射」是指在程序运行期对程序本身进行访问和修改的能力 比如以下一些例子: 我们希望通过一个字符串 "func",调用名字为 "f
Future和Callable
Future和CallableRunnable缺陷不能返回一个返回值也不能抛出checked ExceptionCallable接口类似于Runnable,被其它线程执行的任务实现call方法有返回值Future可以用Future.get来获取Callable接口返回的执行结果,还可以通过Future.isDone()来判断任务是否已经执行完了,以及取消这个任务,限时获取任务的结果等在call()
代码随想录 第十天 | ● 理论基础 ● 232.用栈实现队列 ● 225. 用队列实现栈
队列的方法: 添加元素: add(E e): 将指定的元素添加到队列的尾部,如果队列已满则抛出异常。 offer(E e): 将指定的元素添加到队列的尾部,如果队列已满则返回false。 移除元素: remove(): 移除并返回队列的头部元素,如果队列为空则抛出异常。 poll(): 移除并返回队列的头部元素,如果队列为空则返回null。 获取头部元素: element(): 返
MIT6.830-Lab5
simpleDB项目地址 概览 类概述 BTreePage:B+树节点(叶子节点和内部节点)的公共父类,存储了父节点页号protected int parent,并且使用protected final int keyField存储在表记录的哪个字段建立索引。 BTreeLeafPage:B+树的叶子节点,用来存放具体的表记录。 BTreeInternalPage:B+树的内部节点,此外,priv
HashMap很美好,但线程不安全怎么办?ConcurrentHashMap告诉你答案!
写在开头 在《耗时2天,写完HashMap》这篇文章中,我们提到关于HashMap线程不安全的问题,主要存在如下3点风险: 风险1: put的时候导致元素丢失;如两个线程同时put,且key值相同的情况下,后一个线程put操作覆盖了前一个线程的操作,导致前一个线程的元素丢失。 风险2: put 和 get 并发时会导致 get 到 null;若一个线程的put操作触发了数组的扩容,这时另外一个线
href=“javascript:;“ 使用
大家都知道, <a href="要去往的链接">,这里href 一般是要链接一个 要去往的超链接。比如我们在查看页面源代码时会看到 <a href="index.html">等类似地表示当 href="javascript:;" 这表示 要调用 一段javascript代码,但由于:后面啥也没有,所以这段代码就表示 这个超链接&nb
Vue2 + SpringBoot 本地前后端联调(简单登录)
前言: 后端:IDEA + SpringBoot 前端:VSCode + Vue2.x 1. 前端 1) vue 创建项目: vue create login-debugging(建议使用管理员身份打开cmd,到指定目录) 使用 空格 来选中,后续选择不进行演示了,下图蓝色字体就是进行的选择。 最后一个选项是给自己的项目配
探索浏览器录屏Web API 接口的应用前景与限制
一、浏览器录屏Web API 接口的优点: 简化录屏流程:浏览器录屏Web API 接口可以直接在网页中调用,无需安装额外的插件或软件,简化了录屏的流程。 实时录制与传输:Web API 接口可以实时录制用户操作并将录屏数据传输到服务器,实现即时的用户行为监测和分析。 跨平台兼容性:浏览器录屏Web API 接口在不同浏览器和操作系统上都有良好的兼容性,可以在多个平台上使用。 在线录屏
dremio jobprofile查询简单说明
dremio提供了方便的jobprofile 能力,可以进行共享以及分析dremio 查询的性能问题,以下是关于jobprofile 下载功能的简单说明 下载处理 SupportResource.java @POST @Path("download") @Consumes(MediaType.APPLICATION_JSON) public Res
跟着GPT学设计模式之代理模式
引言 代理模式(Proxy Design Pattern)在不改变原始类(或叫被代理类)代码的情况下,通过引入代理类来给原始类附加功能。 代理模式的关键角色包括: 抽象主题(Subject):定义了目标对象和代理对象的共同接口,这样一来在任何可以使用目标对象的地方都可以使用代理对象。 目标对象(Real Subject):也称为被代理对象,是具体业务逻辑的实际执行者。 代理对象(Proxy):负
关于SpringMVC中@RequestMapping的params参数
@RequestMapping注解的params参数 同一个url,只要 params 不同,springmvc 也是会区分匹配的。 请求参数中不包含version,匹配第一个方法 包含version,但值不为2,匹配第二个方法 包含version,且值为2,匹配第三个方法 nacos 源码中的 com.alibaba.nacos.config.server.controller.Confi
SpringMVC实现参数校验
在 Web 应用的三层架构中,确保在表述层(Presentation Layer)对数据进行检查和校验是非常重要的。正确的数据校验可以确保业务逻辑层(Business Logic Layer)基于有效和合法的数据进行处理,同时将错误的数据隔离在业务逻辑层之外。这有助于提高系统的健壮性、安全性和可维护性。 校验概述 JSR-303是Java EE 6中的一项子规范,也被称为Bean Validati
[LeetCode] 2368. Reachable Nodes With Restrictions
There is an undirected tree with n nodes labeled from 0 to n - 1 and n - 1 edges. You are given a 2D integer array edges of length n - 1 where edges[i] = [ai, bi] indicates that there is an edge betwe
SpringCloud Alibaba-4-Feign远程调用
远程调用:在分布式系统中,我们使用springboot创建了各种各样服务,那么这些服务之间如何进行远程调用呢。如:订单微服务怎么去调用商品微服务? Ribbon:是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法和服务调用。 Ribbon支持的负载均衡策略: BestAvailableRule AvailabilityFilteringRule WeightedR
领域建模的贫血模型与充血模型
贫血模型 此种模型下领域对象的作用很简单,只有所有属性的get/set方式,以及少量简单的属性值转换,不包含任何业务逻辑,不关系对象持久化,只是用来做为数据对象的承载和传递的介质。而真正的业务逻辑则由领域服务负责实现,此服务引入持久化仓库,在业务逻辑完成之后持久化到仓库中。我们项目中经常使用的 MVC三层架构 就是这种。 充血模型 此种模型下领域对象作用此领域相关行为,包含此领域相关的业务逻辑,
web自动化——Selenium 之切换
一、窗口(window)切换 在浏览器当中,如果在页面进行了某个操作,结果浏览器打开了另外一个新窗口(tab)。如果要操作新窗口当中的页面元素,就需要窗口切换。 前提:有新的窗口打开、或者你要操作其它窗口 1、sleep(1)或显示等待 -- 等待浏览器新的窗口出现(无法使用隐性等待,隐性等待只能用于找元素) 2、先获取当前会话浏览器的,所有窗口。句柄(窗口唯一标识) 所有
Spring-Boot学习
Spring-boot学习笔记 从零开始创建项目 先创建一个空的Maven项目,然后在pom.xml引入Spring-boot-starter的父依赖 在下面导入web依赖 每次导完依赖记得刷新一下 application配置文件 在Resource目录下创建application.yml文件,用于项目的一些基本配置 Spring-boot整合Mybatis 导入Mybatis依赖和
【Spring AOP】SpringAOP配置过程——基于XML&&基于注解 && Spring AOP实现原理
概念 Spring AOP - Aspect Oriented Programming 面向切面编程 AOP的做法是将通用、与业务无关的功能抽象封装为切面类 切面可配置在目标方法的执行前、后运行,真正做到即插即用 可以在不修改源码的情况下对程序进行扩展 AOP配置过程——基于XML配置 0. 添加依赖创建配置文件 添加依赖-aspectjweaver SpringAOP和Aspect
Java学习笔记——第二天
进制知识 二进制、八进制和十六进制 二进制:只有0和1两个数字,按照逢2进1的方式表示数据。 八进制:只有0~7八个数字,按照逢8进1的方式表示数据。 十六进制:由0~9以及A,B,C,D,E,F,共十六个数字,按照逢16进1的方式表示数据,其中A,B,C,D,E,F分别代表十进制的10,11,12,13,14,15。 Java程序中支持书写二进制、八进制、十六进制的数据,分别需要以0B或者0b
手动创建spring boot项目
1.我们首先要创建一个Maven项目(这里就不过多演示) 2.然后我们点击创建新模块,选择创建Maven模块,然后修改名称,Archtype选择quicker那个,再点击确定。 3,创建好以后,我们进行手动的配置pom文件,输入红框中的东西 4,创建相应的包,和Java文件 5.在SpringbootCreatManualApplication和controller中分别输入下面代码 &
600万订单每秒Disruptor +SpringBoot,如何解决消息不丢失?
文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录 博客园版 为您奉上珍贵的学习资源 : 免费赠送 :《尼恩Java面试宝典》 持续更新+ 史上最全 + 面试必备 2000页+ 面试必备 + 大厂必备 +涨薪必备 免费赠送 :《尼恩技术圣经+高并发系列PDF》 ,帮你 实现技术自由,完成职业升级, 薪酬猛涨!加尼恩免费领 免费赠送 经典图书:《Java高并发核心编程(卷1)加强版》 面试
WordCount案例教学会遇到的bug
《尚硅谷大数据Hadoop教程,hadoop3.x搭建到集群调优,百万播放》P74-78 会遇到的bug Windows机上未配置Hadoop_HOME环境变量。 解决方法: 需要通过winutils来虚拟hadoop在windows的环境。 Windows的IDEA中的所创建wc项目的jdk版本,与Linux虚拟机上的版本不一致,导致在虚拟机集群上,hadoop jar wc.jar报错。
Java流程控制08:For循环详解
For循环:条件.for 1. 虽然所有循环结构都可以用while 或者 do...while 表示,但 Java 提供了另一种语句----->for循环,使一些循环结构变得更加简单。 2. for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环机构。 3. for循环执行的次数是在执行前就确定的。语法格式如下: 4. 练习
Java双亲委派机制
Java 双亲委派机制 首先得了解一下JVM和ClassLoader JVM 当前主流的有三种JVM: Sun公司:HotSpot BEA:JRockit IBM:J9VM 首先了解一下Java程序从编译到执行的整个生命周期: .java (经过javac.exe编译成class文件)=> .class (经过类加载器ClassLoader,具体过程有加载、链接、初始化)=&
【Filament】自定义Blinn Phong光照模型
1 前言 光照元素主要有环境光(ambient)、漫反射光(diffuse)、镜面反射光(specular),基础的光照模型主要有兰伯特(Lambert)光照模型、冯氏(Phong)光照模型和改进的冯氏(Blinn Phong)光照模型。 Lambert 光照模型只包含漫反射光的计算,Phong 光照模型和 Blinn Phong 光照模型都包含环境光、漫反射光、镜面反射光的计