java相关
文章平均质量分 72
雷小涛的摸爬滚打
一个天资愚钝的JAVA程序员!
展开
-
laydate时间插件点击跟换日期过后bootstrapValidator表单二次验证失败的问题
项目中的表单验证插件使用的是 bootstrapValidator日期选择插件使用的是laydate在点击submit进行laydate非空验证后(如图1),更换日期(如图2),不会再次触发bootstrapValidator验证图1图2问题的根本就是:bootstrapValidator不会校验已经校验过的表单(网上的思路,我没有研究,本着解决问题的初衷)解决办法:初始化laydate的时候,在laydate的done回调方法中单独在对时间字段进行验证:layd.原创 2020-07-05 02:09:06 · 813 阅读 · 2 评论 -
java参数传递:值传递
1 简述栈、堆和方法区的用法通常我们定义一个基本数据类型的变量(非成员变量,成员变量放在堆中)、一个对象的引用、还有就是函数调用的现场保存都使用JVM中的栈(stack)空间。通过new关键字和构造器创建的对象则放在堆(heap)空间,没有被引用的对象就成为“垃圾”,因此堆是垃圾收集器(GC)管理的主要区域。由于现在的垃圾收集器都采用分代收集算法,所以堆空间还可以细分为新生代和老原创 2018-03-29 20:24:10 · 535 阅读 · 1 评论 -
RabbitMQ学习之Headers交换类型(java)
Headers类型的exchange使用的比较少,它也是忽略routingKey的一种路由方式。是使用Headers来匹配的。Headers是一个键值对,可以定义成Hashtable。发送者在发送的时候定义一些键值对,接收者也可以再绑定时候传入一些键值对,两者匹配的话,则对应的队列就可以收到消息。匹配有两种方式all和any。这两种方式是在接收端必须要用键值"x-mactch"来定义。all代表定转载 2017-12-26 18:24:46 · 718 阅读 · 0 评论 -
JAVA设计模式之解释器模式
1. 什么是解释器模式? 定义一个语言的文法,并且建立一个解释器来解释该语言中的句子,这里的“语言”是指使用规定格式和语法的代码。解释器模式是一种类行为型模式。注:此模式使用较少,本人也为使用过,想要掌握此模式需要一些形式语法的知识。2. 角色 图片来源于网络抽象解释器(Expression):声明一个所有的具体表达式角色都需要实现的抽象接口。这个接口主要有一个称做解转载 2017-12-07 11:33:15 · 358 阅读 · 0 评论 -
JAVA设计模式总目录
JAVA设计模式 一、创建型 单例模式(Singleton Pattern)生成器模式(Builder Pattern):又叫建造者模式原型模式(Prototype Pattern)工厂模式(Factory Pattern):包括:静态工厂;工厂方法;抽象工厂。 二、行为型 中介者模式(Mediator Pattern):又叫调停者模式。访问者模式(原创 2017-12-14 14:53:00 · 370 阅读 · 0 评论 -
JAVA设计模式之访问者模式
1. 什么是访问者模式?访问者模式是一种较为复杂的行为型设计模式,它包含访问者和被访问者两个主要组成部分,这些被访问的元素通常具有不同的类型,且不同的访问者可以对它们进行不同的访问操作。访问者模式使得用户可以在不修改现有系统的情况下扩展系统的功能,为这些不同类型的元素增加新的操作。在使用访问者模式时,被访问元素通常不是单独存在的,它们存储在一个集合中,这个集合被称为“对象结构”,访转载 2017-12-14 11:19:51 · 278 阅读 · 0 评论 -
JAVA设计模式之责任链模式
1. 什么是责任链模式?创建多个对象,使这些对象行成一条链,并沿着这条链传递请求,直到链上的某个对象决定处理此请求,这就是责任链模式。接收请求的对象形成一条链,这些对象在链上具有层级关系的。这些对象可以处理请求,也可以传递请求,直到有对象处理此请求为止。责任链模式归根结底就是多重判断,和if、else if是相同的功能,但是条件比较多的情况下,使用if/else会造成代原创 2017-12-05 11:36:36 · 398 阅读 · 0 评论 -
JAVA设计模式之原型模式
1. 什么是原形模式?原型模式(Prototype Pattern)用原形对象指定创建对象的种类,并且通过-拷贝这些原形来创建新的对象。原形模式用于创建重复的对象,同时又能保证性能。原型模式属于创建型模式。原形模式要求原形对象实现一个“克隆”自身的方法,通过调用这个方法来创建一个新的实例对象。说到“克隆”就不得不提深克隆和浅克隆,请参考另一片文章《java克原创 2017-12-13 15:04:36 · 330 阅读 · 0 评论 -
java克隆之深克隆和浅克隆
31.1概念由java API文档可知:clone 属于 java.long.Object的一个方法protected Object clone() throws CloneNotSupportedException创建并返回此对象的一个副本。“副本”的准确含义可能依赖于对象的类。这样做的目的是,对于任何对象 x,表达式:x.clone() != x为true,表达式:x.cl原创 2017-04-07 17:35:29 · 438 阅读 · 0 评论 -
JAVA设计模式之备忘录模式
1. 什么是备忘录模式?备忘录模式(Memento Pattern):不破坏封装的前提下,捕捉一个对象的内部状态,并在这个对象之外存储起来,从而可以在将来合适的时候把这个对象还原到存储起来的状态。备忘录模式又叫标记模式和快照模式,是对象的行为型模式。备忘录对象是用来储存在某个时刻一个对象内部状态的对象。采用备忘录模式,我们可以使用一个备忘录对象来储存某个时刻原创 2017-12-12 16:40:22 · 478 阅读 · 2 评论 -
JAVA设计模式之生成器模式
1. 什么是生成器模式?《Head First设计模式》中定义:封装一个产品的构造过程,并允许按步骤构造。生成器模式(Builder Pattern)将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。生成器模式是对象创建型模式,又叫建造者模式。生成器模式针对的是复杂对象的创建。它可以将复杂对象的建造过程抽象出来,使这个抽象过程的不同实现方法可以构原创 2017-12-04 10:32:22 · 555 阅读 · 0 评论 -
JAVA设计模式之策略模式
策略模式1.什么是策略模式?《Head Frist设计模式》书中对于策略模式的定义是:定义了算法族,分别封装起来使算法之间可以相互替换,算法的变化独立于使用(调用)该算法的客户(或者叫对象)。个人理解为定义了一系列的算法,把每个算法单独封装起来,并且他们之间可以相互替换(实现了同一个接口),使得算法可独立于使用它的客户而变化。 2.角色策略模式中包含三个角色组成(图原创 2017-09-07 15:59:10 · 398 阅读 · 0 评论 -
JAVA设计模式之观察者模式
观察者模式1.什么是观察者模式?《Head Frist设计模式》中定义是:在对象之间定义一对多的依赖关系,当一个对象改变状态,依赖它的对象都会收到通知并自动更新。观察者和被观察者之间用松耦合的方式结合,被观察者不知道观察者的细节,只知道观察者实现了统一的观察者接口Observer,在JDK中已经默认提供。被观察者可以称为主题(Subject),默认都继承了统一的被观察者超类Obse原创 2017-09-07 16:08:36 · 422 阅读 · 0 评论 -
RabbitMQ学习(一):RabbitMQ要点简介
1、什么是RabbitMQ?RabbitMQ是由Erlang语言编写的实现了高级消息队列协议(AMQP)的开源消息代理软件(也可称为 面向消息的中间件)。支持Windows、Linux/Unix、MAC OS X操作系统和包括JAVA在内的多种编程语言。AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,原创 2017-12-27 10:51:56 · 5278 阅读 · 2 评论 -
RabbitMQ学习(三):Spring整合RabbitMQ
1、maven依赖 org.springframework.amqp spring-rabbit 1.4.6.RELEASE2、spring-rabbit配置2.1、配置rabbitMQ连接(1)采用方式配置连接<rabbit:connection-factory id="connectionFactory" host="${rabbitmq.h原创 2018-01-02 16:28:50 · 6267 阅读 · 2 评论 -
RabbitMQ学习(二):Java使用RabbitMQ要点知识
1、maven依赖 commons-lang commons-lang 2.3 com.rabbitmq amqp-client 3.4.1 2、RabbitMQ重要方法介绍(基本常用的)2.1、创建连接// 创建连接工厂ConnectionFactory cf = ne原创 2017-12-28 18:12:27 · 2869 阅读 · 0 评论 -
Spring Cloud学习(二):Spring Cloud Eureka
1 Eureka简介Eureka是Spring Cloud体系中用于服务注册与发现的组件。主要解决子项目之间的通讯问题。1.1 主要角色 Eureka体系调用关系图注册中心(Eureka Server):主要用于服务注册和发现的注册中心。失效剔除:...原创 2019-05-11 16:43:23 · 504 阅读 · 0 评论 -
Spring Cloud学习(一):Spring Cloud Zuul
1 zuul简介在微服务架构下,后端服务的信息一般是动态变化的,客户端很难及时获取动态变化的服务地址信息,因此在微服务架构中为了简化服务调用逻辑,通常会引用API Gateway作为轻量级网关,同时API Gateway中也会实现相关的认证逻辑从而简化内部服务之间调用的复杂度。服务网关是微服务架构中一个不可或缺的部分。通过服务网关统一向外系统提供REST API的过程中,除了具备服务路由、...原创 2019-02-24 14:49:59 · 417 阅读 · 0 评论 -
什么是RESETful API架构
一、什么是RESTful API架构?REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。他对互联网软件的架构原则,定名为REST,即Representational State Transfer的缩写。阮一峰博主将其翻译为"表现层状态转化"。如果一个架构符合REST原则,就称它为RESTful架构。只要理解了Representational State ...原创 2018-11-01 15:39:50 · 2561 阅读 · 1 评论 -
Spring接收处理HTTP请求流程浅析
spring web Http request 请求流程服务器容器监听端口,接收到请求后调用Servlet的service方法。以Tomcat为例,Tomcat监听8080端口(8080为默认配置端口,也可以自行更改),当有请求到达8080端口时,容器将调用Servlet的service方法。javax.servlet.Servlet中定义了所有Servlet必须要实现的方法。在spring w...原创 2018-10-30 15:44:29 · 6505 阅读 · 0 评论 -
高性能JSON框架之FastJson的简单使用
高性能JSON框架之FastJson的简单使用1.前言1.1.FastJson的介绍:JSON协议使用方便,越来越流行,JSON的处理器有很多,这里我介绍一下FastJson,FastJson是阿里的开源框架,被不少企业使用,是一个极其优秀的Json框架,Github地址: FastJson1.2.FastJson的特点:1.FastJson数度快,无论序列化和反序列化,都是当之无愧...转载 2018-09-10 17:00:51 · 407 阅读 · 0 评论 -
对象深克隆工具类DeepCopy
/** * Deep copy of an Object. The Object must be Serializable */public class DeepCopy { /** * Returns a copy of the object, or null if the object cannot * be serialized. * @para...翻译 2018-08-17 16:15:56 · 2271 阅读 · 0 评论 -
java读取文件方法大全
1、按字节读取文件内容2、按字符读取文件内容3、按行读取文件内容4、随机读取文件内容 public class ReadFromFile { /** * 以字节为单位读取文件,常用于读二进制文件,如图片、声音、影像等文件。 */ public static void readFileByBytes(String fileName) { File file ...转载 2018-06-26 16:36:06 · 269 阅读 · 1 评论 -
JAVA设计模式之代理模式
1. 什么是代理模式?《Head First设计模式》定义:为另一个对象提供一个“替身”或占位符以访问这个对象。代理模式在结构上类似于装饰者模式,但是两者目的不同。代理模式是提供一个对象用来访问另一个对象,装饰者模式是创建一些对象来装饰一个对象。代理模式控制访问,装饰者模以扩展功能。代理模式除了控制访问意外,另一个重要应用就是:在不改变目标方法代码的基础上,增加额外的功能,为目标对象扩原创 2017-11-28 18:51:56 · 324 阅读 · 0 评论 -
java克隆(clone)的两种实现方法
1概念由java API文档可知:clone 属于 java.long.Object的一个方法protected Object clone() throws CloneNotSupportedException创建并返回此对象的一个副本。“副本”的准确含义可能依赖于对象的类。这样做的目的是,对于任何对象 x,表达式:x.clone() != x为 true,表达式:x.clone().getCla...原创 2018-04-18 11:35:17 · 9293 阅读 · 0 评论 -
Spring websocket+Stomp+SockJS 实现实时通信 详解
Spring websocket+Stomp+SockJS 实时通信详解一、三者之间的关系 Http连接为一次请求(request)一次响应(response),必须为同步调用方式。WebSocket 协议提供了通过一个套接字实现全双工通信的功能。一次连接以后,会建立tcp连接,后续客户端与服务器交互为全双工方式的交互方式,客户端可以发送消息到服务端,服务端也可将消息发送给客户端。 ...原创 2018-04-17 23:08:50 · 16215 阅读 · 9 评论 -
AtomicInteger类的理解与使用
AtomicInteger类的理解与使用首先看两段代码,一段是Integer的,一段是AtomicInteger的,为以下:public class Sample1 { private static Integer count = 0; synchronized public static void increment() { count++; }}...转载 2018-04-04 11:00:30 · 237 阅读 · 0 评论 -
Spring事务管理
1 事务的ACID四大特性原子性(Atomicity):事务是一个原子操作,由一系列的动作组成。原子性确保动作要么都做,要么都不做。一致性(Consistency):一致性确保系统从一个一致状态转换为另一个一致状态。不管操作成功或失败,数据都不应该被破坏。隔离性(Isolation):事务与事务之间相互隔离,互不干扰。持久性(Durability):事务提交后,对系统的影响是持久不变的。无论系统...原创 2018-03-28 20:50:10 · 297 阅读 · 0 评论 -
JAVA设计模式之装饰者模式
装饰者模式1.什么是装饰者模式? 装饰者模式指在不改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。也就是创建一些装饰对象来装饰对象,使对象具有装饰对象的行为。《Head First设计模式》书中指出,动态地将行为附加到对象上,动态的扩展对象功能,装饰者模式提供了一种有别于继承体系的另一种实现。继承属于功能扩展形式之一,但不是弹性设计的最佳方案。装饰者类反映出被装原创 2017-09-07 16:58:50 · 455 阅读 · 0 评论 -
Java中equals和==的区别
java中的数据类型,可分为两类: 1.基本数据类型,也称原始数据类型。byte,short,char,int,long,float,double,boolean 他们之间的比较,应用双等号(==),比较的是他们的值。 2.复合数据类型(类) 当他们用(==)进行比较的时候,比较的是他们在内存中的存放地址,所以,除非是同一个new出来的对象,他们的比较后的结果为true,否转载 2017-10-26 16:33:33 · 340 阅读 · 0 评论 -
LinkedHashMap的实现原理
1. 概述在理解了#7 介绍的HashMap后,我们来学习LinkedHashMap的工作原理及实现。首先还是类似的,我们写一个简单的LinkedHashMap的程序:123456789101112LinkedHashMap lmap = new LinkedHashMap();lmap.put("语文", 1);lmap.put("数学", 2);lmap转载 2017-10-24 16:46:53 · 380 阅读 · 0 评论 -
ConcurrentHashMap 的实现原理
概述我们在之前的博文中了解到关于 HashMap 和 Hashtable 这两种集合。其中 HashMap 是非线程安全的,当我们只有一个线程在使用 HashMap 的时候,自然不会有问题,但如果涉及到多个线程,并且有读有写的过程中,HashMap 就不能满足我们的需要了(fail-fast)。在不考虑性能问题的时候,我们的解决方案有 Hashtable 或者Collections.syn转载 2017-10-24 15:46:06 · 227 阅读 · 0 评论 -
HashMap和Hashtable的区别
HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时的集合类,存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java转载 2017-10-24 14:49:30 · 225 阅读 · 0 评论 -
HashMap的实现原理
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本转载 2017-03-31 10:29:21 · 324 阅读 · 0 评论 -
poi根据模板导出excel
package com.css.commcon.util;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import j转载 2017-03-07 11:27:00 · 2900 阅读 · 1 评论 -
excel导入(HSSFWorkbook)
Public String DaoRu(HttpServletRequest,Model model) throws IOException{//将HttpServletRequest转型为MultipartHttpServletRequest,不转型获取不到文件名。MultipartHttpServletRequest mrequest=(MultipartHttpServletRequ转载 2017-01-19 17:53:02 · 2389 阅读 · 0 评论 -
Java中字节流和字符流的read()方法为什么返回的值是int类型
Java中字节流和字符流的read()方法为什么返回的值是int类型/* * 字节流和字符流的read()方法为什么返回的是int类型?而且为什么用-1作为判断是不是流末尾? */package cn.itcast.day_16;import java.io.FileInputStream;import java.io.FileNotFoun转载 2017-01-19 17:50:53 · 1293 阅读 · 0 评论 -
spring+struts+hibernate
注意:特别感谢鲁庆贺好同志的无私奉献。目录ssh实训学习笔记 31. Hibernate 31.1简介 31.2配置 31.2.1导入oracle驱动 31.2.2导入hibernate包 31.2.3配置hibernate.cfg.xml 81.3创建实体及实体映射xml文件 91.3.1 Student类 91.3.2映射转载 2017-01-19 17:45:39 · 2476 阅读 · 0 评论 -
POI操作Excel常用方法总结
POI操作Excel常用方法总结一、 POI简介Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。二、 HSSF概况HSSF 是Horrible SpreadSheet Format的缩写,通过HSSF,你可以用纯Java代码来读取、写入、修改Excel文件。HSSF 为读取操作提转载 2017-01-19 17:43:55 · 867 阅读 · 0 评论 -
SpringMVC+MyBatis(最新)
SpringMVC+MyBatis(最新)目前主流的Web MVC框架,除了Struts这个主力 外,还有Spring MVC,主要是由于Spring MVC配置比较简单,使用起来也十分明了,非常灵活,与Spring集成较好,对RESTful API的支持也比struts要好。MyBatis是ibatis的升级版,作为hibernate的老对手,它 是一个可以自定义SQL、存储过程转载 2017-01-19 17:42:48 · 339 阅读 · 0 评论