<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[苏美尔人的天空]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/carrie__yang</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; carrie__yang]]></copyright><item><title><![CDATA[算法：二元选择排序]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/133807152</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/133807152</guid><author>carrie__yang</author><pubDate>Fri, 13 Oct 2023 11:30:11 +0800</pubDate><description><![CDATA[选择排序算法也是可以优化的，既然每轮遍历时找出了最小值，何不把最大值也顺便找出来呢？这就是二元选择排序的思想。使用二元选择排序，每轮选择时记录最小值和最大值，可以把数组需要遍历的范围缩小一倍。我们使用 minIndex 记录最小值的下标，maxIndex 记录最大值的下标。每次遍历后，将最小值交换到首位，最大值交换到末尾，就完成了排序。由于每一轮遍历可以排好两个数字，所以最外层的遍历只需遍历一半即可。]]></description><category></category></item><item><title><![CDATA[排序算法的稳定性]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/133806604</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/133806604</guid><author>carrie__yang</author><pubDate>Fri, 13 Oct 2023 11:15:40 +0800</pubDate><description><![CDATA[排序算法的稳定性：假定在待排序的记录序列中，存在多个具有相同的关键字的记录，若经过排序，这些记录的相对次序保持不变，即在原序列中，r[i] = r[j]，且 r[i] 在 r[j] 之前，而在排序后的序列中，r[i] 仍在 r[j] 之前，则称这种排序算法是稳定的；否则称为不稳定的。以下以冒泡排序和选择排序作为比较，分析排序算法的稳定性。冒泡排序是入门级的算法，但也有一些有趣的玩法。通常来说，冒泡排序有三种写法：一边比较一边向后两两交换，将最大值 / 最小值冒泡到最后一位；]]></description><category></category></item><item><title><![CDATA[如何不引入第三个中间变量进行两数交换]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/133798318</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/133798318</guid><author>carrie__yang</author><pubDate>Thu, 12 Oct 2023 20:06:29 +0800</pubDate><description><![CDATA[但在大厂面试中，有一道非常经典的数字交换题目：如何在不引入第三个中间变量的情况下，完成两个数字的交换。但这两种方式都可能导致数字越界。]]></description><category></category></item><item><title><![CDATA[Spring @ModelAttribute注解用法]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/79867303</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/79867303</guid><author>carrie__yang</author><pubDate>Mon, 09 Apr 2018 15:31:24 +0800</pubDate><description><![CDATA[之前项目中并自己并没有怎么使用到过@ModelAttribute这个注解，接手一个老项目的时候发现项目中大量使用@ModelAttribute这个注解，在这里就整理下这个注解常用的方式，也为自己做个记录，以免久了不用又忘记了 @ModelAttribute使用大致有有两种，一种是是直接标记在方法上，一种是标记在方法的参数中，两种标记方法产生的效果也各不相同，这里就列举下两种标记所产生的效果首先先做...]]></description><category></category></item><item><title><![CDATA[使用Spring Boot的跨源CORS设置]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/79619578</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/79619578</guid><author>carrie__yang</author><pubDate>Mon, 19 Mar 2018 23:37:54 +0800</pubDate><description><![CDATA[1. 问题


在学习Angular时，使用以下代码发起POST请求，


this.http.post("http://localhost:8899/login", body, {headers: headers})


会出现以下错误提示。


已拦截跨源请求：同源策略禁止读取位于 http://localhost:8899/login 的远程资源。（原因：CORS 头]]></description><category></category></item><item><title><![CDATA[使用Maven时出现“jssecacerts PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilde”错]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/79612385</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/79612385</guid><author>carrie__yang</author><pubDate>Mon, 19 Mar 2018 15:36:08 +0800</pubDate><description><![CDATA[方法一：忽略SSL证书检查在Maven命令后加入参数“-Dmaven.wagon.http.ssl.insecure=true -Dmaven.wagon.http.ssl.allowall=true”方法二. 生成JDK证书并导入JRE security中1. 生成JDK证书import javax.net.ssl.*;
import java.io.*;
import java.securit...]]></description><category></category></item><item><title><![CDATA[Auth0基础]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/79015349</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/79015349</guid><author>carrie__yang</author><pubDate>Tue, 09 Jan 2018 18:00:15 +0800</pubDate><description><![CDATA[上一篇：Auth0概要
    让我们了解一下有关Auth0的基本术语。
    本文用了一个例子来说明Auth0的三个主要的概念：域名（domains）、客户端（clients）和连接（connections）。
    我们将使用一个非常简单的例子：一个名叫Example-Co的公司想要用Auth0作用户认证。这家公司有一个网页应用和一个手机应用，他们希望公司的用户可以选择用户名／密码登]]></description><category></category></item><item><title><![CDATA[Auth0概要]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/78953166</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/78953166</guid><author>carrie__yang</author><pubDate>Tue, 02 Jan 2018 17:57:54 +0800</pubDate><description><![CDATA[Auth0提供了验证和授权的服务。
    Auth0提供给了程序员和公司构建模块，使得保护应用程序变成一件简单的事，开发者不需要成为安全领域的专家，即可以轻松构建安全的应用。
    你可以将任何应用（基于任何栈的任一种语言）连接到Auth0，也可以定义你想要使用的身份提供者（你想怎样让用户登录）。
    你可以基于应用程序所使用的技术来选择相应的SDK（或者调用我们的API）来连接你的]]></description><category></category></item><item><title><![CDATA[IntellJ IDEA如何调试Gradle项目]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/78945709</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/78945709</guid><author>carrie__yang</author><pubDate>Mon, 01 Jan 2018 15:22:52 +0800</pubDate><description><![CDATA[1. gradle bootRun --debug-jvm
加上--debug-jvm, gradle会默认打开5005端口等待远程连接
2. 在IntelliJ IDEA里加Remote, 绑定5005端口：


3. Debug Remote连接
控制台出现：
Connected to the target VM, address: 'localhost:5005', trans]]></description><category></category></item><item><title><![CDATA[Gradle学习系列之十——自定义Plugin（本系列完）]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/78937587</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/78937587</guid><author>carrie__yang</author><pubDate>Sat, 30 Dec 2017 14:59:52 +0800</pubDate><description><![CDATA[在本系列的上篇文章中，我们讲到了如何自定义Task类型，在本篇文章中，我们将讲到如何自定义Plugin。

 

　　请通过以下方式下载本系列文章的Github示例代码：

git clone https://github.com/davenkin/gradle-learning.git


 


 

　　在Plugin中，我们可以向Project中加入新的Task]]></description><category></category></item><item><title><![CDATA[Gradle学习系列之九——自定义Task类型]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/78937585</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/78937585</guid><author>carrie__yang</author><pubDate>Sat, 30 Dec 2017 14:59:18 +0800</pubDate><description><![CDATA[在本系列的上篇文章中，我们学习了多Project构建，在本篇文章中，我们将学到如何自定义Task类型。

 

　　请通过以下方式下载本系列文章的Github示例代码：

git clone https://github.com/davenkin/gradle-learning.git


 


 

　　在前面的文章中我们讲到，Gradle本身只是一个架子，真正起作]]></description><category></category></item><item><title><![CDATA[Gradle学习系列之八——构建多个Project]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/78937584</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/78937584</guid><author>carrie__yang</author><pubDate>Sat, 30 Dec 2017 14:58:52 +0800</pubDate><description><![CDATA[在本系列的上篇文章中，我们讲到了Gradle的依赖管理，在本篇文章中，我们将讲到如何构建多个Project。

 

　　请通过以下方式下载本系列文章的Github示例代码：

git clone https://github.com/davenkin/gradle-learning.git


 


 

　　Gradle为每个build.gradle都会创建一个相]]></description><category></category></item><item><title><![CDATA[Gradle学习系列之七——依赖管理]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/78937582</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/78937582</guid><author>carrie__yang</author><pubDate>Sat, 30 Dec 2017 14:58:17 +0800</pubDate><description><![CDATA[在本系列的上篇文章中，我们讲到了如何使用java
 Plugin，在本篇文章中，我们将讲到Gradle的依赖管理。

 

　　请通过以下方式下载本系列文章的Github示例代码：

git clone https://github.com/davenkin/gradle-learning.git


 


 

　　一个Java项目总会依赖于第三方，要么是一个第三]]></description><category></category></item><item><title><![CDATA[Gradle学习系列之六——使用Java Plugin]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/78937578</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/78937578</guid><author>carrie__yang</author><pubDate>Sat, 30 Dec 2017 14:57:45 +0800</pubDate><description><![CDATA[在本系列的上篇文章中，我们讲到了如何自定义Property，在本篇文章中，我们将讲到如何使用java
 Plugin。

　　请通过以下方式下载本系列文章的Github示例代码：

git clone https://github.com/davenkin/gradle-learning.git


 


　　Gradle最常用的Plugin便是java Plugin了。和]]></description><category></category></item><item><title><![CDATA[Gradle学习系列之五——自定义Property]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/78937574</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/78937574</guid><author>carrie__yang</author><pubDate>Sat, 30 Dec 2017 14:57:03 +0800</pubDate><description><![CDATA[在本系列的上篇文章中，我们讲到了增量式构建，在本篇文章中，我们将讲到如何自定义Project的Property。

　　请通过以下方式下载本系列文章的Github示例代码：

git clone https://github.com/davenkin/gradle-learning.git


   


　　在前面的文章中我们讲到，设置和读取Project的Property是]]></description><category></category></item><item><title><![CDATA[Gradle学习系列之四——增量式构建]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/78937570</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/78937570</guid><author>carrie__yang</author><pubDate>Sat, 30 Dec 2017 14:56:28 +0800</pubDate><description><![CDATA[在本系列的上篇文章中，我们讲到了如何读懂Gradle的语法，在本篇文章中，我们将讲到增量式地构建项目。

 

　　请通过以下方式下载本系列文章的Github示例代码：

git clone https://github.com/davenkin/gradle-learning.git


   


　　如果我们将Gradle的Task看作一个黑盒子，那么我们便可以抽象出]]></description><category></category></item><item><title><![CDATA[Gradle学习系列之三——读懂Gradle语法]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/78937563</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/78937563</guid><author>carrie__yang</author><pubDate>Sat, 30 Dec 2017 14:55:56 +0800</pubDate><description><![CDATA[在本系列的上篇文章中，我们讲到了创建Task的多种方法，在本篇文章中，我们将学习如何读懂Gradle。

 

　　请通过以下方式下载本系列文章的Github示例代码：

git clone https://github.com/davenkin/gradle-learning.git


 


 　　Gradle是一种声明式的构建工具。在执行时，Gradle并不会一开始]]></description><category></category></item><item><title><![CDATA[Gradle学习系列之二——创建Task的多种方法]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/78937560</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/78937560</guid><author>carrie__yang</author><pubDate>Sat, 30 Dec 2017 14:55:19 +0800</pubDate><description><![CDATA[在本系列的上篇文章中，我们讲到了Gradle入门，在本篇文章中我们将讲到创建Task的多种方法。

 

　　请通过以下方式下载本系列文章的Github示例代码：

git clone https://github.com/davenkin/gradle-learning.git


 


 

　　Gradle的Project从本质上说只是含有多个Task的容器，一]]></description><category></category></item><item><title><![CDATA[Gradle学习系列之一——Gradle快速入门]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/78937550</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/78937550</guid><author>carrie__yang</author><pubDate>Sat, 30 Dec 2017 14:54:28 +0800</pubDate><description><![CDATA[这是一个关于Gradle的学习系列，其中包含以下文章：



Gradle快速入门创建Task的多种方法读懂Gradle语法增量式构建自定义Property使用java
 Plugin依赖管理构建多个Project自定义Task类型自定义Plugin


 



　　

　　请通过以下方式下载本系列文章的Github示例代码：

git clone https:/]]></description><category></category></item><item><title><![CDATA[intellij IDEA创建nodejs项目---环境搭建]]></title><link>https://blog.youkuaiyun.com/carrie__yang/article/details/78796929</link><guid>https://blog.youkuaiyun.com/carrie__yang/article/details/78796929</guid><author>carrie__yang</author><pubDate>Wed, 13 Dec 2017 21:14:01 +0800</pubDate><description><![CDATA[前提是在你的系统下已经对nodejs安装成功并环境配置，这个可以见本人的前一篇博文http://blog.youkuaiyun.com/stubbornaccepted/article/details/71374489然后就可以继续啦。 
1.默认安装好了IDEA，在IDEA的file -> setting ->Plugins,右边默认是没有这个组件的需要你手动点击Browe repositories..，]]></description><category></category></item></channel></rss>