- MPV Player(MPV播放器)
fhfhgfdgdsgi1
tornado
链接:https://pan.quark.cn/s/a6b4b644bb16MPVPlayer(MPV播放器)是mplayer2和MPlayer的一个分支,支持多种视频文件格式、音频和视频编解码器以及字幕类型。它通过FFmpeg提供硬件加速,支持VDPAU和VAAPI以及Windows上的DXVA2,以及VDA和VideoToolbox视频。mpv可以播放互联网广播流、视频流、“实时”应用各种音频
- UVa12303 Composite Transformations
惆怅客123
UVa部分题目解题报告计算几何icpcUVa仿射变换矩阵平面的一般式平面的三点式
UVa12303CompositeTransformations题目链接题意输入格式输出格式分析AC代码题目链接 UVa12303CompositeTransformations题意 空间中有n个点和m个平面,你的任务是按顺序向它们施加t个变换,输出每个点的最终位置和每个平面的最终方程。一共有3种变换,如表下表所示。变换说明TRANSLATEabc点(x,y,z)变成(x+a,y+b,z+c)
- UVa11604 General Sultan
惆怅客123
UVa部分题目解题报告图论icpcUVa图论建模有向图dfs
UVa11604GeneralSultan题目链接题意分析AC代码题目链接 UVA-11604GeneralSultan题意 给出一些0和1组成的模式串,问是否存在一个串使得有多种方案将这个串分解成模式串。 给一个包含n(n≤100)个符号的二进制编码方式,是否存在一个二进制序列,存在至少两种解码方法。比如{a=01,b=001,c=01001}是有歧义的,因为01001可以解码为a+b或者
- UVa10572 Black & White
惆怅客123
UVa部分题目解题报告动态规划插头dp染色模型轮廓线动态规划最小表示法
UVa10572Black&White题目链接题意输入格式输出格式分析AC代码题目链接 UVa10572Black&White题意 在一个m行n列的网格中已经有一些格子涂上了黑色或者白色。你的任务是把其他格子也涂上黑色或者白色,使得任意2×2子网格不会全黑或者全白,且所有黑格四连通,所有白格也四连通。输出方案总数和其中一组方案。 比如,在下图所示的4幅图中,第一幅中黑格不连通,第三幅中存在2
- uniapp uview u-textarea maxlength无效问题
尤小白
uview组件库uni-app前端
watch:{'dataModel.question':{handler(val){if(val.length>=200){this.dataModel.question=val.substr(0,200)}},immediate:true,deep:true,},},
- linux下搭建radius服务器,CentOS下Radius服务器搭建
Duke Yu
一、实现环境:1.系统:CentOSrelease6.6(Final)2.需要软件包:1)freeradius-2.1.12-6.e16.x86_64freeradius-MySQL-2.1.12-6.e16.x86_642)ppp-2.4.5-5.e16.x86_643)rp-pppoe-3.10-11.e16.x86_644)mysql-5.1.73-3.e16_5.x86_64mysql-d
- CentOS下Radius服务器搭建
citelao
Linux
一、实现环境:1.系统:CentOSrelease6.6(Final)2.需要软件包:1)freeradius-2.1.12-6.e16.x86_64freeradius-mysql-2.1.12-6.e16.x86_642)ppp-2.4.5-5.e16.x86_643)rp-pppoe-3.10-11.e16.x86_644)mysql-5.1.73-3.e16_5.x86_64mysql-d
- 使用setimmediate实现可伸缩执行的脚本
load_life
html5javascript浏览器functionchromeperformanceie
看过我对JavaScript性能优化相关的讨论的同学们一定很了解我的一个癖好,就是将一大段的script分解成多个块来执行。通过使用setTimeout(),你可以去改变特定代码执行的时间,从而做到让UI现场执行已经在队列里的任务。比如,你可以通过这样的方式把要执行的代码在50ms后加到UI线程队列里:setTimeout(function(){//dosomething},50)那么,在50ms
- 数据库事务,回滚到指定点 oracle java
xiaoyustudiowww
jvmjavaoracle
======oracle表sqlCREATETABLE"SMALL19RAIN"."R_TABLE_STU"("NAME"VARCHAR2(200BYTE),"AGE"NUMBER,"STU_ID"NUMBERNOTNULLENABLE,"DATARAIN"VARCHAR2(200BYTE))SEGMENTCREATIONIMMEDIATEPCTFREE10PCTUSED40INITRANS1MA
- 主要目录的权限
千航@abc
linux服务器运维
/r-xr-xr-x555/root(管理员的家目录)r-xr-x---550/home/hello(名为hello的普通用户的家目录)rwx------700/tmprwxrwxrwt1777/etcrwxr-xr-x755/usrrwxr-xr-x755/etc/passwdrw-r--r--644/etc/shadow---------000root用户创建文件默认权限rw-r--r--64
- vue监听中的watch监听(详解)
皓月当空hy
vuevue.js
1、watch选项用于监听数据的变化并执行相应的回调函数。watch选项提供了两个重要的属性:deep和immediate。1.1、深度监听(deep:true)当你需要监听一个对象或数组内部的变化时,可以使用deep:true。这会使得watch监听器递归地监听对象或数组内部的所有嵌套属性的变化。//示例:watch:{ myObject:{ handler(newVal,oldVal){
- CS536 linear-search-like algorithm
后端
CS536Assignment3Due:Feb28th,2025EarlyBirdDue:Feb26th,2025(Ethics:Anybehavioronanyhomeworkorexamthatcouldbeconsideredcopyingorcheatingwillresultinanimmediatezeroontheassignmentforallpartiesinvolved.See
- UVA10608 Friends 题解
W9095
算法c++
0x01STEP1读题审题UVA10608Friends题面翻译读完题就知道,这题用并查集。本人太弱,就用带权并查集做。0x02STEP2主要步骤实际上,带权并查集的几种操作并不复杂,是基础并查集的扩展版。初始化:for(inti=1;iusingnamespacestd;intn,m,t,f[300000],num[300000];intgetf(intx){if(f[x]==x)returnx
- Windows逆向工程入门之汇编指令格式与操作数类型
0xCC说逆向
汇编windowsarm开发WIN32c语言逆向安全
公开视频->链接点击跳转公开课程博客首页->链接点击跳转博客主页目录一、汇编指令格式基础二、操作数类型详解1.立即数(Immediate)2.寄存器操作数(Register)3.内存操作数(Memory)4.端口操作数(Port)三、汇编指令格式分类1.零操作数指令2.单操作数指令3.双操作数指令4.三操作数指令四、逆向工程中的指令解析技巧五、拓展知识点一、汇编指令格式基础汇编指令由操作码(Opc
- Oracle系列---【如何修改Oracle字符集?】
少年攻城狮
oracle数据库
1.字符集修改的一般步骤:su-oracle#切换到oracle用户sqlplus/assysdba#以sysdba身份登录到数据库shutdownimmediate;#停止数据库startupmount;#启动数据库到MOUNT状态,数据库在这个状态下可以修改字符集然后尝试执行以下SQL命令来修改字符集:alterdatabasecharactersetZHS16GBK;#将字符集修改为ZHS1
- 简单枚举 / 枚举排列
Zhouqi_Hua
Henry学C++Henry的ACM学习笔记蓝桥杯c++算法深度优先力扣
本文参考《算法竞赛入门经典》第七章《暴力枚举法》,提出的是暴力“列举”出所有可能性并一一试验的方法。目录1简单枚举2枚举排列2.1生成1~n的排列2.2生成可重集的排列2.3解答树2.4下一个排列一、简单枚举简单枚举就是枚举一些例如整数、子串的简单类型。但是如果拿到题目直接上手枚举,可能会导致枚举次数过多(甚至引起TLE)。因此在枚举前先要进行分析。比如例题除法(Division,Uva725):
- vant4 van-list组件的使用
a濯
javascript前端
0"v-model:loading="loading":finished="finished":immediate-check="false"finished-text="没有更多了"@load="onLoad">//加载constloading=ref(false);//全部加载完毕constfinished=ref(false);//加载更多触底事件constonLoad=async()=>{
- watch与computed的区别
vue的watch细节watch的常用方法watch:{isStatus(newValue,oldValue){console.log('新',newValue,'旧',oldValue)}}当第一次赋值时就调用,需要使用immediate,回调函数为handlerwatch:{isStatus:{immediate:true,handler(newValue,oldValue){console.
- 聊聊PushConsumer与SimpleConsumer拉取消息的区别
rocketmq
序本文主要研究一下rocketmq5的PushConsumer与SimpleConsumer拉取消息的区别ProcessQueueImplorg/apache/rocketmq/client/java/impl/consumer/ProcessQueueImpl.javaprivatevoidreceiveMessageImmediately(StringattemptId){finalClien
- SQL script 會計記賬 Debit-Credit Bookkeeping
geovindu
数据库编程sqlinserttabledatejoinfloat
---會計記賬Debit-CreditBookkeepingCREATETABLE#geovindu(AccountVARCHAR(20),--賬號[Date]DATETIME,--時間DebitDECIMAL(9,2),--借入CreditDECIMAL(9,2)--貸出)GOINSERTINTO#geovinduVALUES('10139','2007-08-31',2025.91,0.0)I
- python解决油田问题(Oil Deposits,UVa572)
开心是天下最可爱的小猫
深度优先算法
题目描述:某石油勘探公司正在按计划勘探地下油田资源,工作在一片长方形的地域中。他们首先将该地域划分为许多小正方形区域,然后使用探测设备分别探测每一块小正方形区域内是否有油。含有油的地块称为油田。如果两个油田相邻,则它们是相同油藏的一部分。油藏可能非常大并且可能包含许多油田。您的工作是确定长方形的地域中包含多少不同的油藏。输入:文件包含一个或多个网格。每个网格以包含m和n的行开始,n是数字网格中的行
- 1173. 即时食物配送 I(SQL)
keep moving 123
databaseleetcodeeasyleetcode
题目:https://leetcode-cn.com/problems/immediate-food-delivery-i/配送表:Delivery+-----------------------------+---------+|ColumnName|Type|+-----------------------------+---------+|delivery_id|int||customer_
- 关闭oracle审计功能
Recody
oracle数据库
关闭oracle审计功能1.sqlplus/nolog2.conn/assysdba或者connsys/assysdba3.showparameteraudit_trail显示value为DB就是已经开启了归档的。如果显示为FALSE,表示已经关闭了归档的。4.altersystemsetaudit_trail=FALSEscope=spfile;5.shutdownimmediate;6.sta
- Linux 权限体系详解:、777、755、644、600、chmod、chown、chgrp 和 umask;SUID、SGID 和 Sticky Bit;ACL (访问控制列表) 是什么?
小胡说技书
手册/开发图谱运维linux运维服务器
文章目录1.引言1.1为什么学习Linux权限?1.2本文目标2.Linux权限基础概念2.1权限模型2.2权限类型2.3权限表示法2.3.1字母表示法2.3.2数字表示法2.3.3字母与数字表示法对比2.3.4案例:字母与数字的权限切换3.常见权限分配方法对比表格3.1使用`chmod`分配权限3.2使用`chown`和`chgrp`修改拥有者和用户组3.3使用`umask`设置默认权限4.高级
- android备忘录app设计er图,图、流程图、ER图怎么画及常见画图工具(流程图文章汇总)...
weixin_39714164
跟我一起写Makefile---变量(嵌套变量+追加变量+overrid+多行变量+环境变量+目标变量+模式变量)目录(?)[-]使用变量一变量的基础二变量中的变量三变量高级用法四追加变量值五override指示符六多行变量七环境变量八目标变量九模式变量使用变量————在Makefil...UVA10537TheToll!Rev
- 总结 JavaScript 中的变体函数调用方式
javascript前端
JavaScript中函数调用有许多独特的变体方式,例如~function、-function等。这些变体不仅展现了JavaScript语言的灵活性,也可以在某些场景下让代码更加简洁。本文将通过示例代码和解析,来全面剖析这些特殊的函数调用方式及其返回值的区别。IIFE的基础:自执行函数在深入了解特殊调用方式之前,我们先来复习一下IIFE(ImmediatelyInvokedFunctionExpr
- UVA 674 Coin Change(完全背包求解方案数)
沙雕.
背包问题DP
题目链接:https://vjudge.net/problem/UVA-674解题思路:情景:一定容量V的包,有n样物品,每样无数件,重量wi,价值vi,问你背包最多有多少种可以装满的不同方案?做法:①dp[j]表示当前只装前i件物品最大的价值②状态转移方程:dp[j]=(j>=w[i])?dp[j]+dp[j-w[i]]:dp[j];如果当前的背包不能装下第i件物品,那么就等于前i-1件dp[j
- Vue-技巧
菜鸟出动大神让路
1.watch一个变量的时候,初始时并不会执行。需要在create的时候手动调用一次。可以在watch的时候添加immediate属性,这样初始化的时候也会触发。2.Attrs和Listeners。V-bind="$attrs",V-bon="listeners"来获取到没有定义的props以及方法3.Object.freeze:1.大数据的时候,如果有一些数据不需要响应式变化,既可以拆分组件,做
- ARM SIMD instruction -- movi
xiaozhiwise
Assembly汇编
MOVIMoveImmediate(vector).ThisinstructionplacesanimmediateconstantintoeveryvectorelementofthedestinationSIMD&FPregister。立即移动(向量)。此指令将一个立即常数放入目标SIMD&FP寄存器的每个向量元素中。40294c:1e602118fcmped8,#0.0402950:5400
- 数据结构总结之最短路径
@阿奇@
最短路径图论
1.弗洛伊德算法模板题:uva10000#include#includeusingnamespacestd;intdis[105][105];intmain(){intn;intt=0;while(cin>>n,n){inta,b,s;memset(dis,-1,sizeof(dis));cin>>s;while(cin>>a>>b,a)dis[a][b]=1;inti,j;for(intk=1;
- 多线程编程之join()方法
周凡杨
javaJOIN多线程编程线程
现实生活中,有些工作是需要团队中成员依次完成的,这就涉及到了一个顺序问题。现在有T1、T2、T3三个工人,如何保证T2在T1执行完后执行,T3在T2执行完后执行?问题分析:首先问题中有三个实体,T1、T2、T3, 因为是多线程编程,所以都要设计成线程类。关键是怎么保证线程能依次执行完呢?
Java实现过程如下:
public class T1 implements Runnabl
- java中switch的使用
bingyingao
javaenumbreakcontinue
java中的switch仅支持case条件仅支持int、enum两种类型。
用enum的时候,不能直接写下列形式。
switch (timeType) {
case ProdtransTimeTypeEnum.DAILY:
break;
default:
br
- hive having count 不能去重
daizj
hive去重having count计数
hive在使用having count()是,不支持去重计数
hive (default)> select imei from t_test_phonenum where ds=20150701 group by imei having count(distinct phone_num)>1 limit 10;
FAILED: SemanticExcep
- WebSphere对JSP的缓存
周凡杨
WAS JSP 缓存
对于线网上的工程,更新JSP到WebSphere后,有时会出现修改的jsp没有起作用,特别是改变了某jsp的样式后,在页面中没看到效果,这主要就是由于websphere中缓存的缘故,这就要清除WebSphere中jsp缓存。要清除WebSphere中JSP的缓存,就要找到WAS安装后的根目录。
现服务
- 设计模式总结
朱辉辉33
java设计模式
1.工厂模式
1.1 工厂方法模式 (由一个工厂类管理构造方法)
1.1.1普通工厂模式(一个工厂类中只有一个方法)
1.1.2多工厂模式(一个工厂类中有多个方法)
1.1.3静态工厂模式(将工厂类中的方法变成静态方法)
&n
- 实例:供应商管理报表需求调研报告
老A不折腾
finereport报表系统报表软件信息化选型
引言
随着企业集团的生产规模扩张,为支撑全球供应链管理,对于供应商的管理和采购过程的监控已经不局限于简单的交付以及价格的管理,目前采购及供应商管理各个环节的操作分别在不同的系统下进行,而各个数据源都独立存在,无法提供统一的数据支持;因此,为了实现对于数据分析以提供采购决策,建立报表体系成为必须。 业务目标
1、通过报表为采购决策提供数据分析与支撑
2、对供应商进行综合评估以及管理,合理管理和
- mysql
林鹤霄
转载源:http://blog.sina.com.cn/s/blog_4f925fc30100rx5l.html
mysql -uroot -p
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@centos var]# service mysql
- Linux下多线程堆栈查看工具(pstree、ps、pstack)
aigo
linux
原文:http://blog.csdn.net/yfkiss/article/details/6729364
1. pstree
pstree以树结构显示进程$ pstree -p work | grep adsshd(22669)---bash(22670)---ad_preprocess(4551)-+-{ad_preprocess}(4552) &n
- html input与textarea 值改变事件
alxw4616
JavaScript
// 文本输入框(input) 文本域(textarea)值改变事件
// onpropertychange(IE) oninput(w3c)
$('input,textarea').on('propertychange input', function(event) {
console.log($(this).val())
});
- String类的基本用法
百合不是茶
String
字符串的用法;
// 根据字节数组创建字符串
byte[] by = { 'a', 'b', 'c', 'd' };
String newByteString = new String(by);
1,length() 获取字符串的长度
&nbs
- JDK1.5 Semaphore实例
bijian1013
javathreadjava多线程Semaphore
Semaphore类
一个计数信号量。从概念上讲,信号量维护了一个许可集合。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个 release() 添加一个许可,从而可能释放一个正在阻塞的获取者。但是,不使用实际的许可对象,Semaphore 只对可用许可的号码进行计数,并采取相应的行动。
S
- 使用GZip来压缩传输量
bijian1013
javaGZip
启动GZip压缩要用到一个开源的Filter:PJL Compressing Filter。这个Filter自1.5.0开始该工程开始构建于JDK5.0,因此在JDK1.4环境下只能使用1.4.6。
PJL Compressi
- 【Java范型三】Java范型详解之范型类型通配符
bit1129
java
定义如下一个简单的范型类,
package com.tom.lang.generics;
public class Generics<T> {
private T value;
public Generics(T value) {
this.value = value;
}
}
- 【Hadoop十二】HDFS常用命令
bit1129
hadoop
1. 修改日志文件查看器
hdfs oev -i edits_0000000000000000081-0000000000000000089 -o edits.xml
cat edits.xml
修改日志文件转储为xml格式的edits.xml文件,其中每条RECORD就是一个操作事务日志
2. fsimage查看HDFS中的块信息等
&nb
- 怎样区别nginx中rewrite时break和last
ronin47
在使用nginx配置rewrite中经常会遇到有的地方用last并不能工作,换成break就可以,其中的原理是对于根目录的理解有所区别,按我的测试结果大致是这样的。
location /
{
proxy_pass http://test;
- java-21.中兴面试题 输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 , 使其和等于 m
bylijinnan
java
import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
public class CombinationToSum {
/*
第21 题
2010 年中兴面试题
编程求解:
输入两个整数 n 和 m ,从数列 1 , 2 , 3.......n 中随意取几个数 ,
使其和等
- eclipse svn 帐号密码修改问题
开窍的石头
eclipseSVNsvn帐号密码修改
问题描述:
Eclipse的SVN插件Subclipse做得很好,在svn操作方面提供了很强大丰富的功能。但到目前为止,该插件对svn用户的概念极为淡薄,不但不能方便地切换用户,而且一旦用户的帐号、密码保存之后,就无法再变更了。
解决思路:
删除subclipse记录的帐号、密码信息,重新输入
- [电子商务]传统商务活动与互联网的结合
comsci
电子商务
某一个传统名牌产品,过去销售的地点就在某些特定的地区和阶层,现在进入互联网之后,用户的数量群突然扩大了无数倍,但是,这种产品潜在的劣势也被放大了无数倍,这种销售利润与经营风险同步放大的效应,在最近几年将会频繁出现。。。。
如何避免销售量和利润率增加的
- java 解析 properties-使用 Properties-可以指定配置文件路径
cuityang
javaproperties
#mq
xdr.mq.url=tcp://192.168.100.15:61618;
import java.io.IOException;
import java.util.Properties;
public class Test {
String conf = "log4j.properties";
private static final
- Java核心问题集锦
darrenzhu
java基础核心难点
注意,这里的参考文章基本来自Effective Java和jdk源码
1)ConcurrentModificationException
当你用for each遍历一个list时,如果你在循环主体代码中修改list中的元素,将会得到这个Exception,解决的办法是:
1)用listIterator, 它支持在遍历的过程中修改元素,
2)不用listIterator, new一个
- 1分钟学会Markdown语法
dcj3sjt126com
markdown
markdown 简明语法 基本符号
*,-,+ 3个符号效果都一样,这3个符号被称为 Markdown符号
空白行表示另起一个段落
`是表示inline代码,tab是用来标记 代码段,分别对应html的code,pre标签
换行
单一段落( <p>) 用一个空白行
连续两个空格 会变成一个 <br>
连续3个符号,然后是空行
- Gson使用二(GsonBuilder)
eksliang
jsongsonGsonBuilder
转载请出自出处:http://eksliang.iteye.com/blog/2175473 一.概述
GsonBuilder用来定制java跟json之间的转换格式
二.基本使用
实体测试类:
温馨提示:默认情况下@Expose注解是不起作用的,除非你用GsonBuilder创建Gson的时候调用了GsonBuilder.excludeField
- 报ClassNotFoundException: Didn't find class "...Activity" on path: DexPathList
gundumw100
android
有一个工程,本来运行是正常的,我想把它移植到另一台PC上,结果报:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.mobovip.bgr/com.mobovip.bgr.MainActivity}: java.lang.ClassNotFoundException: Didn't f
- JavaWeb之JSP指令
ihuning
javaweb
要点
JSP指令简介
page指令
include指令
JSP指令简介
JSP指令(directive)是为JSP引擎而设计的,它们并不直接产生任何可见输出,而只是告诉引擎如何处理JSP页面中的其余部分。
JSP指令的基本语法格式:
<%@ 指令 属性名="
- mac上编译FFmpeg跑ios
啸笑天
ffmpeg
1、下载文件:https://github.com/libav/gas-preprocessor, 复制gas-preprocessor.pl到/usr/local/bin/下, 修改文件权限:chmod 777 /usr/local/bin/gas-preprocessor.pl
2、安装yasm-1.2.0
curl http://www.tortall.net/projects/yasm
- sql mysql oracle中字符串连接
macroli
oraclesqlmysqlSQL Server
有的时候,我们有需要将由不同栏位获得的资料串连在一起。每一种资料库都有提供方法来达到这个目的:
MySQL: CONCAT()
Oracle: CONCAT(), ||
SQL Server: +
CONCAT() 的语法如下:
Mysql 中 CONCAT(字串1, 字串2, 字串3, ...): 将字串1、字串2、字串3,等字串连在一起。
请注意,Oracle的CON
- Git fatal: unab SSL certificate problem: unable to get local issuer ce rtificate
qiaolevip
学习永无止境每天进步一点点git纵观千象
// 报错如下:
$ git pull origin master
fatal: unable to access 'https://git.xxx.com/': SSL certificate problem: unable to get local issuer ce
rtificate
// 原因:
由于git最新版默认使用ssl安全验证,但是我们是使用的git未设
- windows命令行设置wifi
surfingll
windowswifi笔记本wifi
还没有讨厌无线wifi的无尽广告么,还在耐心等待它慢慢启动么
教你命令行设置 笔记本电脑wifi:
1、开启wifi命令
netsh wlan set hostednetwork mode=allow ssid=surf8 key=bb123456
netsh wlan start hostednetwork
pause
其中pause是等待输入,可以去掉
2、
- Linux(Ubuntu)下安装sysv-rc-conf
wmlJava
linuxubuntusysv-rc-conf
安装:sudo apt-get install sysv-rc-conf 使用:sudo sysv-rc-conf
操作界面十分简洁,你可以用鼠标点击,也可以用键盘方向键定位,用空格键选择,用Ctrl+N翻下一页,用Ctrl+P翻上一页,用Q退出。
背景知识
sysv-rc-conf是一个强大的服务管理程序,群众的意见是sysv-rc-conf比chkconf
- svn切换环境,重发布应用多了javaee标签前缀
zengshaotao
javaee
更换了开发环境,从杭州,改变到了上海。svn的地址肯定要切换的,切换之前需要将原svn自带的.svn文件信息删除,可手动删除,也可通过废弃原来的svn位置提示删除.svn时删除。
然后就是按照最新的svn地址和规范建立相关的目录信息,再将原来的纯代码信息上传到新的环境。然后再重新检出,这样每次修改后就可以看到哪些文件被修改过,这对于增量发布的规范特别有用。
检出