<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[fakeeel的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/fakeeel</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fakeeel]]></copyright><item><title><![CDATA[移动端H5调用高德地图API获取定位ios端问题]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/119784099</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/119784099</guid><author>fakeeel</author><pubDate>Wed, 18 Aug 2021 17:00:17 +0800</pubDate><description><![CDATA[在移动端h5的开发中遇到了使用高德地图的API获取定位的问题。在安卓端没有问题，但在ios上不能正常弹出位置授权窗口。查阅文档并实际尝试后找到如下原因和解决方案。

问题

iOS 11 操作系统的一大特性是对 http 形式访问页面的限制变得非常严格（相比iOS 10 和 iOS 9）。而高德提供的JS API功能均支持http和https两种协议访问，在iOS 11操作系统上推荐使用https形式访问功能页面和接口。

解决方案


	先将高德地图的JS API的版本升级到1.4.1版本以上
	

	然]]></description><category></category></item><item><title><![CDATA[算法与数据结构（五）链表]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/115196665</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/115196665</guid><author>fakeeel</author><pubDate>Thu, 25 Mar 2021 16:15:02 +0800</pubDate><description><![CDATA[目录概念几种常见链表单链表插入、删除查询循环链表双向链表对比单链表删除操作插入操作按值查询操作
概念
链表是一种物理存储单元上非连续、非顺序的存储结构，通过指针将一组零散的内存块串联在一起。由一系列结点（链表中每一个元素称为结点）组成，结点可以在运行时动态生成。每个结点包括两个部分：一个是存储数据元素的数据域，另一个是存储下一个结点地址的指针域。
几种常见链表
单链表
链表中记录下个结点地址的指针叫作后继指针next。单链表中有两个特殊的结点，分别是第一个结点和最后一个结点。通常我们习惯性地把第一个结点叫作]]></description><category></category></item><item><title><![CDATA[算法与数据结构（四）数组]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/115002201</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/115002201</guid><author>fakeeel</author><pubDate>Fri, 19 Mar 2021 14:32:19 +0800</pubDate><description><![CDATA[目录概念根据下标随机访问数据的原理插入与删除数据插入操作删除操作数组与容器类
概念
数组（Array）是一种线性表数据结构。它用一组连续的内存空间，来存储一组具有相同类型的数据。
而线性表（Linear List）就是数据排成像一条线一样的结构。每个线性表上的数据最多只有前和后两个方向。除了数组之外，链表、队列、栈等也是线性表结构。

与它相对立的概念是非线性表，比如二叉树、堆、图等。之所以叫非线性，是因为在非线性表中，数据之间并不是简单的前后关系。

根据下标随机访问数据的原理
计算机会给每个内存单元分配]]></description><category></category></item><item><title><![CDATA[算法与数据结构（三） 时间复杂度分析 [例题]]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/114999736</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/114999736</guid><author>fakeeel</author><pubDate>Fri, 19 Mar 2021 11:03:24 +0800</pubDate><description><![CDATA[时间复杂度分析
用几种分析方法分析下面函数的时间复杂度
int array[] = new int[10]; 
int len = 10;
int i = 0;

void add(int element) {
   if (i &gt;= len) { 
     int new_array[] = new int[len*2];
     for (int j = 0; j &lt; len; ++j) {
       new_array[j] = array[j];
     }
     arra]]></description><category></category></item><item><title><![CDATA[算法与数据结构（二）最好、最坏、平均、均摊时间复杂度]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/114889287</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/114889287</guid><author>fakeeel</author><pubDate>Wed, 17 Mar 2021 17:35:49 +0800</pubDate><description><![CDATA[目录前言最好、最坏情况时间复杂度最好情况时间复杂度最坏情况时间复杂度平均情况时间复杂度均摊时间复杂度
前言
上一篇内容中学习了复杂度的大 O 表示法和几个分析技巧，这次学习一下四个复杂度分析方面的知识点，最好情况时间复杂度（best case time complexity）、最坏情况时间复杂度（worst case time complexity）、平均情况时间复杂度（average case time complexity）、均摊时间复杂度（amortized time complexity）
最好、最]]></description><category></category></item><item><title><![CDATA[算法与数据结构（一）分析算法的执行效率和资源消耗]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/114870058</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/114870058</guid><author>fakeeel</author><pubDate>Tue, 16 Mar 2021 16:44:44 +0800</pubDate><description><![CDATA[前言
学习数据结构和算法不仅仅是让我们可以用更合理的方式实现程序，使应用的程序性能更佳，更重要的是，它会影响你的程序思维，帮助你理解某些框架的底层实现，更方便你造轮子。 我最近在极客App上学习王争老师（前Google员工）的课程，《数据结构与算法之美》，接下来用该篇来记录一下入门篇学习内容。
开篇
入门篇主要讲解时间、空间复杂度，通过实例，学习复杂度分析，为之后的学习铺路。通过这一模块的学习，掌握时间、空间复杂度的概念，大 O 表示法的由来，各种复杂度分析技巧，以及最好、最坏、平均、均摊复杂度分析方法。
]]></description><category></category></item><item><title><![CDATA[微信小程序 - 自定义头部导航栏]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/112577012</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/112577012</guid><author>fakeeel</author><pubDate>Wed, 13 Jan 2021 17:31:30 +0800</pubDate><description><![CDATA[自定义头部导航栏过程

1.json文件中设置导航栏样式自定义，设置后可隐藏除右侧胶囊外的所有头部导航栏


"navigationStyle":"custom"

2.在js文件中获取当前手机的顶部状态栏高度

用wx.getSystemInfoSync()获取系统信息，里面有个参数：statusBarHeight（状态栏高度）。

用wx.getMenuButtonBoundingClientRect()可以获取胶囊按钮的布局位置信息，坐标信息以屏幕左上角为原点。

导航栏高度 = 状态栏到胶囊的间距.]]></description><category></category></item><item><title><![CDATA[微信小程序 - 计时器（弹出层）]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/112465653</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/112465653</guid><author>fakeeel</author><pubDate>Mon, 11 Jan 2021 13:17:56 +0800</pubDate><description><![CDATA[微信小程序点击事件触发计时器



1.wxml


&lt;view class="button" bindtap="open_modal"&gt;开始巡查&lt;/view&gt;

&lt;!-- 弹出层 --&gt;
&lt;view class="mask-bg" wx:if="{{showModal}}"&gt;&lt;/view&gt;
&lt;view class="mask-inspection-item" wx:if="{{showModal}}"&gt;
    &lt;view cl]]></description><category></category></item><item><title><![CDATA[微信小程序 - 时间轴]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/112465036</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/112465036</guid><author>fakeeel</author><pubDate>Mon, 11 Jan 2021 12:00:46 +0800</pubDate><description><![CDATA[微信小程序时间轴



1.wxml


    &lt;view class="flow-item"&gt;
        &lt;view class="timeline-circle2"&gt;&lt;/view&gt;
        &lt;view class="timeline-item2"&gt;
            &lt;view class="timeline-name"&gt;标题文案&lt;/view&gt;
            &lt;view class="timel]]></description><category></category></item><item><title><![CDATA[JavaSE复习14 值传递和引用传递]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/108500330</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/108500330</guid><author>fakeeel</author><pubDate>Wed, 09 Sep 2020 19:51:14 +0800</pubDate><description><![CDATA[形参和实参


形式参数：是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数。

实际参数：在调用有参函数时，主调函数和被调函数之间有数据传递关系。在主调函数中调用一个函数时，函数名后面括号中的参数称为“实际参数”。


形式参数是用于接收实参内容的参数，而实际参数是调用有参方法的时候真正传递的内容。


public static void main(String[] args) {
        //实际参数,实际调用
        int sum = add(1,3)..]]></description><category></category></item><item><title><![CDATA[浅谈前后端分离]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/107225298</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/107225298</guid><author>fakeeel</author><pubDate>Thu, 09 Jul 2020 11:53:39 +0800</pubDate><description><![CDATA[一个正常的软件开发可以简化成四大步：设计、开发、测试、部署，所以真正的前后端分离应该渗透到每个步骤中去。

第一个阶段：设计阶段

设计的第一个层面当然是系统设计：后端系统设计较好理解，主要是系统架构、数据库、中间件、缓存等，主要考虑性能、容量、扩展性、维护性；那前端也应如此，假如网站非常复杂，页面极其多，这时前端项目架构也需要做好规划，尽量满足长期演进、可迭代的目标。

设计的第二个层面就是接口设计：前后端系统通过接口进行交互，这时模型（ Model）层面的接口约定极其重要，包括：接口请求方式、数据类型、]]></description><category></category></item><item><title><![CDATA[SpringBoot+Maven 01 简单的SpringBoot程序]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/107188928</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/107188928</guid><author>fakeeel</author><pubDate>Tue, 07 Jul 2020 20:16:59 +0800</pubDate><description><![CDATA[1.新建一个Project



2.选择一个Spring Initializr



3.Artifact就是项目名



4.选择需要的依赖 （SpringWeb、MyBatis框架、MySQL的驱动）



5.选择项目所在的目录，一定要和项目同名



6.Finish之后就完成了一半的项目搭建



7.在项目的/src/main/resources下新建一个application.properties来填写Mybatis的配置信息



8.在项目的/src/main/resources下新建m]]></description><category></category></item><item><title><![CDATA[JavaSE复习13 JavaDoc]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/105865831</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/105865831</guid><author>fakeeel</author><pubDate>Thu, 30 Apr 2020 17:42:29 +0800</pubDate><description><![CDATA[JavaDoc命令是用来生成自己的API文档的

参数信息

@author 作者名
	@version 版本号
	@since 指明需要最早使用的jdk版本
	@param 参数名
	@return 返回值情况
	@throws 异常抛出情况
IDEA生成JavaDoc文档

1.首先，打开菜单栏Tools-&gt;Generate JavaDoc



2.点击上述菜单项后，会出现生成 ...]]></description><category></category></item><item><title><![CDATA[JavaSE复习12 包机制]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/105471985</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/105471985</guid><author>fakeeel</author><pubDate>Thu, 30 Apr 2020 17:10:30 +0800</pubDate><description><![CDATA[包机制

为了更好地组织类，Java提供了包机制，用于区别类名的命名空间。

一般采用公司域名倒置作为包名

为了使用某一个包的成员，我们要在Java程序中明确导入该包。使用“import”语句即可完成此功能
...]]></description><category></category></item><item><title><![CDATA[2020-04 MySQL复习]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/105734225</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/105734225</guid><author>fakeeel</author><pubDate>Tue, 28 Apr 2020 23:14:42 +0800</pubDate><description><![CDATA[什么是MySQL中的事务？

事务是一组操作，组成这组操作的各个单元，要不全都成功要不全都失败，这个特性就是事务。]]></description><category></category></item><item><title><![CDATA[JavaSE复习11 运算符]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/105454186</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/105454186</guid><author>fakeeel</author><pubDate>Sat, 11 Apr 2020 20:53:45 +0800</pubDate><description><![CDATA[Java支持以下运算符：

算术运算符：+，-，*，/，%，++，--
	赋值运算符：=
	关系运算符：&gt;，&lt;，&gt;=，&lt;=，!=instanceof
	逻辑运算符：&amp;&amp;，||，！
	位运算符：&amp;，|，^，~，&gt;&gt;，&lt;&lt;，&gt;&gt;&gt;
	条件运算符：?:
	扩展赋值运算符：+=，-=，*=，/=
优先级问题

一般而...]]></description><category></category></item><item><title><![CDATA[JavaSE复习10 变量、常量、作用域]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/105453076</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/105453076</guid><author>fakeeel</author><pubDate>Sat, 11 Apr 2020 15:59:11 +0800</pubDate><description><![CDATA[变量

变量就是可以改变的量

Java变量是程序中最基础的存储单元，其要素包括变量名，变量类型和作用域


type varName [=value] [{,varName[=value]}];
//数据类型  变量名 = 值；可以使用逗号隔开来声明多个同类型的变量（但不建议）

【注意点】

每个变量都必须有类型，可以试试基本类型也可以是引用类型。
	变量名必须是合法的标识符。
	变量声明是一...]]></description><category></category></item><item><title><![CDATA[JavaSE复习09 类型转换]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/105442020</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/105442020</guid><author>fakeeel</author><pubDate>Fri, 10 Apr 2020 21:24:45 +0800</pubDate><description><![CDATA[为什么要有类型转换？

因为Java是强类型语言，在运算中，不同类型的数据要先转化为同一类型，然后进行运算。

低--------------------------------------------------&gt;高

byte,short,char -&gt; int -&gt; long -&gt; float -&gt; double

类型转换分为强制类型转换和自动类型转换。


...]]></description><category></category></item><item><title><![CDATA[JavaSE复习08 数据类型]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/105437405</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/105437405</guid><author>fakeeel</author><pubDate>Fri, 10 Apr 2020 21:02:13 +0800</pubDate><description><![CDATA[因为Java是强类型语言，所以要求变量的使用必须严格符合规定，所有变量要定义后才能使用。

Java的数据类型分两类，基本类型（primitive type）和引用类型（reference type）

基本数据类型包括数值类型和布尔类型boolean，其中数值类型又包括整数类型，浮点数类型和字符类型char。整数类型有4种，byte,short,int,long；浮点数类型有两种float,do...]]></description><category></category></item><item><title><![CDATA[JavaSE复习07 注释、标识符、关键字]]></title><link>https://blog.youkuaiyun.com/fakeeel/article/details/105345244</link><guid>https://blog.youkuaiyun.com/fakeeel/article/details/105345244</guid><author>fakeeel</author><pubDate>Tue, 07 Apr 2020 09:26:35 +0800</pubDate><description><![CDATA[注释

书写注释是一个良好的习惯

Java中的注释有三种：

单行注释

多行注释

文档注释


public class HelloWorld {
    public static void main(String[] args) {
        //单行注释
        //输出一个HelloWorld!
        System.out.println("Hello Wor...]]></description><category></category></item></channel></rss>