草庐IT

避免全表扫描

全部标签

java - 如何用多线程扫描目录

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我有一个单线程的目录扫描程序。扫描文件时,我必须读取属性信息并将其插入数据库。我有两个问题。为了提高性能:如何使用多线程进行扫描?(扫描安卓手机的sd卡​​)如何优化批量插入数据库?下面是代码list:voidscan(){Filefile=newFile("/mnt/sdcard");fun(file);}voidfun(Filefile){if(!fi

java - 避免在 If 条件中使用文字

这部分代码在sonar中被pmd拒绝了:publicStringgetFoo(){Stringfoo=System.getProperty("foo");if(foo==null){foo=System.getenv("foo");}elseif(foo==null){foo="defaultFoo";}returnfoo;}它说“避免在If条件下使用文字”。谁能告诉我这有什么问题或这条规则试图产生什么影响? 最佳答案 为什么不使用:publicStringgetFoo(){Stringfoo=System.getProperty(

java - 为什么要避免单元测试中的条件逻辑以及如何避免?

关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭7年前。Improvethisquestion假设有以下类:publicclassProduct{privateStringname;privatedoubleprice;//Constructors,gettersandsetters}publicclassProducts{privateListproducts;//CRUDmethodspublicdoublegetTotalPrice(){//calculatesthepriceofa

java - 如何避免 jOOQ 中表别名的引号

我有以下选择查询创建:finalDSLContextcreate=DSL.using(...,SQLDialect.POSTGRES);create.select(DSL.field("identifier"),DSL.field("name"),create.selectCount().from(DSL.table("person")).where(DSL.field("identifier").eq(DSL.field("personOuter.identifier"))).asField("count")).from(DSL.table("person").as("personO

java - 避免正面比较的“占位符”字符?

我正在处理CodingBatexercisesforJava.我遇到了以下问题:Given2arraysthatarethesamelengthcontainingstrings,comparethe1ststringinonearraytothe1ststringintheotherarray,the2ndtothe2ndandsoon.Countthenumberoftimesthatthe2stringsarenon-emptyandstartwiththesamechar.Thestringsmaybeanylength,including0.我的代码是这样的:publicin

java - 设计模式如何在使用 List 时避免 instanceOf

假设您有一个包含菜肴的菜单,每道菜都应该以多种语言提供(法语、英语、阿拉伯语……)。Dish类包含一个列表Language类型对象。classDish{ListlanguagesvoidaddLanguage(Languagelg){...}}classLanguage{getDescription(){}}classFrenchextendsLanguage{}classMenu{Listdishes}如何避免使用instanceof什么时候需要对那道菜的特定语言的描述?我是否应该在dish类中为每种语言定义一个get方法:getFrench()、getArabic(),..?或者我

java - 避免 "cannot retry due to server authentication, in streaming mode"错误,不涉及任何 CXF

我已经在很多地方搜索过处理过这个HttpRetryException问题的其他人,但我发现的所有人都遇到过一些名为CXF的apache服务,我没有使用它。我使用的是java.net.HttpURLConnection。我创建一个连接,将setRequestProperty用于“授权”,获取输出流,写入一堆字节,然后尝试读取回复输入流。大多数时候这都有效,但有时我会遇到上述异常。我无法避免流式传输,因为有时我需要写入比内存中所能存储的更大的文件,而且无论如何,我发现的大多数搜索结果都表明这不是真正的问题。他们通常按照bindingProvider.getRequestContext().

java - 如何将 Spring 组件扫描限制为仅在我的 war 中的文件?

我正在使用Spring的组件扫描在我的应用程序中查找bean。然而,当应用程序部署在我们的暂存服务器(部署了很多应用程序的JBoss5)时,性能比开发(也是JBoss5,但应用程序很少)慢得多。组件扫描耗时较长。我怀疑这是由于更大的类路径造成的?有没有一种简单的方法可以让Spring只在我的war文件中查找bean?即WEB-INF/classes和WEB-INF/lib?或者有其他解决方案吗? 最佳答案 两个提示;尽量使基本包尽可能具体:您可以在基本包属性中提供多个包,以逗号分隔。使用过滤器;检查文档here.-您可以指定要扫描的

java - HashMap Java 避免冲突的例子

我正在使用HashMap在Java中存储key和Object.我阅读了有关hashmap冲突的信息,并试图通过使用链表来避免它。我在网上做了一些搜索,但找不到如何执行此操作的示例。有人能给我指点一个用链表实现HashMap的在线资源吗? 最佳答案 JavaHashMap已经以这种方式为您处理了冲突。您需要做的就是确保覆盖并实现key的hashCode()和equals()方法。每个哈希码将映射到一个特定的“桶”。每个桶都包含一个用于冲突情况的链表。避免(或者更确切地说,最小化)冲突的唯一方法是创建一个散列函数,在整个HashMap中

java - 我怎样才能让这个 switch 语句使用扫描仪工作?

我正在尝试编写一个程序,将字母表中的任何字母(大写或小写)转换为拼音字母表。例如,如果我输入“A”或“a”,我的程序将给我(将其更改为)“Alpha”。我对这个和switch语句做了很多研究,但我一直被卡住。我意识到我不能在扫描仪中使用“char”。但是,当我将“char”更改为“String”时,我的switch语句搞砸了(特别是代码中的toUpperCase带有下划线。我看不出我的错误。这就是我所做的远:importjava.util.Scanner;publicclassPhoneticTranslate{publicstaticvoidmain(String[]args){ch