Java

浅析Golang的层级时间轮实现方案

文章目录 时间轮介绍 简单时间轮 层级时间轮 kafka中的实现细节 基于go语言的层级时间轮实现   一、时间轮介绍   工作中,我们经常遇到到延时任务这类需求(例如用户开始一个任务,15分钟后给他发送一个通知奖励;用户下单未付款,三分钟后发送一条提醒消息...)。一般情况下,我们使用time.Timer对象完成工作,例如:   在go语言运行时内置实现中,Tim

Java实现常见排序算法

Java实现常见排序算法 排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。排序的分类: 内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。 外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。 常见的排序算法分类(见下图): 排序算法 平均时间复杂度 最好情况 最坏情况 空间复杂度 排序方式 稳

深入理解零拷贝技术

注意事项:除了 Direct I/O,与磁盘相关的文件读写操作都有使用到 page cache 技术。 数据的四次拷贝与四次上下文切换 很多应用程序在面临客户端请求时,可以等价为进行如下的系统调用: File.read(file, buf, len);Socket.send(socket, buf, len); 例如消息中间件 Kafka 就是这个应用场景,从磁盘中读取一批消息后原封不动地写入网卡

jvm 常用命令

查看jvm默认垃圾回收器 调优堆栈内存 表 1. 堆栈大小典型配置参数 配置参数说明示例 -Xmx 设置最大堆大小。 -Xmx3550m,设置JVM最大可用内存为3550 MB。 -Xms 设置JVM初始内存。 -Xms3550m,设置JVM初始内存为3550 MB。此值建议与-Xmx相同,避免每次垃圾回收完成后JVM重新分配内存。 -Xmn 设置年轻代大小。 -X

文件上传基础学习

文件上传基础学习 一、基础知识 1、上传功能存在漏洞 通常,Web应用程序允许用户上传文件,例如图像、文档或其他类型的文件,以便后续处理或共享。漏洞出现在服务器未正确验证或限制上传文件的类型、大小和位置时。 2、不正确的输入验证: 文件上传漏洞通常是由于不正确的输入验证引起的。攻击者可以通过绕过应用程序的输入验证来上传任意文件,而不仅仅是允许的文件类型。 3、恶意文件上传: 攻击者可能会上传包含恶

C++学习笔记

C++: C的编译器叫gcc,C++的编译器叫g++ c++最容易发生的问题是内存泄漏问题,例如释放p所指的空间时,应该是 很多人忘记将p归零,这样下次不小心调用了p就会出现内存泄漏问题,如果要把释放内存写成函数,示例如下(两层指针) 命名空间: using spacename iostream头文件提供了命名空间,标准命名空间是std 如果不加using spacename std;

简述SprintMVC过程

SprintMVC SpringMVC是一个对servlet进行大量封装的Spring框架的组件,,基于MCV架构模式,用于表现层的开发。 SpringMVC中包含两个容器,Spring作为父容器,SpringMVC作为子容器。 简略过程 通过映射器找到url对应的控制器,但控制器需要实现处理器的接口,且有多种方式实现,因此需要适配器确定是哪个处理器接口,确定好处理器接口后,可以直接调用控制器

Hadoop环境安装与配置

1.基础操作系统环境安装(略) 2.JDK的安装与配置 当前各大数据软件如Hadoop等,仍然停留在Java 8上,在本实验选用的是Java 8。在自己的Linux系统中,jdk可以使用如下命令进行一键安装(需具备sudo权限)。 待安装完成后,需通过如下命令,检查java(jdk)是否安装成功 以下为检测情况: 3.Hadoop编译版本的下载,解压,并放置到相应目录中   注意:

代码随想录算法训练营第十四天|二叉树的递归法、迭代法

二叉树的递归遍历(前中后序遍历-递归法与迭代法) 递归三部曲: 确定递归函数的参数和返回值 确定终止条件 确定单层递归的逻辑 递归法对二叉树进行前中后序遍历(力扣144.145.94.) 迭代法对二叉树进行前中后序遍历 前序遍历按顺序将目标、右子树、左子树放入栈中 然后从栈中去除元素,直至元素为空 中序遍历一层一层往下访问,直到遍历到无左子树的结点 此时再开始处理节点 后

go并发编程系列三:线程的按序执行(竞争执行)

背景:在go并发编程系列二,你作为班主任,接手了有三个学生的班级,现状是这三个学生很调皮,看起来乱糟糟的,三个学生就是三个线程,怎么变的有序呢?答案是:给线程加锁!加锁需要使用go标准包的sync.Mutex,这是一个互斥锁。 给线程加锁的代码: 当我们在main.go里再次执行go程时,发现这三个线程不再交替执行了,从无序变的有序起来了,这是你管理班级的第一个成效!然而,班级的管理比我们想

第二十六节 集合(Map&可变参数&集合工具类)

1.Map集合 1.1Map集合概述和特点【理解】 Map集合概述 Map集合的特点 双列集合,一个键对应一个值 键不可以重复,值可以重复 Map集合的基本使用 1.2Map集合的基本功能【应用】 方法介绍 方法名 说明 V put(K key,V value) 添加元素 V remove(Object key) 根据键删除键值对元素

JavaScript Map.groupBy All In One

JavaScript Map.groupBy All In One Map.groupBy & Array.prototype.groupToMap https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map/groupBy https://caniuse.com/?s

Caused by: java.sql.SQLException: ORA-01000: maximum open cursors exceeded

job执行,日志报这个: Caused by: java.sql.SQLException: ORA-01000: maximum open cursors exceeded

go并发编程系列四:线程分组及控制线程的交替执行

背景:在上一篇中,作为班主任的你,对班级的管理初见成效,但理想和现实总有差距,理想情况下,从接手一个调皮的班级到班级的管理井井有条,是从0到1的跨越,没有中间的过渡阶段,然而,现实是:班级里少不了调皮的学生,对于这样的情况,应该怎么办呢?这篇文章讲解的正是现实中从0到1的过渡阶段,本文仅以讲解技术为出发点,不代表教育观点。 有一个万不得已的办法是:听话的学生和调皮的学生互不干扰。 对应为线程,就是

文件上传与下载

上传 功能:服务器读取客户端 上传的文件 并写入磁盘中 所需要用到的jar包 查看代码 下载 功能:客户端 下载目标文件 服务器找到此文件 客户端以下载的方式收到文件 点击查看代码(存在 以中文为下载名 其文件名无法以该中文名命名) 解决访问如下: (在 发送响应头方法 作出修改) 点击查看代码

jackson处理标签中带属性的xml

用jackson相关包把如下xml转为java bean

HashMap线程安全面试题(含答案)

HashMap线程安全面试题(含答案) Java中平时用的最多的Map集合就是HashMap了,它是线程不安全的。看下面两个场景:1、当用在方法内的局部变量时,局部变量属于当前线程级别的变量,其他线程访问不了,所以这时也不存在线程安全不安全的问题了。2、当用在单例对象成员变量的时候呢?这时候多个线程过来访问的就是同一个HashMap了,对同个HashMap操作这时候就存在线程安全的问题了。 线程安

Apifox 自动导出类型 转换

 2.       json.rule.convert[java.lang.Long]=java.lang.String json.rule.convert[org.bson.types.ObjectId]=java.lang.Stringjson.rule.convert[java.util.Date]=java.lang.Stringjson.ru

前缀树(Trie)的java实现

前缀树 prefix tree, 又叫做 trie。关键Feature如下: 树形结构 根节点为空 结点包含 常用操作 insert delete search //字符串在前缀树中出现的次数 prefixNumber 一个”word“怎么储存在trie中,自根节点,从上往下阅读。懒得画图了,可去别的博客看看

JavaScript 本职论

JavaScript 常被描述为一种基于原型的语言——每个对象拥有一个原型对象所以就会有一部分特性和面向对象的语言不同~

MarkDown用法

关于MarkDown常见功能学习 1视图 大纲视图:可以清晰看到目录结构 2标题 一级标题:"#"+空格+“标题名” 二级标题:“##"+空格+“标题名” 三级标题:“###"+空格+“标题名” 最多可以支持到六级标题 3字体 加粗:字体两边分别加上2个*号 斜体:字体两边分别加星号(1个) 粗体加斜体:字体两边分别加3个星号 删除:字体两边分别加2个波浪号 4引用符号 大于号:> &nb

vue2组件

概念 组件是视图层的基本组成单元。 组件是一个单独且可复用的功能模块的封装。 一个组件包括开始标签和结束标签,标签上可以写属性,并对属性赋值。内容则写在两个标签之内。 根节点为 <template>,这个 <template> 下只能且必须有一个根 <view> 组件。这是vue单文件组件规范。 一个组件的

为何每个开发者都在谈论Go?

本文深入探讨了Go语言的多个关键方面,从其简洁的语法、强大的并发支持到出色的性能优势,进一步解析了Go在云原生领域的显著应用和广泛的跨平台支持。文章结构严谨,逐一分析了Go语言在现代软件开发中所占据的重要地位和其背后的技术原理。 关注TechLeadCloud,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能

[JDBC]JDBC之DriverManager原理

本文只讨论 JDBC 驱动加载问题。 1 JDBC概述 1.1 什么是 JDBC JDBC 一般指 Java 数据库连接,(Java Database Connectivity,简称为 JDBC); JDBC 是 Java 语言中用来规范客户端程序如何来访问数据库的应用程序接口;其提供了如查询、更新数据库中数据的方法,我们常说的 JDBC 是面向关系型数据库的。 1.2 JDBC 基本结构

KindEditor实现WORD粘贴公式自动上传

​  如何做到 ueditor批量上传word图片? 1、前端引用代码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html&nb

Jmeter Plugins Manager插件

上一篇文章记录了1000个用户并发,想监听服务器的资源使用情况所以记录下用到的Manager插件和Server Agent插件     1. 将jmeter-plugins-manager放入%HOME%apache-jmeter-5.4.1libext文件夹下 2.将serverAgent-2.2.1用xftp传入linux系统中   如传入的是zip文件,先解压   

Tomcat1 - Servlet容器,与 SpringMVC 的关系

参考: PoetryAndTheDistance  :一:Tomcat核心组件及应用架构详解 Hong EuiSung –@gowoonosori :  요청처리 내부구조   Http 请求响应实例     Servlet 接口 为了解耦 【http服务器代码】和【业务代码】,Java就定义了一个接口,各种业务类都必须实现这个接口,这个接口

[个人笔记][C#]泛型

泛型 没有泛型时的问题 用object实现的通用集合类型不安全,无法保证数据元素类型一致 值类型会有额外的装箱拆箱开销 类型特化的集合每有一个新类型就需要重新实现一遍 泛型就是把类型作为参数,从而实现代码重用 C#的泛型在处理值类型的时候不会有装箱,节省性能和内存 省去类型检查的性能开销 相同泛型接口的不同构造被视为不同类型,一个类可以多次实现“同一个”泛型接口,虽然不建议,原因不知道没见

Flyweight Pattern —— Creational Class

享元模式在主流的标准里是放到结构大类下的,但是我感觉这个模式的最终作用也是为了获取一个类,所以我将其划分到创建大类下。 What is Flyweight Pattern Flyweight 是指轻量级的。 享元模式旨在支持大量细粒度的对象共享,以减少内存消耗。该模式通过共享相似对象的部分状态,来减少对象的数量。通过共享,可以节省内存并提高系统的性能。 享元模式通常涉及两个关键概念: 内部状态(

kafka-manager安装(CentOS7 + kafkamanager 3.0.0.1)

Linux系统-部署-运维系列导航   kafka-manager介绍  kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作。 之前叫kafka-manager,现在改名叫CMAK(Cluster Manager for Apache Kafka)了。 具体支持以下内容: 管理多个集群 轻松检查群

<<  <  706  707  708  709  710  711  712  713  714  715  716  >  >>