<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JavaWebEngineer的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/JavaWebEngineer</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; JavaWebEngineer]]></copyright><item><title><![CDATA[数据库中常见面试题整理]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107913111</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107913111</guid><author>JavaWebEngineer</author><pubDate>Mon, 10 Aug 2020 15:15:23 +0800</pubDate><description><![CDATA[一、 数据库三范式是什么?

第一范式（1NF）：字段具有原子性,不可再分。(所有关系型数据库系统都满足第一范式数据库表中的字段都是单一属性的，不可再分)
第二范式（2NF）是在第一范式（1NF）的基础上建立起来的，即满足第二范式（2NF）必须先满足第一范式（1NF）。要求数据库表中的每个实例或行必须可以被惟一地区分。通常需要为表加上一个列，以存储各个实例的惟一标识。这个惟一属性列被称为主关键字或主键。
满足第三范式（3NF）必须先满足第二范式（2NF）。简而言之，第三范式（3NF）要求一个数据库表中不包含]]></description><category></category></item><item><title><![CDATA[SpringMvc面试专题知识点及其详解]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107668913</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107668913</guid><author>JavaWebEngineer</author><pubDate>Wed, 29 Jul 2020 17:22:32 +0800</pubDate><description><![CDATA[一、什么是 SpringMvc？
SpringMvc 是 spring 的一个模块，基于 MVC 的一个框架，无需中间整合层来整合。
二、Spring MVC 的优点
1）它是基于组件技术的.全部的应用对象,无论控制器和视图,还是业务对象之类的都是 java组件.并且和 Spring 提供的其他基础结构紧密集成
2）不依赖于 Servlet API(目标虽是如此,但是在实现的时候确实是依赖于 Servlet 的)
3）可以任意使用各种视图技术,而不仅仅局限于 JSP
4）支持各种请求资源的映射策略
5）它应]]></description><category></category></item><item><title><![CDATA[mybatis面试专题及其详解]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107664464</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107664464</guid><author>JavaWebEngineer</author><pubDate>Wed, 29 Jul 2020 16:19:30 +0800</pubDate><description><![CDATA[一、什么是 MyBatis？
Mybatis是一个优秀的ORM框架.应用在持久层. 它对jdbc的 操作数据库过程 进行封装，使开发者只需要关注 SQL 本身，而不需要花费精力去处理例如注册驱动、创建connection、等jdbc繁杂的过程代码。
二、Mybatis 的编程步骤是什么样的？
1、创建 SqlSessionFactory

2、通过 SqlSessionFactory 创建 SqlSession

3、通过 sqlsession 执行数据库操作

4、调用 session.commit()提]]></description><category></category></item><item><title><![CDATA[Struts2 知识点总结及其详解]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107493287</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107493287</guid><author>JavaWebEngineer</author><pubDate>Wed, 22 Jul 2020 09:45:56 +0800</pubDate><description><![CDATA[1、简单介绍一下 Struts2
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Struts2 框架是一个按照 MVC 设计模式设计的 WEB 层框架，是在 struts 1 和 WebWork 的技术基础上进行了合并的全新的框架。其全新的 Struts 2 的体系结构与 Struts 1 的体 系结构差别巨大。Struts 2 以 WebWork 为核心，采用拦截器的机制来处理用户的请求， 这样的设计也使得业务逻辑控制器能够与 ServletAPI 完全脱]]></description><category></category></item><item><title><![CDATA[在线程中 sleep 和 wait 有什么区别]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107490426</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107490426</guid><author>JavaWebEngineer</author><pubDate>Tue, 21 Jul 2020 15:45:35 +0800</pubDate><description><![CDATA[一、源码如下


sleep源码
public class Thread implements Runnable { 
public static native void sleep(long millis) throws InterruptedException;
  public static void sleep(long millis, int nanos) throws InterruptedException {
    if (millis &lt; 0) {
      throw new ]]></description><category></category></item><item><title><![CDATA[史上最全 55道 MySQL面试题及答案，看完碾压面试官]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107488407</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107488407</guid><author>JavaWebEngineer</author><pubDate>Tue, 21 Jul 2020 15:14:29 +0800</pubDate><description><![CDATA[1、一张表，里面有 ID 自增主键，当 insert 了 17 条记录之后，删除了第 15,16,17 条记录，再把 Mysql 重启，再 insert 一条记录，这条记录的 ID 是 18 还是 15 ？
(1) 如果表的类型是 MyISAM，那么是 18
因为 MyISAM 表会把自增主键的最大 ID 记录到数据文件里，重启 MySQL 自增主键的最大ID 也不会丢失
（2）如果表的类型是 InnoDB，那么是 15
InnoDB 表只是把自增主键的最大 ID 记录到内存中，所以重启数据库或者是对表进O]]></description><category></category></item><item><title><![CDATA[React中createRef()和useRef()的使用方法]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107484484</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107484484</guid><author>JavaWebEngineer</author><pubDate>Tue, 21 Jul 2020 11:15:54 +0800</pubDate><description><![CDATA[一、createRef()
class Test extends Component {
  constructor(props) {
    super(props);
    this.state = { 
      myDiv:createRef()
     }
  }

  componentDidMount(){
    console.log("this.myDiv.current", this.state.myDiv.current);
    // 打印结果： this.myDiv.cu]]></description><category></category></item><item><title><![CDATA[Java中验证身份证号码是否合法的工具类]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107483573</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107483573</guid><author>JavaWebEngineer</author><pubDate>Tue, 21 Jul 2020 10:51:19 +0800</pubDate><description><![CDATA[package me.xueyao.validate;

import java.util.regex.Pattern;

/**
 * --15位身份证号码：
 * 		第7、8位为出生年份(两位数)，第9、10位为出生月份，
 * 	   	第11、12位代表出生日期，第15位代表性别，奇数为男，偶数为女。
 * --18位身份证号码
 * ：	第7、8、9、10位为出生年份(四位数)，第11、第12位为出生月份，第13、14位代表出生日期，
 * 		第17位代表性别，奇数为男，偶数为女。
 *
 *]]></description><category></category></item><item><title><![CDATA[JDK8中各种排序方法！]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107482960</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107482960</guid><author>JavaWebEngineer</author><pubDate>Tue, 21 Jul 2020 10:36:15 +0800</pubDate><description><![CDATA[一、代码测试案例
package demo;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

import entity.Users;

/**
* @author :zkx
* @createtime ：2020年5月21日 上午8:56:52
* @description:
*/

public class Test {
	
	p]]></description><category></category></item><item><title><![CDATA[Hibernate 面试知识点整理及其详解]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107466681</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107466681</guid><author>JavaWebEngineer</author><pubDate>Mon, 20 Jul 2020 16:52:32 +0800</pubDate><description><![CDATA[1、简述一下 Hibernate 的开发流程

第一步:加载 hibernate 的配置文件，读取配置文件的参数(jdbc 连接参数，数据 库方言，hbm 表与对象关系映射文件)
第二步:创建 SessionFactory 会话工厂(内部有连接池)
第三步:打开 session 获取连接，构造 session 对象(一次会话维持一个数据连接， 也是一级缓存)
第四步:开启事务
第五步:进行操作
第六步:提交事务
第七步:关闭 session(会话)将连接释放
第八步:关闭连接池

2、Hibernate 中]]></description><category></category></item><item><title><![CDATA[Spring 核心知识点整理及其详解]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107464758</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107464758</guid><author>JavaWebEngineer</author><pubDate>Mon, 20 Jul 2020 16:02:42 +0800</pubDate><description><![CDATA[一、 谈谈你对 Spring 的理解
Spring 是一个开源框架，是一个全面的、企业应用开发一站式的解决方案，贯穿表现层、业务层、持久层，并且仍然可以和其他的框架无缝整合。Spring 也是一个 IOC 和 AOP 的容器框架。
Spring 容器的主要核心是：

控制反转（IOC），传统的 java 开发模式中，当需要一个对象时，我们会自己使用 new 或者 getInstance 等直接或者间接调用构造方法创建一个对象。而在 spring 开发模式中，spring 容器使用了工厂模式为我们创建了所需要]]></description><category></category></item><item><title><![CDATA[Spring Cloud 面试专题整理及其详解]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107457642</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107457642</guid><author>JavaWebEngineer</author><pubDate>Mon, 20 Jul 2020 10:27:22 +0800</pubDate><description><![CDATA[1、什么是 Spring Cloud？
Spring cloud 流应用程序启动器是基于 Spring Boot 的 Spring 集成应用程序，提供与外部系统的集成。
Spring cloud Task，一个生命周期短暂的微服务框架，用于快速构建执行有限数据处理的应用程序。
6、使用 Spring Cloud微服务框架的优缺点？
微服务的框架那么多比如：dubbo、Kubernetes，为什么就要使用Spring Cloud的呢？
优点：

产出于Spring大家族，Spring在企业级开发框架中无人能敌]]></description><category></category></item><item><title><![CDATA[Spring Boot面试专题整理及其详解]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107378238</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107378238</guid><author>JavaWebEngineer</author><pubDate>Sun, 19 Jul 2020 13:12:25 +0800</pubDate><description><![CDATA[1、什么是Spring Boot?
多年来， 随着新功能的增加， spring 变得越来越复杂。只需访问https://spring.io/projects页面， 我们就会看到可以在我们的应用程序中使
用的所有Spring 项目的不同功能。如果必须启动一个新的Spring 项目，
我们必须添加构建路径或添加Maven 依赖关系， 配置应用程序服务器，
添加spring 配置。因此， 开始一个新的spring 项目需要很多努力， 因为
我们现在必须从头开始做所有事情。
Spring Boot 是解决这个问题的]]></description><category></category></item><item><title><![CDATA[MongoDB 的简介、特点以及详解]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107388447</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107388447</guid><author>JavaWebEngineer</author><pubDate>Sun, 19 Jul 2020 12:40:06 +0800</pubDate><description><![CDATA[1、概念

]]></description><category></category></item><item><title><![CDATA[Java8中使用groupBy实现集合的分组，并根据某一条件进行分组]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107413195</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107413195</guid><author>JavaWebEngineer</author><pubDate>Fri, 17 Jul 2020 17:15:38 +0800</pubDate><description><![CDATA[一、简介：
Java8中的groupBy实现集合的分组，类似Mysql的group by分组功能，注意得到的结果是一个map
二、代码测试案例：
package demo;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;

import entity.Student;

/**
* @autho]]></description><category></category></item><item><title><![CDATA[利用axios的post方式实现文件的下载]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107410937</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107410937</guid><author>JavaWebEngineer</author><pubDate>Fri, 17 Jul 2020 16:10:06 +0800</pubDate><description><![CDATA[1、前端代码：
dowloadTest(){
  this.$axios.request({
    method:'post',
    url:'/file/download',
    data:{
      fileid:123
    },
    responseType:'arraybuffer'
  })
    .then((response)=&gt;{
      this.download(response.data);
    })
},
 download (data) {
 ]]></description><category></category></item><item><title><![CDATA[Java中使用Lambda表达式和filter方法对List集合进行过滤]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107409254</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107409254</guid><author>JavaWebEngineer</author><pubDate>Fri, 17 Jul 2020 15:26:02 +0800</pubDate><description><![CDATA[一、代码测试案例
package demo;

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

import entity.User;

public class Test01 {
	public static void main(String[] args) {
		
		// 创建集合对象
		List&lt;User&gt; list = new ArrayList&lt;&]]></description><category></category></item><item><title><![CDATA[Java8 新特性 使用lambda表达式对map集合求和，或平均值、最大值、最小值]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107407153</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107407153</guid><author>JavaWebEngineer</author><pubDate>Fri, 17 Jul 2020 14:59:46 +0800</pubDate><description><![CDATA[一、lambda方法，如下：
		IntSummaryStatistics statistics= (IntSummaryStatistics) list
				.stream()
					.collect(
							Collectors.summarizingInt(
									e-&gt;Integer.valueOf( ((Map) 		e).get("xxx Key对象").toString() )));

具体方法：我们用以上得到的结果 .get，如下图，可以直接获取集合的和，或]]></description><category></category></item><item><title><![CDATA[Java中使用ConcurrentHashMap实现带有过期时间的缓存]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107400314</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107400314</guid><author>JavaWebEngineer</author><pubDate>Fri, 17 Jul 2020 09:08:27 +0800</pubDate><description><![CDATA[package me.xueyao.cache;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

/**
 * ConcurrentHashMap 实现带过期时间的缓存
 *
 * @author zkx
 * @date 2020-03-26 11:34
 **/
public class ConcurrentHashMapUtil {
	
    /**
     * 预缓存信息
     */
    pri]]></description><category></category></item><item><title><![CDATA[Java集合之Map集合（HashMap、Hashtable、TreeMap和 LinkHashMap）详细介绍]]></title><link>https://blog.csdn.net/JavaWebEngineer/article/details/107364952</link><guid>https://blog.csdn.net/JavaWebEngineer/article/details/107364952</guid><author>JavaWebEngineer</author><pubDate>Wed, 15 Jul 2020 17:38:14 +0800</pubDate><description><![CDATA[简介


Map集合是一种键值对集合，Map中的每一个对象都包含一个键对象和一个值对象，键对象不可重复，值对象可以重复。


Map接口主要由两个实现类,Hash Map类与Tree Map 类，Hash Map 用哈希算法存储键对象，Tree Map 对键对象进行排序


常用的方法：
（1）V get (Object key)返回map集合中指定键值对象所对应的值
（2）V put(K key,V value)向Map集合中添加键值对
（3）V remove（Object key ）从Map集合中删除k]]></description><category></category></item></channel></rss>