- 博客(169)
- 资源 (1)
- 收藏
- 关注

原创 再也不担心问到Java集合了,一文讲透Java中的数据结构
数据结构作为每一个IT人不可回避的问题,而Java对于不同的数据结构提供了非常成熟的实现,这一个又一个实现既是面试中的难点,也是工作中必不可少的工具,在此,笔者经历漫长的剖析,将其抽丝剥茧的呈现出来,在此仅作抛砖引玉,望得诸君高见,若君能有所获在下甚是不亦乐乎,若有迷惑亦与诸君共求之!
2021-01-28 13:20:18
20064
94

原创 十块钱帮我做个视频网站吧,就带弹幕那种?基于websocket协议与netty实时视频弹幕交互实现
实时视频弹幕基于websocket协议与netty实时视频弹幕摘要1 技术选型1.1 netty1.2 WebSocket1.3 为什么做这样的技术选型。2 实现思路2.1 服务架构2.2 传输流程3 实现效果3.1 视频展示4 代码实现4.1 项目结构4.2 Java服务端4.2.1 先做一个netty nio的服务端:4.2.2 服务端的具体处理逻辑4.3 网页客户端实现5 小结基于websocket协议与netty实时视频弹幕摘要2021年了,还有不支持弹幕的视频网站吗,现在各种弹幕玩法层出不穷
2021-01-14 21:28:16
6192
39

原创 2021年了还有做某某管理系统的?springboot整合mysql快速搭建XX管理系统
XX管理系统摘要1 技术选型1.1 Mysql81.2 springboot21.3 模板引擎thymeleaf2 项目构建2.1 创建项目2.2 建表3 项目实现3.1 项目效果3.2 项目结构4 代码实现4.1 前台页面4.2 后台业务实现4.2.1 实体类Employee4.2.2 数据库操作层repo摘要对企业来说,人、物资、能源、资金、信息是5大重要资源。人、物资、能源、资金这些都是可见的有形资源,而信息是一种无形的资源。以前人们比较看重有形的资源,进入信息社会和知识经济时代以后,信息资源就显
2021-01-08 00:25:51
4412
54

原创 图片资源服务器?一小时手写http服务器提供资源服务
http服务器摘要一、什么是http服务器二、如何自己简单实现一个http服务器三、自己实现的http服务器四、Http服务器实现(Java)摘要web开发一直是行业热门技术,而要做web程序就离不开http服务器,现在主流的http服务器用的最广的如tomcat,apache。还有商用版本的各式各样的http服务器,而再行业类各种微服务,各种web开发技术层出不穷,都是基于这些服务器上的架构上的使用,并没有从本质上提高服务器运行的效率,笔者在研究http服务的过程中,就花了一早上来写了这样一个http
2021-01-01 13:19:24
6371
36

原创 翻译app上的图片文字信息提取好神奇?如何实现一个文字图片识别程序
近日浏览网上一些图片提取文字的网站,觉得甚是有趣,花费半日也做了个在线图片试别程序,完成了两个技术方案的选择,一是tesseract+python flask的方案实现,二是tesseract+spring web的技术解决方案,并简作论述,与君共勉。
2020-11-24 01:15:50
5142
49
原创 【低代码】编辑器主要组成
当前市面上的低代码产品对用户而言,使用过程中最直观体验到的即编辑器,程序员可以简单看做我们【写代码使用的IDE】,可以将其类比成作图工具中的画布。
2023-06-11 21:32:12
349
原创 【低代码】低代码发展的局限性
低代码/零代码等产品都旨在帮助用户开发应用。所以做低代码、零代码产品一定要坚守核心,对于新功能,这个东西真的能帮助用户开发应用吗?对于功能修改,改了之后真的帮助用户更好更快更直观方便的开发自己的应用了吗?笔者也开发了不少低代码中使用的一些特性,在开发中我自认为我们的一些功能可能并没有让我们的平台更好用,甚至是历史倒车,但这也是正常的现象,很多时候只靠个人的产品感是很难确定用户是否真的觉得需要,是需要一定程度的试错。但是核心不能偏离产品理念,低代码零代码旨在帮助用户开发应用。就目前而言,低代码通常被应用到较为
2022-07-14 16:17:12
785
原创 【JVM】Java虚拟机中的锁概念
适应性自旋 (adaptive spinning) 在JUC中我们经常会用到自旋锁,什么是自旋锁呢? 让当前线程进行自旋(相当于在while语句中不停的执行去获取资源),如果在自旋完成后前面锁定同步资源的线程已经释放了锁,那么当前线程就可以不必阻塞而是直接获取同步资源,从而避免切换线程的开销,这就是自旋锁。通过对自旋锁的理解我们大概知道了其工作方式,虽然自旋锁是非阻塞的,但是并非所有情况自旋锁都是一种最优解。自旋等待虽然避免了线程切换的开销,但它要占用处理器时间(因为线程自旋相当于一直在wh
2022-05-01 23:47:19
1084
原创 【低代码】播放器模型剖析
低代码中播放器是什么?像我们常用的各种各样的软件中,音乐播放器、视频播放器都是大家所常用的,而什么又是低代码的播放器呢? 类比可知,音乐播放器是将音频文件用以声音形式呈现出来的一种工具,视频播放器是将图片/图片帧/视频文件等以画面形式呈现出来的一种工具,那我们低代码播放器就是将低代码模型/模型文件以网页/原生页面展现出来的一种工具。低代码模型就目前而言,低代码模型并没有统一的标准,这点和音视频不同,图像、音频文件基本都有较为统一的形式、并且各种编解码方式也能实现不同类型文件的转换,而低代码模型则不然。
2022-03-19 22:52:02
683
原创 【低代码】像Postman一样工作,轻量级API组件实现
首先明确要解决什么问题,通常的低代码平台基本功能都很强大了,但是程序一定会有其业务的特殊性,光靠平台不一定能解决所有问题,这就需要我们去拓展平台的扩展能力,能够使用一些第三方工具或者通用http api这样的形式来扩展平台自身能力。api组件就是为了让用户能使用通用的http接口,扩展平台的通用能力。在低代码产品中,很多产品往往支持用户去调用接口来实现自己的业务逻辑,这时往往需要一个功能去支持用户调用第三方api,如何实现这个一个组件以及怎样实现这样一个功能就成为了一个不可绕过的问题。当然,这样的产品也挺
2022-02-19 23:51:59
1168
原创 【低代码】可视化低代码产品实现基本架构
低代码在做什么第一性原理意味着你抛弃一切,直击真相本质,然后从那里开始推理。1通过第一性原理思维方式去思考低代码,首先不管我们做什么方式进行编程,一定是为了获得一个满足我们需求的程序,低代码和传统方式的区别在于进一步降低了编程门槛,将编程变成了一种更直观更容易理解方式,并未改变编程的本质。使用低代码平台进行开发,和普通的写代码开发并未发生本质的区别,它的作用在于降低门槛,提高受众面积,提高开发效率。那不难推理出,低代码是一种工具,和编程语言一样。那我们应该怎样去做一款低代码的产品呢?这个问题可能没有
2022-01-24 01:48:48
5463
1
原创 【低代码】低代码概述
初识低代码机缘巧合,2021年接触到了低代码,初见充满神秘,再见仍别具魅力。首先,低代码并非一个新的事物,但也并非新杯装陈酒。从历史来看,低代码并非横空出世;从应用发展来看,它任然稚幼。在行业内并没有低代码的一套统一的标准,整个行业还处于百家争鸣的时段,当然低代码作为Saas(Software-as-a-Service)领域的某一点,很难产生统一的标准,实现不同厂商之间的平台互通。目前,行业内已经涌现出不少商业化应用的低代码产品,既有特定领域特定场景的低代码平台,也有不少通用性的产品。低代码俨然
2022-01-22 01:32:08
1486
原创 强烈推荐的个人JAVA学习路线
整个学习路径已语法JAVA编程语言开始,再重新回顾整个数据结构体系,有了这些基础,去了解数据库的使用并剖析其原理,然后再去学习工作中常用的Web开发工具,从基础的Servlet到SpringMVC,循序渐进,逐步探索,就如胡适先生所言:怕什么真理无穷,进一步有进一步的欢喜…
2021-12-15 23:42:54
9304
原创 基于spring多Kafka实例配置
1、多实例配置原理和单实例配置的区别项目中如果使用了不同实例的kafka就需要多配置,单个实例的话使用springboot的yaml配置自动装配即可。1.1 单实例spring: kafka: bootstrap-servers: server consumer: group-id: 消费者你的groupId enable-auto-commit: false auto-offset-reset: earliest #用于链接带密码
2021-10-29 16:47:36
2749
原创 Spring基础知识点
Spring bean的定义spring bean 是一个被实例化,组装,并通过 Spring IoC(Inversion of Control) 容器所管理的对象。Spring bean的生命周期Bean的定义——(BeanDefinition)Bean的初始化——Bean的使用——Bean的销毁Spring bean的装配方式隐式的bean扫描发现机制和自动装配在java中进行显示配置在XML中进行显示配置 <bean id="xxService" class="com.
2021-10-18 16:43:54
463
原创 Kafka基于springBoot生产者和消费者示例
kafka相关配置# mini-program:# infras: enabledspring: kafka: bootstrap-servers: consumer: group-id: enable-auto-commit: false auto-offset-reset: earliest #用于链接带密码的kafka 配置,如果kafka没有密码需要注释掉 properties: sa
2021-10-18 08:54:21
508
原创 springboot中使用Kafka报错 default message [Payload value must not be empty]]
Caused by: org.springframework.messaging.handler.annotation.support.MethodArgumentNotValidException: Could not resolve method parameter at index 1 in public void com.***.RightLotteryListener.listen(org.apache.kafka.clients.consumer.ConsumerRecord<?, ?&g
2021-09-05 23:40:59
5712
2
原创 Caused by: java.lang.IllegalStateException: Only one AsyncConfigurer may exist
public class GlobalExecutor implements AsyncConfigurer
2021-09-05 23:35:03
2462
原创 如何获取Java,JDK源码
GitHub找到JDKGitHub上搜索jdk即可找到Open-Jdk的源码。GitHub: link.Open-Jdk源码结构包名主要作用hotspotJava虚拟机hotspot的实现java.baseJdk中Java基础工具java.compilerJava编译器实现,Java自举实现java.desktopJava桌面端…下载项目Git指令:git clone https://github.com/openjdk/jdk.git
2021-07-18 22:50:14
453
原创 JUC是什么?
JUC表示什么JUC是java.util.concurrent包的缩写,其包结构如下。JUC框架结构JUC是包的简称,JUC可能也是Java核心里最难的一块儿,JUC指的是Java的并发工具包,里边提供了各种各样的控制同步和线程通信的工具类。学习JUC之前,最重要的是了解JUC的结构是什么样的。就如同Java的集合框架的结构一样,JUC也有自己框架结构,只是往往被大家忽略,笔者就简单的梳理了下JUC的框架结构,JUC的框架结构不同于集合,它并非是实现继承框架结构。JUC框架概述JUC框架的底层
2021-06-23 22:48:13
6769
原创 最新Mysql与Navicat下载安装教程
MySQL 安装步骤1、下载MySQL2、安装MySQL3、MySQL的基本使用1、下载MySQL我们先进入MySQL官网,下载MySQL的官方安装包。(网址:http://www.mysql.com)官网首页:点击downloads点击“MySQL Community (GPL) Downloads »”点击“MySQL Installer for Windows”。(我们这里讲的是windows环境下的安装)下载容量大的(下东西一般都这么来,哈哈)最后进入这个页面,官方要求你登
2021-05-27 23:33:07
2925
3
原创 超硬核,5w字详解Java集合升级版(推荐收藏)
Java数据结构实现详解摘要1 集合框架1.1 顶层接口Iterable1.2 Collection接口2 List2.1 List接口2.2 List实现ArrayList2.2.1 ArrayList继承关系2.2.2 ArrayList组成2.2.3 ArrayList构造函数2.2.4 ArrayList中添加元素2.2.4 ArrayList扩容2.2.5 数组copy2.2.6 why?elementData用transient修饰?面试题5:el
2021-05-19 23:35:10
2701
原创 Java条件语句
If语句If语句用于程序控制代码块是否会执行。true:会执行if(true){ System.out.println("true");}false:代码块不会执行if (false){ System.out.println("false");}If else语句If else语句表示非正则负,非你即我,用于互斥情况。if (condition){ }else { }条件运算符条件运算符用于判断真假值,在流程控制语句常常用到条件运算符。
2021-05-14 00:31:12
616
原创 基础必会必考点 Java数组
Java 数组连续存储的元素集合<font face="楷体">个人认为Java中的数据即C++、C语言相同,一定是连续分配的。笔者在C语言教材找到这样一段话可以证明:All elements of a one-dimensional array are always stored in consecutive memory locations.数组定义非初始化:int [] a1;初始化:int [] a2 = new int[10]; 和C语言一样,数组的长度是不可变的
2021-05-13 00:12:21
563
2
原创 面试必背,深入理解Java String
Java StringJava String本质上是一个连续的字符数组。创建字符串1. 直接String对象赋值创建。String s1 = "Hello World!";2. 使用String类的构造函数创建。String s2 = new String("Hello World!");String是单例的(常量)举例说明,如下列结果为true,为什么s1和s3是两个不同的变量为什么会相同呢? 这是因为在同一个运行环境下直接赋值创建的String对象会放在一个常量池里,当创建相同
2021-05-10 23:51:28
1418
11
原创 Java switch使用详解
switch语句Switch语句可以实现根据某一变量选则执行代码块。当然直接使用If语句也可以做到,但是有时候使用Switch语句往往更加简洁优美。switch语法Java中switch语句的使用如下例所示:public void switchInt(int a){ switch (a){ case 0: System.err.println("0"); break; case 10:
2021-05-07 23:34:18
5576
原创 Java数据类型(Data Type)
Java数据类型(Data Type)Java数据类型分类数据原型 (Primitive Data Types)对象包装类型 (Wrapped Object Type)数据原型和包装类型关系装箱拆箱对象引用类型 (Object references)Java数据类型分类Java中有两种数据类型原型和对象类型数据原型 (Primitive Data Types)数据类型范围boolean一个二进制值,true或者falsebyte8位带符号值,-128 至 127
2021-05-05 23:15:02
2135
1
原创 for k, v in k_map: ValueError: too many values to unpack (expected 2)
报错原因:python里不能这样遍历字典的键值对:for k, v in k_map: 需要写成for k, v in k_map.items():
2021-05-05 22:26:10
1022
1
原创 TypeError: unsupported operand type(s) for +: ‘NoneType‘ and ‘str‘
出错原因:当一个变量为None时不能用+进行字符串拼接k_map[str(scene_key[index])] = k_map.get(scene_key[index]) + “。” + str(item)解决办法进行非空判断if var is None: ****************else: ***************
2021-05-05 22:19:37
4802
原创 沪漂程序员的两年,终说再见,你会不会是下一个离开的人?
始于云南,梦出发的地方 在昆明读了四年的本科,那是一段没有太多焦虑的日子,这所美丽又带着,位于西南边陲常常被人所 2019年,和很多憧憬北上广的同学一样,并没有太多犹豫就来了上海,当时是和同学院的同学潘先生一起,...
2021-04-12 22:48:20
1450
17
原创 4.10 NIO中零拷贝原理
4.10 零拷贝 零拷贝即Zero-Copy,顾名思义,零拷贝是指的一种非拷贝的方式来减少IO次数的工作方式。零拷贝的作用就是减少IO,提高IO效率。4.10.1 传统IO方式 传统IO的工作方式需要经历多次文件拷贝,还需要程序在操作系统模式和用户模式之间来回切换,这样来回一圈后才来完成一次文件修改,这样极大浪费了内存,效率偏低,所以在
2021-03-20 13:00:12
321
2
原创 4.9 文件描述符FileDescriptor
4.9 FileDescriptor Instances of the file descriptor class serve as an opaque handle to the underlying machine-specific structure representing an open file, an open socket, or another source or sink of bytes.The
2021-03-20 12:17:32
387
原创 求树的最大深度,求树的最小深度
树的深度 树的深度描述的树从根到当前节点的层级信息。求树的最大深度 解法:遍历所有的层级信息,找最大的。public static int maxDepth(TreeNode root){ if (root==null){ return 0; } return 1+Math.max(maxDept
2021-03-17 21:35:26
391
原创 LeetCode102. 二叉树的层序遍历
题目描述 按照层次遍历树(即BFS),相同层级作为一个List放在一起放入作为结果的List。解题思路 即BFS,按照广度优先去遍历树,关于树的BFS和DFS在笔者相关文章中有详述。代码实现public List<List<Integer>> levelOrder(TreeNode root) { Q
2021-03-17 00:01:29
1739
原创 树的广度优先遍历
树的广度遍历 广度优先遍历又称宽度优先遍历,缩写为BFS,和深度优先遍历DFS不同的是深度优先是指的同一个树先将某节点所有子节点遍历完后再遍历其兄弟节点。而BFS是先把同一层级的节点遍历完后再遍历下一级的子节点。BFS 即同一层级遍历完然后到下一层级。DFS &nb
2021-03-16 23:53:50
3887
5
原创 基于ElasticSearch的站内全文搜索实现
摘要 对于一家公司而言,数据量越来越多,如果快速去查找这些信息是一个很难的问题,在计算机领域有一个专门的领域IR(Information Retrival)研究如果获取信息,做信息检索。在国内的如百度这样的搜索引擎也属于这个领域,要自己实现一个搜索引擎是非常难的,不过信息查找对每一个公司都非常重要,对于开发人员也可以选则一些市场上的开源项目来构建自己的站内搜索引擎,本文将通过ElasticSearch来构建一个这样的信息检索
2021-03-07 23:22:25
3589
14
原创 4.8 NIO Buffer详解
4.8 Buffer Java中的Buffer就是一块内存区,用于存放特定的数据,Buffer常用于和Channel一起工作,也能做缓存。将数据从其他地方读到Buffer,也可以将Buffer中的数据写入其他地方。4.8.1 Buffer分类 Java中有以下不同类型的buffer:ByteBuffer,MappedByteBuffer,
2021-03-06 19:02:31
1992
2
原创 4.7 Nio Channel详解
4.7 Channel Channel是NIO中的一个重要组成部分,可以从Channel中读入数据到Buffer,也可以将Buffer中的数据写入Channel。4.7.1 Channel的分类Channel作用FileChannel用于从文件中读取数据DatagramChannel通过UDP读写数据SocketChannel作为客户端通过TCP读写数据ServerSocke
2021-03-06 16:29:40
2176
libfastcommon-1.0.40.tar.gz
2020-03-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人