
java
文章平均质量分 63
java
一只铁憨憨℡
抽烟喝酒不是本事,能烫头才是真的舒服!
展开
-
可恶啊,被他用责任链给装到了
“小马,这是你写的代码?”“没错,这是我写的诗!”“你管这叫诗?确定不是读三声?”“好家伙,瞧不起我crud工程师是吧,那么久的流水账代码白写的?我承认,It’s ugly , But useful 啊,you can you up!”“我来就我来,看好,看好,让你看看我写的诗”从上面的流水代码中,可以看出,分别从三个行情来源里找数据,优先级1>2>3,找到数据返回就好了。构建Request对象/** * @author: mk * @create: 2021-11-22 1原创 2021-11-25 11:52:41 · 458 阅读 · 0 评论 -
设计模式-单例模式
单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象,主要解决一个全局使用的类频繁地创建与销毁。1.静态常量饿汉式public class Singleton { //构造器私有化 private Singleton(){}原创 2021-08-03 11:53:53 · 194 阅读 · 0 评论 -
websocket+sockjs公告通知【基于STOMP协议】
前言:消息推送技术,之前你可能用过 Ajax 轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。有了长连接的websocket,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行原创 2021-01-21 11:52:18 · 339 阅读 · 0 评论 -
layui文件上传组件upload控制上传图片数量
业务场景:多文件上传预览图,最多可上传五张图片,在使用layui的upload上传组件时,before方法进行判断图片的数量,但是发现return false 并不会阻止文件上传,如下图所示百度发现大都是一些修改源码的方法,今天介绍下通过delete files[index] 将文件从队列中删掉,即可达到阻止上传的效果代码如下: upload.render({ elem: '#test-upload-more' ,url: api+'/sys/fi原创 2020-11-16 17:06:42 · 4967 阅读 · 0 评论 -
Layui排序只排序当前页的解决方式
layui的默认排序只排序当前页,如何给所有的数据排序呢?首先在table实例中关闭自动排序接下来就是自己设定排序规则://监听排序 设置排序规则 table.on('sort(test)', function(obj){ table.reload('a', { initSort: obj //记录初始排序 , where: { field: obj原创 2020-08-26 11:35:35 · 2254 阅读 · 2 评论 -
ngrok内网穿透
ngrok是一款内网穿透工具,可以将内网IP映射为一个随机域名,这样就可以通过域名访问你本地的项目首先需要注册一个账号:注册地址:注册注册登录完成后:隧道管理 -> 开通隧道选择免费的,当然可以选择付费版,体验会更加好填写好信息:确认添加之后,需要下载客户端选择适合自己的版本下载好打开启动工具,输入隧道id完成后就可以根据这个地址访问你本地启动的项目了...原创 2020-08-19 16:57:16 · 129 阅读 · 0 评论 -
Shiro入门案例之认证
Shiro 简介:Apache Shiro 是 Java 的一个安全框架。Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在 JavaSE 环境,也可以用在 JavaEE 环境。Shiro 可以帮助我们完成:认证、授权、加密、会话管理、与 Web 集成、缓存等,而且 Shiro 的 API 也是非常简单。架构图:...原创 2020-08-18 17:33:14 · 142 阅读 · 0 评论 -
阿里云短信服务
短信验证在系统中用到的还是很多的,简单介绍一下阿里云短信服务。应用场景:短信验证码APP、网站注册账号,向手机下发验证码; 登录账户、异地登录时的安全提醒; 找回密码时的安全验证; 支付认证、身份校验、手机绑定等。系统信息推送向注册用户下发系统相关信息,包括: 升级或维护、服务开通、价格调整、 订单确认、物流动态、消费确认、 支付通知等普通通知短信。推广短信向注册用户和潜在客户发送通知和推广信息,包括促销活动通知、业务推广、新产品宣讲、会员关怀等商品与活动的推广信息。增加企业产品曝光率、提高产原创 2020-08-14 14:22:52 · 439 阅读 · 0 评论 -
快递鸟免费物流查询接口
快递鸟物流接口支持每天500次免费查询,但是免费版只支持中通,圆通,申通,这三家快递的物流信息查询,那不能查询其他家快递怎么办?放心,只要人民币给到位,什么姿势它都会!使用首先申请一个快递鸟账号,下附地址:http://www.kdniao.com/reg注册登录后就可以看到自己的基本信息请求系统级参数说明:备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选接口参数:请求内容字段定义:返回参数定义:详见文档:http:/原创 2020-08-11 15:56:40 · 1649 阅读 · 0 评论 -
Chorme直接动态修改前端响应代码[js css html jsp]
原理:Chorme检测到开启本地覆盖远程后,会先加载本地的url地址信息,然后覆盖远程服务器地址,达到动态秀改资源的目的。操作流程:1、打开浏览器要修改的页面的url(非生产,仅做测试)2,F12开发者工具,在【Rources】左侧层级中选择要修改的文件内容,然后选择【Overrides】覆盖。3.选择要持久化到本地的文件夹目录4,允许开启覆盖权限5,点击【允许】后,下图右侧...原创 2020-05-05 17:43:48 · 1589 阅读 · 0 评论 -
ActiveMQ快速入门
什么是ActiveMQ:官方解释如下:Apache ActiveMQ™是最流行的开源,多协议,基于Java的消息传递服务器。它支持行业标准协议,因此用户可以通过广泛的语言和平台从客户选择中受益。可以使用C,C ++,Python,.Net等进行连接。使用无处不在的AMQP协议集成您的多平台应用程序。在Websocket上使用STOMP在Web应用程序之间交换消息。使用MQTT管理您的IoT设备...原创 2020-04-19 20:25:37 · 409 阅读 · 0 评论 -
Linux下ActiveMQ安装启动
ActiveMq安装:解压安装:进入bin目录下,使用命令 ./activemq start 启动activemq:使用命令 netstat -anp|grep 61616 来查看activemq默认端口是否启动查看Linux的ip在保证windows和Linux的情况下(关闭防火墙)通过前台访问,出现如下页面,则表示安装启动成功点击Manage ActiveMQ brok...原创 2020-04-18 17:05:58 · 2897 阅读 · 2 评论 -
JAVA8之Lambda
2014年3月份JAVA8发布,时至今日,我还在用着JAVA6,瞬间感觉不只是给广大程序员拖了后腿,简直就是截了肢。。Java8主要的新特性:Lambda表达式,方法引用,流,默认方法,以及日期和时间的API首先引入一个编程概念:行为参数化不明白?没关系,举个栗子:“憨憨,这有个需求,把农场的红苹果选出来准备出售”“额,你是不是怀疑我的能力?”“…”很快,写出来了public st...原创 2020-04-03 21:35:24 · 230 阅读 · 0 评论 -
PreparedStatement VS Statement
联系:PreparedStatement 接口是 Statement 的子接口,都可用来SQL查询区别:1.代码的可读性和可维护性. Statement 的 sql 拼接属实恶心心~2.PreparedStatement 可以防止 SQL 注入3.PreparedStatement 可以处理 Blob 类型的数据4.PreparedStatement 能最大可能提高性能:(Oracle...原创 2019-12-04 22:04:20 · 273 阅读 · 0 评论 -
单链表的反转
单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。链表中的数据是以结点来表示的,每个结点的构成:元素(数据元素的映象) + 指针(next域),元素就是存储数据的存储单元,指针就是连接每个结点的地址数据。实现单链表的反转,即:反转后为:思路如下:1.先定义一个节点reverseHead2.从头到尾遍历原来的链表,每遍历一个节点就将其取出,并放在新链表re...原创 2019-07-07 21:25:28 · 168 阅读 · 0 评论 -
java实现二分查找
二分法查找也叫折半查找,适用于数据量较大时,但是数据需要先排好顺序!实现思路:1.首先找到中间值,如果要查找的数据就为中间值,你是真的牛皮!2.如果要找的数据小于中间值,则在左边较小的数据里查找!3.如果要找的数据大于中间值,则在右边较大的数据里查找!非递归java实现: public class BinaryTest { public static void main(Strin...原创 2019-06-30 11:40:00 · 205 阅读 · 0 评论 -
约瑟夫环(java环形单链表实现)
问题来历:约瑟夫问题是个有名的问题:有序号1,2…n个程序员围成一个大圈圈,从编号为K(1<=k<=n)的程序员从1开始报数,数到m的那个程序员出列,可以去挑选对象(真对象,不New不Joke),他的下一位程序员又从1开始报数,数到m的人又出列挑选对象,美滋滋~,依次类推,到最后一个程序员不给对象,只给了一堆bug,并在程序上线的时候祭了天。。。额。。是一个凄美的爱情故事!...原创 2019-07-20 12:03:14 · 1073 阅读 · 0 评论 -
递归
递归的概念:递归,就是在运行的过程中调用自己,每次调用时传入不同的变量。使用递归可以我们解决复杂的问题,同时也使得我们的代码更加简洁。递归的调用规则:1.当程序执行一个方法时,就会开辟一个独立的空间(栈)2.每个空间的数据是(局部变量)独立的,不会相互影响。3.如果方法中使用的是引用类型的变量(比如 数组),就会共享该引用类型的数据。4.递归必须向退出递归的条件逼近,否则就是无限递归,...原创 2019-08-04 15:09:43 · 213 阅读 · 14 评论 -
时间复杂度
时间频度一个算法执行的时间与算法中语句的执行次数成正比例,也就是说,一个算法语句执行次数多,所花费的时间也就越多。一个算法中的语句执行次数,成为语句频度或者时间频度,记作T(n)。举例:比如计算1-100的和 : int sum=0; int end=100;使用循环:for(int i=1;i<=end;i++){sum+=i;}此时的T(n)=n+1 ;直接计算:...原创 2019-08-11 14:35:11 · 431 阅读 · 8 评论 -
冒泡排序--咕噜咕噜
冒泡排序的基本介绍:冒泡排序是简单的一种算法,它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果发现逆序则交换。走访元素的工作是重复地进行直到没有相邻元素需要交换,完成排序。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。冒泡排序算法的原理:1.比较相邻的元素。如果第一个比第二...原创 2019-08-18 12:39:57 · 1142 阅读 · 11 评论 -
选择排序
选择排序的基本介绍:选择排序也属于内部排序法,是从想要排序的一组数据中,按照指定的规则(顺序,逆序)选出某一个元素,再依照规定交换位置达到排序的目的。选择排序是不稳定的排序方式。选择排序思想:选择排序也是简单的排序算法,它的基本思想为:第一次从arr[0]~arr[n-1]中选取最小值(最大值),与arr[0]交换;第二次从arr[1]到arr[n-1]中选取最小值(最大值),与arr[1]...原创 2019-09-22 14:35:03 · 273 阅读 · 0 评论 -
稀疏数组和二维数组的相互转换
所谓稀疏数组就是数组中大部分的内容值都未被使用(或都为零),在数组中仅有少部分的空间使用。因此造成内存空间的浪费,为了节省内存空间,并且不影响数组中原有的内容值,我们可以采用一种压缩的方式来表示稀疏数组的内容!比如我们的五子棋游戏,要记录棋子的位置,需要用数组来实现,没有棋子的地方就是0,造成了大量的资源浪费,这时我们可以使用稀疏数组!代码如下:public class SparseArra...原创 2019-06-25 22:25:54 · 303 阅读 · 0 评论