<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Embra_ce的博客]]></title><description><![CDATA[一个程序媛的花前月下]]></description><link>https://blog.youkuaiyun.com/Embra_ce</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Embra_ce]]></copyright><item><title><![CDATA[小程序登录和用户信息保存]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/107957393</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/107957393</guid><author>Embra_ce</author><pubDate>Wed, 12 Aug 2020 14:52:36 +0800</pubDate><description><![CDATA[小程序登录总结

登录流程





前端通过获取的临时登录凭证传递给后端，后端应用调用auth.code2Session 接口换取用户的唯一标识openid和session_key，完善用户信息。

后端向前端颁布自定义的登录态令牌，登录成功。

openID和unionID的区别

微信开放平台支持企业或个人申请应用，例如小程序，公众号等，每个应用有一个appid

openID是每个用户在不同应用下的唯一标识，同一用户在不同应用下有不同的openid，或者换句话来说，openid只在对应的appid.]]></description><category></category></item><item><title><![CDATA[OAuth2的初步了解]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/107954124</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/107954124</guid><author>Embra_ce</author><pubDate>Wed, 12 Aug 2020 11:58:33 +0800</pubDate><description><![CDATA[为什么会出现OAuth？

授权机制，用于授权第三方应用，获取用户数据。

OAuth1.0和OAuth2.0的区别

1.0缺点：1.0中使用的是http协议，容易遭受中间人攻击，伪造回调地址，拿到用户访问令牌。

1.0a中改善了这一点，增加了签名过程攻击者无法伪造回调地址，无法拿到用户访问令牌，但是签名过程增加了复杂度，且实用性不高。

2.0改进:

去掉签名，使用SSL(https)保证安全性。
	所有的token不再有对应的secret，签名过程简洁，这也直接导致2.0不兼容老版本。
	能更好的]]></description><category></category></item><item><title><![CDATA[字节码看Java代码的执行]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/105650440</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/105650440</guid><author>Embra_ce</author><pubDate>Tue, 21 Apr 2020 09:10:17 +0800</pubDate><description><![CDATA[public static void main(java.lang.String[]);
    Code:
       0: iconst_0
       1: istore_1
       2: iconst_0
       3: istore_2
       4: getstatic     #2                  // Field java/lang/Syst...]]></description><category></category></item><item><title><![CDATA[Git&Gitlab使用那些事]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/97366797</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/97366797</guid><author>Embra_ce</author><pubDate>Fri, 26 Jul 2019 10:36:13 +0800</pubDate><description><![CDATA[一．git的安装（mac版）

二．gitlab创建一个别人可以参与的项目

三．git&amp;gitlab的协同操作

四．git的常用命令介绍

一，git的安装

1).先判断电脑是否已经安装了git。

首先打开电脑的终端输入[git --version]



如果显示出git的版本号，那么你的电脑是已经安装过git的。

如果命令不存在则没有安装，那么打开git官网。”https...]]></description><category></category></item><item><title><![CDATA[关于为何使用B tree和B+ tree的原因]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/87924726</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/87924726</guid><author>Embra_ce</author><pubDate>Mon, 25 Feb 2019 21:02:38 +0800</pubDate><description><![CDATA[https://blog.youkuaiyun.com/weixin_30531261/article/details/79312676]]></description><category></category></item><item><title><![CDATA[Mysql出现中文乱码]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/87618275</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/87618275</guid><author>Embra_ce</author><pubDate>Mon, 18 Feb 2019 14:17:23 +0800</pubDate><description><![CDATA[当进行数据库操作时，出现中文乱码时


alter table `tablename` convert to charset utf8;  


可用此语句进行修改。]]></description><category></category></item><item><title><![CDATA[二叉树的遍历]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/86613312</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/86613312</guid><author>Embra_ce</author><pubDate>Sun, 27 Jan 2019 17:51:56 +0800</pubDate><description><![CDATA[二叉树的性质

1，二叉树的第i层最多包含2*i-1个节点。

2，二叉树如果深度为k(有k层)，那么最多含有(2^k )-1个节点。

3，若二叉树按照从上到下从左到右的方式编号，某节点的编号为k,那么他的左右子树分别编号为2k,2k+1.

4,二叉树分类：满二叉树，完全二叉树，平衡二叉树。

满二叉树：除了叶子结点以外所有的结点都必须满足度最大，即，一个深度为k的满二叉树，其包含的叶子结点数...]]></description><category></category></item><item><title><![CDATA[关于哈希和加密]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/83931808</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/83931808</guid><author>Embra_ce</author><pubDate>Sat, 10 Nov 2018 18:34:57 +0800</pubDate><description><![CDATA[哈希：将目标文本转换成为具有相同长度，不可逆的杂凑字符串（或称为信息摘要，其长度都是固定的）；

加密：以某种特殊的算法，将原本信息数据进行改变，使得即使没有权限的人看到消息也不能从中得到任何有用信息，但是加密的信息是保证可逆的，即可加密必可解密（其长度与目标文本成正比）。

 

哈希算法与加密

     1，哈希算法：R= H(s) 是多对一映射，多个不同的s可以通过哈希算法H得到相同的R，...]]></description><category></category></item><item><title><![CDATA[Java8   Lambda表达式]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/82051028</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/82051028</guid><author>Embra_ce</author><pubDate>Sat, 25 Aug 2018 15:40:58 +0800</pubDate><description><![CDATA[ 

什么是lambda表达式：

lambda表达式是一个匿名函数，即没有函数名的函数。Java8使用lambda表达式来代替匿名类，使代码更加简洁

是一段可以传递的代码，主要使用的是箭头操作符 。

左侧：Lambda （参数列表）
右侧：函数实现的功能，如果超过一句代码，用大括号括起来

lambda表达式依赖于接口的支持，（函数式接口：只存在一个抽象方法的接口，可以使用@Function...]]></description><category></category></item><item><title><![CDATA[Java  线程池]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/81948178</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/81948178</guid><author>Embra_ce</author><pubDate>Wed, 22 Aug 2018 18:23:55 +0800</pubDate><description><![CDATA[为什么要使用线程池：目前的大多数网络服务器，包括Web服务器、Email服务器以及数据库服务器等都具有一个共同点，就是单位时间内必须处理数目巨大的连接请求，但处理时间却相对较短。 传统多线程方案中我们采用的服务器模型则是一旦接受到请求之后，即创建一个新的线程，由该线程执行任务。任务执行完毕后，线程退出，这就是是“即时创建， 即时销毁”的策略。尽管与创建进程相比，创建线程的时间已经大大的缩短，但是如...]]></description><category></category></item><item><title><![CDATA[Java   内部类(成员内部类)]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/81840820</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/81840820</guid><author>Embra_ce</author><pubDate>Tue, 21 Aug 2018 13:49:06 +0800</pubDate><description><![CDATA[内部类：将一个类的定义放在另一个类的内部，这个类就是内部类。

内部类是一种非常有用的特性，他允许你将一些逻辑相关的类组合在一起，并控制位于内部的类的可视性。他了解外部类，并且与之通信。

内部类的分类：

成员内部类

静态内部类

局部内部类

匿名内部类

创建一个内部类


public class OuterClass {

	class InnerClass1 {
		private ...]]></description><category></category></item><item><title><![CDATA[关于数据库索引]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/81569602</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/81569602</guid><author>Embra_ce</author><pubDate>Sat, 11 Aug 2018 00:31:59 +0800</pubDate><description><![CDATA[数据库索引：

1，索引是什么？

    数据库索引是一种数据结构，为了在进行数据检索的时候提高检索的效率，Mysql数据库通常使用的数据库索引是B+tree.

Mysql存储引擎:Innodb,MyISAM.

索引在存储上分为两种：聚簇索引和非聚簇索引，区别是存储数据的树的叶子节点是否存储数据

Inoodb:使用的是聚簇索引，叶子节点存储相应的数据。

MyISAM:使用非聚簇索引，叶子...]]></description><category></category></item><item><title><![CDATA[关于数据库 Explain 的解释]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/81570913</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/81570913</guid><author>Embra_ce</author><pubDate>Fri, 10 Aug 2018 22:55:50 +0800</pubDate><description><![CDATA[判断一条语句在执行的时候有没有走索引，我们可以再该语句之前增加  explain关键字，在使用了explain关键字后，可以向你显式的表明，该语句的性能。我们先来了解一下各个标识的意思

+----+-------------+-------+-------+-------------------+---------+---------+-------+------
| id | select_t...]]></description><category></category></item><item><title><![CDATA[关于URI 和URL 的区别]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/81019619</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/81019619</guid><author>Embra_ce</author><pubDate>Thu, 12 Jul 2018 17:31:12 +0800</pubDate><description><![CDATA[转自https://www.cnblogs.com/wuyun-blog/p/5706703.html]]></description><category></category></item><item><title><![CDATA[关于Java 偏向锁，轻量级锁，重量级锁的应用和区别，优点和缺点]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/80805306</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/80805306</guid><author>Embra_ce</author><pubDate>Mon, 25 Jun 2018 17:53:31 +0800</pubDate><description><![CDATA[1，偏向锁。

偏向锁：顾名思义，偏心与某一个线程锁，而他偏心的线程就是第一个访问该锁的线程，在某个锁第一次被一个线程所访问的时候，该锁会在她的Mark Word中记录该线程的线程id，而在该线程第二次去访问这个锁的时候，只需进行一次CAS操作，去检验该线程是不是他所偏向的锁(其实就是检测Mark Word中保存的线程id是否和当前线程所匹配)，那么该线程访问临界资源的...]]></description><category></category></item><item><title><![CDATA[Spring MVC + MyBatis整合配置]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/80306367</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/80306367</guid><author>Embra_ce</author><pubDate>Mon, 14 May 2018 10:45:40 +0800</pubDate><description><![CDATA[最近学习Spring MVC + Mybatis整合，但是搭建基础环境的时候一直出现问题，经过不懈努力终于完成了首先我们看一下applicationContext.xml文件的配置&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;
&amp;lt;beans xmlns=&quot;http://www.springframework.org/schema/beans&quot;
   ...]]></description><category></category></item><item><title><![CDATA[关于Spring MVC中自定义类型转换器的方式]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/80106715</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/80106715</guid><author>Embra_ce</author><pubDate>Fri, 27 Apr 2018 17:35:23 +0800</pubDate><description><![CDATA[关于Spring mvc ，我觉得他是一个特别人性化的框架，它的内部实现，帮我们省去了很多麻烦例如，在我们在前端页面输入数据的时候，后台接受数据的时候，如果事先写好一个类，且后台接收到响应参数为该类型时，那么他就会自动匹配类的属性，并将值注入，那么后台接受到的参数就是一个已经注入好参数的实例；这是一个User类，包含以下属性import java.io.Serializable;

public ...]]></description><category></category></item><item><title><![CDATA[HashMap源码解析《三》get,remove方法]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/79788329</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/79788329</guid><author>Embra_ce</author><pubDate>Mon, 02 Apr 2018 21:07:24 +0800</pubDate><description><![CDATA[1.hashmap中的get方法   public V get(Object key) {
        Node&amp;lt;K,V&amp;gt; e;
        return (e = getNode(hash(key), key)) == null ? null : e.value;     //根据得到结果取得值，如果不存在当前键则返回null,如果存在返回value值
    } final...]]></description><category></category></item><item><title><![CDATA[HashMap源码解析《二》]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/79747175</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/79747175</guid><author>Embra_ce</author><pubDate>Mon, 02 Apr 2018 13:11:10 +0800</pubDate><description><![CDATA[在上一篇文章中，关于Hashmap的初始化和put方法有所了解，发现了其中特别有趣的算法。今天先来看看他的初始化方法然后看看一些算法：1，hashMap的初始化方法   主要是用Map去初始化hashMap的这个方法 public HashMap(Map&amp;lt;? extends K, ? extends V&amp;gt; m) {
        this.loadFactor = DEFAULT_L...]]></description><category></category></item><item><title><![CDATA[HashMap源码解析《一》put方法]]></title><link>https://blog.youkuaiyun.com/Embra_ce/article/details/79716461</link><guid>https://blog.youkuaiyun.com/Embra_ce/article/details/79716461</guid><author>Embra_ce</author><pubDate>Tue, 27 Mar 2018 18:37:09 +0800</pubDate><description><![CDATA[在jdk1.8里边 hashmap的实现原理不仅仅只由位桶+链表实现 ，增加位桶+红黑树实现，在桶中链表存储的元素个数到达阈值时(默认为8)，将在底层将链表转为红黑树,但因为我本人红黑树掌握的并不好，所以不讨论有关红黑树，本文主要讲解基础，hashmap的put方法，其他请等待下文；一，所涉及到的名词；1，bucket   桶，对于系统开始初始化hashmap的时候，会创建一个长度为capacit...]]></description><category></category></item></channel></rss>