技术分享
文章平均质量分 78
技术分享
不安分的猿人
一位多年Java开发老鸟,支持远程部署调试 运行安装 擅长主流开发技术 项目技术新颖 部分源码免费分享。
展开
-
如何遍历一个集合
扩容操作会创建一个新的数组,其大小通常是当前容量的1.5倍(具体增长因子可能会根据实现有所不同)。然后,会将原数组中的元素复制到新数组中。最后,新旧列表的size大小相同,但elementData的长度即容量不同。值得注意的是,ArrayList的扩容机制是有一定开销的,因此在预知需要存储大量元素时,最好在创建ArrayList时就指定初始容量,以减少扩容次数,提高性能。遍历一个集合的方法取决于集合的类型。由于Set的元素无序,因此使用迭代器的方法和List类似,但遍历的结果可能没有固定的顺序。原创 2024-01-22 10:30:00 · 372 阅读 · 0 评论 -
java 中 Iterator 与Iterable的作用
Iterator接口是Java集合框架中的一个重要接口,主要用于遍历集合中的元素。它提供了一种安全且易于理解的方式来访问集合中的元素,隐藏了不同集合类的具体实现细节,并提供了一种标准的访问方式。Iterator接口定义了三个基本方法:hasNext()、next()和remove()。其中,hasNext()方法用于检查集合中是否还有下一个元素;next()方法返回集合中的下一个元素,并将指针移动到下一个位置;remove()方法用于删除集合中上一个next()方法返回的元素。原创 2024-01-22 10:00:00 · 864 阅读 · 0 评论 -
java常见集合类的区别
HashSet和TreeSet都是Java集合框架中的Set接口的实现类,但它们在底层数据结构、元素的排序和性能等方面存在一些重要的区别。ArrayList和LinkedList都是Java集合框架中的List接口的实现类,它们在实现方式、性能和适用场景等方面存在一些区别。HashMap和TreeMap都是Java集合框架中的Map接口的实现类,它们在实现方式、性能和适用场景等方面存在一些区别。总的来说,HashSet和TreeSet都是非常有用的集合类,它们各自有自己的特性和性能特点,适用于不同的场景。原创 2024-01-21 09:39:40 · 778 阅读 · 0 评论 -
几行命令就可以画流程图-PlantUML
几行命令就可以画流程图,是的,你没有听错!一、PlantUML简介PlantUML是一个开源项目,支持快速绘制:时序图、用例图、类图、活动图、组件图、状态图、对象图、部署图、定时图。同时还支持以下非UML图:线框图形界面、架构图、规范和描述语言 (SDL)、Ditaa diagram、甘特图、思维导图、Work Breakdown Structure diagram、以 AsciiMath 或 JLaTeXMath 符号的数学公式、Entity Relationship diagram。工.原创 2020-11-06 23:06:47 · 1541 阅读 · 3 评论 -
大数据时代-可视化数据分析平台必不可少
一、项目简介DataGear是一款数据管理与可视化分析平台,使用Java语言开发,采用浏览器/服务器架构,支持多种数据库, 主要功能包括数据管理、SQL工作台、数据导入/导出、数据集管理、图表管理、看板管理等。系统特点可管理数据库驱动: 管理员可通过驱动程序管理功能添加数据库驱动程序,无需重启,即可支持连接新数据库。参数化数据集: 可编写动态SQL语句数据集,为其添加参数,构建可交互式图表。多数据源聚合图表: 一个图表可添加多个不同数据源的数据集,将不同数据源的数据聚合展示于同一图表。插件式图表原创 2020-06-22 21:42:27 · 1440 阅读 · 1 评论 -
为什么每次登录都有烦人的验证码
一、应用场景每次登录系统的时候总是要输入烦人的验证码,那么我们今天就思考这个问题,为什么要有验证码这个功能?很多伙伴应该都知道:防止黑客通过接口调用攻击系统,每次登录系统要输入验证码就防止机器访问。做限流处理,防止同一时间产生大量用户的涌入,防止系统崩溃。验证码的种类传统输入式验证码: 用户输入图片中的字母、数字、汉字等进行验证。简单易操作,人机交互性较好。但安全系数低,容易被破解。输入式的图形验证码: 有精美图案,识别文本也清晰可认,专注于广告。一种广告位的展现形式。纯行为验证码:.原创 2020-06-08 22:22:27 · 1095 阅读 · 0 评论 -
新鲜出炉的一款SpringBoot +Vue的考试系统
一、考试系统简介新鲜出炉的一款SpringBoot +Vue的考试系统,支持多种题型:选择题、多选题、判断题、填空题、综合题以及数学公式。支持在线考试,教师在线批改试卷。二、项目架构后端技术栈SpringBoot: SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的创建、运行、调试、部署等。Mybatis: 一个持久层的框架,与数据库进行交互,将数据持久化到关系型数据库中Shiro: 一个功能强大且易于使用的Java安全框架,进行身份验证,授权,加密和原创 2020-05-25 22:07:44 · 5140 阅读 · 4 评论 -
SpringBoot + Vue + Electron 开发 QQ 版聊天工具
一、简介这是一款基于 JS 实现的超轻量级桌面版聊天软件。主要适用于私有云项目内部聊天,企业内部管理通讯等功能,主要通讯协议websocket。也支持web网页聊天实现。文字聊天,互传文件,离线消息,群聊,断线重连等功能。先看一下效果,下图左边是web版,右边为PC版。二、本地搭建2.1 技术栈后端技术栈:springboot: 让开发人员快速开发的一款Java的微服务框架。tio: 是百万级网络框架oauth2.0: OAuth 2.0 是一个行业的标准授权协议。OAuth 2..原创 2020-05-18 23:10:31 · 10723 阅读 · 23 评论 -
只有你想不到,Electron也可以开发视频播放器
## 一、桌面版视频播放器今天又发现一款强大的开源软件,electron 开发的一个可以播放国内主流视频(腾讯、爱奇艺、优酷、芒果、乐视)的播放器。而且播放视频可直接跳过广告。好的开源项目第一时间分享给大家!二、开发环境搭建2.1 前提本地安装Node12.x+环境,Node.js是一个运行在服务端的JavaScript框架,主要用于创建快速的、可扩展的网络应用。本地已安装VSCode开发工具(其他工具也可以)。掌握Vue、Vuex基础语法。Electron是由Github开发,用HTML,原创 2020-05-10 20:53:27 · 4328 阅读 · 4 评论 -
Electron + Vue开发一款音乐播放器
一、桌面版音乐播放器劳动节放假了,给大家分享一个轻松的开源项目,一个基于 Electron + Vue 开发的音乐软件。项目的一大特色就是多平台搜索歌曲,并支持下载功能(有些平台的vip歌曲也可以哦!)。二、开发环境搭建2.1 前提本地安装Node12.x+环境,Node.js是一个运行在服务端的JavaScript框架,主要用于创建快速的、可扩展的网络应用。本地已安装VSCode开...原创 2020-05-05 20:20:37 · 3779 阅读 · 0 评论 -
快速迭代-自助快递系统升级了
文章目录一、项目介绍二、搭建开发环境三、功能扩展四、项目运行效果五、SSL 认证六、项目部署6.1 jar包部署6.2 docker容器部署一、项目介绍升级版自助快递查询系统,采用SpringBoot + Apache Shiro + Mybatis Plus + Thymeleaf 架构。kuaidi-cms致力于开发最精简、实用的快递CMS管理系统,完美自适应。上篇文章一款精美的后台内容...原创 2020-04-27 08:57:17 · 926 阅读 · 0 评论 -
借用别人的梯子,快递搭建后台内容管理系统
文章目录一、项目简介二、开发环境搭建2.1技术栈2.2部署三、导入 excel 功能四、FAQ3.1 项目集成`Mybatis` 是否可以不指定 `type-aliases-package`属性?3.2 @RestController 和@Controller的区别?3.3 controller 如何注入`service`?五、最后参考文章一、项目简介上一篇文章手撸的一个快递查询系统,竟然阅...原创 2020-04-20 09:00:51 · 943 阅读 · 0 评论 -
手撸的一个快递查询系统,竟然阅读量过1.8w
一、目的做这个项目的初衷是因为我去年在微信卖老家水果,好多朋友下单后都问我快递单号,每天发货后我都要挨个甄别这个人是哪个快递信息,很麻烦一部小心就搞错了。基于这件小事我有了自助快递查询的这个想法。将发货的快递信息导入到我的系统里,用户访问我的系统,通过输入手机号就可以查看自己的快递物流信息。项目是去年8月写的,一直搁浅在哪,最近无意间翻看我发的那篇文章自助快递单号查询阅读量竟然都1.8w了,...原创 2020-04-13 08:24:16 · 5267 阅读 · 9 评论 -
Hugo 快速搭静态网站
一、简介Hugo 是Go语言实现的一款静态网站生成器。它简单、易用、高效、易扩展、快速部署。相比较其他静态网站生成器,它的优点有这几点:项目构建特别快主题目录与站点目录结构一样配置文件为*.toml 格式,语法常简单易懂,没有缩进的要求二、快速搭建2.1 安装 Hugo下载地址:https://github.com/gohugoio/hugo/releases 根据自己的操作系...原创 2020-04-07 22:34:18 · 1475 阅读 · 0 评论 -
一款 Windows 上的万能工具 Wox
一、它能干什么可快速搜索本地文件,并可以快速打开应用。可执行本地命令行命令,执行相应命令。可安装扩展插件,在线搜索,在线翻译等功能。多种主题自由切换,也可以自动主题。先看一下这个工具有多厉害,我想你应该会喜欢他的!二、安装Wox 是一款开源项目,安装包下载地址:https://github.com/Wox-launcher/Wox/releases这里需要下载三个软件包,Ev...原创 2020-03-30 13:38:28 · 1981 阅读 · 0 评论 -
万能抓包工具 Fiddler
一、Fiddler 简介Fiddler 是一个使用 C# 编写的 http 抓包工具。它使用灵活,功能强大,支持众多的 http 调试任务,是 web、移动应用的开发调试利器。我很早之前的一篇文章 Fiddler抓取数据,20行代码赚500块,凑巧帮那位朋友解决了他的需求。隔了这么久又有人找我抓公众号数据。今天就分享一下我是如何使用 Fiddler 工具的。二、实战2.1 工具安装F...原创 2020-03-16 22:09:24 · 608 阅读 · 0 评论 -
Axelor一款不用写代码的OA项目框架
一、简介Axelor Open Suite 关注业务流程,减少了开发的复杂度,帮助我们快速构建应用。它是一款 MVC 框架,需要我们写很少量的 java 代码,因为它的 models,views, actions 都是在 xml 文件中定义的,框架会自动帮我们生成各部分的代码,大大提高了开发效率,只有少量的业务代码需要我们开发。功能已 “app” 的形式存在,支持安装和卸载操作。框架的文档特别...原创 2020-03-08 21:45:44 · 9203 阅读 · 1 评论 -
一波杂乱的分享
1.这段时间你在干啥?疫情就要结束了,不知道大家这段时间的工作和生活是怎样度过的?我相信大家通过这段时间也可以充分支配自己的时间了吧!我在2月1日的时候还是比较迷茫,那会在老家还特别冷,也没有带电脑,所以基本都在家里窝着养膘。2月2日收到 安晓辉 对我提问 (假期延长至2月9日,技术人如何安排自己的时间,利用这段时间充实自身)的回答,他的回答是:具体方向,分三方面:专业技能集的完善、提...原创 2020-02-29 10:55:43 · 1734 阅读 · 3 评论 -
Tomcat配置SSL证书实现 https 访问
一、为什么要配置SSL证书HTTPS 能有效保护用户隐私,能进行有效的身份校验,并能保证数据的保密性、完整性。交流数据加密,为服务器端与客户端之间的数据传输进行加密。例如微信小程序要求被提供接口的一方要安装 SSL 证书。可进行 SEO 优化,百度官方公开说明搜索引擎优先 HTTPS 网站。避免浏览器弹出不安全警告,添加 SSL 证书增强网站可信度。二、所有免费的 SSL 证书SS...原创 2020-02-24 11:45:39 · 1229 阅读 · 0 评论 -
如何快速掌握一门框架
文章目录一、问自己二、入门三、深入四、实战4.1代码托管平台4.2选择开源项目4.3改造项目五、提升5.1优雅的提问5.2.提升个人能力六、出师6.1.在线问题定位6.2.版本问题6.3.了解容器技术一、问自己为什么选择学习此框架,使用它能解决哪些问题,有没有更适合的框架,与它相关联的框架有哪些?其实这样问自己也很正常。学习一门框架不是看两篇博客就会的,也是需要花费一些时间的。一部分是看别...原创 2020-02-22 20:15:15 · 718 阅读 · 0 评论 -
假期再次延长,我们可以做什么?
一、现状这次的"新型冠状病毒"传染确实很快,快速扩散了全国各个省市地区。假期再次延长。作为普通老百姓,最好的方式就是听从国家的安排,在家中进行有效的安全隔离。事情已发生,我们大家不要指责这是谁的过失,面对如此巨大的困难,我们应当众志成城,共同度过难关。对于我们个人而言,这么大把的时间不能浪费掉,我们要动起来!二、动起来作为一名上班族,我们以家庭为单位进行有效的安全隔离,我们可以做哪些...原创 2020-02-04 11:36:28 · 1268 阅读 · 0 评论 -
轻松搭建--融云Android聊天工具
上一篇是搭建Web版本的融云,轻松搭建--类似微信的聊天工具融云支持客户端的二次开发,Android和ios两个版本,安卓是通过Java开发的,所以我就尝试自己构建一把。ios端的项目构建我也在尝试中。前两天安卓客户端打包成功,基本功能也都可以使用。本篇记录一下Android版聊天客户端的搭建步骤。一、安装步骤1.前提 分布式的版本控制工具 Git 安卓项...原创 2020-01-15 22:27:52 · 825 阅读 · 4 评论 -
JPress一个包罗万象的后台管理系统
多年来,作者一直在用 WordPress 做个人技术博客、营销页面 和 公司官网等,感受到 WordPress 的实用、简洁和强大,而他也是 WordPress 的受益者。 JPress是一个使用Java开发,类似WordPress的产品。不仅仅包含了极其简单的模板设计方法, 更多的是做了非常多符合中国互联网生态的创新。 天生融合微信生态系统,简单易上手。话不多说,我们一起学习 JPr...原创 2019-12-29 20:40:32 · 1711 阅读 · 0 评论 -
轻松搭建--类似微信的聊天工具
一、前言腾讯QQ,微信我们大家一直在用的聊天工具。一直想着自己搭建一套类似QQ的聊天工具,最近发现了一款“融云”的聊天平台。可以满足聊天功能。它支持应用内社交等场景,体验单群聊、聊天室、音视频通话、红包、小视频、动态表情等通讯能力。它的源码在Github都能找到,Android端,Ios端,Web端,Server端源码都有。今天先搭建一套Web版的聊天工具。二、搭建步骤...原创 2019-12-23 21:22:37 · 3458 阅读 · 4 评论 -
Java程序员接私活的项目-JeecgBoot
Java程序员接私活的项目-JeecgBoot近两年微服务大火,而对于Java程序员可实操的微服务框架就是SpringBoot,为什么大家都在使用微服务呢?- -第一,项目运行简单。相比较之前的 Java Web项目是需要部署到容器里,相应的我们需要掌握容器(Tomcat,Jboss,Jetty,Weblogic等)的一些基本知识。现在我们不依赖与任何容器,直接运行Jar包即可。第二...原创 2019-12-15 23:26:16 · 2856 阅读 · 4 评论 -
头痛的接口文档应该这样来写
自动生成接口文档一、开头开发的小伙伴应该会遇到这个问题吧!项目设计阶段写的接口文档,需求的不断的改动,导致前期定义的接口已面目全非。如果没有及时更新接口文档,那么这些接口文档对前端开发人员将是一场灾难!由于项目紧急,是没有时间完善接口文档,我们该如何提高前后端的开发效率呢?解决方案一:项目集成 Swagger 插件,前端人员访问 Swagger 生成的接口文档,查看和使用接口。解决方案二...原创 2019-11-14 22:13:19 · 926 阅读 · 0 评论 -
ThinkJS 搭建个人博客站点
ThinkJS 是一款使用 ES6/7 特性全新开发的 Node.js MVC 框架,它综合了众多框架的设计理念和思想,让使用 Node.js 开发项目更加简单、高效。Node.js 是一个能够在服务器端运行JavaScript的开放源代码、跨平台 JavaScript 运行环境。Node.js 采用 Google 开发的 V8 运行代码,使用事件驱动、非阻塞和异步输入输出模型等技术来提高性...原创 2019-10-27 20:54:36 · 858 阅读 · 0 评论 -
Jekyll + Github Pages 搭建个人免费博客
今天亲手通过 Jekyll 搭建了一套免费博客,搭建步骤其实超级简单。你不需要购买域名,也不需要购买服务器,就可以轻松拥有你自己的博客。 Jekyll 的核心是一个文本转换引擎。它的方便之处在于支持多种文本标记语言:Markdown,Textile,HTML,然后 Jekyll 就会帮你加入你选择主题的样式的布局中。最终生成你自己的静态博客网站。博客搭建步骤1.安装环境1.1...原创 2019-10-17 22:57:00 · 623 阅读 · 0 评论 -
DevOps的开端-----持续集成与部署
持续集成CI ,Continuos Integration,持续集成。什么是持续集成每一次代码提交后,进行功能代码验证和软件部署包的构建等,来 第一时间发现质量问题并反馈给相关人员,时刻保证功能代码质量,提高功能集成与构建的效率。持续集成发展历程:手工命令:手工执行脚本命令,或工具插件,进行测试,构建打包和部署 CI工具: 使用独立的CI工具进行构...转载 2019-04-16 23:53:52 · 1206 阅读 · 0 评论 -
谷歌助力,快速实现 Java 应用容器化
Google 在 2018 年下旬开源了一款新的 Java 工具 Jib,可以轻松地将 Java 应用程序容器化。通过 Jib,我们不需要编写 Dockerfile 或安装 Docker,通过集成到 Maven 或 Gradle 插件,就可以立即将 Java 应用程序容器化。开源地址:https://github.com/GoogleContainerTools/jib一、什么是 ...转载 2019-04-21 12:34:57 · 254 阅读 · 0 评论 -
让你起飞的开源插件
1.MyBatis-PlusMyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。愿景是成为 MyBatis 最好的搭档,就像 魂斗罗 中的 1P、2P,基友搭配,效率翻倍。特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 CURD,...原创 2019-04-10 22:42:48 · 470 阅读 · 0 评论 -
强大无比的zhazhapan
API文档使用Maven<dependency> <groupId>com.zhazhapan</groupId> <artifactId>util</artifactId> <version>1.1.2</version></dependency>或手动...转载 2019-04-15 08:27:44 · 956 阅读 · 0 评论 -
搞Java的,这些三方库让你事半功倍
几乎每个程序员都知道要“避免重复发明轮子”的道理——尽可能使用那些优秀的第三方框架或库,但当真正进入开发时,我却经常发现他们有时并不知道那些轮子在哪里。最近,我在业余时间带几个年轻的程序员一起做了一个很小的商业项目,而在一起开发的过程中,我几乎在所有需要判断字符串是否为空的地方,看到了下面的代码:if(inputString == null || inputString.length == ...转载 2019-04-18 22:05:06 · 930 阅读 · 0 评论 -
基于Netty手工实现springMVC框架
一、Netty简介Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。也就是说,Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开发过程...原创 2019-02-12 12:02:40 · 6720 阅读 · 1 评论 -
使用ListIterator 对List 遍历时添加、修改、删除
无论使用什么方式对List进行遍历,都不能直接对List<E>变量进行直接修改操作,比如:List<String> strList = new ArrayList<String>(); strList.add("john");strList.add("mark"); strList....转载 2019-01-29 11:33:37 · 18866 阅读 · 11 评论 -
idea支持编译Lambda表达式?
1.编译报错主要有两种情况:1.直接编译报错: public static void main(String[] args) { int port = 2222; new Thread(() -> { //Lambda expressions are not supported at language level '5' ...原创 2019-01-26 10:57:25 · 1341 阅读 · 0 评论 -
泛型与容器连载(二)泛型的基本概念和原理
1.容器类 泛型类最常见的用途是作为容器类。所谓的容器类就是指容纳并管理多项数据的类。数组就是用来管理多项数据的,但数组有很多限制,比如长度固定,插入、删除操作效率比较低。有一门课程叫作数据结构,专门讨论管理数据的各种方式。 现在先实现一个简单的动态数组容器。所谓动态数组,就是长度可变的数组。底层数组的长度当然不可变的,但下面提供的一个类,对使用者而言好像就是一个长度可...原创 2019-01-20 14:20:57 · 431 阅读 · 4 评论 -
Java通过SSH实现文件上传下载功能
上周接到一个文件上传下载的需求,具体如下:项目说明: 1.本项目采用ssh方式,实现文件的上传与下载功能; windows连接远程服务有多种方式,网上有通过socket实现的;也有ftp方式连接和ssh方式。调研后,我采用的是SSH方式连接远程服务,因为我要远程操作服务器上的文件和文件夹,对文件夹进行解压和压缩功能。 实现难点: 1.java 实...原创 2019-02-23 20:30:00 · 4085 阅读 · 0 评论 -
运行开源项目的一些坑
如果你你已跨越菜鸟的阶段(这里因人而异)。你可能会开始阅读一些源码;在github,码云(gitee)上开始down一些项目,并运行他们,准备更深入和系统的学习技术了。在深入技术的时候,切记重复造轮子,要记得拿来主义,先学会使用再分析其底层的工作原理。而此篇文章就是讲述运行项目,搭建环境的坑。1.maven 环境搭建 maven直接从官网https://maven.apache.org/...原创 2019-03-03 22:44:24 · 454 阅读 · 0 评论 -
Fiddler抓取微信公众号数据
写这篇博文的主要目的,记录我使用Fiddler 抓包工具完成公众号请求信息的抓取,并解析抓取的数据的全过程。准备工作:下载:Fiddler_5.0.20173.49666_Setup.exe官网链接:https://www.telerik.com/download/fiddler1.安装Fiddler_5.0.20173.49666_Setup.exe,很简...原创 2018-02-02 23:30:56 · 34311 阅读 · 13 评论