<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[▄_◆_戀ル的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wangjun_818</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wangjun_818]]></copyright><item><title><![CDATA[2021-04-25]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/116127658</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/116127658</guid><author>wangjun_818</author><pubDate>Sun, 25 Apr 2021 14:25:14 +0800</pubDate><description><![CDATA[本文，也是对于Java中字符串相关知识的一个补充，主要来介绍一下字符串拼接相关的知识。本文基于jdk1.8.0_181。

一、字符串拼接的方式

1、字符串拼接

字符串拼接是我们在Java代码中比较经常要做的事情，就是把多个字符串拼接到一起。

我们都知道，String是Java中一个不可变的类，所以他一旦被实例化就无法被修改。


不可变类的实例一旦创建，其成员变量的值就不能被修改。这样设计有很多好处，比如可以缓存hashcode、使用更加便利以及更加安全等。


但是，既然字符串是不可变的，那么字符]]></description><category></category></item><item><title><![CDATA[SQL语句执行顺序]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/78031732</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/78031732</guid><author>wangjun_818</author><pubDate>Tue, 19 Sep 2017 16:41:06 +0800</pubDate><description><![CDATA[查询语句中select from where group by having order by的执行顺序
 
1.查询中用到的关键词主要包含六个，并且他们的顺序依次为 
select--from--where--group by--having--order by 
 
其中select和from是必须的，其他关键词是可选的，这六个关键词的执行顺序 
与sql语句的书写顺序并不是一样的]]></description><category></category></item><item><title><![CDATA[MySQL中的存储引擎讲解（InnoDB,MyISAM,Memory等各存储引擎对比）]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/78030355</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/78030355</guid><author>wangjun_818</author><pubDate>Tue, 19 Sep 2017 15:15:21 +0800</pubDate><description><![CDATA[MySQL中的存储引擎：
1、存储引擎的概念
2、查看MySQL所支持的存储引擎
3、MySQL中几种常用存储引擎的特点
4、存储引擎之间的相互转化
一、存储引擎
1、存储引擎其实就是如何实现存储数据，如何为存储的数据建立索引以及如何更新，查询数据等技术实现的方法。
2、MySQL中的数据用各种不同的技术存储在文件（或内存）中，这些技术中的每一种技术都使用不同的存储机制，索引技巧，锁]]></description><category></category></item><item><title><![CDATA[Excption与Error包结构。OOM你遇到过哪些情况，SOF你遇到过哪些情况]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/78029521</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/78029521</guid><author>wangjun_818</author><pubDate>Tue, 19 Sep 2017 14:19:55 +0800</pubDate><description><![CDATA[一道很经典的Java开发面试题，答案写的很全面，大部分内容都来自《深入理解Java虚拟机--JVM高级特性与最佳实践》，很推荐大家看这本书，在看这本书的时候，赞叹作者的写作功底，深入浅出！但是很多一开始看这本书的人感觉并不知道在讲什么，很推荐大家在看书的同时，多多上网查资料，看看网友们的总结，多多实践！会帮助你理解JVM.

原文地址：http://www.mamicode.com/info-]]></description><category></category></item><item><title><![CDATA[Java的四种引用，强弱软虚，用到的场景]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/78020808</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/78020808</guid><author>wangjun_818</author><pubDate>Mon, 18 Sep 2017 16:37:37 +0800</pubDate><description><![CDATA[http://droidyue.com/blog/2014/10/12/understanding-weakreference-in-java/



java中的4种reference的差别和使用场景(含理论.代码和执行结果)



我们知道java语言提供了4种引用类型：强引用、软引用(SoftReference)、弱引用（WeakReference）和幽灵引用（Phantom]]></description><category></category></item><item><title><![CDATA[Spring MVC和Struts2的比较的优点]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/77988559</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/77988559</guid><author>wangjun_818</author><pubDate>Fri, 15 Sep 2017 10:13:36 +0800</pubDate><description><![CDATA[我们用struts2时采用的传统的配置文件的方式，并没有使用传说中的0配置。spring3 mvc可以认为已经100%零配置了（除了配置spring mvc-servlet.xml外）。

Spring MVC和Struts2的区别：


1. 机制：spring mvc的入口是servlet，而struts2是filter（这里要指出，filter和servlet是不同的。以前认为fi]]></description><category></category></item><item><title><![CDATA[ServletContext与Web应用以及Spring容器启动]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/77988547</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/77988547</guid><author>wangjun_818</author><pubDate>Fri, 15 Sep 2017 10:13:07 +0800</pubDate><description><![CDATA[一、ServletContext对象获取Demo

Servlet容器在启动时会加载Web应用，并为每个Web应用创建唯一的ServletContext对象。

可以把ServletContext看作一个Web应用的服务器端组件的共享内存。在ServletContext中可以存放共享数据，有4个读取或者设置共享数据的方法：




方法名

描述



setAttr]]></description><category></category></item><item><title><![CDATA[BeanFactory 与 FactoryBean的区别]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/77988527</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/77988527</guid><author>wangjun_818</author><pubDate>Fri, 15 Sep 2017 10:11:41 +0800</pubDate><description><![CDATA[首先要分辨BeanFactory 与 FactoryBean的区别， 两个名字很像，所以容易搞混

BeanFactory： 以Factory结尾，表示它是一个工厂类，是用于管理Bean的一个工厂

FactoryBean：以Bean结尾，表示它是一个Bean，不同于普通Bean的是：它是实现了FactoryBean接口的Bean，根据该Bean的Id从BeanFactory中获取的实际上]]></description><category></category></item><item><title><![CDATA[SpringMVC @RequestBody 接收Json对象字符串]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/77988500</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/77988500</guid><author>wangjun_818</author><pubDate>Fri, 15 Sep 2017 10:10:19 +0800</pubDate><description><![CDATA[Spring MVC中，有两个注解比较重要：

1： @RequestBody

@RequestBody接收的是一个Json对象的字符串，而不是一个Json对象。然而在ajax请求往往传的都是Json对象，后来发现用 JSON.stringify(data)的方式就能将对象变成字符串。同时ajax请求的时候也要指定dataType:
 "json",contentType:"appli]]></description><category></category></item><item><title><![CDATA[spring <context:component-scan>使用说明]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/77988400</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/77988400</guid><author>wangjun_818</author><pubDate>Fri, 15 Sep 2017 10:04:29 +0800</pubDate><description><![CDATA[在xml配置了这个标签后，spring可以自动去扫描base-pack下面或者子包下面的java文件，如果扫描到有@Component @Controller@Service等这些注解的类，则把这些类注册为bean

注意：如果配置了那么标签就可以不用再xml中配置了，因为前者包含了后者。另外还提供了两个子标签

1.        

2.       

在说明这两个子标签前，]]></description><category></category></item><item><title><![CDATA[SpringMVC Controller 原理简介]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/77988283</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/77988283</guid><author>wangjun_818</author><pubDate>Fri, 15 Sep 2017 10:00:10 +0800</pubDate><description><![CDATA[http://haohaoxuexi.iteye.com/blog/1753271





SpringMVC Controller 介绍

一、简介

         在SpringMVC 中，控制器Controller 负责处理由DispatcherServlet 分发的请求，它把用户请求的数据经过业务处理层处理之后封装成一个Model ，然后再把该Model 返回给对]]></description><category></category></item><item><title><![CDATA[Redis过期机制介绍]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/77980800</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/77980800</guid><author>wangjun_818</author><pubDate>Thu, 14 Sep 2017 15:14:35 +0800</pubDate><description><![CDATA[在实际开发过程中经常会遇到一些有时效性数据，比如限时优惠活动，缓存或者验证码之类的。过了一段时间就需要删除这些数据。在关系型数据库中一般都要增加一个字段记录数据的到期时间，然后周期性地检查过期数据然后删除。Redis本身就对键过期提供了很好的支持。
Redis过期机制
在Redis中可以使用EXPIRE命令设置一个键的存活时间(ttl: time to live)，过了这段时间，该键就会自动被]]></description><category></category></item><item><title><![CDATA[Redis五种数据类型介绍]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/77980791</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/77980791</guid><author>wangjun_818</author><pubDate>Thu, 14 Sep 2017 15:13:53 +0800</pubDate><description><![CDATA[Redis的键值可以使用物种数据类型：字符串，散列表，列表，集合，有序集合。本文详细介绍这五种数据类型的使用方法。本文命令介绍部分只是列举了基本的命令，至于具体的使用示例，可以参考Redis官方文档：Redis命令大全


字符串类型
字符串是Redis中最基本的数据类型，它能够存储任何类型的字符串，包含二进制数据。可以用于存储邮箱，JSON化的对象，甚至是一张图片，一个字符串允许存储的最]]></description><category></category></item><item><title><![CDATA[redis数据持久化]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/77980761</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/77980761</guid><author>wangjun_818</author><pubDate>Thu, 14 Sep 2017 15:11:53 +0800</pubDate><description><![CDATA[redis数据持久化
redis数据持久化分为两种方式：RDB持久化和AOF持久化。
RDB持久化
rdb持久化的基本原理是用.rdb文件保存当前数据库中的所有键值，redis服务重启的时候如果发现.rdb文件则自动加载文件数据到内存，回复数据库数据。
     创建edb文件的方式有两种：手动和自动
     1. 手动创建rdb文件
         在客户端使用save命令或者b]]></description><category></category></item><item><title><![CDATA[Redis数据库存储和过期键实现原理]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/77980751</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/77980751</guid><author>wangjun_818</author><pubDate>Thu, 14 Sep 2017 15:11:05 +0800</pubDate><description><![CDATA[redis数据库
切换数据库


Redis是一个键值对数据库，读写效率很高，又有过期机制，所以经常被用来做缓存。很多人不知道，其实Redis和mysql一样，也是分数据库的，只不过我们一般使用的都是默认数据库而已。redis默认有16个数据库，编号分别为0,1,2...15，可以在redis客户端使用select命令切换数据库。

如图所示：


       

执行了“]]></description><category></category></item><item><title><![CDATA[SpringMVC Controller介绍及常用注解]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/77976796</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/77976796</guid><author>wangjun_818</author><pubDate>Thu, 14 Sep 2017 10:16:04 +0800</pubDate><description><![CDATA[一、简介
         在SpringMVC 中，控制器Controller 负责处理由DispatcherServlet 分发的请求，它把用户请求的数据经过业务处理层处理之后封装成一个Model ，然后再把该Model 返回给对应的View 进行展示。在SpringMVC 中提供了一个非常简便的定义Controller 的方法，你无需继承特定的类或实现特定的接口，只需使用@Controll]]></description><category></category></item><item><title><![CDATA[springMVC 的工作原理和机制]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/77976715</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/77976715</guid><author>wangjun_818</author><pubDate>Thu, 14 Sep 2017 10:12:26 +0800</pubDate><description><![CDATA[工作原理
上面的是springMVC的工作原理图：
1、客户端发出一个http请求给web服务器，web服务器对http请求进行解析，如果匹配DispatcherServlet的请求映射路径（在web.xml中指定），web容器将请求转交给DispatcherServlet.
2、DipatcherServlet接收到这个请求之后将根据请求的信息（包括URL、Http方法、请求报文头和请求参]]></description><category></category></item><item><title><![CDATA[在一个千万级的数据库查寻中，如何提高查询效率？]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/77963443</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/77963443</guid><author>wangjun_818</author><pubDate>Wed, 13 Sep 2017 11:10:30 +0800</pubDate><description><![CDATA[在一个千万级的数据库查寻中，如何提高查询效率？
1）数据库设计方面： 
a. 对查询进行优化，应尽量避免全表扫描，首先应考虑在 where 及 order by 涉及的列上建立索引。 
b. 应尽量避免在 where 子句中对字段进行 null 值判断，否则将导致引擎放弃使用索引而进行全表扫描，如： select id from t where num is null 可以在num上设置默认]]></description><category></category></item><item><title><![CDATA[为什么要重写hashCode()方法和equals()方法以及如何进行重写]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/77962850</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/77962850</guid><author>wangjun_818</author><pubDate>Wed, 13 Sep 2017 10:34:33 +0800</pubDate><description><![CDATA[本篇文章主要探讨的问题有三个：
1、首先我们为什么需要重写hashCode()方法和equals()方法？ 
2、在什么情况下需要重写hashCode()方法和equals()方法？ 
3、如何重写这两个方法？
二、为什么需要重写hashCode()方法和equals()方法
首先，为什么要重写equals()方法。我们在定义类时，我们经常会希望两个不同对象的某些属性值相同时就认为他们相]]></description><category></category></item><item><title><![CDATA[在Java中如何高效判断数组中是否包含某个元素]]></title><link>https://blog.youkuaiyun.com/wangjun_818/article/details/77962666</link><guid>https://blog.youkuaiyun.com/wangjun_818/article/details/77962666</guid><author>wangjun_818</author><pubDate>Wed, 13 Sep 2017 10:23:34 +0800</pubDate><description><![CDATA[如何检查一个数组(无序)是否包含一个特定的值？这是一个在Java中经常用到的并且非常有用的操作。同时，这个问题在Stack Overflow中也是一个非常热门的问题。在投票比较高的几个答案中给出了几种不同的方法，但是他们的时间复杂度也是各不相同的。本文将分析几种常见用法及其时间成本。
检查数组是否包含某个值的方法
1、使用List
public static boolean useList(]]></description><category></category></item></channel></rss>