首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏杰凡IT

    java弹幕视频网站源码

    简介 Java基于ssm的弹幕视频系统,用户注册后可以上传视频进行投稿,也可以浏览视频发送弹幕,在个人中心管理视频、管理弹幕、管理评论等。管理员可以管理视频弹幕评论,查看统计图。 演示视频: https://www.bilibili.com/video/BV15T4y1P7kk/? ,分类,视频列表,搜索,视频详情,视频点赞,收藏视频,发布评论,删除评论,发布弹幕,加入稍后观看列表。 个人中心 我的视频主页:分页、根据标题搜索; 稍后观看视频:分页,清空记录; 收藏夹:分页,清空记录; 历史记录:分页,清空记录; 评论管理:分页,删除,根据视频标题评论内容搜索; 视频标签:分页,删除 管理员 视频管理:分页,根据视频标题搜索,编辑,删除视频,评论管理,弹幕管理; 评论管理:分页,删除,根据视频标题内容搜索; 弹幕管理:分页,删除,根据视频标题内容搜索; 用户管理:分页,删除,根据用户名搜索

    2.5K40编辑于 2023-01-08
  • 来自专栏音视频开发技术

    ffplay源码分析4-音视频同步

    4. 音视频同步 音视频同步的目的是为了使播放的声音和显示的画面保持一致。 音视频同步的方式基本是确定一个时钟(音频时钟、视频时钟、外部时钟)作为主时钟,非主时钟的音频或视频时钟为从时钟。 按照主时钟的不同种类,可以将音视频同步模式分为如下三种: 音频同步到视频视频时钟作为主时钟。 视频同步到音频,音频时钟作为主时钟。 音视频同步到外部时钟,外部时钟作为主时钟。 [4]. 4.3 视频同步到音频 视频同步到音频是ffplay的默认同步方式。在视频播放线程中实现。

    2.7K40发布于 2019-04-02
  • Java-如何设计

    前言链,通俗地讲就是将原本非常长的URL链接精简,让链接也能访问到原本的长链接。比如给我们发送的系统通知。长链和链让我们都能访问到同一篇文章。那既然有了长链,为什么还需要链? 请求流程功能实现长链->链那么长链又是转成链的呢? ', PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ ai_ci COMMENT='长链->链表';链重定向当前端发送访问链请求时,先去找到链对应长链,将重定向请求返回浏览器,浏览器再去请求长链。 最终流程演示完整代码前端(vue3):https://gitee.com/HT3902LY/writing_front后端(Java):https://gitee.com/HT3902LY/writing_back

    51910编辑于 2024-09-19
  • 来自专栏学习Java专栏

    java 如何实现函数调用?

    Java中,可以使用lambda表达式来实现函数调用。Lambda表达式是一个匿名函数,它可以传递给方法或存储在变量中,以便在需要时使用。 不多说废话!! 系统学习:https://www.bilibili.com/video/BV1PU4y1E7nX?p=5 所以现在大家学会了吗? 使用lambda表达式,可以快速简便地实现函数调用,特别是在处理函数式编程方面。 Lambda表达式作为Java 8的新特性之一,也是因为它可以帮助我们写出更简洁、更灵活的代码,所以当下,Lambda表达式已经是很多开发人员的心头爱了,所以大家赶快练习起来吧,难道你不想让你的写的代码更简洁 系统学习:https://www.bilibili.com/video/BV1PU4y1E7nX?p=95&vd_source=1312e41c0e6ed279a654fcab933c27d3

    1.3K00编辑于 2023-05-26
  • 来自专栏Throwable's Blog

    链接服务Octopus的实现与源码开放

    假设我们使用的是26个字母的大小写,加上10个数字,那么对于N位压缩码可以表示的最大组合数量为: N = 4,组合数为62 ^ 4 = 14_776_336,147万接近148万 N = 5,组合数为62 这里为了方便管理和升级版本,笔者直接把logback-mdc-ttl的源码实现改造好后放到项目中。 :重定向处理 TransformEventProcessTransformFilter:转换事件记录 以UrlTransformFilter为例子,源码如下: COPY@Slf4j @Scope(scopeName 编写一个集成测试类,创建一个链映射: COPY@Slf4j @SpringBootTest(classes = OctopusServerApplication.class, properties = 文中描述的版本是公司生产版本的移植版,精简了大量代码同时移除了一些业务耦合的设计,这里把源码开放出来,让一些有可能用到链服务的场景提供一个可参考但尽可能不要复制的解决思路。

    1.3K31发布于 2020-12-29
  • 【详解】Java生成8位UUID

    Java生成8位UUID在Java中,UUID(Universally Unique Identifier)通常用于生成全局唯一的标识符。 虽然缩短UUID会增加碰撞(即生成两个相同标识符)的风险,但在某些特定场景(如生成链接、简短的API密钥等)中,这可能是可接受的。下面是一个简单的Java方法,用于生成一个较短的8位UUID。 import java.util.UUID;import java.math.BigInteger;public class ShortUUIDGenerator { public static 这个操作会损失UUID的唯一性,因此生成的UUID有更高的碰撞风险。取模后的结果转换为一个16进制字符串,并取其前8个字符作为UUID。 在使用这种UUID时,请务必评估您的具体需求和对唯一性的要求。如果您需要更高级别的唯一性保证,请考虑使用完整的UUID或其他全局唯一标识符系统。当然,我可以为您提供一个实际应用场景中的示例代码。

    1.8K00编辑于 2024-12-31
  • 来自专栏工作笔记精华

    JAVA生成8位UUID 转

    java 原创,转载需注明。 8位UUID思想其实借鉴微博域名的生成方式,但是其重复概率过高,而且每次生成4个,需要随即选取一个。 本算法利用62个可打印字符,通过随机生成32位UUID,由于UUID都为十六进制,所以将UUID分成8组,每4个为一组,然后通过模62操作,结果作为索引取出字符, 这样重复率大大降低。 "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", "0", "1", "2", "3", "4" i * 4 + 4); int x = Integer.parseInt(str, 16); shortBuffer.append(chars[x % 0x3E]); } return shortBuffer.toString * 4 + 4 val = int(id[start:end], 16) buffer.append(array[val b]) return "".join(

    6.4K00发布于 2019-04-18
  • 来自专栏IT互联网

    剖析链接工具开发原理与源码讲解

    二、链接多才合适 链接既然这么重要,那么,究竟多才合适呢?目前全球拥有70亿人口,假设每人拥有一个网页的基数,那么已有70亿个网页链接。 在经过0ut链压缩后,生成链接: https://m1.fit/1p4b5 这是如何实现的呢? 下面为大家讲解下链接生成原理: 请求链接,跳转到原链接的流程图:  五、如何存储 如果存储短网址和长网址的对应关系? 当前流行的KV存储引擎有LevelDB何RockDB,可以去了解它们的源码。 根据上面的简单叙述,相信大家对在链接生成器这样一个链接平台应该有所了解,其实只要弄懂了原理,我们都可以自己做一套属于自己的链接生成器短网址平台。

    1.5K50编辑于 2021-11-29
  • 来自专栏陈琛的Redis文章

    Java源码系列(4):String,StringBuilder,StringBuffer区别

    我们看出在25行地址是497,在27行地址是499,就说明Java首先创建一个String对象str,并把“abc”赋值给str,然后在27行中,其实JVM又创建了一个新的对象也名为str,然后再把原来的 所以,Java中对String对象进行的操作实际上是一个不断创建新的对象并且将旧的对象回收的一个过程,所以执行速度很慢。

    40720发布于 2020-06-12
  • 来自专栏星泽V社的博客

    Sir在线生成链接源码全开源+Api接口

    Sir在线生成链接源码全开源+Api接口 支持在线生成链接+支持API在线生成链接 API使用: 域名/api.php? type=云端接口识别码&url=缩短的域名 自带云端接口(云端拥有20多种接口,目前云端接口大多数免费使用) 本源码只添加了两种云端接口,如需添加接口,请自行到云端接口查看识别码,云端接口地址在api.php

    1.6K10编辑于 2022-11-01
  • 来自专栏网站源码分享

    Sir在线生成链接源码全开源+Api接口

    支持在线生成链接 + 支持 API 在线生成链接 API 使用: 域名 /api.php? type= 云端接口识别码 &url= 缩短的域名 自带云端接口 (云端拥有 20 多种接口,目前云端接口大多数免费使用) 本源码只添加了两种云端接口,如需添加接口,请自行到云端接口查看识别码,云端接口地址在 如需添加接口请到首页 index.html 文件里面进行添加 例如云端接口识别码是: mtwso 那么如下例 服务器和主机都可以搭建 源码下载地址: https://lanzoui.com/

    1.3K10编辑于 2023-04-19
  • 来自专栏拭心的安卓进阶之路

    并发编程4Java 阻塞队列源码分析(上)

    这篇文章我们来详细了解下 Java 中的阻塞队列究竟是什么。 什么是阻塞队列 阻塞队列其实就是生产者-消费者模型中的容器。 七种阻塞队列的前三种 Java 中提供了 7 种 BlockingQueue 的实现,在看线程池之前我根本搞不清楚究竟选择哪个,直到完整地对比总结以后,发现其实也没什么复杂。 不能保证同一优先级元素的顺序 这里就不再像前面那么详细地介绍源码了。 不了解 Comparator 和 Comparable 可以看这篇 Java 解惑:Comparable 和 Comparator 的区别。 经过源码分析我们了解了 PriorityBlockingQueue 为什么是无界、有优先级的队列了。因为它可以扩容,在添加、删除元素后都会进行排序。 由于篇幅原因,我们将阻塞队列分两篇介绍。

    1.7K90发布于 2018-01-05
  • 来自专栏狗哥的 Java 世界

    Java 并发(4)AbstractQueuedSynchronizer 源码分析之条件队列

    所以在本文中我只会细讲 await 方法和 signal 方法,其他方法不细讲但会贴出源码来以供大家参考。 1. reportInterruptAfterWait(interruptMode); } //返回剩余时间 return nanosTimeout - (System.nanoTime() - lastTime); } 4. //2.将头结点的后继结点引用置空 first.nextWaiter = null; //3.将头结点转移到同步队列, 转移完成后有可能唤醒线程 //4. = null); } 至此,我们整个的 AbstractQueuedSynchronizer 源码分析就结束了,相信通过这四篇的分析,大家能更好的掌握并理解 AQS。

    59220发布于 2020-03-24
  • 来自专栏Java架构师必看

    spring源码4

    spring源码4 强烈推介IDEA2020.2破解激活,IntelliJ IDEA

    29730发布于 2021-05-14
  • 频快task的java解决方案

    例如task1,拆出了task2,task3,task4。现在task2正在被执行,task3还在队列里,task4已经被窃取走了。现在对整体任务1发起中断。 正确的中断是task2中断,task3取消,task4中断。最终对于task1而言是被中断了。这里就有了一个问题,task4被窃取走了,怎么知道那个线程需要被中断呢? 对于频快的任务,获取任务的损耗就会变得特别明显。线程池的队列必须是一个阻塞队列。 例如下面的展示 自身任务的执行 |1|2|3|4|5|执行的过程就是设置为null|null|2|3|4|5|其他线程来窃取就变成了|null|2|3|null|null|任务线程和窃取线程就避免了重量的锁操作 如果任务执行,并且还需要被中断,可以在threadpool之上,进行二次的封装。设计任务窃取的逻辑。重点设计是窃取方式以及性能损耗。

    23810编辑于 2024-10-17
  • 来自专栏后端知识开放麦

    Java链接生成服务实战指南

    链接服务的实际应用1.1 为什么需要链接链接在现代互联网应用中扮演着重要角色。想象一下,你在发短信推广时,一个几十个字符的长链接会占用大量字符空间。 1.2 链接的核心原理短链接的工作机制其实很简单:建立一个映射关系。长链接通过某种算法生成一个标识,存储在数据库中。用户访问链接时,系统根据标识找到原始链接,然后重定向过去。 4. 自增生成方式实现4.1 主控制器代码自增方式的优势在于能够保证生成的链接绝对不重复。我们从一个较大的数字开始(比如100万),这样生成的链接不会太短,看起来更专业。 余数 12 → 字符'c'4 ÷ 62 = 0,余数 4 → 字符'4'反转后得到:"4c98"这样就把7位数字压缩成了4位字符串,压缩率非常高。 参考:https://blog.csdn.net/java_zhangshuai/article/details/106942758

    61930编辑于 2025-09-13
  • Java中的长链和链技术详解

    简介:长链和链是Java中两种常见的网络通信方式,它们在连接建立、数据传输和资源管理等方面存在显著差异。 一、长链与链概述 长链和链的主要区别在于连接的持续时间。长链是指客户端与服务器之间的连接保持打开状态,可以持续进行数据传输。而链则是在每次数据传输完成后关闭连接,下次传输时重新建立连接。 (3)适用场景有限:长链适用于需要频繁进行数据交换且数据量较大的应用场景,如在线游戏、视频会议等。 三、链技术详解 原理 链的实现基于HTTP协议。 四、长链与链使用场景 1. 连接的应用场景 低频请求:当客户端与服务器之间的请求频率较低时,每次请求都建立新的连接不会对系统造成过大负担。这种情况下,连接的简单性和资源释放的及时性更为合适。 数据流传输:长连接适合需要持续传输数据的场景,如视频流媒体、WebSocket连接、心跳检测等。

    23410编辑于 2025-11-03
  • 来自专栏csdn_blog

    剑指Offer第4题详解(附Java、Python源码

    例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。 2. 则切割后的左子树前序序列为:{2,4,7},切割后的左子树中序序列为:{4,7,2};切割后的右子树前序序列为:{3,5,6,8},切割后的右子树中序序列为:{5,3,8,6}。 (4)对子树分别使用同样的方法分解(使用递归较方便)。 3. 代码实现 3.1 Java 实现 1.先来棵树 class TreeNode { int value; TreeNode leftTree; TreeNode rightTree leftTree=" + leftTree + ", rightTree=" + rightTree + '}'; } } import java.util.Arrays

    54740发布于 2020-09-22
  • 来自专栏崩天的勾玉

    的腾讯一面·Java·后台实习

    这次给大家带来的是牛客一位昵称为一条咸鱼游啊游的朋友分享的面经,勾玉在这里做出分析解答,一起看看吧~ 巨的腾讯一面·Java·后台实习 好久以前投的,投了20多天突然被捞了。 第一次遇到这么的面试,加上算法不到半个小时。 1.也没让我自我介绍,开头直接问我实习时间。 2.你平时用什么语言(Java) 3.类加载过程 参考勾玉文章 面试八股文之【JVM类加载机制】 4.类加载器,双亲委派 参考勾玉文章 面试八股文之【JVM类加载机制】 5.JVM怎么调优(???

    81820编辑于 2021-12-20
  • 来自专栏爪哇缪斯

    源码解析:ThreadLocal(4

    方法代码很少,源码和注释如下所示: 【解释】 removed如果为false,则可以理解为table数组里基本没有“陈旧”Entry。 2> 如果满足数组中存在的Entry数量 >= 3/4threshold,则进行resize()扩容操作。 源码和注释如下所示: 流程图如下所示: 3.9> expungeStaleEntries() 该方法内部比较简单,就是遍历table数组里的Entry,调用expungeStaleEntry方法(expungeStaleEntry 详情上面介绍了,这里就不再赘述了) 源码和注释如下所示: 3.10> resize() 扩容操作执行如下操作: 按照原table数组长度,创造长度为2倍的新table数组。 源码和注释如下所示: 四、ThreadLocal 内存溢出问题: 通过上面的分析,我们知道expungeStaleEntry() 方法是帮助垃圾回收的,根据源码,我们可以发现 get 和set 方法都可能触发清理方法

    25020编辑于 2023-05-09
领券