- Git 分支合并规范
蓝天白云_Sam
合并规范为了得到清晰的分支历史,在进行分支合并的时候有两点规范需要注意:所有分支的合并都采用非快进模式,具体操作加下方;feature分支只能定时同步mater的变更,而不能直接合并release分支等其他分支来实现代码同步;附件为快进模式可能会导致的分支历史混乱问题,有兴趣可以看看。非快进合并命令行--no-ff表示此次合并不使用快进模式(fastforward):gitmergeyour_br
- go语言数据结构与排序算法
fbbqt
golang数据结构排序算法
packagemainimport"fmt"funcmain(){Bubble_Sort()Select_Sort()Insert_Sort()Shell_Sort()Heap_Sort()Merge_Sort()Quick_Sort()}一、1、冒泡排序//冒泡排序funcBubble_Sort(){str:=[]int{9,1,5,8,3,7,4,6,2}//正向冒泡fori:=0;istr[
- svn diff 可视化文件对比工具mac版本配置
绊倒帕萨特
macos
原因:以前在mac版本上用Cornerstone作为svn工具,自从mac升级到了12.0.1之后,Cornerstone便打不开了,通过了解,可以通过命令行操作svn,使用了一段时间后,发现之前太依赖可视化文件对比工具了,在命令行下svndiff查看的文件差异看起来真是不友好,于是网上各种搜索,发现可以用P4merge做差异对比工具配置过程:1.下载P4mergehttps://www.perf
- PAT做题日记:1003 Emergency
illusory-thinker
图论算法c语言dijkstra
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805523835109376思路:根据内存限制,邻接矩阵存储方法是可行的,因此先对图进行输入存储,再用dijkstra算法计算单源最短路路径。根据题目要求,每次遇到新的最短路径计数一次,同时对人数最大的路径累计人数。AC代码#include#defineMAX500#
- 链表哑节点基础
文章目录一、哑节点(DummyNode)基础概念1、定义2、优点(作用原理)3、缺点4、类型4、应用场景二、例题应用1、[24.两两交换链表中的节点](https://leetcode.cn/problems/swap-nodes-in-pairs/)2、[21.合并两个有序链表](https://leetcode.cn/problems/merge-two-sorted-lists/)3、[86
- 归并排序算法
流影ng
算法排序算法
文章目录一、归并排序基本概念分治策略二、归并排序的具体实现步骤三、代码示例`merge`函数解析`mergeSort`函数解析四、时间复杂度和空间复杂度五、归并排序的应用场景一、归并排序基本概念归并排序(MergeSort)是一种基于分治策略的高效排序算法。它的基本思想是将一个数组分成两个子数组,分别对这两个子数组进行排序,然后将排好序的子数组合并成一个最终的排序数组。分治策略分解:把待排序的数组
- LeetCode面试经典150题|56. 合并区间
程序员阿法
leetcode面试算法
以数组intervals表示若干个区间的集合,其中单个区间为intervals[i]=[starti,endi]。请你合并所有重叠的区间,并返回一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间。按左端点从小到大排序,相同的话再按右端点来排。一开始先放第一个元素到另一个容器里,然后遍历剩下的元素,假如可以跟另一个容器里的尾部元素合并的话,就更新尾部元素,假如不能的话,就放到尾部元素。#incl
- Your local changes would be overwritten by merge. Commit, stash or revert them to proceed.
fht1
java
第一步:先修改本地代码,改成自己认为正确的代码,然后commit第二步:进行Stashchanges第三步:push代码,可以成功第四步:成功pull代码
- 数组算法之【合并两个有序数组】
丶小鱼丶
算法算法java
目录LeetCode-88题LeetCode-88题给定两个非递减排序的数组num1和num2,并给出两者的元素个数分别为m和n,合并两个数组,使合并后仍然按非递减排序publicclassSolution{/***这里使用的是双指针的解法*/publicvoidmerge(int[]nums1,intm,int[]nums2,intn){//checkif(n<=0&&m<=0)return;i
- SpringIOC源码(三)——getBean及createBean做了什么
天凉好个球儿
SpringIOC学习(三)getBean()一初始化非懒加载的单例bean二preInstantiateSingletons()1.getMergedLocalBeanDefinition()三doGetBean1.getSingleton(StringbeanName,booleanallowEarlyReference)2.getObjectForBeanInstance()2.1getOb
- Vue3 element-plus 表格合并
hayhead
vue.js前端javascript
场景:表格中列值相同的进行合并操作constloading=ref(true)//列表的加载中constlist=ref([])//列表的数据consttotal=ref(0)//列表的总页数//计算合并行数constmergeRows=computed(()=>{constmergeInfo={};letcurrentRow=0;letcurrentCount=1;for(leti=1;i{//
- 关于使用FFmpeg进行视频拼接
关于使用FFmpeg进行视频拼接方案使用concatdemuxer使用concat协议更多支持其他方案使用concat滤镜失败其他工具MP4BoxMKVMergeMEncoder额外知识管道h264_mp4toannexb&aac_adtstoasc参考资料修改历史方案http://trac.ffmpeg.org/wiki/Concatenate使用concatdemuxerFFmpeg读取不同格
- 玉枕残梦馨--56.小试牛刀(一)
素手宁心
“瑾儿,你怎么来了,山寨正在讨论迎敌打仗的大事,都是男人的活计,你就先回去吧,”欧阳琛看见梅莹瑾走进一帮男人中间,还大谈打仗之事,汗都下来了,心想你一个女孩家来聚虎堂捣什么乱啊,兄弟们都看着呢,忙走过来小心提醒。“哎,等一下,老六,”金虎制止住了欧阳琛,笑着看着梅莹瑾说道:“瑾儿,听你的话好像刚开了个头,来,别怕,把你的想法详细给大伙说一说。”梅莹瑾被让到了椅子上坐下,刹那间忠义厅要炸了锅,虽然大
- Apache Ignite 中 WHERE 子句中的子查询(Subqueries in WHERE Clause)的执行方式
这段内容是关于ApacheIgnite中WHERE子句中的子查询(SubqueriesinWHEREClause)的执行方式的说明。理解这段内容对于编写高效的SQL查询、避免性能瓶颈非常重要。下面我将为你逐句解释并深入理解这段内容。原文翻译+解释原文:SELECTqueriesusedinINSERTandMERGEstatementsaswellasSELECTqueriesgeneratedb
- Error: Multiple commands produce……
燃_火
今天遇到一个问题,代码运行的时候出现了错误,下图:3CF4B2626DB611D7F9191BE34D6EEB6E.png这是Xcode10更新后的一个坑,无奈!记录一下解决方法:1、找到屏幕顶层工具栏中的File,点击-选择ProjectSettingsqq_pic_merged_1556606469607.jpg2、将NewBuildSystem(Default)切换成Legacybuilds
- Git核心功能简要学习
、达西先生
git学习
代码的获取和上传gitclone下载,(注意:直接下载压缩包不会维护gitinit相关信息)gitbranch-a查看有那些分支(不同仓库可能有稳定版本和开发版本)gitcheckout切换到那个分支然后拉去最新代码gtipull用于从远程仓库拉取最新的代码并合并到当前分支gitpull=gitfetch+gitmerge修改代码后提交gitadd.gitcommit-m“xxxx”gtipull
- 【Python LeetCode 专题】热题 100,重在思路
一杯水果茶!
人生苦短我用Pythonpythonleetcode
哈希1.两数之和49.字母异位词分组128.最长连续序列双指针283.移动零11.盛最多水的容器15.三数之和42.接雨水滑动窗口3.无重复字符的最长子串438.找到字符串中所有字母异位词子串560.和为K的子数组239.滑动窗口最大值普通数组53.最大子数组和56.合并区间189.轮转数组238.除自身以外数组的乘积矩阵73.矩阵置零链表160.相交链表206.反转链表234.回文链表141.环
- 分治算法---归并
1、排序数组classSolution{vectortmp;public:vectorsortArray(vector&nums){tmp.resize(nums.size());mergeSort(nums,0,nums.size()-1);returnnums;}voidmergeSort(vector&nums,intleft,intright){if(left>=right)return;
- 以太坊应用开发基础:从理论到实战的完整指南
boyedu
区块链区块链以太坊
一、引言:以太坊的愿景与生态地位以太坊自2015年诞生以来,凭借其图灵完备的智能合约功能和去中心化应用(DApp)生态,已成为区块链领域的核心平台。相较于比特币的单一支付功能,以太坊通过EVM(以太坊虚拟机)和Solidity语言,支持开发者构建复杂的金融协议、游戏、供应链管理等应用。2025年,以太坊通过TheMerge升级转向PoS共识,并持续推进分片技术,解决扩展性问题。本文旨在为开发者提供
- 排序算法之【归并排序】
丶小鱼丶
算法排序算法java
目录实现归并排序【MergeSort】并提供升序和降序方法归并排序方法测试LeetCode-215题实现归并排序【MergeSort】并提供升序和降序方法/***归并排序*/publicclassMergeSort{//升序排列privatestaticfinalintUP_SORT_TYPE=1;//降序排列privatestaticfinalintDOWN_SORT_TYPE=-1;/***升
- 力扣 hot100 Day40
qq_51397044
Hot100leetcode算法职场和发展
23.合并K个升序链表给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。//自己写的垃圾classSolution{public:ListNode*mergeKLists(vector&lists){vectorrecord;intn=lists.size();for(inti=0;ival);lists[i]=lists[i]->next;}}if
- TimSort:论Java Arrays.sort的稳定性
lifallen
Java算法排序算法算法数据结构java开发语言后端
TimSort是一种混合的、稳定的排序算法,结合了归并排序(MergeSort)和二分插入排序(BinaryInsertionSort)的优点,尤其适用于部分有序的数据。在Java中,Arrays.sort()对对象数组排序时内部使用了TimSort算法。对于集合的排序实际上也是使用Arrays.sort如List.javadefaultvoidsort(Comparatorc){Object[]
- 【前端】jQuery数组合并去重方法总结
在jQuery中合并多个数组并去重,推荐使用原生JavaScript的Set对象(高效简单)或$.unique()(仅适用于DOM元素,不适用于普通数组)。以下是完整解决方案:方法1:使用ES6Set(推荐)//定义多个数组constarr1=[1,2,3];constarr2=[2,3,4];constarr3=[3,4,5];//合并数组并用Set去重constmergedArray=[...
- android查看so路径
之前遇到过一个问题,apk中有一个so无法确定其路径,是由哪个依赖引入的,网上查询一番后这里记录一下。build.gradle中添加如下任务//列出所有包含有so文件的库信息tasks.whenTaskAdded{task->if(task.name=='mergeDebugNativeLibs'){//如果是有多个flavor,则用mergeFlavorDebugNativeLibs的形式tas
- 将多个小型YOLO数据集合并为一个大型数据集
梦实学习室
YOLOpythonYOLOpython机器学习
一、将多个小型YOLO数据集合并为一个大型数据集importosimportshutilimportargparsedefmerge_data(source_dir,target_dir,images_dir,labels_dir):images_target=os.path.join(target_dir,images_dir)labels_target=os.path.join(target_
- SQL server Merge into MERGE 语句试图多次更新或删除同一行。目标行与多个源行匹配时会出现这种情况。MERGE 语句无法多次更新/删除目标表的同一行。请简化 ON 子句,
Favor_Yang
SQL调优及高级SQL语法编写MergeIntoSQLsqlserver
SQLserverMergeinto的用法在匹配Using源表时,有时候会报异常消息8672,级别16,状态1,第1行MERGE语句试图多次更新或删除同一行。目标行与多个源行匹配时会出现这种情况。MERGE语句无法多次更新/删除目标表的同一行。请简化ON子句,针对这问题的解决办法一般是确保源表的on字段是唯一的。因为我们可以用distinct关键字,保证源表的On字段的唯一性。 mergeinto
- vue3+js+element plus 合并table表格
还是没有昵称叭
javascriptvue.js前端
mergeColumns数组:这个数组列出了需要合并的列的属性名。只有这些列会被考虑进行合并。spanMethod函数:这个函数是el-table组件的span-method属性的回调函数,用于控制表格中单元格的合并。参数:row:当前行的数据对象。column:当前列的数据对象。rowIndex:当前行的索引。columnIndex:当前列的索引。逻辑:首先检查当前列的property是否在me
- 排序题目:插入区间
伟大的车尔尼
数据结构和算法#排序排序
文章目录题目标题和出处难度题目描述要求示例数据范围解法一思路和算法代码复杂度分析解法二思路和算法代码复杂度分析题目标题和出处标题:插入区间出处:57.插入区间难度5级题目描述要求给定无重叠的区间数组intervals\texttt{intervals}intervals,其中intervals[i]=[starti,endi]\texttt{intervals[i]=[start}_\texttt
- 链表算法之【合并两个有序链表】
丶小鱼丶
算法链表算法java
目录LeetCode-21题LeetCode-21题将两个升序链表合并成一个新的升序链表并返回classSolution{publicListNodemergeTwoLists(ListNodelist1,ListNodelist2){if(list1==null)returnlist2;if(list2==null)returnlist1;ListNodedummyHead=newListNod
- 【数据结构】PTA 两个有序链表序列的合并 C语言 【详】
小纭在努力
PTA数据结构链表c语言
本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。函数接口定义:ListMerge(ListL1,ListL2);其中List结构定义如下:typedefstructNode*PtrToNode;structNode{ElementTypeData;/*存储结点数据*/PtrToNodeNext;/*指向下一个结点的指针*/};typedefPtrToNodeList;
- 关于旗正规则引擎下载页面需要弹窗保存到本地目录的问题
何必如此
jsp超链接文件下载窗口
生成下载页面是需要选择“录入提交页面”,生成之后默认的下载页面<a>标签超链接为:<a href="<%=root_stimage%>stimage/image.jsp?filename=<%=strfile234%>&attachname=<%=java.net.URLEncoder.encode(file234filesourc
- 【Spark九十八】Standalone Cluster Mode下的资源调度源代码分析
bit1129
cluster
在分析源代码之前,首先对Standalone Cluster Mode的资源调度有一个基本的认识:
首先,运行一个Application需要Driver进程和一组Executor进程。在Standalone Cluster Mode下,Driver和Executor都是在Master的监护下给Worker发消息创建(Driver进程和Executor进程都需要分配内存和CPU,这就需要Maste
- linux上独立安装部署spark
daizj
linux安装spark1.4部署
下面讲一下linux上安装spark,以 Standalone Mode 安装
1)首先安装JDK
下载JDK:jdk-7u79-linux-x64.tar.gz ,版本是1.7以上都行,解压 tar -zxvf jdk-7u79-linux-x64.tar.gz
然后配置 ~/.bashrc&nb
- Java 字节码之解析一
周凡杨
java字节码javap
一: Java 字节代码的组织形式
类文件 {
OxCAFEBABE ,小版本号,大版本号,常量池大小,常量池数组,访问控制标记,当前类信息,父类信息,实现的接口个数,实现的接口信息数组,域个数,域信息数组,方法个数,方法信息数组,属性个数,属性信息数组
}
&nbs
- java各种小工具代码
g21121
java
1.数组转换成List
import java.util.Arrays;
Arrays.asList(Object[] obj); 2.判断一个String型是否有值
import org.springframework.util.StringUtils;
if (StringUtils.hasText(str)) 3.判断一个List是否有值
import org.spring
- 加快FineReport报表设计的几个心得体会
老A不折腾
finereport
一、从远程服务器大批量取数进行表样设计时,最好按“列顺序”取一个“空的SQL语句”,这样可提高设计速度。否则每次设计时模板均要从远程读取数据,速度相当慢!!
二、找一个富文本编辑软件(如NOTEPAD+)编辑SQL语句,这样会很好地检查语法。有时候带参数较多检查语法复杂时,结合FineReport中生成的日志,再找一个第三方数据库访问软件(如PL/SQL)进行数据检索,可以很快定位语法错误。
- mysql linux启动与停止
墙头上一根草
如何启动/停止/重启MySQL一、启动方式1、使用 service 启动:service mysqld start2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start3、使用 safe_mysqld 启动:safe_mysqld&二、停止1、使用 service 启动:service mysqld stop2、使用 mysqld 脚本启动:/etc/inin
- Spring中事务管理浅谈
aijuans
spring事务管理
Spring中事务管理浅谈
By Tony Jiang@2012-1-20 Spring中对事务的声明式管理
拿一个XML举例
[html]
view plain
copy
print
?
<?xml version="1.0" encoding="UTF-8"?>&nb
- php中隐形字符65279(utf-8的BOM头)问题
alxw4616
php中隐形字符65279(utf-8的BOM头)问题
今天遇到一个问题. php输出JSON 前端在解析时发生问题:parsererror.
调试:
1.仔细对比字符串发现字符串拼写正确.怀疑是 非打印字符的问题.
2.逐一将字符串还原为unicode编码. 发现在字符串头的位置出现了一个 65279的非打印字符.
 
- 调用对象是否需要传递对象(初学者一定要注意这个问题)
百合不是茶
对象的传递与调用技巧
类和对象的简单的复习,在做项目的过程中有时候不知道怎样来调用类创建的对象,简单的几个类可以看清楚,一般在项目中创建十几个类往往就不知道怎么来看
为了以后能够看清楚,现在来回顾一下类和对象的创建,对象的调用和传递(前面写过一篇)
类和对象的基础概念:
JAVA中万事万物都是类 类有字段(属性),方法,嵌套类和嵌套接
- JDK1.5 AtomicLong实例
bijian1013
javathreadjava多线程AtomicLong
JDK1.5 AtomicLong实例
类 AtomicLong
可以用原子方式更新的 long 值。有关原子变量属性的描述,请参阅 java.util.concurrent.atomic 包规范。AtomicLong 可用在应用程序中(如以原子方式增加的序列号),并且不能用于替换 Long。但是,此类确实扩展了 Number,允许那些处理基于数字类的工具和实用工具进行统一访问。
 
- 自定义的RPC的Java实现
bijian1013
javarpc
网上看到纯java实现的RPC,很不错。
RPC的全名Remote Process Call,即远程过程调用。使用RPC,可以像使用本地的程序一样使用远程服务器上的程序。下面是一个简单的RPC 调用实例,从中可以看到RPC如何
- 【RPC框架Hessian一】Hessian RPC Hello World
bit1129
Hello world
什么是Hessian
The Hessian binary web service protocol makes web services usable without requiring a large framework, and without learning yet another alphabet soup of protocols. Because it is a binary p
- 【Spark九十五】Spark Shell操作Spark SQL
bit1129
shell
在Spark Shell上,通过创建HiveContext可以直接进行Hive操作
1. 操作Hive中已存在的表
[hadoop@hadoop bin]$ ./spark-shell
Spark assembly has been built with Hive, including Datanucleus jars on classpath
Welcom
- F5 往header加入客户端的ip
ronin47
when HTTP_RESPONSE {if {[HTTP::is_redirect]}{ HTTP::header replace Location [string map {:port/ /} [HTTP::header value Location]]HTTP::header replace Lo
- java-61-在数组中,数字减去它右边(注意是右边)的数字得到一个数对之差. 求所有数对之差的最大值。例如在数组{2, 4, 1, 16, 7, 5,
bylijinnan
java
思路来自:
http://zhedahht.blog.163.com/blog/static/2541117420116135376632/
写了个java版的
public class GreatestLeftRightDiff {
/**
* Q61.在数组中,数字减去它右边(注意是右边)的数字得到一个数对之差。
* 求所有数对之差的最大值。例如在数组
- mongoDB 索引
开窍的石头
mongoDB索引
在这一节中我们讲讲在mongo中如何创建索引
得到当前查询的索引信息
db.user.find(_id:12).explain();
cursor: basicCoursor 指的是没有索引
&
- [硬件和系统]迎峰度夏
comsci
系统
从这几天的气温来看,今年夏天的高温天气可能会维持在一个比较长的时间内
所以,从现在开始准备渡过炎热的夏天。。。。
每间房屋要有一个落地电风扇,一个空调(空调的功率和房间的面积有密切的关系)
坐的,躺的地方要有凉垫,床上要有凉席
电脑的机箱
- 基于ThinkPHP开发的公司官网
cuiyadll
行业系统
后端基于ThinkPHP,前端基于jQuery和BootstrapCo.MZ 企业系统
轻量级企业网站管理系统
运行环境:PHP5.3+, MySQL5.0
系统预览
系统下载:http://www.tecmz.com
预览地址:http://co.tecmz.com
各种设备自适应
响应式的网站设计能够对用户产生友好度,并且对于
- Transaction and redelivery in JMS (JMS的事务和失败消息重发机制)
darrenzhu
jms事务承认MQacknowledge
JMS Message Delivery Reliability and Acknowledgement Patterns
http://wso2.com/library/articles/2013/01/jms-message-delivery-reliability-acknowledgement-patterns/
Transaction and redelivery in
- Centos添加硬盘完全教程
dcj3sjt126com
linuxcentoshardware
Linux的硬盘识别:
sda 表示第1块SCSI硬盘
hda 表示第1块IDE硬盘
scd0 表示第1个USB光驱
一般使用“fdisk -l”命
- yii2 restful web服务路由
dcj3sjt126com
PHPyii2
路由
随着资源和控制器类准备,您可以使用URL如 http://localhost/index.php?r=user/create访问资源,类似于你可以用正常的Web应用程序做法。
在实践中,你通常要用美观的URL并采取有优势的HTTP动词。 例如,请求POST /users意味着访问user/create动作。 这可以很容易地通过配置urlManager应用程序组件来完成 如下所示
- MongoDB查询(4)——游标和分页[八]
eksliang
mongodbMongoDB游标MongoDB深分页
转载请出自出处:http://eksliang.iteye.com/blog/2177567 一、游标
数据库使用游标返回find的执行结果。客户端对游标的实现通常能够对最终结果进行有效控制,从shell中定义一个游标非常简单,就是将查询结果分配给一个变量(用var声明的变量就是局部变量),便创建了一个游标,如下所示:
> var
- Activity的四种启动模式和onNewIntent()
gundumw100
android
Android中Activity启动模式详解
在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作。在Android中Activity的启动模式决定了Activity的启动运行方式。
Android总Activity的启动模式分为四种:
Activity启动模式设置:
<acti
- 攻城狮送女友的CSS3生日蛋糕
ini
htmlWebhtml5csscss3
在线预览:http://keleyi.com/keleyi/phtml/html5/29.htm
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>攻城狮送女友的CSS3生日蛋糕-柯乐义<
- 读源码学Servlet(1)GenericServlet 源码分析
jzinfo
tomcatWebservlet网络应用网络协议
Servlet API的核心就是javax.servlet.Servlet接口,所有的Servlet 类(抽象的或者自己写的)都必须实现这个接口。在Servlet接口中定义了5个方法,其中有3个方法是由Servlet 容器在Servlet的生命周期的不同阶段来调用的特定方法。
先看javax.servlet.servlet接口源码:
package
- JAVA进阶:VO(DTO)与PO(DAO)之间的转换
snoopy7713
javaVOHibernatepo
PO即 Persistence Object VO即 Value Object
VO和PO的主要区别在于: VO是独立的Java Object。 PO是由Hibernate纳入其实体容器(Entity Map)的对象,它代表了与数据库中某条记录对应的Hibernate实体,PO的变化在事务提交时将反应到实际数据库中。
实际上,这个VO被用作Data Transfer
- mongodb group by date 聚合查询日期 统计每天数据(信息量)
qiaolevip
每天进步一点点学习永无止境mongodb纵观千象
/* 1 */
{
"_id" : ObjectId("557ac1e2153c43c320393d9d"),
"msgType" : "text",
"sendTime" : ISODate("2015-06-12T11:26:26.000Z")
- java之18天 常用的类(一)
Luob.
MathDateSystemRuntimeRundom
System类
import java.util.Properties;
/**
* System:
* out:标准输出,默认是控制台
* in:标准输入,默认是键盘
*
* 描述系统的一些信息
* 获取系统的属性信息:Properties getProperties();
*
*
*
*/
public class Sy
- maven
wuai
maven
1、安装maven:解压缩、添加M2_HOME、添加环境变量path
2、创建maven_home文件夹,创建项目mvn_ch01,在其下面建立src、pom.xml,在src下面简历main、test、main下面建立java文件夹
3、编写类,在java文件夹下面依照类的包逐层创建文件夹,将此类放入最后一级文件夹
4、进入mvn_ch01
4.1、mvn compile ,执行后会在