<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[巅锋时刻521]]></title><description><![CDATA[天才在于积累，聪明在于勤奋@锋]]></description><link>https://blog.csdn.net/wang_lifeng</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; wang_lifeng]]></copyright><item><title><![CDATA[java JVM参数设置以及垃圾回收的选择]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/108375069</link><guid>https://blog.csdn.net/wang_lifeng/article/details/108375069</guid><author>wang_lifeng</author><pubDate>Thu, 03 Sep 2020 09:00:40 +0800</pubDate><description><![CDATA[垃圾回收算法：

标记--清除算法 缺点 造成内存碎片

复制算法 空间利用不够 任何时候都只使用一般空间

标记整理算法 成本高，但是解决了内存碎片的缺点

垃圾收集器：

Serial收集器 是虚拟机新生代收集器的唯一选择

优点：简单而高效，对于限制单个CPU来说，由于没有线程交互的开销，专心做垃圾收集自然可以获得最高的单线程收集效率

ParNew收集器 是单线程收集器的多线程版本

ParNew收集器是许多运行在Server模式下的虚拟机中首选的新生代收集器。

有一个很重要的原因是除了Seria]]></description><category></category></item><item><title><![CDATA[lambda常用操作]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/107147864</link><guid>https://blog.csdn.net/wang_lifeng/article/details/107147864</guid><author>wang_lifeng</author><pubDate>Mon, 06 Jul 2020 00:03:07 +0800</pubDate><description><![CDATA[package com.wlf.jdk8test;

import com.wlf.entity.Person;

import javax.swing.text.html.parser.Entity;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;

/**
 * @author LifengWang
 * @create 20.]]></description><category></category></item><item><title><![CDATA[商城秒杀活动实现思路]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/107054262</link><guid>https://blog.csdn.net/wang_lifeng/article/details/107054262</guid><author>wang_lifeng</author><pubDate>Wed, 01 Jul 2020 00:46:55 +0800</pubDate><description><![CDATA[一、秒杀活动基本概要

用户量：超大量、好人/坏人都有。
	地域：全国各地
	业务流程：[前台]商品展示、登记、[后台]数据接入、数据处理
需要注意：

不要把秒杀活动的部署在现有商城中，这样极容易让商城服务奔溃，需脱离原站点部署；
	需要监控。
关键点：

高可用：双活；
	高并发：负载均衡、安全过滤。
设计思路：

静态页面：cdn、网站隐藏、页面压缩、缓存机制
	动态页面：排队、异步、资质抢购
二、架构

整体架构主要分成四个层级：商品展示层/页、用户登记层、数据接入层、后续处理层。具体的处理过程如下]]></description><category></category></item><item><title><![CDATA[mysql底层原理为什么是B+树做索引，为什么不是平衡二叉树，红黑树（大场面试题）]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/107052518</link><guid>https://blog.csdn.net/wang_lifeng/article/details/107052518</guid><author>wang_lifeng</author><pubDate>Wed, 01 Jul 2020 00:10:56 +0800</pubDate><description><![CDATA[平衡二叉树

1.非叶子节点最多拥有两个子节点。

2.非叶子节值大于左边子节点、小于右边子节点。

3.树的左右两边的层级数相差不会大于1。

4.没有值相等重复的节点。



B树

B-树和平衡二叉树稍有不同的是B-树属于多叉树又名平衡多路查找树（查找路径不只两个）

1.在一个节点中，存放着数据（包括key和data）以及指针，且相互间隔。
	2.同一个节点，key增序。
	3.一个节点最左边的指针不为空，则它指定的节点左右的key小于最左边的key。右边同理。中间的指针指向的节点的key位于相邻两]]></description><category></category></item><item><title><![CDATA[JAVA面试题（锁）]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/107006228</link><guid>https://blog.csdn.net/wang_lifeng/article/details/107006228</guid><author>wang_lifeng</author><pubDate>Sun, 28 Jun 2020 19:17:35 +0800</pubDate><description><![CDATA[1. 锁类型

可重入锁：广义上的可重入锁指的是可重复可递归调用的锁，在外层使用锁之后，在内层仍然可以使用，并且不发生死锁（前提得是同一个对象或者class），这样的锁就叫做可重入锁。即在执行对象中所有同步方法不用再次获得锁。ReentrantLock和synchronized都是可重入锁。举个简单的例子，当一个线程执行到某个synchronized方法时，比如说method1，而在method1中会调用另外一个synchronized方法method2，此时线程不必重新去申请锁，而是可以直接执行方法met]]></description><category></category></item><item><title><![CDATA[2020Java无锁机制]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/107005888</link><guid>https://blog.csdn.net/wang_lifeng/article/details/107005888</guid><author>wang_lifeng</author><pubDate>Sun, 28 Jun 2020 19:09:14 +0800</pubDate><description><![CDATA[1、说说线程安全问题

在java中提供了线程安全的方式：

最简单的方式，使用 Synchronization 关键字
	使用 java.util.concurrent.atomic 包中的原子类，例如 AtomicInteger
	使用 java.util.concurrent.locks 包中的锁
	使用线程安全的集合 ConcurrentHashMap
	使用 volatile 关键字，保证变量可见性（直接从内存读，而不是从线程 cache 读
2、valatile实现原理

在JVM底层volat]]></description><category></category></item><item><title><![CDATA[网络通讯中TCP协议和UDP协议的关系和差异]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/106930199</link><guid>https://blog.csdn.net/wang_lifeng/article/details/106930199</guid><author>wang_lifeng</author><pubDate>Tue, 23 Jun 2020 19:19:18 +0800</pubDate><description><![CDATA[TCP/IP 是个协议组，可以分为三个层次：网络层，传输层和应用层



在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。

在传输层中有TCP协议与UDP协议。

在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。

TCP又叫传输控制协议，TCP是面向连接的，并且是一种可靠的协议，在基于TCP进行通讯时，通信双方需要建立TCP连接，建立连接需要3次握手，握手成功才能进行通信，而断开连接需要进行4次

UDP又叫用户数据报协议，UDP是一个面向无连接，且不可靠的]]></description><category></category></item><item><title><![CDATA[SpringMVC执行流程讲解]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/106923298</link><guid>https://blog.csdn.net/wang_lifeng/article/details/106923298</guid><author>wang_lifeng</author><pubDate>Tue, 23 Jun 2020 14:45:38 +0800</pubDate><description><![CDATA[Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架，即使用了MVC架构模式的思想，将web层进行职责解耦，基于请求驱动指的就是使用请求-响应模型，框架的目的就是帮助我们简化开发，Spring Web MVC也是要简化我们日常Web开发的。
与之相反的是基于组件的、事件驱动的Web框架，如Tapestry、JSF等。
　　Spring Web MVC也是服务到工作者模式的实现，但进行可优化。前端控制器是DispatcherServlet；应用控制器其实]]></description><category></category></item><item><title><![CDATA[分布式集群--Session 共享的实现]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/106922017</link><guid>https://blog.csdn.net/wang_lifeng/article/details/106922017</guid><author>wang_lifeng</author><pubDate>Tue, 23 Jun 2020 14:23:28 +0800</pubDate><description><![CDATA[在web应用中，由于http的请求响应式，无状态。要记录用户相关的状态信息，比如电商网站的购物车，比如用户是否登录等，都需要使用session。我们知道session是由servlet容器创建和管理，存储在服务器端，并且与客户端浏览器相关（停止web应用，关闭浏览器session都会失效）。

　　如果一个web应用，部署到一台服务器（一个tomcat），那么session使用起来相当的方便，没有额外的担心，直接由servlet容器创建和管理即可。然而今天，一个web应用面临大量用户，高并发的访问（我们有十]]></description><category></category></item><item><title><![CDATA[linux常用命令工作中基本用到的]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/106909682</link><guid>https://blog.csdn.net/wang_lifeng/article/details/106909682</guid><author>wang_lifeng</author><pubDate>Mon, 22 Jun 2020 20:55:04 +0800</pubDate><description><![CDATA[linux是一个开源、免费的操作系统，其稳定性、安全性、处理多并发已经得到业界的认可，目前很多中型，大型甚至是巨型项目都在使用linux。linux内核：redhat 、红旗linux、ubuntu、suse、fedora，它们的内核都是一样的（Note：linux其实是一个统称，就比如面条是一个统称，可以有哨子面、阳春面、打卤面等）

   linux的特点
     - 免费的/开源
    - 支持多线程/多用户
    - 安全性好
    ...]]></description><category></category></item><item><title><![CDATA[Mysql集群搭建之主从复制]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/106909533</link><guid>https://blog.csdn.net/wang_lifeng/article/details/106909533</guid><author>wang_lifeng</author><pubDate>Mon, 22 Jun 2020 20:50:07 +0800</pubDate><description><![CDATA[主从复制原理
	



	binlog介绍和relay日志
	
查看binlog日志： mysqlbinlog 文件名称


	主从复制实践
		关闭主从机器的防火墙策略
			主服务器配置
		
	
	第一步：修改my.conf文件：
在[mysqld]段下添加：


			#启用二进制日志

			log-bin=mysql-bin

			#服务器唯一ID，一般取IP最后一段

			server-id=133
			
		第二步：重启mysql服务
service mysqld restart...]]></description><category></category></item><item><title><![CDATA[Mysql锁的介绍和使用]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/106909455</link><guid>https://blog.csdn.net/wang_lifeng/article/details/106909455</guid><author>wang_lifeng</author><pubDate>Mon, 22 Jun 2020 20:44:54 +0800</pubDate><description><![CDATA[锁介绍
	
* 数据库锁定机制简单来说就是数据库为了保证数据的一致性而使各种共享资源在被并发访问访问变得有序所设计的一种规则。

* 对于任何一种数据库来说都需要有相应的锁定机制，所以MySQL自然也不能例外。

* MySQL数据库由于其自身架构的特点，存在多种数据存储引擎，每种存储引擎所针对的应用场景特点都不太一样，为了满足各自特定应用场景的需求，每种存储引擎的锁定机制都是为各自所面对的特定场景而优化设计，所以各存储引擎的锁定机制也有较大区别。



* 总的来说，MySQL各存储引擎使用了三种...]]></description><category></category></item><item><title><![CDATA[Mysql事务概述和使用规范]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/106909409</link><guid>https://blog.csdn.net/wang_lifeng/article/details/106909409</guid><author>wang_lifeng</author><pubDate>Mon, 22 Jun 2020 20:39:33 +0800</pubDate><description><![CDATA[事务概述
	
	在 MySQL 中只有使用了 Innodb 数据库引擎的数据库或表才支持事务。
	事务处理可以用来维护数据库的完整性，保证成批的 SQL 语句要么全部执行，要么全部不执行。
	事务用来管理DDL、DML、DCL操作，比如 insert,update,delete 语句，默认是自动提交的。
一般来说，事务是必须满足4个条件（ACID）：

Atomicity（原子性）
	Consistency（稳定性、一致性）
	Isolation（隔离性）
	Durability（可靠性、持久性）
对于..]]></description><category></category></item><item><title><![CDATA[MySQL性能分析语句show profile]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/106909272</link><guid>https://blog.csdn.net/wang_lifeng/article/details/106909272</guid><author>wang_lifeng</author><pubDate>Mon, 22 Jun 2020 20:34:56 +0800</pubDate><description><![CDATA[介绍
	
	Query Profiler是MYSQL自带的一种query诊断分析工具，通过它可以分析出一条SQL语句的性能瓶颈在什么地方。
	通常我们是使用的explain,以及slow query log都无法做到精确分析，但是Query Profiler却可以定位出一条SQL语句执行的各种资源消耗情况，比如CPU，IO等，以及该SQL执行所耗费的时间等。不过该工具只有在MYSQL 5.0.37以及以上版本中才有实现。
	默认的情况下，MYSQL的该功能没有打开，需要自己手动启动。
	语句使用
	
	..]]></description><category></category></item><item><title><![CDATA[MySQL性能优化之慢查询]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/106909198</link><guid>https://blog.csdn.net/wang_lifeng/article/details/106909198</guid><author>wang_lifeng</author><pubDate>Mon, 22 Jun 2020 20:30:20 +0800</pubDate><description><![CDATA[性能优化的思路
	
	首先需要使用慢查询功能，去获取所有查询时间比较长的SQL语句
	其次使用explain命令去查看有问题的SQL的执行计划
	最后可以使用show profile[s] 查看有问题的SQL的性能使用情况
	介绍
	
数据库查询快慢是影响项目性能的一大因素，对于数据库，我们除了要优化 SQL，更重要的是得先找到需要优化的 SQL。
	MySQL 数据库有一个“慢查询日志”功能，用来记录查询时间超过某个设定值的SQL，这将极大程度帮助我们快速定位到症结所在，以便对症下药。
* 至于查询时..]]></description><category></category></item><item><title><![CDATA[MySQL性能优化之查看执行计划explain]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/106909175</link><guid>https://blog.csdn.net/wang_lifeng/article/details/106909175</guid><author>wang_lifeng</author><pubDate>Mon, 22 Jun 2020 20:25:12 +0800</pubDate><description><![CDATA[介绍
	
	MySQL 提供了一个 EXPLAIN 命令, 它可以对 SELECT 语句进行分析, 并输出 SELECT 执行的详细信息, 以供开发人员针对性优化.
	使用explain这个命令来查看一个这些SQL语句的执行计划，查看该SQL语句有没有使用上了索引，有没有做全表扫描，这都可以通过explain命令来查看。
	可以通过explain命令深入了解MySQL的基于开销的优化器，还可以获得很多可能被优化器考虑到的访问策略的细节，以及当运行SQL语句时哪种策略预计会被优化器采用。
	EXPLAIN..]]></description><category></category></item><item><title><![CDATA[Mysql 数据库索引介绍]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/106909077</link><guid>https://blog.csdn.net/wang_lifeng/article/details/106909077</guid><author>wang_lifeng</author><pubDate>Mon, 22 Jun 2020 20:22:41 +0800</pubDate><description><![CDATA[MySQL索引
	介绍
	
* 使用索引的主要目的是为了优化查询速度

* 索引是一种特殊的文件或者叫数据结构(InnoDB数据表上的索引是表空间的一个组成部分)，它们包含着对数据表里所有记录的引用指针。更通俗的说，数据库索引好比是一本书前面的目录，能加快数据库的查询速度。


	索引的分类
	
	索引是在存储引擎中实现的，也就是说不同的存储引擎，会使用不同的索引
　　* MyISAM和InnoDB存储引擎：只支持BTREE索引， 也就是说默认使用BTREE，不能够更换 * MEMORY/HEAP...]]></description><category></category></item><item><title><![CDATA[Redis介绍以及使用]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/106908332</link><guid>https://blog.csdn.net/wang_lifeng/article/details/106908332</guid><author>wang_lifeng</author><pubDate>Mon, 22 Jun 2020 20:08:02 +0800</pubDate><description><![CDATA[Redis介绍

	什么是Redis？
	
Redis是用C语言开发的一个开源的高性能键值对（key-value）内存数据库。
	它提供五种数据类型来存储值：字符串类型、散列类型、列表类型、集合类型、有序集合类型
	它是一种NoSQL数据库。
	什么是NoSQL？
	
NoSQL，即Not-Only SQL（不仅仅是SQL），泛指非关系型的数据库。
	什么是关系型数据库？数据结构是一种有行有列的数据库
	NoSQL数据库是为了解决高并发、高可用、高可扩展、大数据存储问题而产生的数据库解决方案...]]></description><category></category></item><item><title><![CDATA[17	Jquer定时刷新以及循环遍历功能和ajax 的异步请求数据]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/74539257</link><guid>https://blog.csdn.net/wang_lifeng/article/details/74539257</guid><author>wang_lifeng</author><pubDate>Thu, 06 Jul 2017 14:05:01 +0800</pubDate><description><![CDATA[17	Jquer定时刷新以及循环遍历功能和ajax 的异步请求数据]]></description><category></category></item><item><title><![CDATA[经典50道SQL语句集锦]]></title><link>https://blog.csdn.net/wang_lifeng/article/details/10675775</link><guid>https://blog.csdn.net/wang_lifeng/article/details/10675775</guid><author>wang_lifeng</author><pubDate>Fri, 30 Aug 2013 22:40:16 +0800</pubDate><description><![CDATA[Student(S#,Sname,Sage,Ssex) 学生表

Course(C#,Cname,T#) 课程表

SC(S#,C#,score) 成绩表

Teacher(T#,Tname) 教师表

 

问题：

1、查询“001”课程比“002”课程成绩高的所有学生的学号；

 select a.S# from (select s#,score from SC]]></description><category></category></item></channel></rss>