自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

田坎上

每天向前进步一点点

  • 博客(48)
  • 问答 (1)
  • 收藏
  • 关注

原创 sleep、wait、yield、join方法总结

sleep()sleep方法可以让线程进入Watting状态,并且不占用CPU资源,但是不释放锁,直到规定时间后再执行,休眠期间如果被中断,会抛出异常并清除中断状态;1.演示进入synchronized方法不释放锁public class SleepDemo implements Runnable { @Override public void run() { sync(); } public synchronized void sync() {

2022-03-02 15:20:19 345

原创 Spring事件机制

Spring事件机制介绍Spring的事件通知机制是一项很有用的功能,使用事件机制我们可以将相互耦合的代码解耦,从而方便功能的修改与添加;spring事件分为3步:事件定义 (事件定义:需要继承:ApplicationEvent)事件监听 (事件监听:需要实现:ApplicationListener)事件发布发布一个自定义的事件,会触发该事件监听器的onApplicationEve...

2020-01-09 18:09:28 395

原创 SpringBoot——(九)SpringBoot与缓存

一、JSR107Java Caching定义了5个核心接口,分别是CachingProvider, CacheManager, Cache, Entry和Expiry;CachingProvider:定义了创建、配置、获取、管理和控制多个CacheManager。一个应用可以在运行期访问多个CachingProvider。CacheManager:定义了创建、配置、获取、管理和控制多...

2019-12-12 09:51:54 336

转载 SpringMVC对validation的支持

对于任何一个应用而言在客户端做的数据有效性验证都不是安全有效的,这时候就要求我们在开发的时候在服务端也对数据的有效性进行验证。SpringMVC自身对数据在服务端的校验有一个比较好的支持,它能将我们提交到服务端的数据按照我们事先的约定进行数据有效性验证,对于不合格的数据信息SpringMVC会把它保存在错误对象中,这些错误信息我们也可以通过SpringMVC提供的标签在前端JSP页面上进行展示。...

2019-05-18 18:05:14 458

转载 了解NIO

NIO与IO的区别Java NIO(New IO或 Non Blocking IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。IONIO面向流编程(Stream Oriented)面向缓冲区编程(Buffer Oriented)...

2019-04-16 11:06:34 314

原创 SpringCloud之Ribbon

简介Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具,它基于Netflix Ribbon实现。通过Spring Cloud的封装,可以让我们轻松地将面向服务的REST模板请求自动转换成客户端负载均衡的服务调用。Spring Cloud Ribbon虽然只是一个工具类框架,它不像服务注册中心、配置中心、API网关那样需要独立部署,但是它几乎存在于每一个Sprin...

2019-03-21 09:35:58 856

原创 SpringCloud之Eureka

什么是Eureka?Eureka是基于REST(具像状态传输)的服务,主要用于AWS云中定位服务,以实现中间层服务器的负载平衡和故障转移。我们将此服务称为Eureka服务器。Eureka还附带了一个基于java的客户端组件Eureka客户端,这使得与服务的交互更加容易。客户机还有一个内置的负载均衡器,它执行基本的循环负载平衡。在Netflix,一个更加复杂的负载均衡器封装了Eureka,根据流量...

2019-03-21 09:27:00 251

转载 Integer类型与int的==比较

Java的数据类型基本数据类型:基本数据类类型存的是数值本身引用数据类型:引用类型变量在内存放的是数据的引用基本类型通过==比较的是他们的值大小,而引用类型比较的是他们的引用地址在一些特殊的类中,如Integer在使用==比较的时候往往非常容易出错,下面通过几个例子来探索一下具体的原理:public class Test03 { public static void mai...

2019-03-13 00:00:19 370

转载 Java之线程池

Java线程池java线程的创建、销毁和线程减切换是一件比较耗费计算机资源的事。如果我们需要用多线程处理任务,并频繁的创建、销毁线程会造成计算机资源的无端浪费,因此出现了线程池技术。在《java并发编程的艺术》一书中,作者总结了三条使用线程池的好处:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。提...

2019-03-10 00:22:56 225

原创 JDK8之Collector

CollectorCollector是JDK8开始新增加进来的。关于Collector是什么?有什么用?接下来就是来对Collector的源码DOC进行解析:A mutable reduction operation that accumulates input elements into a mutable result container, optionally transforming...

2018-12-28 18:09:08 560

原创 JDK8之Comparator

Comparator在Java8之前的版本我们应该也使用过关于Comparator吧!Comparator就是一个比较器,比较两个元素的大小。我们在对集合进行排序的时候,就需要一个比较器来对集合中的元素进行比较,才能进行排序。 * @since 1.2 */@FunctionalInterfacepublic interface Comparator<T> {}通过这段...

2018-12-25 13:31:09 2647

原创 JDK8之Stream(一)

Stream 流根据官方的说法是:流支持一系列元素的串行或者并行等聚合操作。流由三部分构成:1.源、2.零个或者多个中间操作、3.终止操作流操作的分类:1.惰性操作、2.及早求值;(对于流来说可以进行一系列链式操作,然而这系列中间链式操作,也就是惰性操作,只有遇到了终止操作也就是及早求值。)流实例的创建方式1.使用Stream中的静态方法 Stream<String> ...

2018-12-11 13:06:53 817

原创 SpringBoot学习笔记——(四)错误页面

SpringBoot错误页面关于SpringBoot错误页面和错误数据,SpringBoot提供的自动配置请参考ErrorMvcAutoConfiguration1.SpringBoot为我们通过的默认错误页面为:2.如何定制错误页面:首先我们打开ErrorMvcAutoConfiguration类可以发现,该类给容器中添加了一下组件:DefaultErrorAttributes...

2018-11-23 22:18:12 733

原创 Java8之方法引用

方法引用方法引用是lambda表达式的一种特殊形式,如果正好有某个方法满足一个lambda表达式的形式,那就可以将这个lambda表达式用方法引用的方式表示,但是如果这个lambda表达式的比较复杂就不能用方法引用进行替换。实际上方法引用是lambda表达式的一种语法糖。前面我们也说过关于函数式接口的实例方式有两种:1.lambda表达式。2.方法引用。方法引用分类:类名::静态方法名为...

2018-11-23 10:21:44 267

原创 关于使用code激活不了IntelliJ IDEA的解决方式

关于code我们可以从:http://idea.lanyus.com/这个网站中获取。K71U8DBPNE-eyJsaWNlbnNlSWQiOiJLNzFVOERCUE5FIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6I...

2018-11-19 17:33:39 2487

原创 JDK8之Optional

Optional 类通过源码可以发现Optional是一个没有子类的工具类,它的作用主要就是为了解决避免NPE(NullPointException异常)。关于Optional的用法和详细分析,下面就来一步一步的进行分析;public final class Optional<T> { private final T value; private Optional...

2018-11-17 16:37:12 737

原创 JDK8常见的函数式接口详解

Function函数式接口关于什么是Function,这里就不做介绍了。我们就需要知道Function是jdk8提供的一个默认接口。从Function名字,我们就可以看出来Function接口就是指的是一个函数接口。那么就可以映射到数学上面来说函数的解释:函数就是指给定一个参数返回一个结果(一对一,多对一的映射关系) 这里就给出Function的源码:@FunctionalInterface...

2018-11-17 16:33:47 1376

原创 SpringBoot学习笔记——(三)整合WEB项目

1. 静态资源如何用springboot进行web开发?1.创建SpringBoot应用,选中我们需要的模块.2.SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来.3.自己编写业务代码。springboot给我们做了哪些自动配置呢?下面就来依次展开。关于springboot给我们做了哪些自动配置,我们可以去看jar包中的:xxxAutoC...

2018-11-12 13:34:33 1200

转载 MQ使用场景

该篇博客转载http://www.cnblogs.com/linjiqin/p/5720865.html1. 消息队列概述消息队列中间件是分布式系统中重要的组件,主要解决应用解耦,异步消息,流量削锋等问题,实现高性能,高可用,可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ2. 消息队列应用场景...

2018-10-24 10:47:39 303

原创 SpringBoot学习笔记——(二)日志

1. 日志框架1.1 市面上主流的日志框架市面上的日志框架:JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j….日志门面 (日志的抽象层)日志实现JCL(Jakarta Commons Logging)、SLF4j(Simple Logging Facade for Java)、jboss-loggingLog4j、JUL...

2018-10-23 17:20:26 345

原创 SpringBoot学习笔记——(一)自动配置原理

一、Spring Boot入门1.Spring Boot 简介https://blog.youkuaiyun.com/u011870547/article/details/80975623简化Spring应用开发的一个框架整个Spring技术栈的一个大整合J2EE开发的一站式解决方案2.微服务微服务:架构风格(服务微化)一个应用应该是一组小型服务;可以通过HTTP的方式进行互通单体应用...

2018-10-23 17:18:01 1017

转载 AbstractRoutingDataSource动态数据源切换

这篇文章就直接引用AbstractRoutingDataSource动态数据源切换:https://blog.youkuaiyun.com/u012881904/article/details/77449710,望博主看到多包涵,我已经给了原文地址啦! 操作数据一般都是在DAO层进行处理,可以选择直接使用JDBC进行编程 或者是使用多个DataSource 然后创建多个SessionFactory...

2018-08-28 09:06:50 412

原创 Java泛型之通配符

这篇博文主要记录学习Java编程思想的一些心得和体会。在这篇文中可能会引用一些优秀博文的内容,我会在文章末尾注明引用博文的地址。通配符首先我们就给出一个程序作为入口:class Fruit{}class Apple extends Fruit{}class Jonathan extends Apple{}class Orange extends Fruit{}p...

2018-08-22 10:15:45 1062

原创 Java泛型之擦除

这篇博文主要记录学习Java编程思想的一些心得和体会。在这篇文中可能会引用一些优秀博文的内容,我会在文章末尾注明引用博文的地址。演示擦除的存在通过Java编程思想一书中的例子来对Java的泛型擦除做一个存在性的演示:public class ErasedTypeEquivalence{ public static void main(String[] args)...

2018-08-11 19:56:17 356

转载 Java中的抽象类和接口

一、抽象类在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它只有声明,而没有具体的实现。抽象方法的声明格式为:abstract void fun();抽象方法必须用abstract关键字进行修饰。如果一个类含有抽象方法,则称这个类为抽象类,抽象类必须在类前用abstract关键字修饰。因为抽象类中含有无具体实现的方法,所以不能用抽象类创建对象。 在《JAVA...

2018-08-06 22:36:07 200

原创 Git详解一

由于马上就要进入到公司了,所以在进去之前好好的学习下怎样使用最近比较流行的版本控制工具,不然进去连项目提交,拷贝都不行。更就不用说做项目了,^_^关于Git学习总结,有部分是从他人博客中拷贝过来的,希望博主看到不要怪罪,我都有注明出处和原文地址的。初始化本地库获取Git库有两种方式:一种是直接在工作目录下创建一个新的Git库另一种是从已有的库中克隆创建新的Git库...

2018-06-12 16:58:39 388

原创 Lucene详解

Lucene介绍Lucene是apache下的一个开源的全文检索引擎工具包。它为软件开发人员提供一个简单易用的工具包(类库),以方便的在目标系统中实现全文检索的功能。Lucene的官方地址为:http://lucene.apache.org/Lucene的下载地址为:http://archive.apache.org/dist/lucene/java/Lucene和搜索引擎的区别...

2018-06-03 20:51:59 729

转载 StringWriter/PrintWriter在Java异常中的作用

在Java中,利用try..catch(..finally)语句可以捕获和处理异常,非常方便。catch块的常见异常处理方式是输出异常,例如把异常输出到日志文件。Exception类有一个printStackTrace()方法,它能够从发生异常的方法中输出堆栈信息,默认输出位置是System.err。但是,有时候我们要把堆栈信息输出到System.err之外的其他地方,例如在出现异常时把堆栈信...

2018-05-29 21:13:12 2174

原创 Java类库之线程

概念分析在对线程进行分析之前,我们先要了解几个概念:并行:指两个或者多个事件在同一时刻发生;并发:指连个或多个事件在同一时间段发生; 在操作系统中,在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但是在单CPU中,每一时刻却只能有一道程序执行,故微观上这些程序只能分时的交替执行。进程:指一个内存中的应用程序,每个进程都有一块自己独立的内存空间,一个应用程序可...

2018-05-13 20:56:06 419

原创 Java加载资源文件以及对spring的父子容器简单的介绍

我们在项目中开发过程中经常遇到一个问题就是,该如何去加载资源文件。其实目前在项目中很多资源文件都不需要我们手工去编写代码来加载资源文件了,大部分都是框架已经给我们加载好,我们只需要去配置一下就可以了。今天,我就来总结一下如何从不需要要任何框架到使用框架的过程中加载资源文件的方法。 方式一:使用Java的字节码对象Class来加载资源文件这种方式是通过Class对象来获取资源文件路径:...

2018-05-09 20:23:10 412

原创 Nginx介绍和安装

Nginx的概述什么是NginxNginx是一个使用c语言开发的高性能的http服务器及反向代理服务器。Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。Nginx应用场景1、http服务器...

2018-05-07 22:07:41 256

原创 Mybatis分页查询

Mybatis分页查询其实我们都知道Mybatis是对JDBC进行了轻量级的封装框架,在我们使用Mybatis对数据库进行CRUD等操作的时候,最重要的还是通过SQL语句来进行相应的操作,那么对Mybatis分页查询又该怎么来实现呢?其实Mybatis的分页查询同样也是使用:(select * from 表名 limit number,number;)来进行分查询。下面我简单的介绍两种方式分...

2018-05-06 19:42:36 2273

转载 利用MAVEN打包时,如何包含更多的资源文件(转)

maven资源文件的相关配置(转)构建Maven项目的时候,如果没有进行特殊的配置,Maven会按照标准的目录结构查找和处理各种类型文件。src/main/java和src/test/java这两个目录中的所有*.java文件会分别在comiple和test-comiple阶段被编译,编译结果分别放到了target/classes和targe/test-classes目录中,但是这两个目录...

2018-05-06 11:36:42 1540

原创 Redis学习总结

什么是RedisRedis是用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止Redis支持的键值数据类型如下: - 字符串类型 - 散列类型 - 列表类型 - 集合类型 - 有序集合类型Redis的应用场景缓存(数据查询、短连接、新闻内容、商品内容等等)。(最多使用)分布式集群架构中的se...

2018-05-04 23:26:01 307

原创 Redis/RedisCluster安装和

搭建Redis服务下载RedisRedis的官网:http://redis.io/下载地址:http://download.redis.io/releases/我这里以redis-3.0.0版本来进行搭建第一步在Linux环境中执行命令下载该版本:wget http://download.redis.io/releases/redis-3.0.0.tar.gz下...

2018-05-04 20:10:28 554

原创 Linux基础命令详解二

其他命令以后再写

2018-05-02 19:36:00 188

原创 Linux基础命令详解一

关于其他命令在详解二中

2018-05-02 19:32:12 202

原创 SSM整合介绍

SSM整合- jar包整合Mybatis所需要的jar有(我这里使用的是Mybatis3.27) 首先是Mybatis的核心jar包:mybatis.jar。 然后是Mybatis的一些依赖包:这些包主要都是一些日志包MySQL的驱动包:mysql-connection-java.jar数据库连接池包:这里采用C3p0连接池com.springsource.com.mch...

2018-04-28 19:33:47 586

原创 SpringMVC详解——下(学习总结)

一、SpringMVC注解开发1.1.创建一个WEB工程和导入jar包:1.2.配置web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javae...

2018-04-27 20:04:25 531

原创 SpringMVC详解——上(学习总结)

一、对SpringMVC的介绍1.1.为什么要使用SpringMVC在很多应用程序中都对处理业务数据、和显示业务数据的视图对象之间存在紧密耦合。通常,更新业务对象的命令都是从视图本身发起的,使视图对任何业务对象的更改都有高度敏感性。而且当多个视图依赖同一个业务对象时是没有灵活性的。SpringMVC是一种基于Java实现的WEB MVC设计模式的请求驱动类型的轻量级WEB层的框架,使用MVC架构模...

2018-04-25 16:55:19 1030

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除