![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JAVA
文章平均质量分 80
BigFishAndBegonia
我居然不知道怎么改名字
展开
-
ActiveMQ入门到吃透(含源码解析)
1、什么是MQMQ :message queue ,消息队列(消息中间件),遵守JMS(java message service)规范的一种软件。2、MQ的使用场景1)异步处理请求。对于不需要实时响应的请求,可以将消息发送到MQ上,等待消费者在有处理能力的时候再对MQ上的请求进行处理,而不需要实时返回,对于突然暴增的请求或者大量的请求,可以全部堵塞在MQ上,而不会占用更多的系统资源,防止系统资源耗尽而宕机。2)对系统架构解耦。如果一个系统依赖多个服务,使用MQ可以将依赖的服务换.原创 2021-04-07 23:50:49 · 729 阅读 · 1 评论 -
设计模式之工厂模式——静态工厂
本文略长,所以先来个内容提要 序:什么是静态工厂方法 Effective Java 2.1 静态工厂方法与构造器不同的第一优势在于,它们有名字 2.2 第二个优势,不用每次被调用时都创建新对象 2.3 第三个优势,可以返回原返回类型的子类 2.4 第四个优势,在创建带泛型的实例时,能使代码变得简洁 除此之外 3.1 可以有多个参数相...转载 2018-06-03 23:10:42 · 592 阅读 · 0 评论 -
浅谈JAVA中“增强”类的某个方法的几个中方法!
一、继承 使用场景:能够控制这个类的构造的时候,才可以使用继承。 优点:简单容易使用, 缺点:耦合性大大的增强,不利于后期的维护,所以对于继承这种方法,谨慎使用。 代码实现:二、装饰者模式 使用场景:1、包装对象和被包装对象实现相同的接口 2、包装的对象中需要获得到被包装对象的引用。 缺点:如果接口的方法比较多,增强其中某个方法,其他的功能的方法需要原有的调用; 代码实现: ...原创 2018-05-15 20:59:49 · 330 阅读 · 0 评论 -
IDEA报 .......系统找不到指定文件的解决办法
今天发现一个问题解决了我非常非常久!!就是运行tomcat的时候,在访问资源的时候,会报 一个路径 + 系统找不到指定文件但是你检查发现,这个文件确实就在这里面躺着啊!!!怎么会找不到呢???首先,你要检查你的这个路径是不是有空格?%20 就表示空格,如果有,那么就把文件的空格给去掉,然后回到IDEA,会发现,你的IDEA应用没了,没关系,关掉之后重启,然后找到修改了文件名的原项目,然后重新...原创 2018-05-21 23:16:24 · 25204 阅读 · 10 评论 -
JDBC 从入门到精通
引入: 先猜想一下 java程序如何和mysql建立连接: 思路:可以用socket,需要遵循的是mysql协议。那么mysql又是如何规定发送的数据的格式和mysql返回的响应数据的格式呢? java程序通过mysql协议发送请求(内容以sql语句)给服务端,服务端按照mysql协议处理数据结果, java程序再解析协议,处理数据(这些过程mys...原创 2018-05-14 23:00:13 · 883 阅读 · 0 评论 -
用于封装Bean的BeanUtils
使用BeanUtils的原因因为setProperty是JSP中的标签,因此使用model 2模式JSP+Servlet+JavaBean的时候,JSP将form提交给Servlet程序,而Servlet程序无法像JSP一样使用setProperty对数据进行封装,<jsp:useBean id="calculator" class="cn.megustas.javabean.Calcula...转载 2018-05-21 13:29:56 · 1799 阅读 · 0 评论 -
XML 四大解析模式区分(DOM解析、SAX解析、JDOM解析、DOM4J解析)
例子<?xml version="1.0" encoding="UTF-8"?><bookstore> <book id="1"> <name>亨利谁与争锋</name> <author>天下足球</author> <year&转载 2018-05-19 23:21:14 · 696 阅读 · 0 评论 -
XML从入门到精通
1.概述: XML是一种标记语言。 Extensible markup language(可扩展标记语言) HTML: hyper text markup language(超文本标记语言):其标签已经预定义好了,不能随便定义,或者定义了也没有意义,浏览器不认识。 HTML被设计:显示数据。 XML被设计:传输数据。 WEB开发: Server / ...原创 2018-05-19 23:15:16 · 1590 阅读 · 0 评论 -
会话技术 : Cookie &amp; Seesion
1.CookieCookie 是一种会话技术。所谓会话技术,十分简单,就是用来解决这样一个问题:保存用户在一次浏览器会话中,所产生的的数据。何为会话?会话可简单理解为:用户开一个浏览器,点击多个超链接,访问同一个服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。所谓cookie技术:1. Cookie是客户端技术,服务器程序把每个用户的数据以cookie的形式写给用户各自的浏览器2. ...原创 2018-05-06 23:58:49 · 340 阅读 · 0 评论 -
HttpServletRequest & Response
1.HttpServletRequest2.HttpServletResponse1.Response的API1.1 通过response设置响应报文中的响应码 1.2 通过response对象设置响应头 1.3 通过response对象设置响应正文可以通过字节流,将响应内容写入响应报文 也可以通过字符流,将响应内容写入响应报文 2 输出中文遇到的乱码问题对于乱码问题,其核心只有一个:就是编解码不...原创 2018-05-06 23:40:46 · 176 阅读 · 0 评论 -
MySQL的多表查询问题
Day18 多表查询为了消除数据的冗余,我们存数据的时候,会把完整的数据信息,分散到多张表来存储。但是,用户通常需要的是一个完整的全面的信息,那么在查询的时候,就需要把这些分散的信息 拼接 。——多表查询“拼接” 《=》 连接连接查询 交叉连接:(笛卡尔积) cross join 将两张表的信息结合在一起(表1 | 表2 ): select...原创 2018-05-13 09:54:14 · 1950 阅读 · 0 评论 -
数据库(SQL/DDL/DML/DQL/约束)
1.SQL简介SQL:Structured Query Language 的缩写(操作关系数据库中的数据)中文名称:结构化查询语言作用:是一种定义、操作、管理关系数据库的句法。大多数关系型数据库都支持。结构化查询语言的工业标准由ANSI(美国国家标准学会,ISO的成员之一)维护。组成:DDL:数据定义语言DML:数据操作语言DCL:数据控制语言DQL:数据查询语言(sql最难...原创 2018-05-12 12:38:45 · 855 阅读 · 0 评论 -
轻量框架之DBUtils
Dbutils:从字面意思可以理解为:通用的数据库工具类。Apache组织提供的一个开源JDBC工具类库,对传统操作数据库的类进行二次封装,可以把结果集转化成List。下载jar包:http://mvnrepository.com/commons.dbutils.jar 概述: 简介:是一种很薄的封装,轻量级的框架 优点:方便,好用。 commons-dbu...原创 2018-05-17 19:53:58 · 592 阅读 · 0 评论 -
Mybatis的逆向工程代码
Mybatis教程送给你们:http://www.mybatis.org/mybatis-3/zh/getting-started.htmlMyBatis逆向工程可以方便的从数据库中将表自动映射到JAVA POJO类,并同时生成Mapper.xml和Mapper接口,方便实用。下面介绍一下逆向工程的使用方法。配置文件 <?xml version="1.0" encodin...原创 2018-06-21 20:02:05 · 143 阅读 · 0 评论 -
死磕源码——Spring系列__IOC
原文链接https://javadoop.com/post/spring-ioc#BeanFactory%20%E7%AE%80%E4%BB%8B转载 2019-09-29 00:09:12 · 283 阅读 · 0 评论 -
微服务下的单元测试覆盖率(Maven+JaCoco)跨模块
需求:最近需要对5、6个微服务的单元测试覆盖率做一次统计,要求是能够测到某个单元测试不仅可以覆盖本服务下的方法,还能够覆盖到其他服务下的方法(比如服务A,B,C,A服务下的单元测试用到了B服务下的某个方法,那么这个也算是间接覆盖了B服务下的方法,所以也要统计进去)在网上找了一大堆的方法,全是一个套路,只能对单个模块进行单元测试,大家这样的东西Copy来Copy去的,有啥用。。。浪费我...原创 2019-07-21 23:50:57 · 1468 阅读 · 3 评论 -
多实例下获取Redis分布式锁完成多库并发的定时任务
本篇旨在提供SpringCloud下多实例多库跑定时任务的优化方案业务场景:有这样一个需求,需要跑大数据下的定时任务,主要是查表和写表操作,量很大,要支持续跑,并且每个库的数据不一致,所以需要轮询库,假如生产有4台实例,一共有8个库,为了减小服务器的压力,并且能够同时跑8个库的任务。需要解决几个问题:1.确保每个库,有且只能有1个线程在跑,如果其他线程也跑了这个库,就会导致数据插入...原创 2019-04-28 22:29:24 · 1027 阅读 · 0 评论 -
SpringBoot的AOP切面编程通俗易懂
我这里要演示的就是一个简单的AOP编程的方式,其中使用了自定义注解和正常的切面直接上代码1.自定义注解,具体每个注解的解释自己百度@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documentedpublic @interface SysLog { String value() defaul...原创 2019-04-14 00:36:45 · 1858 阅读 · 0 评论 -
Redis延时消息队列、异步消息队列的实现
package list;import java.lang.reflect.Type;import java.util.Set;import java.util.UUID;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.TypeReference;import redis.clients.jedis.Je...原创 2018-09-24 23:53:40 · 1372 阅读 · 1 评论 -
SpringMVC的接口鉴权
工作中,我们肯定都会接触到拦截器,但是经常在拦截的过程中出现各种问题,比如拦截之后,静态资源也被拦截,结合AOP的时候起不到作用,或者拦截根本没有生效。用SpringMVC的小伙伴肯定深有感受,接下来,我们一起整理一遍拦截器及AOP。1.什么是拦截器在SpringMVC中用于拦截请求的代码。由于SpringMVC的视图解析器的存在,在拦截请求到处理请求再到返回视图中间有两个间隙,inter...原创 2018-09-02 20:22:04 · 6549 阅读 · 2 评论 -
java多线程的使用详解
线程创建的三种方式:1.extends Thread2.Impl Runnable3.Impl Callable4.线程池的使用1.继承一个Thread类这也是最开始学习的方式,使用方式如下:public class Thread1 {public static void main(String args[]){ MyThread myThread ...原创 2018-07-23 13:33:48 · 159 阅读 · 0 评论 -
org.thymeleaf.exceptions.TemplateInputException: Exception parsing document:
org.thymeleaf.exceptions.TemplateInputException: Exception parsing document: template="home", line 29 - column 48] with root causeorg.xml.sax.SAXParseException: 元素内容必须由格式正确的字符数据或标记组成。。。。。。。。。。今天报了这个错误...原创 2018-07-11 11:31:14 · 996 阅读 · 0 评论 -
SSH框架
1.2.Struts22.1 Introduction2.1.1 历史背景Apache 旗下Struts1 – apache 自己搞的 大部分废弃了。Xwork mvc框架 非常好用 Struts2- 整合xwork的mvc框架2.1.2 好处• Strust2 核心功能:• 允许POJO(Plain Old Java Objects)对象 作为Action• Action的execute ...原创 2018-06-29 23:41:02 · 261 阅读 · 0 评论 -
Maven
什么是Maven1.简介:maven翻译为:专家,内行。 maven是一个项目管理构建工具。专门用于管理项目构建、依赖管理。主要两个功能:1.项目构建 帮助项目做很多事情,测试,命令等,IDEA已经整合了2.依赖管理(重点) 希望通过配置的方式来导入依赖,而不是通过手动导包的方式。1.1项目构建传统方法maven方法 将项目构建的过程进行标准化,每...原创 2018-06-15 12:05:47 · 213 阅读 · 0 评论 -
ThreadLocal 详解
ThreadLocal的概述概念:ThreadLocal,很多地方叫做线程本地变量,也有些地方叫做线程本地存储,其实意思差不多。可能很多朋友都知道ThreadLocal为变量在每个线程中都创建了一个副本,那么每个线程可以访问自己内部的副本变量。引入:class ConnectionManager { private static Connection connec...原创 2018-05-31 21:07:01 · 367 阅读 · 0 评论 -
SSM整合中的文件上传
package hrm.controller;import hrm.domain.Document;import hrm.domain.User;import org.apache.commons.io.FileUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springfra...转载 2018-06-21 21:55:28 · 563 阅读 · 0 评论 -
IDEA在Open一个Moduel的时候找不到jar包,或者package不正确的解决方案
之前一直不注意,每次Open一个之前的项目的时候都要重新配置所有的东西,然后还不对,最近看了下,找到了问题所在。主要是几个点:找到之前自己的项目的整个文件,然后一路next下去,然后OK,就行了。。。特别提醒,不要 : 否则配置会失败...原创 2018-05-17 19:26:37 · 910 阅读 · 0 评论 -
JAVAEE学习路线
第一部分JAVA语言基础知识。包括异常、IO流、多线程、集合类、数据库。(切记基础知识一定要时时刻刻巩固,注意,如果你是想以最快速度学习J2EE,关于Java中的Swing知识点,就只做了解) 要求:对java的封装,生命周期等有一定的了解; java基础语法------必须的异常------掌握try-catch-finally的使用 IO流------掌握字节流、字符流和对象序列化的处理。能够...转载 2018-04-21 21:05:17 · 755 阅读 · 0 评论 -
基本类型和包装类、基本类型和字符串之间的转换
基本类型和包装类之间的转换基本类型和包装类之间经常需要互相转换,以 Integer 为例(其他几个包装类的操作雷同哦):在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更加轻松便利了。那什么是装箱和拆箱呢?我们分别来看下装箱:把基本类型转换成包装类,使其具有对象的性质,又可分为手动装箱和自动装箱拆箱:和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱 ...转载 2018-04-20 23:59:54 · 12487 阅读 · 1 评论 -
JAVA对象引用 及 对象赋值
Java对象及其引用关于对象与引用之间的一些基本概念。 初学Java时,在很长一段时间里,总觉得基本概念很模糊。后来才知道,在许多Java书中,把对象和对象的引用混为一谈。可是,如果我分不清对象与对象引用, 那实在没法很好地理解下面的面向对象技术。把自己的一点认识写下来,或许能让初学Java的朋友们少走一点弯路。 为便于说明,我们先定义一个简单的类: ...转载 2018-04-01 20:32:44 · 188 阅读 · 0 评论 -
JAVA 抽象类、普通类、接口
【概念】1.普通类 类可以看成是创建Java对象的模板 一个类可以包含以下类型变量:局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。成员变量:成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。类变量:类变量也声明在类中,方法体之外,但必...转载 2018-03-26 13:31:15 · 287 阅读 · 0 评论 -
Java类的构造方法
constructor;构造函数1在创建对象的时候,对象成员可以由构造函数方法进行初始化。new对象时,都是用构造方法进行实例化的;例如;Test test = new Test("a"); //Test("a");其中这个就是构造函数,“a”为构造方法的形参构造方法的方法名必须与类名一样。构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。构造方法不能作用是完成对象的...转载 2018-03-22 10:07:55 · 282 阅读 · 0 评论 -
面试题总结
int和Integer的区别1、Integer是int的包装类,int则是java的一种基本数据类型 2、Integer变量必须实例化后才能使用,而int变量不需要 3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值 4、Integer的默认值是null,int的默认值是0延伸: 关于Integer和int的比较 1、由于I...原创 2018-04-08 17:03:21 · 853 阅读 · 0 评论 -
显式初始化和隐式初始化
问题一:null和""的区别String s=null;s.trim()就会抛出为空的exception String s=""; s.trim()就不会抛,为什么?答:NULL代表声明了一个空对象,根本就不是一个字符串。 ""代表声明了一个对象实例,这个对象实例的值是一个长度为0的空字符串。NULL代表声明了一个空对象,对空对象做任何操作都不行的,除了=和==;""是一个字符串了,只是这个字符串...转载 2018-03-26 09:30:41 · 9817 阅读 · 1 评论 -
编译时多态、运行时多态
根据何时确定执行多态方法中的哪一个,多态分为两种情况:编译时多态和运行时多态。如果在编译时能够确定执行多态方法中的哪一个,称为编译时多态,否则称为运行时多态。一、编译时多态 方法重载都是编译时多态。根据实际参数的数据类型、个数和次序,Java在编译时能够确定执行重载方...转载 2018-03-25 21:13:26 · 36621 阅读 · 0 评论 -
面向对象:多态、编译时类型、运行时类型、向上兼容、兼容下反转、instanceof
1. 想明白多态必须先理解两个概念:编译时类型和运行时类型 1) 这两种类型都是针对引用变量的; 2) 编译时类型: i. 是声明引用变量时的类型; ii. 例如:String s; // 那么s的编译时类型就是String 3) 运行时类型: i. 是引用实际指向的对象的类型,和编译时类型完全没有任何关系; ii...转载 2018-03-25 21:06:07 · 353 阅读 · 0 评论 -
JAVA中的装箱和拆箱——深入解析
自动装箱和拆箱问题是Java中一个老生常谈的问题了,今天我们就来一些看一下装箱和拆箱中的若干问题。本文先讲述装箱和拆箱最基本的东西,再来看一下面试笔试中经常遇到的与装箱、拆箱相关的问题。一.什么是装箱?什么是拆箱?我们知道 Java为每种基本数据类型都提供了对应的包装器类型,至于为什么会为每种基本数据类型提供包装器类型在此不进行阐述,有兴趣的朋友可以查阅相关资料。在Java SE5之前,如果要生成...转载 2018-03-30 22:39:47 · 214 阅读 · 0 评论 -
Java中的 多态 的概念和理解
实现前提:1.要有继承关系 2.要有方法覆盖 3.父类引用指向了子类的实例1.继承关系好理解, 有 extends ,对类进行继承(假设 class A extends B{}即A是子类,B是父类,子类拥有父类的所有成员)2.方法覆盖稍微不好理解, 首先它的定义是:在子类中替换 父类或祖先类 中的某个方法。 实现方法:通过子类重新定义 与 父类...原创 2018-03-25 17:57:18 · 931 阅读 · 0 评论 -
Java中的隐藏和覆盖
1、编译时类型和运行时类型 Java的引用变量有两个类型,一个是编译时类型,一个是运行时类型编译时类型:由声明该变量时使用的类型决定运行时类型:由该变量指向的对象类型决定如果编译时类型和运行时类型不一致,会出现所谓的多态。因为子类其实是一种特殊的父类,因此java允许把一个子类对象直接赋值给一个父类引用变量,无须任何类型转换,或者被称为向上转型,由系统自动完成。如 Father f = ne...转载 2018-03-25 12:43:14 · 129 阅读 · 0 评论 -
super关键字
主要是由Hadoop中的函数想到的,以前对super不太明白,写了几段代码搞懂了。@Overrideprotected void setup(Context context) throws IOException, InterruptedException { super.setup...转载 2018-03-25 09:27:10 · 145 阅读 · 0 评论