- 【无标题】Python学习心得
w180316
python
在当今数字化的时代,编程已经成为不可或缺的技能。我选择学习Python语言,是被它的简洁、高效和广泛的应用场景所吸引。经过一段时间的学习,我有了许多深刻的体会和感悟。Python语言给我的第一印象就是简洁易懂。它的语法相对简单,结构清晰,不像一些其他编程语言那样有复杂的规则和晦涩的符号。这使得初学者能够更快地入门,减少了学习门槛和压力。比如,在Python中,变量的定义不需要明确指定数据类型,而是
- 【无标题】
锅挤
算法数据结构
#include#includetypedefstructLinkNode{intcoefficient;intexponent;structLinkNode*next;}*LinkList,*NodePtr;LinkListinitLinkList(){LinkListtempHeader=(LinkList)malloc(sizeof(structLinkNode));tempHeader->
- 驱动补充:example_uart_dmaIrq【无标题】
易硅
单片机嵌入式硬件fpga开发mcu
1).dma中断:“其他文档\驱动样例补充\example_uart_dmaIrq.c”接上篇补充。//example_uart_dmaIrq.cinclude"example.h"/*样例说明:以下样例里边,用了串口0和串口1.串口0是打印log的,就是printf的出口。只是用来检测下运行结果。串口1是测试dma收和dma发。使用时,需要在ve里定义串口1的两个引脚,然后PC端接串口1,来进行
- 【无标题】Python ---Day2 复合类型之序列类型、映射类型和集合类型的学习!!!
系列文章目录文章目录系列文章目录前言一、复合类型初识1.1列表类型1.1.1列表创建1.1.2列表运算1.1.3列表访问1.1.3.1索引1.1.3.2反向索引1.1.3.3切片1.1.4列表操作1.1.4.1添加数据1.1.4.2修改数据1.1.4.3删除数据1.2元组类型1.2.1元组创建1.2.2元组操作1.2.2.2查看元组1.2.2.3解包技能1.2.3元组运算1.2.4元组不可变二、映
- 【无标题】导出pdf
JavaPDF导出工具-iText7实现下面是一个使用iText7库实现的PDF导出工具,支持页眉文字和图片、表格插入和图片插入功能。importcom.itextpdf.io.image.ImageData;importcom.itextpdf.io.image.ImageDataFactory;importcom.itextpdf.kernel.colors.ColorConstants;im
- 【无标题】如何定制开发小程序APP
定制开发小程序APP通常需要以下步骤:需求调研与分析-明确目标与定位:确定小程序APP的核心目标,例如是用于电商销售、品牌展示、客户服务还是线上线下业务融合等。-剖析目标受众:深入了解目标受众的特征,包括年龄、性别、职业、消费习惯、地域分布等,以便设计出符合其使用偏好的产品。-开展竞品研究:分析同行业竞品小程序APP的优劣,从功能布局、界面设计、用户体验、营销策略等方面吸取经验,为自身设计提供参考
- 【无标题】
KellenKellenHao
tomcatjava
一、tomcat安装 #关闭防火墙与SELinux [root@proxy_host~]#rz rzwaitingtoreceive.**[root@proxy_host~]#ls anaconda-ks.cfg ceph-release-1-1.el7.noarch.rpm apache-tomcat-8.5.40.tar.gznginx-1.27.3.tar.gz #解压到指定路径
- 【无标题】
妮妮喔妮
前端javascript开发语言
使用yarnaddclassnames安装。这是antd中关于button组件的写法!所以我们自己取类名也可以这么取!现在我们直接模仿antd官网中button组件的样式搜索网站UNPKG这是自己写组件的大致导入导出格式。写好组件之后记得引入。好像看到很多次JSX了确实应该了解一下然后图片的Base64格式也应该学习一下。目前的包管理器我知道的有npm、pnpm、yarn、cnpm这些,cnpm就
- 【无标题】获取独立按键值
五幺大师
51单片机
#include#include"Delay.h"/***@brief获取独立按键键码*@param无*@retval按下按键的键码,范围:0~4,无按键按下时返回值为0*/unsignedcharKey(){unsignedcharKeyNumber=0;if(P3_1==0){Delay(20);while(P3_1==0);Delay(20);KeyNumber=1;}if(P3_0==0)
- 【无标题】51单片机74HC138的应用
五幺大师
嵌入式硬件51单片机
/**************************************************************************************实验现象:下载程序后"动态数码管模块"从左至右显示0-7接线说明:单片机-->动态数码管模块*******************************************************************
- 【无标题】
FAUNAAAAAA
cocoa
Day55importnumpyasnpimportmatplotlib.pyplotaspltfromsklearn.preprocessingimportMinMaxScalerfromsklearn.ensembleimportRandomForestRegressorfromsklearn.metricsimportmean_squared_error#==================
- 【无标题】
console.log( )
前端javascriptjava
echartsconstdomResize=()=>{chart&&chart.resize();};
- 【无标题】
MaisieKim_
大数据人工智能
信息壁垒导致协作困难的本质原因在于:沟通机制不透明、信息流动不顺畅、平台工具未统一、组织文化缺乏协作导向。**其中,沟通机制不透明是造成跨团队协作效率低下的核心障碍之一。它导致信息在传递过程中失真、遗漏或延迟,从而影响项目推进节奏与协同效率。要打通沟通链路,必须从组织架构、技术工具与文化氛围三方面系统优化。一、沟通机制不透明:根因分析与治理策略沟通机制不透明常表现为汇报链路层层传递、关键信息无法及
- 【无标题】
曾小文
javahttptcp/ip网络协议
️面试热点科普:操作系统多路复用I/O详解在大厂后端开发面试中,「select/poll/epoll区别」是系统调优必问题型。很多人以为它们只是性能不同,实际底层原理差异巨大!今天用最直观的方式帮你彻底理解,文末附「100字面试速答模板」,轻松拿下技术加分项!多路复用I/O是什么?一种「单线程监控多个文件描述符」的技术,核心解决C10K(高并发连接)问题举个生活例子:服务员(单线程)通过智能呼叫系
- 智慧零工平台后端开发进阶:Spring Boot 3结合MyBatis-Flex的技术实践与优化【无标题】
广州山泉婚姻
spring爬虫人工智能
在完成智慧零工平台基础架构搭建后,如何进一步提升系统性能、简化开发流程并增强系统的可维护性成为新的挑战。我们将深入探讨SpringBoot3与MyBatis-Flex在智慧零工平台后端开发中的进阶技术实践,涵盖复杂业务场景优化、高级特性应用、性能调优策略及工程化管理,助力开发者打造更高效、更健壮的后端服务。一、MyBatis-Flex高级特性深度应用1.1复杂多表关联查询优化在零工平台中,任务详情
- 【无标题】
行者man
java服务器前端
文章目录1.授权认证2.区域管理创建区域更新区域删除区域获取区域列表3.门店管理创建门店批量删除门店获取区域下的门店列表获取门店详情更新门店4.部门组织管理创建组织更新组织删除组织获取组织列表5.用户管理创建用户更新用户批量删除用户获取组织下用户列表获取用户职位列表绑定第三方职位列表获取单个用户详情启用/禁用用户1.授权认证功能描述云眸平台所有RESTAPI的调用都需要身份认证,采用ClientC
- 【无标题】
行云流水AI笔记
人工智能
在本地对Qwen-3-4B模型进行微调,并结合强化学习(RL)以提高其从自然语言(TXT)到结构化查询语言(SQL)的转换能力(即TXT2SQL),是一个复杂但非常有价值的任务。以下是一个详细的流程步骤,涵盖从环境准备、数据准备、模型微调到强化学习应用的各个方面。一、项目概述目标:通过微调和强化学习提升Qwen-3-4B模型在TXT2SQL任务上的表现,使其能够更准确地将自然语言查询转换为相应的S
- 【无标题】
书桐先生
python前端开发语言
✅什么是KMeans聚类?为什么要用它?通俗解释:KMeans聚类就像“自动分类器”,它根据像素的灰度值,把整张图分成亮度不同的几类区域。比如,把黑色背景、亮一点的重影、最亮的主影区分开。为什么用它:图像中的亮度差异很明显:背景暗(低灰度)重影比背景亮但比主影暗主影最亮KMeans可以自动分组像素,不需要手动设阈值,适应性强,适用于批量图像处理。✅什么是“形态学去噪”?用来干什么?通俗解释:形态学
- 【无标题】
mygugu
Linuxlinux
cat查看文件:(1)格式化json文件:catdata.json|jq.(2)分页查看:如果文件很长,可以用less或more分页查看lessfile.txt或者catfile.txt|less(3)显示行号:cat-nfile.txt或者nlfile.txt(4)代码缩进:catcode.c|indent示例:假设有json文件,格式化+分页+显示行号查看:可以通过cat结合其他命令(如jq、
- 【无标题】指针和数据结构
wangjialelele
算法数据结构
#define_CRT_SECURE_NO_WARNINGS#include//intmy_strlen(char*arr)//{//char*start=arr;//while(*arr!='\0')//{//arr++;//}//returnarr-start;//}//intmain()//{//intlen=my_strlen("djfaifjrj");//printf("%d",len)
- 【无标题】在 4K 高分辨率(如 3840×2160)笔记本上运行 VMware 虚拟机时平面太小字体太小(ubuntu)
linuxarmsummary
4K屏幕显示ubuntu
✅方法一:写入~/.xprofile(推荐)这个文件会在你登录图形界面前自动执行,适合设置缩放比例等桌面配置。1.打开.xprofile文件(如果没有会自动创建):nano~/.xprofile2.写入以下内容:#!/bin/bashgsettingssetorg.gnome.desktop.interfacescaling-factor2✅如果你使用的是GTK应用,还可以加上:exportGDK
- 【无标题】
光顶术士
QT学习qt
QTQCalendarWidget日历的使用QT日历控件的使用一、重要日子的背景色字体颜色QT日历控件的使用一、重要日子的背景色字体颜色示例:比如周末或者是自定义的某一天;或者是某些聊天记录的查找,也有这种操作.#include#includeintyearNow,monthNow;//全局变量
- 【无标题】
真香号
真香的技术分享计算机语言后端
计算机存储单位换算一个中文字符在计算机中通常使用的编码是UTF-8。在UTF-8编码中,一个中文字符通常占用3个字节(这是因为UTF-8是一种变长字符编码:英文字符通常占用1个字节,而中文字符因Unicode码点较高,通常需要3个字节表示)。一个英文字母在UTF-8编码中通常占用1个字节。“你好啊”这个短语包括三个中文字符。在UTF-8编码中,每个中文字符通常占用3个字节,所以"你好啊"总共占用的
- 【无标题】
YI175781
python开发语言数据分析pandas信息可视化
壹引言在当今这个数据驱动的时代,数据如同无尽的宝藏,蕴含着巨大的价值和洞察力。Python作为一门功能强大且易于学习的编程语言,在数据分析和可视化领域展现出了卓越的能力。其中,pandas库以其简洁高效的数据结构和丰富的数据分析功能,成为了数据处理的核心工具;而matplotlib和seaborn等可视化库,则能够将抽象的数据转化为直观、易懂的图表,帮助我们揭示数据背后的规律和趋势。本文将深入探讨
- 【无标题】
爱吃萝卜的猪
leetcodeleetcode算法
题解:此题为1004.最大连续1的个数III-力扣(Leetcode)的一个特例,即k=1时:classSolution{public:intlongestSubarray(vector&nums){intleft=0,res=0;intzero_num=0;for(intright=0;right1){if(nums[left++]==0)zero_num--;}res=max(res,righ
- 【无标题】
才朔HR
劳务外包大数据其他
在当今竞争激烈的市场环境中,企业为了提高运营效率、降低成本,常常会采取各种各样的措施。其中,劳务外包作为一种有效的经营方式,越来越受到企业的青睐。那么,究竟什么是劳务外包?它能为企业带来什么?又有哪些风险需要注意呢?今天,就跟才朔HR一起深入探讨这个话题!一、劳务外包是什么?它的本质是什么?劳务外包,也称作劳务转包,是指企业将其日常经营活动中的一部分或全部劳务事项,委托给专业的第三方服务商进行办理
- 【无标题】路径 NP 完全问题的革命性解决方案:拓扑膨胀-收缩对偶理论
2301_81062744颜斌
拓扑学
路径NP完全问题的革命性解决方案:拓扑膨胀-收缩对偶理论一、核心理论框架:膨胀-收缩对偶性```mermaidgraphLRA[传统路径问题]-->|拓扑膨胀|B[发现缺陷]B-->|零点缺失|C[维度不完整]B-->|隧穿禁止|D[复杂度爆炸]C-->|拓扑收缩|E[二维色动力学模型]D-->|拓扑收缩|EE-->F[路径NP完全性崩塌]F-->G[P类多项式解]```二、拓扑膨胀揭示的三大根本
- 【无标题】定时移动鼠标脚本
Yin Zhibo
scipy
设置两分钟的时间间隔(以秒为单位)$interval=120while($true){#创建对象,模拟鼠标移动$signature=@"[System.Reflection.Assembly]::LoadWithPartialName(“System.Windows.Forms”)|Out-Null$signature=@"[System.Runtime.InteropServices.DllIm
- 【无标题】
m0_62801759
linqc#
消息队列概述消息队列:对消息进行缓存,分类;先进先出,作用:缓冲/消峰:控制和优化数据流的速度,解决生产消息和消费消息速度不一致的情况;解耦:节省复杂度,允许独立的扩展或修改两边的处理过程,只要确保遵守同样的接口约束。【大数据计算引擎和数据处理引擎】异步通信:允许用户把一个消息放入队列,但并不立即处理它,然后在需要的时候再去处理它们。【注册就响应,发送短信单独处理】消息队列的两种模式:点对点模式和
- 【无标题】
要努力啊啊啊
RAG系统开发指南深度学习人工智能语言模型自然语言处理
一份简单的代码,来展示如何解析一个txt文件,将其变为document。解析一个文件,必须要有的就是loader和splitter。importosfrompathlibimportPathfromlangchain.schemaimportDocumentfromutilsimportget_loader,make_text_splitter#确保你有这些函数#===配置参数===file_pa
- 解读Servlet原理篇二---GenericServlet与HttpServlet
周凡杨
javaHttpServlet源理GenericService源码
在上一篇《解读Servlet原理篇一》中提到,要实现javax.servlet.Servlet接口(即写自己的Servlet应用),你可以写一个继承自javax.servlet.GenericServletr的generic Servlet ,也可以写一个继承自java.servlet.http.HttpServlet的HTTP Servlet(这就是为什么我们自定义的Servlet通常是exte
- MySQL性能优化
bijian1013
数据库mysql
性能优化是通过某些有效的方法来提高MySQL的运行速度,减少占用的磁盘空间。性能优化包含很多方面,例如优化查询速度,优化更新速度和优化MySQL服务器等。本文介绍方法的主要有:
a.优化查询
b.优化数据库结构
- ThreadPool定时重试
dai_lm
javaThreadPoolthreadtimertimertask
项目需要当某事件触发时,执行http请求任务,失败时需要有重试机制,并根据失败次数的增加,重试间隔也相应增加,任务可能并发。
由于是耗时任务,首先考虑的就是用线程来实现,并且为了节约资源,因而选择线程池。
为了解决不定间隔的重试,选择Timer和TimerTask来完成
package threadpool;
public class ThreadPoolTest {
- Oracle 查看数据库的连接情况
周凡杨
sqloracle 连接
首先要说的是,不同版本数据库提供的系统表会有不同,你可以根据数据字典查看该版本数据库所提供的表。
select * from dict where table_name like '%SESSION%';
就可以查出一些表,然后根据这些表就可以获得会话信息
select sid,serial#,status,username,schemaname,osuser,terminal,ma
- 类的继承
朱辉辉33
java
类的继承可以提高代码的重用行,减少冗余代码;还能提高代码的扩展性。Java继承的关键字是extends
格式:public class 类名(子类)extends 类名(父类){ }
子类可以继承到父类所有的属性和普通方法,但不能继承构造方法。且子类可以直接使用父类的public和
protected属性,但要使用private属性仍需通过调用。
子类的方法可以重写,但必须和父类的返回值类
- android 悬浮窗特效
肆无忌惮_
android
最近在开发项目的时候需要做一个悬浮层的动画,类似于支付宝掉钱动画。但是区别在于,需求是浮出一个窗口,之后边缩放边位移至屏幕右下角标签处。效果图如下:
一开始考虑用自定义View来做。后来发现开线程让其移动很卡,ListView+动画也没法精确定位到目标点。
后来想利用Dialog的dismiss动画来完成。
自定义一个Dialog后,在styl
- hadoop伪分布式搭建
林鹤霄
hadoop
要修改4个文件 1: vim hadoop-env.sh 第九行 2: vim core-site.xml <configuration> &n
- gdb调试命令
aigo
gdb
原文:http://blog.csdn.net/hanchaoman/article/details/5517362
一、GDB常用命令简介
r run 运行.程序还没有运行前使用 c cuntinue 
- Socket编程的HelloWorld实例
alleni123
socket
public class Client
{
public static void main(String[] args)
{
Client c=new Client();
c.receiveMessage();
}
public void receiveMessage(){
Socket s=null;
BufferedRea
- 线程同步和异步
百合不是茶
线程同步异步
多线程和同步 : 如进程、线程同步,可理解为进程或线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B依言执行,再将结果给A;A再继续操作。 所谓同步,就是在发出一个功能调用时,在没有得到结果之前,该调用就不返回,同时其它线程也不能调用这个方法
多线程和异步:多线程可以做不同的事情,涉及到线程通知
&
- JSP中文乱码分析
bijian1013
javajsp中文乱码
在JSP的开发过程中,经常出现中文乱码的问题。
首先了解一下Java中文问题的由来:
Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,
- js实现页面跳转重定向的几种方式
bijian1013
JavaScript重定向
js实现页面跳转重定向有如下几种方式:
一.window.location.href
<script language="javascript"type="text/javascript">
window.location.href="http://www.baidu.c
- 【Struts2三】Struts2 Action转发类型
bit1129
struts2
在【Struts2一】 Struts Hello World http://bit1129.iteye.com/blog/2109365中配置了一个简单的Action,配置如下
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configurat
- 【HBase十一】Java API操作HBase
bit1129
hbase
Admin类的主要方法注释:
1. 创建表
/**
* Creates a new table. Synchronous operation.
*
* @param desc table descriptor for table
* @throws IllegalArgumentException if the table name is res
- nginx gzip
ronin47
nginx gzip
Nginx GZip 压缩
Nginx GZip 模块文档详见:http://wiki.nginx.org/HttpGzipModule
常用配置片段如下:
gzip on; gzip_comp_level 2; # 压缩比例,比例越大,压缩时间越长。默认是1 gzip_types text/css text/javascript; # 哪些文件可以被压缩 gzip_disable &q
- java-7.微软亚院之编程判断俩个链表是否相交 给出俩个单向链表的头指针,比如 h1 , h2 ,判断这俩个链表是否相交
bylijinnan
java
public class LinkListTest {
/**
* we deal with two main missions:
*
* A.
* 1.we create two joined-List(both have no loop)
* 2.whether list1 and list2 join
* 3.print the join
- Spring源码学习-JdbcTemplate batchUpdate批量操作
bylijinnan
javaspring
Spring JdbcTemplate的batch操作最后还是利用了JDBC提供的方法,Spring只是做了一下改造和封装
JDBC的batch操作:
String sql = "INSERT INTO CUSTOMER " +
"(CUST_ID, NAME, AGE) VALUES (?, ?, ?)";
- [JWFD开源工作流]大规模拓扑矩阵存储结构最新进展
comsci
工作流
生成和创建类已经完成,构造一个100万个元素的矩阵模型,存储空间只有11M大,请大家参考我在博客园上面的文档"构造下一代工作流存储结构的尝试",更加相信的设计和代码将陆续推出.........
竞争对手的能力也很强.......,我相信..你们一定能够先于我们推出大规模拓扑扫描和分析系统的....
- base64编码和url编码
cuityang
base64url
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
- web应用集群Session保持
dalan_123
session
关于使用 memcached 或redis 存储 session ,以及使用 terracotta 服务器共享。建议使用 redis,不仅仅因为它可以将缓存的内容持久化,还因为它支持的单个对象比较大,而且数据类型丰富,不只是缓存 session,还可以做其他用途,一举几得啊。1、使用 filter 方法存储这种方法比较推荐,因为它的服务器使用范围比较多,不仅限于tomcat ,而且实现的原理比较简
- Yii 框架里数据库操作详解-[增加、查询、更新、删除的方法 'AR模式']
dcj3sjt126com
数据库
public function getMinLimit () { $sql = "..."; $result = yii::app()->db->createCo
- solr StatsComponent(聚合统计)
eksliang
solr聚合查询solr stats
StatsComponent
转载请出自出处:http://eksliang.iteye.com/blog/2169134
http://eksliang.iteye.com/ 一、概述
Solr可以利用StatsComponent 实现数据库的聚合统计查询,也就是min、max、avg、count、sum的功能
二、参数
- 百度一道面试题
greemranqq
位运算百度面试寻找奇数算法bitmap 算法
那天看朋友提了一个百度面试的题目:怎么找出{1,1,2,3,3,4,4,4,5,5,5,5} 找出出现次数为奇数的数字.
我这里复制的是原话,当然顺序是不一定的,很多拿到题目第一反应就是用map,当然可以解决,但是效率不高。
还有人觉得应该用算法xxx,我是没想到用啥算法好...!
还有觉得应该先排序...
还有觉
- Spring之在开发中使用SpringJDBC
ihuning
spring
在实际开发中使用SpringJDBC有两种方式:
1. 在Dao中添加属性JdbcTemplate并用Spring注入;
JdbcTemplate类被设计成为线程安全的,所以可以在IOC 容器中声明它的单个实例,并将这个实例注入到所有的 DAO 实例中。JdbcTemplate也利用了Java 1.5 的特定(自动装箱,泛型,可变长度
- JSON API 1.0 核心开发者自述 | 你所不知道的那些技术细节
justjavac
json
2013年5月,Yehuda Katz 完成了JSON API(英文,中文) 技术规范的初稿。事情就发生在 RailsConf 之后,在那次会议上他和 Steve Klabnik 就 JSON 雏形的技术细节相聊甚欢。在沟通单一 Rails 服务器库—— ActiveModel::Serializers 和单一 JavaScript 客户端库——&
- 网站项目建设流程概述
macroli
工作
一.概念
网站项目管理就是根据特定的规范、在预算范围内、按时完成的网站开发任务。
二.需求分析
项目立项
我们接到客户的业务咨询,经过双方不断的接洽和了解,并通过基本的可行性讨论够,初步达成制作协议,这时就需要将项目立项。较好的做法是成立一个专门的项目小组,小组成员包括:项目经理,网页设计,程序员,测试员,编辑/文档等必须人员。项目实行项目经理制。
客户的需求说明书
第一步是需
- AngularJs 三目运算 表达式判断
qiaolevip
每天进步一点点学习永无止境众观千象AngularJS
事件回顾:由于需要修改同一个模板,里面包含2个不同的内容,第一个里面使用的时间差和第二个里面名称不一样,其他过滤器,内容都大同小异。希望杜绝If这样比较傻的来判断if-show or not,继续追究其源码。
var b = "{{",
a = "}}";
this.startSymbol = function(a) {
- Spark算子:统计RDD分区中的元素及数量
superlxw1234
sparkspark算子Spark RDD分区元素
关键字:Spark算子、Spark RDD分区、Spark RDD分区元素数量
Spark RDD是被分区的,在生成RDD时候,一般可以指定分区的数量,如果不指定分区数量,当RDD从集合创建时候,则默认为该程序所分配到的资源的CPU核数,如果是从HDFS文件创建,默认为文件的Block数。
可以利用RDD的mapPartitionsWithInd
- Spring 3.2.x将于2016年12月31日停止支持
wiselyman
Spring 3
Spring 团队公布在2016年12月31日停止对Spring Framework 3.2.x(包含tomcat 6.x)的支持。在此之前spring团队将持续发布3.2.x的维护版本。
请大家及时准备及时升级到Spring
- fis纯前端解决方案fis-pure
zccst
JavaScript
作者:zccst
FIS通过插件扩展可以完美的支持模块化的前端开发方案,我们通过FIS的二次封装能力,封装了一个功能完备的纯前端模块化方案pure。
1,fis-pure的安装
$ fis install -g fis-pure
$ pure -v
0.1.4
2,下载demo到本地
git clone https://github.com/hefangshi/f