Java对Redis的简单封装 Java对Redis的简单封装封装说明:项目中对于Redis的简单封装,仅供参考学习使用,不完全保证生产环境中不会出现问题方法汇总:存储对象,不设置过期时间存储对象,设置过期时间获取对象判断Key是否存在值自增值自减Redis 充当分布式锁释放锁Redis存放Hash获取hash值刷新过期时间完整代码如下:package com.xcx.cache.commo...
扫码登陆的实现方案 扫码登陆的实现方案思路最近准备将小程序功能迁移到第一版的PC端上来,遇到第一个问题就是用户登陆,因为是个人小程序,授权登陆我只能获取openID,并没有手机号等相关信息,所以打通用户成了一个问题,最初想的是让用户在小程序上绑定手机号,但是最终觉得太麻烦,于是就想到扫码登陆,于是就去查资料,小程序API中是提供扫码的API,那么第一步就走通了,剩下就是实现了。经过百度一系列的文章参考。操作上面...
个人小程序的设计之路 个人小程序的设计之路一些废话18年临近毕业的时候,为了能找一份心仪的Java开发工作,开始对Java知识点进行整理,刷一刷面试题。一开始整理的面试题都放是记录在自己的笔记本上面,有一天在宿舍突然觉得很无聊,就想着为什么不把面试题记录在数据库呢,这样以后都不会丢,刚好自己有云服务器(腾讯的学生云主机,那时候一块钱一个月)于是简单的写个H5将自己每天收集的面试题题就放到数据库中。实现之后,因...
一次CountDownLatch的实际运用 业务最近在公司负责关于大风车(公司旗下一款SaaS产品)的组织权限的重构,遇到一点问题:初始化组织架构树时间比较慢(2s-3s),这篇文章就是介绍使用CountDownLatch解决这个问题。在重构之前组织架构的树是基于人员组成的,也就是一棵单纯人员树,但是由于人员树的缺陷(当主管或其他高级职位的人员离职,那么下属就没有节点可以挂靠),所以我重构的时候放弃以人员为纬度,采用区域树,人员挂靠是以...
WebSocket实现在线聊天 这一篇文章前面部分我们会先介绍WebSocket协议的基本知识,在最后我们会用Spring Boot来集成WebSocket实现一个简单的在线聊天功能,单纯想看实现部分的话可以直接跳过前面介绍的部分。前言通常情况下,浏览器和服务器之间的消息通讯一般会使用Http协议,但是如果我们想服务器返回数据,我们必须先由浏览器发送请求给服务器,服务器才能响应这个请求。一般情况下Http协议基本能够满足我们...
JDK常用命令行工具 双12买了深入理解Java虚拟机的书,其实在学校的时候,就看过PDF版的,但是最终还是买本书装装样子,今天说的东西是书籍提到的JDK常用命令,实验加上记录来加深一下印象。jps(JVM Process Status Tool)命令是显示指定系统内所有HotSpot虚拟机进程。他的格式如下:jps [option] [hostid]其中option是一些参数选项,hostid是为RM...
小程序input框失焦事件在提交事件前的处理 无论是小程序还是平常的Html页面,input文本框我们用到的次数都很多,这一篇文章主要是讲关于小程序中文本框聚焦自动拉起输入键盘的一些使用心得。为什么我需要聚焦拉起键盘呢?为什么我弃用失焦事件呢?因为在我的小程序文章中提供了评论文章的功能,昨天空闲下来我想将回复评论的功能也做一下,我想让回复和评论同时共用一个文本框如下图一,我来说明一下的操作:当我们进入文章界面的时候,输入框模式默认是评...
Spring Security学习总结 关于设计模式的文章在公众号上面已经更新完了,感兴趣的小伙伴可以关注公众号每天学Java随时查看!学习Spring Security是在一个客户的项目上看到客户在自己项目上使用Spring Security,当时很好奇这么框架是干嘛的,就私下问了他们的技术人员:Security是做什么的。他大致的意思是说,Security是一个提供安全权限控制的框架,利用这个框架可以为系统中的人员定制相关的权限...
创建型模式(二) 关于创建型模式中工厂方法模式,抽象工厂模式在上一篇文章中我们了解了一下,今天我们看一下单例模式,建造者模式,原型模式。单例模式单例模式我们用的很多,我想大家也都理解这种模式,就是保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。...
创建型模式(一) 在我的公众号中,关于七种结构型设计模式已经全部讲完了:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。而十一种行为型模式我们说了4种:策略模式、模板方法模式、观察者模式、责任链模式。关于创建型设计模式我们还没有聊过,所以今天我们来聊一聊创建型模式,创建型模式一共有五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。今天我们先回顾一下工厂方法模式和抽象工厂模式...
享元模式 转载于:https://blog.csdn.net/justloveyou_/article/details/55045638摘要: 面向对象技术可以很好地解决一些灵活性或可扩展性问题,但在很多情况下需要在系统中增加类和对象的个数。当对象数量太多时,将导致运行代价过高,带来性能下降等问题。享元模式通过共享技术实现相同或相似对象的重用提高系统资源的利用率。本文首先阐述了享元模式要解决的问...
组合模式 在我写外观模式的时候,我是举最近在做的一个考勤的例子,不熟悉的小伙伴可以去看一下前面的文章哦,在那个例子中我们分析了一下,考勤中每种类别员工的工作日计算方式是不一样的,比如说一般员工周一到周五上班,有些员工的工作比较累上一天休一天,那么他们每个月上班天数是不一样的;但是出勤的计算天数是一样的,根据打卡来计算。当时我的处理方式是,把计算打卡天数的方法写成抽象类的默认方法供特殊员工去重写,出勤天数写成...
桥接模式 我是在脑壳疼的情况下(今天的工作的量很大,内容很丰富,我很开心,以至于脑壳疼)写下这篇关于桥接模式的文章,不正之处请多指教。何谓桥接模式,用一座桥连接起来的模式,珠港澳大桥连接了香港、珠海和澳门,在一开始的时候他们三之间都是隔海相望,相互独立,但是他们三连起来了,相互独立又彼此关联,所以这里我把中国比做一个接口(跟珠港澳并没有关系,哈哈),那么实现了这个接口的城市就是属于中国,这是一个具体的实...
外观模式 我发现写设计模式的文章,怎么举例子是个技术活啊。。。很多东西你不实际去用真的不会真正的体会到设计模式带来的一些好处,最近公司的一个客户要做一个考勤功能,这个功能虽然是我们公司产品的标准功能,但是有些东西还是二次开发一下的。虽然很费劲的实现了大致的功能,但是代码乱的一塌糊涂,趁着周末整理了一下代码,也试着用了一下模版方法模式(计算出勤率),适配器模式(考勤接口和工资接口的对接),在我把23种设计模式...
代理模式 学代理模式(静态代理,下面所属都指的是静态代理)的时候,敲着敲着代码,觉得怎么感觉像在写装饰器模式一样。所以在叙述代理模式的时候,我会用自己的理解去区分两种模式的区别。在我上大学的城市,是没有苹果直营店的,但是有苹果的授权店,这个授权店概念就可以理解为代理。通过这个授权店我们同样能买到苹果的产品。那么我怎么理解代理模式和装饰器模式的区别呢?首先看你的目的:你是需要在一个类上面增加功能(而且...
装饰器模式 在学装饰器模式的时候,我想到了责任链模式中的级别这个概念,为什么这么说,在一个OA系统中我们会有不同级别(或者说权限范围不同)的管理员,首先我们要明确不同级别的管理员它也是管理员,我们那如何在管理员这个实体的基础上动态的去设置他们的权限范围呢?我们把权限当作一种挂饰,这种挂饰放在不同的管理员身上就代表他们是什么管理员,那么这种挂饰如何放到管理员身上呢?这就需要装饰器模式了,而装饰器模式也就是实现了...
责任链模式 在公众号的前面我们说策略模式的时候,我们说各种策略的对象和一个行为随着策略对象改变而改变的。换句话说,针对客户端传来不同的参数进行实例不同策略的对象,也就是说保证了客户端和服务端的解耦。而责任链模式是为客户端的请求创建了一个接收者对象的链,也就是处理这个请求的对象有一串,如果一个对象不能处理,那么串上的其他对象继续处理。责任链模式(Chain of Responsibility Patt...
微服务技术架构 “ 微服务(MicroServices)架构是当前互联网业界的一个技术热点,大家是否明白一个微服务架构有哪些技术关注点(technical concerns)?需要哪些基础框架或组件来支持微服务架构?这些框架或组件该如何选型呢?” 在公众号中专门有微服务菜单栏,里面讲解了Spring boot和Spring Cloud的一些入门案例。但是并没有对微服务技术有一个深入的介绍,今天...
Java网络编程 第一篇 在文章的开始,我们先了解一下什么是计算机网络:计算机网络就是把各个计算机连接到一起,让网络中的计算机可以互相通信。那么网络编程呢? 既然是编程,那就是需要写代码来实现网络通信---网络编程就是如何在程序中实现两台计算机的通信。 PS:今天小程序更新了有关Netty相关的面试题,感兴趣可以去查看哦。 那么网络编程的作用吧,大家都是会利用网络来查询一些资料的,当我们输入百度的网址的时...
关于小程序的一些新的心得体会 作为一名Java开发人员的我,如果说对于前端有一些心得体会,那肯定是要归功与小程序的。在自己实习阶段,公司秉承着Java也要会前端的理念,让我开始小程序的开发。当时自己完全是一脸懵逼。那么我们来看一下,一路走来,我都经历了什么........当时我们的技术总监对我进行了半个小时的小程序开发培训,就让我去开发了。我依稀的记得他跟说这么几点东西:1.小程序中没有div这个标签,使用view代替...
Nginx绑定SSL证书所遇到的问题 最近做每天学Java微信小程序已经上线了,有过微信小程序开发的经验的小伙伴肯定都知道微信小程序要想上线,首先我们请求的域名必须是HTTPS,而且不能携带端口号。在最初的时候,因为使用Spring Boot框架做开发,直接将证书绑定在这个项目上,虽然实现了小程序的上线,但是现在遇到一些问题:小程序接口占用了443端口,那我部署在这个服务器上的其他项目就只能通过端口去访问了,而且如果后续为小程序接...
小程序综合篇:关于请求同步的总结 在JavaScript中,提供了一些异步特性,因为同步操作会对程序的执行进行阻塞处理。比如在浏览器页面程序中,如果一段同步的代码需要执行很长时间(比如一个很大的循环操作),则页面会产生卡死的现象。异步为程序提供了性能和体验上的益处,比如可以将代码放到setTimeout()中执行;或者在网页中,我们使用Ajax的方式向服务器端做异步数据请求。这些异步的代码不会阻塞当前的界面主进程,界面还是可以...
垃圾收集器与内存分配策略 点击下面链接:垃圾收集器与内存分配策略 更多文章请关注公众号:每天学Java。想获得更多最新面试提醒请进入小程序:每天学Java 公众号二维码: 小程序二维码: ...
Java语言基本语法 一.标识符和关键字1.1:标识符概念:Java对各种变量,方法和类等要素命名时使用的字符序列称为标识符规则:1.标识符由字母,下划线,美元符或数字组成 2.标识符应由字母,下划线,美元符开头 3.Java标识符大小写敏感,长度没有限制约定:Java标识符要见名知意,且不能与关键字重名这里有一道自己实习找工作遇到的一道笔试题:...
util.Date类型数据插入mysql时数据库时,日期会少一天 在做一个私人云笔记用来记录自己日常工作。但是发现自己写的笔记时间总是跟现在时间差13个小时。于是自己打印出来日志,发现自己并没有插入错误再去看自己MySQL的时区,也没有问题于是百度发现:驱动的问题,就检查了下驱动信息,果然发现连接参数中的字段serverTimezone设置为UTC,检查之后改为HongKong 或者 Asia/Shanghai就可以了成功解决。...
windows主机跟linux主机对比 就性价比这一方面来说,Linux主机的优势是显而易见的。因为Linux作为资源管理和操作系统来说,是开源、免费的。 虽然目前国内Windows操作系统占据着主导地位。但是正版的Windows的操作系统是收费的,相应的,服务器商提供的Linux虚拟主机要比Windows虚拟主机价格更加实惠。 国内主机商相当一部分卖的是Windows主机,这是因为微软在中国对安装在服务器上的Windows操作系统...
Java并发编程之ThreadLocal 微信公众号:每天学Java如有问题或建议,请公众号留言ThreadLocal简介ThreadLocal类的作用是为每个线程都创建一个变量副本, 每个线程都可以修改自己所拥有的变量副本, 而不会影响其他线程的副本. 其实这也是解决线程安全的问题的一种方法.ThreadLocal小例子那我们来写一个简单的程序来看一下效果:public class ThreadLocalTest { pri...
Java并发编程之学习锁的知识 微信公众号:每天学Java如有问题或建议,请公众号留言最近建立一个公众号,希望大家多多关注。锁的分类首先要明确锁有很多种,它们是根据锁的状态或者锁的特性,锁的设计来进行分类的。下面来看一下有哪几种锁(这里只说明一部分)公平锁/非公平锁独享锁/共享锁分段锁乐观锁/悲观锁自旋锁公平锁/非公平锁在第二篇文章中我们使用的 synchronized 关键字就是一宗非公平锁,ReentrantLock是一...
Java并发编程之RabbitMQ的使用 520,希望每个人都能去珍惜身边的人,无论是爱人,还是亲人.....。关于Java多线程,自己在前面记录了创建线程池的两种方式,线程池如何保证核心线程不被销毁,和生产者消费者模式(自己使用Condition和BlockingQueue)。Java并发编程之线程池的使用(一)点击打开链接Java并发编程之线程池的使用(二)点击打开链接Java并发编程之线程池创建线程任务的过程 点击...
Java并发编程之生产者消费者模式 有关Java多线程,前面我记录自己对于线程池创建的两种方式,以及线程池如何创建线程(这里自己在加深一下印象:当执行execute方法时候,会将任务放入addWorker方法中,addWorker将任务放入到Worker构造器中,该类中runWorker方法有一个getTask方法,这个方法中有一段代码:boolean timed = allowCoreThreadTimeOut || wc >...
Java并发编程之线程池创建线程任务的过程 毕业后又需要找工作,因为请假时间太长,不得不辞职了,离开我实习了一年的地方。希望自己一切顺利。Java并发编程之线程池的使用(一)点击打开链接Java并发编程之线程池的使用(二)点击打开链接前面自己记录创建线程池的方法:一种是通过ThreadPoolExecute来创建一个线程池,这也是阿里鼓励的一种方式,让使用的人能明白如何创建线程池并且保证不浪费资源,另外一种是使用Executors执行器类下...
Collection之Set Collection之List:点击打开链接同List集合一样,Set集合继承了了Collection接口。HashSet同TreeSet是我们经常使用的两个类。HashSet跟TreeSet都继承了 AbstractSet这个抽象类:但是TreeSet实现了SortedSet这个接口:所以TreeSet是有序的(因为它是一个红黑树的数据结构,是一种平衡二叉树(AVL树),下面会说到)HashSe...
ElasticSearch的简单运用以及枚举实现单例模式 在公司做小店铺的电商项目的时候,自己虽然大部分任务是放在前端,但是也在群里听到他们说清ES的数据,我就在想ES是个什么玩意,然后便去搜索看看。发现ES也就是ElasticSearch。ElasticSearch是基于 Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful接口。RESTful指的是具有REST风格架构风格的。对于REST:分布式应用架构风格,其...
Java并发编程之线程池的使用(二) 在第一篇文章中,我们发现ThreadPoolExecutor 提供四个构造器供我们创建一个线程池。关于是否使用ThreadPoolExecutor 来创建线程池,下面有两种说法:1.虽然ThreadPoolExecutor 有四个不同的构造器,但是考虑到其复杂性,Java并发API提供了Executors类来构建执行器和相关对象。尽管我们可以直接通过其构造函数来生成ThreadPoolExec...
Collection之List 这里所有截图的源码来自JDK8看一张图首先看集合类的基本接口:Collection,它继承了Iterable这个接口。看源码的时候发现这个接口下面既然出现了一个方法体,这是由于JDK8中新增特性:接口允许定义非抽象方法,但必须用default来修饰。在Collection有两个基本的方法boolean add(E e);跟Iterator<E> iterator();add就是向集合中...
Java并发编程之线程池的使用(一) 我们在做Java&nbsp;Web项目的时候,我们处理请求就是使用线程池。为什么使用线程池呢?在单线程的情况下,只有处理完一个请求之后,才会去处理下一个请求,但是在一些IO操作阻塞的过程中,CPU是空闲的状态,这个时候单线程不可能去利用CPU去处理其他请求,但是多线程就可以实现。但是使用多线程的时候,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因...
Vue的知识记录 年前的时候做了一个电商的小程序,年后过来又开始写公司官网的静态界面,以及根据新需求修改电商后台的接口。但是公司要把小程序转为H5,放到微信公众号当中。本来是直接用weweb转成H5,但是各种原因(filter,样式..等等问题)公司决定使用Vue重新开发,于是便交给我了。相比较自己毕业设计使用的AngularJS4,我觉得Vue的开发比较容易上手了。但是实现小程序上的界面功能就比较难受...
IDEA Maven编译时没有加入lib文件夹下的jar 几次编译都失败,发现target中没有包含自己导入的jar,百度之后发现在pom中加入代码即可: <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <ve...
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'跟swap 今天发现作为自己毕业设计的主数据库登录不进去了,每次遇到这种问题,心都虚了半截。报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'上一次遇到这种问题的时候停一下然后重启即可 service mysqld stopservice mysqld start但是这次却不行,...
网站的中英文切换--i18next 这两天公司让我做公司官网,就是几个静态页面。我都不好意思说自己是Java开发了,年后来公司基本上自己做毕业设计才写Java代码。在公司基本没有写过Java的东西,我都怀疑公司是不是看我Java太菜,让我以后就做前端了。。。然后我前端也很菜。页面做完之后要实现一个中英文切换目录结构:效果图:这里使用的是i18next.js:一个用来支持应用国际化的javascript库代码:这里可以代码有些不美观应...
AngularJS4+Spring Boot上传图片到COS 毕业设计涉及到用户修改个人信息的图像。首先是上传图片的接口:我这里将用户上传的图片保存到COS中,关于腾讯云的对象存储可以点下面链接了解一下(腾讯云对象存储SDK文档)。SpringBoot 关于上传的代码:controller @RequestMapping(value = "/img",method = RequestMethod.POST) @ResponseBody ...
AngularJS4 如何设置Cookie 毕业设计准备做一个社区网站,客户端准备使用AngularJS4。首先是安装以及对于angularJS4进行了解,之前虽然使用angular1,但是1和4的差别太大,如同新学习一门语言。这里推荐一个网站来学习angularJS4:AngularJS学习指南。现在毕业设计需要跟后端进行交互涉及到如何把用户信息保存到Cookie中,在需要的请求中放入到header中。自己刚开始想...
Linux搭建項目总结 首先:chmod 777 /home 安装ftp:yum install -y vsftpd此时即可通过FileZilla进行文件的传输安装JDK:解压文件后 在/etc/profile文件中配置 JAVA_HOME=/home/java/jdk1.8.0_144 JRE_HOME=/home/java/jdk1.8.0_144/jre CLASS_PATH=.:$JAVA_HOME/lib/...
spring boot使用slf4j输出日志 的配置,log也不例外,我们先看看pom.xml中的配置吧!如果之前有添加[html] view plain copy<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter<...
redis集群时,出现的几个异常问题 1、in `call’: ERR Slot 8579 is already busy (Redis::CommandError)在 /my_soft/Redis安装包及jar包/redis-3.0.4/src 目录下执行redis 集群安装命令:[sql] view plain copy print?./redis-trib.rb create –replicas 0 192.168.3.15:
SpringBoot获取Redis集群实例有缺少的问题->为Redis集群新增节点分配slot 下午在对redis集群进行一系列的测试的时候(为寒假做自己在家做毕业设计准备一些东西),发现自己三个服务器明明是9个节点,但是获取到的实例中缺只有6个(一直都是6个,自己没去注意而已,下午想用代码获取所有key时候,输出节点,发现只有6个),感觉很莫名其妙。可以看到自己在配置文件中配置是9个节点但是,却生成实例却没有包含,毕竟新手,完全不知道怎么回事。以为这三个节点没启动,但是集群状态是正常的瞅了...
微信小程序封装request请求 我的个人刷Java面试题网站:http://www.study-java.cn/在小程序开发中,通过接口获取后台数据,这时候我们不得不在每个页面的js文件中写到:wx.request({url:'',.....}) 但是调用很多接口的时候,会非常频繁的使用request,作为一名java开发人员,显然我们需要对他进行一下封装:1.在utils同级目录下建立service2...
Spring Boot 连接 redis 集群 我的个人刷Java面试题网站:http://www.study-java.cn/最近一直在画小程序的界面,感觉自己都快成为一个前端工程师了,尤其是前面做管理后台的时候使用Angular4,让自己有点头大。都快忘记自己是Java开发了。。。上周自己在三台服务器上面搭建了一个redis集群,每台服务器创建三个实例,端口分别是7000,7001,7002.....7008。搭建过程中遇到的一个问题就...
redis集群新增节点并设置集群密码 增加节点.SRC目录下面执行:./redis-trib add-node127.0.0.1:7007 to cluster 127.0.0.1:7001(新节点没有set新值)集群设置密码:进入各个实例进行设置: ./redis-cli -c -p 7000 config set masterauth passwd123 config set requirepass passwd1
redis集群搭建 为什么搭建redis集群随着企业数据量的增多,Redis不论作为数据存储或是缓存,它的数据量也会逐渐增多,虽然Redis的速度非常可观,但随着其中的数据量的庞大,并且仅仅在一个设备或是一个Redis实例中,其存取速度也会大打折扣,所以我们需要在不同的设备或服务器上,搭建多个Redis实例仓库,将原来的Redis的所有的keys分发到各个服务器的Redis上,这就是现在所谓的Redis集群(Re
MySQL主从复制 在公司看到公司服务器的数据库都是主从热备的功能,然后想自己模拟一下,然后昨天下午折腾一下午,把MySQL的主从复制功能给做了,记录一下自己踩得坑。自己在腾讯云上面有一台自己的服务器,很早以前买的腾讯云主机,现在活动停了,借宿舍的学号又办了一台,一个月10块钱(也能接受了)。这样便有两台服务器了,可以开始部署一主一从,主从数据库版本都是5.7,,复制功能是基于日志点复制(还有一种基于事务的复制)
微信小程序顶部滑动tab 小程序商品展示需要导航栏的商品分类进行滑动效果图:首先是滑动的效果: <scroll-view scroll-x="true" style="width: 100%;white-space:nowrap;"> </scroll-view> 小程序使用</scroll-view>,横向移动即可 WXML:这里面我将...
MySQL查询用户每天的阅读量以及Using temporary; Using filesort 做后台需要得到用户每天在我们公司社区阅读文章的访问量,以及阅读量大于10的时间段(测试库数据量为5千多) select b.user_name,COUNT(a.info_id) as cou,DATE_FORMAT(a.create_time,'%y-%m-%d') as time,a.create_time,a.user_id from user_read_info a LEFT JOIN
Linux安装redis 在公司使用redis缓存都是公司弄好的,自己没有切实的去尝试一下,所以来安装测试体验一下。redis官网地址:http://www.redis.io/Redis 简介:Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。Redis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁
Linux部署Nginx 首先从官网下好压缩包:Nginx: http://nginx.org/en/download.html下载模块依赖性Nginx需要依赖下面3个包1.gzip 模块需要 zlib 库 ( 下载: http://www.zlib.net/ )2.rewrite 模块需要 pcre 库 ( 下载: http://www.pcre.org/ )3.ssl 功能需要 openssl
QuickSort 快速排序:基于分治的思想,是冒泡排序的改进型。首先在数组中选择一个基准点(该基准点的选取可能影响快速排序的效率,后面讲解选取的方法),然后分别从数组的两端扫描数组,设两个指示标志(l指向起始位置,h指向末尾),首先从后半部分开始,如果发现有元素比该基准点的值小,就交换l和h位置的值,然后从前半部分开始扫秒,发现有元素大于基准点的值,就交换l和h位置的值,如此往复循环,直到l>=h,然后把基准点的值
微信小程序购物车左移删除 需求:在原本购物车的编辑选中删除的基础上,增加左移删除。 查看Api文档和搜索了解到:bindtouchstart="touchS" bindtouchmove="touchM" bindtouchend="touchE" 三个绑定事件。 打印事件: 查看网上的demo,都是分层,使用绝对定位,但是我自己的项目需求是...
MergeSort 从上往下的归并排序:它与"从下往上"在排序上是反方向的。它基本包括3步:① 分解 -- 将当前区间一分为二,即求分裂点 mid = (low + high)/2; ② 求解 -- 递归地对两个子区间a[low...mid] 和 a[mid+1...high]进行归并排序。递归的终结条件是子区间长度为1。③ 合并 -- 将已排序的两个子区间a[low...mid]和 a[mid+1...
Heapsort 堆排序:堆排序就是利用堆这种数据结构的性质来对数组进行排序,在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的性质可知,最大的值一定在堆顶。堆排序一种不稳定的排序算法,其时间复杂度为O(nlogn)算法思想(1)构建最大堆; (2)选择顶,并与第0位置元素交换; (3)由于步骤(2)的的交换可能破环了最大堆的性质,即第0位置的元素不再是最大元素,则需要调用maxHeap调
初学 Spring Boot + dubbo + zookeper 一.linux系统部署自己的zookeeper,部署过程参考:点击打开链接 其下载zookeeper的压缩包几次都失败,最终自己在本地下载好,上传到腾讯云主机中。参考文章的部署过程一次就成功了。二. IDEA搭建Spring boot 项目来形成一个服务提供方。 导入依赖 <dependency> <groupId>com.alibaba&...
Shell Sort 在希尔排序建议的增量序列情况下(h=N/2 Hk):最好时间复杂度和平均时间复杂度都是,最坏时间复杂度为希尔排序的运行时间依赖于增量序列的选择/** * Created by long.chen on 2017/12/28. */public class ShellSort> { public void sheelSort(T[] data) {
Insertion Sort /** * insertion sort * @author Administrator * @param */public class InserttionSort> {//由小到大 public void insertsort(T []a){ int pre; for(int i =0;i<a.length;i++){ T temp = a[i];//i位置的數值
BinaryHeap (最小堆) package heap;import java.util.ArrayList;import java.util.List;/** * 二叉堆(最小堆) * Created by long.chen on 2017/12/25. */public class BinaryHeapMin> { private List heap; public BinaryH
Binary heap package heap;import java.util.ArrayList;import java.util.List;/** * 二叉堆(最大堆)优先队列的实现 * 堆是一颗被完全填满的二叉树(最底层除外 * Created by long.chen on 2017/12/25. */public class BinaryHeap> { private List
AVL树 package avl;/** * Created by long.chen on 2017/12/21. * 平衡二叉树 */public class AVLTree> {//泛型 private AVLTreeNode root;//根节点 class AVLTreeNode> { T key;//键值 int height;//
Jwt创建身份令牌Token 最近再做一个的个人社区,首先就是解决登陆的问题。 根据最近的学习和网上看的资料,来做一下安全登录(纯口述,代码后面附上)。 前端使用AngularJS,对于用户的密码是用RSA非对称加密方式进行加密,对于RSA我最直白的印象就是:没有秘钥的情况暴力破解可能性为0,相对RSA有深入了解的的可以自行百度。在我项目中就是前端发送请求的密码进行RSA加密,服务端通过秘钥进行
Maven deploy 操作:Return code is: 401和400错误 401是没有授权的含义我们要根据setting中的配置在pom.xml文件中进行一些配置setting: releases admin admin123 snapshots admin admin123 pom.xml releases
微信小程序 微信小程序: app.js:小程序的入口,全局变量以及获取用户信息都存放在这里。app.json:界面的路径(会自动生成),tarBar在这里定义。app.wxss:类似与css,全局的样式我们一般写在这里。utils:一些工具js存放在这里。pages:详细界面部署在这里面。images:存放图片。关于app.js:在这里面我主要使用这几个接口:wx.logi...
JS 时间戳转换成几天前 transDate: function (mescStr) { var n = mescStr; var date = new Date(n); // var Y = date.getFullYear() + '-'; var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth()
微信小程序播放音频列表 微信小程序的音频播放 链接:单曲播放 对于音频的播放,肯定会有多首音频的情况,这个时候播放下一曲的功能就需要做出来:我这边做了一个粗糙的版本:wxml: <audio id='audioid' src='{{vidioUrl[i]}}' binderror="audioError" bindplay="audioPlay" bindeneded="playE...
微信小程序上传多图到服务器并获取返回的路径 微信小程序上传图片很简单://点击选择图片 chooseimage:function(){ var that = this; wx.chooseImage({ count: 9, // 默认9 sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有 sourceTyp
linux安转jdk1.8 这里不使用yum安转JDK.用CentOS 7.2 64 安装 jdk 1.8 第一步:到官网下载jdk,注意下载linux系统的。 第二步:通过FTP将压缩文件传输到hone/java 目录下面 第三步:解压:tar -zxvf jdk-8u144-linux-x64.tar.gz 第四步:在etc 目录下有profile 文件 使用 vi 命令进入...
微信小程序音频播放 今天做微信小程序涉及到播放音频文件:使用audio标签来绑定音频路径 目前没有做到播放下一首的功能,只有暂停和播放。最上面的播放条是通过progress的percent来实现的, 通过currtRate来实现播放条的已播放长度界面: {{currentTime}}
关于微信小程序循环以及嵌套循环的总结 关于微信小程序,最近被安排做微信小程序,首次接触,总体来说上手不是太困难。对于小程序的循环问题颇有感触,因为自己绑定数据到界面无数次用到循环和嵌套循环。对于我们在js中从接口中通过POST或GET请求获取数据存放到Page中定义的对象中: //首页话题列表 wx.request({ url: 'https://*******************', ...
时间戳转换日期及xx分钟/小时/天前 时间戳:时间戳是自 1970 年 1 月 1 日(00:00:00 GMT)至当前时间的总秒数既然是秒数,那么在js中换成时间日期格式就不是什么难事了。将时间戳转换成日期格式: function transDate(merStr) { var n = merStr; var date = new
查询某个字段不等于某个值的数据,为NULL的数据也查询不到 SELECT * FROM table where status != 10为 Null 的 数据 也会查询不出来由于NULL不能直接用算术运算符进行比较值我的个人刷Java面试题网站:http://www.study-java.cn/...
AngularJS的批量操作 今天做一个批量修改的需求,算是对JS的学习吧。界面:JS: $scope.selected =[]; var updateSelected=function (action,id) { if (action == 'add' && $scope.selected.indexOf(id) == -1){ $s
ArrayList 关于ArrayList和linkedList的区别不做叙述。我们都知道ArrayList是一个动态数组,当创建一个ArrayList对象时候,会存放在堆内存中且是一个内存连续的区域,即:ArrayList中不存在相邻的元素之间还存在其他的内存,索引的时候使用get[i]这个方法,比较linkedList要快很多(不用一个一个的移动指针),但是比原生数组要慢,是因为原生数组是直接
JS数组去重复元素 自己去重使用比较常规的方法:for循环中每次从原数组中取出一个元素,用这个元素循环与结果数组对比网上看到一个比较好的方法:1.创建一个新的数组存放结果2.创建一个空对象3.for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到第2步建立的
Comparable set集合添加元素的源码:根据需求实现一些排序,先按价钱,再按数量进行排序....当出现两个“pingguo”时候,他们hashcode是相同的,但是如果只重新hashcode 不重写equals set集合仍可以添加进去public class Te {public static void main(String[] args) {ArrayList list=
sql 行转列 SQL行转列汇总 PIVOT 用于将列值旋转为列名(即行转列),在 SQL Server 2000可以用聚合函数配合CASE语句实现PIVOT 的一般语法是:PIVOT(聚合函数(列) FOR 列 in (…) )AS P注意:PIVOT、UNPIVOT是SQL Server 2005 的语法,使用需修改数据库兼容级别(在数据库属性->选项->
clone()的使用 clone就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。那么在java语言中,有:1 使用new操作符创建一个对象2 使用clone方法复制一个对象那么这两种方式有什么相同和不同呢? new操作符的本意是分配内存。程序执行到new操作符时, 首先去看new操作
算法与编程 1、编写一个程序,将a.txt文件中的单词与b.txt文件中的单词交替合并到c.txt文件中,a.txt文件中的单词用回车符分隔,b.txt文件中用回车或空格进行分隔package test;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io
子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序 子线程循环10次,接着主线程循环100,接着又回到子线程循环10次,接着再回到主线程又循环100,如此循环50次,请写出程序
面试题第四天 53、线程的基本概念、线程的基本状态以及状态之间的关系 一个程序中可以有多个线程同时执行,一个线程就是一个程序中的一条执行线索,每个线程上都有关联的代码,每个程序至少有一个线程,即主线程。状态:就绪,运行,阻塞,wait和sleep挂起,结束。start方法是线程进入就绪状态,线程调度系统将就绪状态的线程转为运行状态,遇到synchronized后变成阻塞状态,当synchronized获
struts2文件上传 1.普通文件上传 实现规则:(1)在JSP中设定表单控件(2)在Action中定义属性:private File upload; //包含文件内容private String uploadFileName; //上传文件的名称;private String uploadContentType; //上传文件的MIME
面试题第三天 35、如何把一段逗号分割的字符串转换成一个数组?. 使用split(",")可以将字符串分割36、数组有没有length()这个方法?String有没有length()这个方法? 数组有length属性,String有这个方法37、下面这条语句一共创建了多少个对象:String s="a"+"b"+"c"+"d"; 一个对象,因jvm在编译时候就就将“”+“”去掉
面试题第二天 23、java中实现多态的机制是什么?靠的是父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,就是引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。24、abstractclass和interface有什么区别?1.抽象类可以有构造方法,接口中不能有构造方法。2.抽象
刷面试题的第一天 快期末考试了,也快去杭州找工作了,每天花一小时看一点面试题目,把题目复制到这里自己手写看看能不能解决,然后复习 。。2017-6-18 12:001、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 可以包含多个类,但是public类只能有一个,而且这个public类名还需要和文件名相同。2、Java有没有goto? goto是Java中保留字,目
Spring+quartz删除超时订单的测试 建立一张简单的表:myorder(order是保留字不能做数据库表名),字段:id,和date(下订单的时间)status(是否支付的状态),uid(外键,关联下订单的人)。 applicationContext.xml文件:<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http:/
Spring+quartz实现定时任务实例 前面使用S2SH做了一个会员和员工管理的模块,里面涉及东西很少,作为自己使用SSH开发的一步,整合过程中,除了员工管理系统中几张表的关系外,没有其他难点。现在想做一个网上商城的订单管理的模块,想到没有支付的订单都是有存放的时间的,过期就会自动删除订单,于是想到我们班一位大神使用quartz来定时抓取自己博客的页面内容,感觉quartz也可以过期来自动删除订单,于是就先做个实例来测试一下如何使用
Spring框架的主要功能 Spring框架的主要功能 组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下: 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转 (IOC) 模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。 Sprin
Spring定时任务的几种实现 Spring定时任务的几种实现近日项目开发中需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息,借此机会整理了一下定时任务的几种实现方式,由于项目采用spring框架,所以我都将结合spring框架来介绍。一.分类从实现的技术上来分类,目前主要有三种技术(或者说有三种产品):Java自带的java.util.Timer类,这个
SSH—员工管理模块之添加员工.删除.修改 我的员工管理界面中,员工和小组属于多对一关系,小组和到部门属于多对一关系,这几张表关联在一块。emp:/*Navicat MySQL Data TransferSource Server : localhost_3306Source Server Version : 50515Source Host : localhost:3306Sourc
SSH—会员管理模块查询以及修改会员信息 前面jar包整合后,测试都成功,现在做的是登录以及会员显示和修改会员的信息在做这个的时候,因为Struts2和hibernate做的项目比较多,没有遇到太多问题,但是还是有卡主的时候:1.会员权限的关键字我用right,但他是MySQL的关键字2.事务管理器我弄不好,就没有优化,到发布项目时候在看吧。截图:这里完成了,修改和登录的功能项目压缩包后面上
SSH—Struts2整合Spring Spring整合hibernate时候测试都没问题,导入jar包以及测试都正常,在spring整合Struts2时候最开始的时候总是报:java.lang.NoClassDefFoundError: javax/transaction/SystemException由于自己少导入一个jar包所造成的:jta.jar这里说一下需要导入的struts2的jar包(spring已经导入过):