<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[田坎上]]></title><description><![CDATA[每天向前进步一点点]]></description><link>https://blog.youkuaiyun.com/ITITII</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ITITII]]></copyright><item><title><![CDATA[sleep、wait、yield、join方法总结]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/123231324</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/123231324</guid><author>ITITII</author><pubDate>Wed, 02 Mar 2022 15:20:19 +0800</pubDate><description><![CDATA[sleep()
sleep方法可以让线程进入Watting状态,并且不占用CPU资源，但是不释放锁，直到规定时间后再执行，休眠期间如果被中断，会抛出异常并清除中断状态;
1.演示进入synchronized方法不释放锁
public class SleepDemo implements Runnable {

    @Override
    public void run() {
        sync();
    }

    public synchronized void sync() {
 ]]></description><category></category></item><item><title><![CDATA[Spring事件机制]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/103913549</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/103913549</guid><author>ITITII</author><pubDate>Thu, 09 Jan 2020 18:09:28 +0800</pubDate><description><![CDATA[Spring事件机制介绍
Spring的事件通知机制是一项很有用的功能，使用事件机制我们可以将相互耦合的代码解耦，从而方便功能的修改与添加;
spring事件分为3步:

事件定义 (事件定义：需要继承：ApplicationEvent)
事件监听 (事件监听：需要实现：ApplicationListener)
事件发布

发布一个自定义的事件，会触发该事件监听器的onApplicationEve...]]></description><category></category></item><item><title><![CDATA[SpringBoot——(九)SpringBoot与缓存]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/103503599</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/103503599</guid><author>ITITII</author><pubDate>Thu, 12 Dec 2019 09:51:54 +0800</pubDate><description><![CDATA[一、JSR107
Java Caching定义了5个核心接口，分别是CachingProvider, CacheManager, Cache, Entry和Expiry;


CachingProvider:定义了创建、配置、获取、管理和控制多个CacheManager。一个应用可以在运行期访问多个CachingProvider。


CacheManager:定义了创建、配置、获取、管理和控制多...]]></description><category></category></item><item><title><![CDATA[SpringMVC对validation的支持]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/90318468</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/90318468</guid><author>ITITII</author><pubDate>Sat, 18 May 2019 18:05:14 +0800</pubDate><description><![CDATA[对于任何一个应用而言在客户端做的数据有效性验证都不是安全有效的，这时候就要求我们在开发的时候在服务端也对数据的有效性进行验证。SpringMVC自身对数据在服务端的校验有一个比较好的支持，它能将我们提交到服务端的数据按照我们事先的约定进行数据有效性验证，对于不合格的数据信息SpringMVC会把它保存在错误对象中，这些错误信息我们也可以通过SpringMVC提供的标签在前端JSP页面上进行展示。
...]]></description><category></category></item><item><title><![CDATA[了解NIO]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/89329461</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/89329461</guid><author>ITITII</author><pubDate>Tue, 16 Apr 2019 11:06:34 +0800</pubDate><description><![CDATA[NIO与IO的区别
Java NIO（New IO或 Non Blocking IO）是从Java 1.4版本开始引入的一个新的IO API，可以替代标准的Java IO API。NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。




IO
NIO




面向流编程(Stream Oriented)
面向缓冲区编程(Buffer Oriented)


...]]></description><category></category></item><item><title><![CDATA[SpringCloud之Ribbon]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/88707122</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/88707122</guid><author>ITITII</author><pubDate>Thu, 21 Mar 2019 09:35:58 +0800</pubDate><description><![CDATA[简介
Spring Cloud Ribbon是一个基于HTTP和TCP的客户端负载均衡工具，它基于Netflix Ribbon实现。通过Spring Cloud的封装，可以让我们轻松地将面向服务的REST模板请求自动转换成客户端负载均衡的服务调用。Spring Cloud Ribbon虽然只是一个工具类框架，它不像服务注册中心、配置中心、API网关那样需要独立部署，但是它几乎存在于每一个Sprin...]]></description><category></category></item><item><title><![CDATA[SpringCloud之Eureka]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/88706904</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/88706904</guid><author>ITITII</author><pubDate>Thu, 21 Mar 2019 09:27:00 +0800</pubDate><description><![CDATA[什么是Eureka？
Eureka是基于REST(具像状态传输)的服务，主要用于AWS云中定位服务，以实现中间层服务器的负载平衡和故障转移。我们将此服务称为Eureka服务器。Eureka还附带了一个基于java的客户端组件Eureka客户端，这使得与服务的交互更加容易。客户机还有一个内置的负载均衡器，它执行基本的循环负载平衡。在Netflix，一个更加复杂的负载均衡器封装了Eureka，根据流量...]]></description><category></category></item><item><title><![CDATA[Integer类型与int的==比较]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/88432003</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/88432003</guid><author>ITITII</author><pubDate>Wed, 13 Mar 2019 00:00:19 +0800</pubDate><description><![CDATA[Java的数据类型

基本数据类型：基本数据类类型存的是数值本身
引用数据类型：引用类型变量在内存放的是数据的引用
基本类型通过==比较的是他们的值大小，而引用类型比较的是他们的引用地址

在一些特殊的类中，如Integer在使用==比较的时候往往非常容易出错，下面通过几个例子来探索一下具体的原理:
public class Test03 { 
    public static void mai...]]></description><category></category></item><item><title><![CDATA[Java之线程池]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/88373821</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/88373821</guid><author>ITITII</author><pubDate>Sun, 10 Mar 2019 00:22:56 +0800</pubDate><description><![CDATA[Java线程池
java线程的创建、销毁和线程减切换是一件比较耗费计算机资源的事。如果我们需要用多线程处理任务，并频繁的创建、销毁线程会造成计算机资源的无端浪费，因此出现了线程池技术。在《java并发编程的艺术》一书中，作者总结了三条使用线程池的好处：

降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。
提高响应速度。当任务到达时，任务可以不需要的等到线程创建就能立即执行。
提...]]></description><category></category></item><item><title><![CDATA[JDK8之Collector]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/85329637</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/85329637</guid><author>ITITII</author><pubDate>Fri, 28 Dec 2018 18:09:08 +0800</pubDate><description><![CDATA[Collector
Collector是JDK8开始新增加进来的。关于Collector是什么？有什么用？接下来就是来对Collector的源码DOC进行解析：

A mutable reduction operation that accumulates input elements into a mutable result container, optionally transforming...]]></description><category></category></item><item><title><![CDATA[JDK8之Comparator]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/85246484</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/85246484</guid><author>ITITII</author><pubDate>Tue, 25 Dec 2018 13:31:09 +0800</pubDate><description><![CDATA[Comparator
在Java8之前的版本我们应该也使用过关于Comparator吧！Comparator就是一个比较器，比较两个元素的大小。我们在对集合进行排序的时候，就需要一个比较器来对集合中的元素进行比较，才能进行排序。
 * @since 1.2
 */
@FunctionalInterface
public interface Comparator&amp;lt;T&amp;gt; {
}

通过这段...]]></description><category></category></item><item><title><![CDATA[JDK8之Stream(一)]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/84953380</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/84953380</guid><author>ITITII</author><pubDate>Tue, 11 Dec 2018 13:06:53 +0800</pubDate><description><![CDATA[Stream 流
根据官方的说法是:流支持一系列元素的串行或者并行等聚合操作。
流由三部分构成：1.源、2.零个或者多个中间操作、3.终止操作
流操作的分类：1.惰性操作、2.及早求值；(对于流来说可以进行一系列链式操作，然而这系列中间链式操作，也就是惰性操作，只有遇到了终止操作也就是及早求值。)
流实例的创建方式

1.使用Stream中的静态方法

 Stream&amp;lt;String&amp;gt; ...]]></description><category></category></item><item><title><![CDATA[SpringBoot学习笔记——(四)错误页面]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/84404453</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/84404453</guid><author>ITITII</author><pubDate>Fri, 23 Nov 2018 22:18:12 +0800</pubDate><description><![CDATA[SpringBoot错误页面
关于SpringBoot错误页面和错误数据，SpringBoot提供的自动配置请参考ErrorMvcAutoConfiguration
1.SpringBoot为我们通过的默认错误页面为：

2.如何定制错误页面：
首先我们打开ErrorMvcAutoConfiguration类可以发现，该类给容器中添加了一下组件：



DefaultErrorAttributes...]]></description><category></category></item><item><title><![CDATA[Java8之方法引用]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/84374779</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/84374779</guid><author>ITITII</author><pubDate>Fri, 23 Nov 2018 10:21:44 +0800</pubDate><description><![CDATA[方法引用
方法引用是lambda表达式的一种特殊形式，如果正好有某个方法满足一个lambda表达式的形式，那就可以将这个lambda表达式用方法引用的方式表示，但是如果这个lambda表达式的比较复杂就不能用方法引用进行替换。实际上方法引用是lambda表达式的一种语法糖。前面我们也说过关于函数式接口的实例方式有两种：1.lambda表达式。2.方法引用。
方法引用分类：

类名::静态方法名
为...]]></description><category></category></item><item><title><![CDATA[JDK8之Optional]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/84190211</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/84190211</guid><author>ITITII</author><pubDate>Sat, 17 Nov 2018 16:37:12 +0800</pubDate><description><![CDATA[Optional 类
通过源码可以发现Optional是一个没有子类的工具类，它的作用主要就是为了解决避免NPE(NullPointException异常)。关于Optional的用法和详细分析，下面就来一步一步的进行分析；
public final class Optional&amp;amp;amp;lt;T&amp;amp;amp;gt; {
    private final T value;

    private Optional...]]></description><category></category></item><item><title><![CDATA[JDK8常见的函数式接口详解]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/84190168</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/84190168</guid><author>ITITII</author><pubDate>Sat, 17 Nov 2018 16:33:47 +0800</pubDate><description><![CDATA[Function函数式接口
关于什么是Function，这里就不做介绍了。我们就需要知道Function是jdk8提供的一个默认接口。从Function名字，我们就可以看出来Function接口就是指的是一个函数接口。那么就可以映射到数学上面来说函数的解释：函数就是指给定一个参数返回一个结果(一对一，多对一的映射关系) 
这里就给出Function的源码：
@FunctionalInterface...]]></description><category></category></item><item><title><![CDATA[SpringBoot学习笔记——(三)整合WEB项目]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/83990545</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/83990545</guid><author>ITITII</author><pubDate>Mon, 12 Nov 2018 13:34:33 +0800</pubDate><description><![CDATA[1. 静态资源
如何用springboot进行web开发？

1.创建SpringBoot应用，选中我们需要的模块.
2.SpringBoot已经默认将这些场景配置好了，只需要在配置文件中指定少量配置就可以运行起来.
3.自己编写业务代码。

springboot给我们做了哪些自动配置呢？下面就来依次展开。
关于springboot给我们做了哪些自动配置，我们可以去看jar包中的：xxxAutoC...]]></description><category></category></item><item><title><![CDATA[MQ使用场景]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/83340334</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/83340334</guid><author>ITITII</author><pubDate>Wed, 24 Oct 2018 10:47:39 +0800</pubDate><description><![CDATA[
该篇博客转载http://www.cnblogs.com/linjiqin/p/5720865.html

1. 消息队列概述
消息队列中间件是分布式系统中重要的组件，主要解决应用解耦，异步消息，流量削锋等问题，实现高性能，高可用，可伸缩和最终一致性架构。目前使用较多的消息队列有ActiveMQ，RabbitMQ，ZeroMQ，Kafka，MetaMQ，RocketMQ
2. 消息队列应用场景
...]]></description><category></category></item><item><title><![CDATA[SpringBoot学习笔记——(二)日志]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/83310163</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/83310163</guid><author>ITITII</author><pubDate>Tue, 23 Oct 2018 17:20:26 +0800</pubDate><description><![CDATA[1. 日志框架
1.1 市面上主流的日志框架
市面上的日志框架：JUL、JCL、Jboss-logging、logback、log4j、log4j2、slf4j….




日志门面 （日志的抽象层）
日志实现




JCL（Jakarta Commons Logging）、SLF4j（Simple Logging Facade for Java）、jboss-logging
Log4j、JUL...]]></description><category></category></item><item><title><![CDATA[SpringBoot学习笔记——(一)自动配置原理]]></title><link>https://blog.youkuaiyun.com/ITITII/article/details/83310113</link><guid>https://blog.youkuaiyun.com/ITITII/article/details/83310113</guid><author>ITITII</author><pubDate>Tue, 23 Oct 2018 17:18:01 +0800</pubDate><description><![CDATA[一、Spring Boot入门
1.Spring Boot 简介
https://blog.youkuaiyun.com/u011870547/article/details/80975623

简化Spring应用开发的一个框架
整个Spring技术栈的一个大整合
J2EE开发的一站式解决方案

2.微服务

微服务：架构风格（服务微化）
一个应用应该是一组小型服务；可以通过HTTP的方式进行互通
单体应用...]]></description><category></category></item></channel></rss>