Java
阿里 - 前端开发规范
前端 JS 项目开发规范 编程规约 (一)命名规范 1.1.1 项目命名 全部采用小写方式, 以中划线分隔 正例:mall-management-system 反例:mall_management-system / mallManagementSystem 1.1.2 目录命名 全部采用小写方式, 以中划线分隔,有复数结构时,要采用复数命名法, 缩写不用复数 正例: scripts / style
巧用网关白名单实现接口免鉴权
分享技术,用心生活 场景描述:一般系统中提供的接口都是经过统一配置鉴权的,比如不登录不能访问。但是,一些接口是需要开放给客户用的,我称作open API。那么这时候你不能要求客户先登录你的接口再去调用吧。那么,这时候就可以通过网关白名单来实现免鉴权 先说思路: 配置网关白名单列表 编写鉴权过滤器 过滤器中读取白名单 业务处理 简单的时序图 注: 如果使用的是网关过滤器,在校验后应该再次过
投针实验计算Π值的可视化
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>needleProblem</title> </head> <body> <canvas id="myCanvas"></canvas> &l
JVM 常见错误汇总
栈内存溢出 栈内存错误包括:栈帧过多(StackOverflowError)、栈帧过大(OutOfMemoryError) StackOverflowError:如果线程请求的栈深度大于虚拟机所允许的最大深度; OutOfMemoryError:如果虚拟机的占内存允许动态扩展,当扩展容量无法申请到足够的内存时; 栈帧过多 栈帧过大 堆内存溢出 堆内存溢出包括:Java堆(Heap)
ubuntu安装jdk17
要在Ubuntu上安装JDK 17,可以按照以下步骤进行操作: 打开终端。 添加PPA仓库。输入以下命令并按下回车: Copy 这会将Java PPA仓库添加到系统中。 更新软件包列表。输入以下命令并按下回车: Copy 安装JDK 17。输入以下命令并按下回车: Copy 安装过程中,您将被要求接受Ora
HBase Compaction 原理与线上调优实践
作者:vivo 互联网存储技术团队- Hang Zhengbo 本文对 HBase Compaction 的原理、流程以及限流的策略进行了详细的介绍,列举了几个线上进行调优的案例,最后对 Compaction 的相关参数进行了总结。 一、Compaction 介绍 HBase 是基于一种 LSM-Tree(Log-Structured Merge Tree)体系架构的存储模型设计的,写入时先写
设计模式-命令模式在Java中的使用示例-桌面程序自定义功能键
场景 欲开发一个桌面版应用程序,该应用程序为用户提供了一系列自定义功能键,用户可以通过这些功能键来实现一些快捷操作。 用户可以将功能键和相应功能绑定在一起,还可以根据需要来修改功能键的设置,而且系统在未来可能还会增加一些新的功能或功能键。 如果不使用命令模式,可能这样实现。 功能键类FunctionButton充当请求的发送者,帮助文档处理类HelpHandler充当请求的接收者,在发送者Func
Java 大后端各种架构图汇总
1. java 类加载器架构 2. JVM 架构 3. Java 技术体系 4. 线程运行架构 5. Java 体系(编译与运行)结构 6. JMS 技术架构 7. JMX 技术架构 8. Spring 架构 9. Hibernate 架构 10. ibatis 架构 11. Struts2 架构 12. Struts1 架构 13. JBPM
Android-单例模式
单例模式 意图:这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。 public class Singleton { private static Singleton instance = new Singleton(); &nbs
Redis —— 事务
参考: 小林:https://xiaolincoding.com/redis/base/redis_interview.html shuxiaohua(集群):https://huaweicloud.csdn.net/637f776ddacf622b8df84ee9.html java guide: https://javaguide.cn/database/redis/redis-qu
【剑指Offer】14、链表中倒数第k个结点
【剑指Offer】14、链表中倒数第k个结点 题目描述: 输入一个链表,输出该链表中倒数第k个结点。为了符合习惯,从1开始计数,即链表的尾结点是倒数第1个节点。例如,一个链表有6个结点,从头结点开始,它们的值依次是1,2,3,4,5,6。则这个链表倒数第三个结点是值为4的结点。 解题思路: 对于单链表来说,没有从后向前的指针,因此一个直观的解法是先进行一次遍历,统计出链表中结点的个数n,第二次再进
专题1:URL编码、归一化、校验、常见漏洞
说明 1. URL编码&解码 场景: 1. URL参数传递:当通过URL传递参数时,需要对参数值进行编码,以确保特殊字符不会破坏URL的结构。例如: 2. URL构建:当动态构建URL时,尤其是在拼接路径、查询参数或片段标识符时,需要对每个部分进行编码。例如: 构建url就是为发送http/https请求。 3. URL解析和处理:在解析和处
关于SSM整合中出现"create connection SQLException, url: jdbc:mysql://localhost:3306/test, errorCode 0, state 01S00"解决办法
SSM框架中报错: 严重: create connection SQLException, url: jdbc:mysql://localhost:3306/test, errorCode 0, state 01S00java.sql.SQLException: The server time zone value 'Öйú±ê׼ʱ¼ä' is unrecognized or represe
创建Node.js项目并使用TypeScript的基本步骤
1. 确保您已经安装了Node.js和npm(Node.js的包管理器)。您可以在终端中输入以下命令来检查它们的版本: 2. 创建一个新的项目文件夹并进入该文件夹。您可以使用以下命令: 3. 初始化项目并生成package.json文件。在终端中运行以下命令: 这将使用默认配置快速初始化项目。 4. 安装TypeScript和相关的开发依
看完这篇,SpringBoot再也不用写try/catch了
前言 使用 SpringBoot 开发 Web 应用时,异常处理是必不可少的一部分。在应用中,异常可能会出现在任何地方,例如在控制器、服务层、数据访问层等等。如果不对异常进行处理,可能会导致应用崩溃或者出现未知的错误。因此,对于异常的处理是非常重要的。 本篇主要讲述在SpringBoot 中,如何用全局异常处理优雅的处理异常。 为什么要优雅的处理异常 如果我们不统一的处理异常,开发人员经常会在代码
记录一下反编译自己apk
首先准备好这几样工具: apktool:https://ibotpeaches.github.io/Apktool/ dex2jar:https://github.com/pxb1988/dex2jar jd-gui: https://github.com/java-decompiler/jd-gui 注意:jd-gui 下载下来是jar包,需要使用 java -jar jd-gui-xxx.j
老杜 JavaWeb 讲解(十五) ——登录功能(引入会话机制)
(十四)oa项目的登录功能(引入会话机制) 相关视频: 41-实现用户登录功能 为什么需要登录功能 任何一个用户都可以访问这个系统,都可以对这个系统当中的数据进行增删改这些危险的操作。 这显然是不合理的,应该只让合法登录的用户来进行增删改查等操作。 加一个登录功能。登录成功的可以访问该系统,登录失败不能访问。 具体思路: 步骤1:数据库当中添加一个用户表:t_user t
老杜 JavaWeb 讲解(十六) ——oa项目的改造(cookie)
(十五)oa项目的改造(cookie) 相关视频: 48-Cookie实现十天内免登录 十天内免登录功能: 使用cookie实现一下十天内免登录功能。 先实现登录功能 登录成功 跳转到部门列表页面 登录失败 跳转到登录失败页面 修改前端页面 在登录页面给一个复选框,复选框后面给一句话:十天内免登录。 用户选择了复选框:表示要支持十天内免登录。 用户没有选择复选框:表示
Jenkins-Pipline实现原理
Jenkins-Pipline原理 本文仅探讨jenkins pipline 的原理,是流水线的一个demo版本实现,不能代表Jenkins pipline的具体实现,仅供参考。 1. Jenkins流水线介绍 Jenkinsfile流水线是Jenkins CI/CD工具中用来定义、构建和管理软件交付流程的一种声明式文件。 它允许将整个软件交付流程以代码的形式进行描述,从而实现对软件交付过程的
记录--虚拟 DOM 和实际 DOM 有何不同?
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 本文我们会先聊聊 DOM 的一些缺陷,然后在此基础上介绍虚拟 DOM 是如何解决这些缺陷的,最后再站在双缓存和 MVC 的视角来聊聊虚拟 DOM。理解了这些会让你对目前的前端框架有一个更加底层的认识,这也有助于你更好地理解这些前端框架。 DOM 的缺陷 比如,我们可以调用 document.body.appendChild(
rabbitmq php 发送延迟消息 java 进行消费
// ------- 延迟队列 php 需要安装好几个扩展 php 生产者 $connection = new AMQPStreamConnection('xxxxx', 5672, 'guest', 'guest'); $channel = $connection->channel(); // 发送消息到交换机,并设置 x-delay 属性 $mes
Redis持久化机制 RDB、AOF、混合持久化详解!如何选择?
本文已经收录进 JavaGuide(「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。) Redis 持久化机制属于后端面试超高频的面试知识点,老生常谈了,需要重点花时间掌握。即使不是准备面试,日常开发也是需要经常用到的。 最近抽空对之前写的 Redis 持久化机制进行了大幅完善,图文并茂,清晰易懂。分享一下,希望对你有帮助! 内容概览: 使用缓存的时候,我们经
Mockito单元测试最佳实践
Mockito可以帮助我们模拟创建对象,经常用于模拟外系统、数据库、及其它方法中调用的对象 使用mockito时,单元测试类需要加上注解 @RunWith(MockitoJUnitRunner.class),在@Before方法中加上 MockitoAnnotations.openMocks(this); 使用spring框架时,经常使用@Autowired注解,在这里被注入的对象使
Day06-25 接口
接口 普通类:只有具体实现 抽象类:具体实现和规范(抽象方法)都有! 接口:只有规范!自己无法写方法~专业的约束!约束和实现分离:面向接口编程~ 接口就是规范,定义的是一组规则,体现了现实世界中“如果你是...则必须能...”的思想。如果你是天使,则必须能飞;如果你是汽车,则必须能跑;如果你好人,则必须干掉坏人;如果你是坏人,则必须欺负好人。 接口的本质是契约,就像我们人间的法
Java并发(十四)----悲观互斥与乐观重试
1. 悲观互斥 互斥实际是悲观锁的思想 例如,有下面取款的需求 interface Account { // 获取余额 Integer getBalance(); // 取款 void withdraw(Integer amount); /** &n