草庐IT

always语句

全部标签

java - Java如何处理IF语句及效率

我只是好奇Java在处理if语句时实际上是如何工作的。(注意:当我在下面说“组件”时,我指的是语句检查的各个部分,例如a、b、c)哪个计算效率更高?if(a&&b&&c){dostuff}或if(a){if(b){if(c){dostuff}}}我之所以问,是因为Java在第一个版本中所做的很重要。它是检查语句中的每一件事还是检查a,如果它是false则取消检查语句的其余部分?如果是这种情况,那么将最有可能失败的组件作为语句中的第一个组件是有意义的。如果每次都检查整个语句,那么将组件拆分为一堆不同的语句更有意义,如第二个示例所示。 最佳答案

java - 替代java中的if语句

我很想看到常规if语句的任何替代方案,例如if(x)doa;if(y)dob;if(z)doc;因此,如您所见,所有if语句都是独立的,没有else条件。请注意XYZ是完全独立的条件,因此不适合切换。 最佳答案 一个“真正面向对象”的答案是为“Rule”定义一个接口(interface)(使用condition()和action()方法),创建3个实现,将它们填充到一个集合中,然后一般地迭代它们作为在:Listrules=....;//your3rulesinitializedheresomehowfor(Ruler:rules){

java - 准备好的语句仅在不调试时抛出异常

我使用这段代码将一些数据插入数据库:Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncon=DriverManager.getConnection("jdbc:odbc:war_odbc");PreparedStatementst=con.prepareStatement("INSERTINTOActors(FirstName,LastName,Age)VALUES(?,?,?)");st.setString(1,"Robert");st.setString(2,"deNiro");st.setInt(3,45);st.e

java - 导入语句是否支持 SpEL?

我想根据某些条件导入不同的资源文件。这可能吗?这些不起作用: 最佳答案 支持SpEL,但Spring很早就解析了import语句。spring在解析import语句时,属性占位符还没有被解析。例如:定义以下属性:import.fileName=${blah}blah=properties.props然后我们可以使用“import.fileName”属性作为导入的参数这解析为:并且大概资源“${blah}”不存在。也就是说,您可以使用属性来解析导入文件名。 关于java-导入语句是否支持S

java - try block 内语句的 Netbeans 声明性提示语法

我想检查并转换一个特定的语句为try-with-ressources形式。但我感觉declarativehintsformat的语法为此我避而不谈。我试过:try{$before$;someMethod($arg1,$arg2,$arg3);$after$;}catch$catches$=>try(Resourceres=acquire($arg1,$arg2,$arg3)){$before$;res.use();$after$;}catch$catches$但应用到我的代码中时,模式永远不会匹配。这是我希望匹配的一些示例代码部分:publicbooleanstep(Stringinp

java - 配置 checkstyle do while 语句样式

我正在尝试在EclipseCheckstyle插件中创建一个规则,该规则将检查do..while语句的while部分是否与结束括号位于同一行。我的目标是使以下内容有效:intcount=0;do{System.out.println(count);count++;}while(count下面必须是无效的:intcount=0;do{System.out.println(count);count++;}while(count我尝试通过创建RightCurlyBraceplacement来做到这一点do关键字的规则(在block下),指定“相同”选项。但是,对于上述两个示例,运行check

java - 我怎么知道准备好的语句是否被缓存?

我将Hikari与SQLServer2016和tomcatlib文件夹中的sqljdbc4-2.0.jar一起使用。我对数据库资源的配置如下:我的数据源配置如下:@Bean(name="dataSource")publicDataSourcegetDataSource()throwsNamingException{HikariConfigconfig=newHikariConfig();config.setMaximumPoolSize(20);config.setDataSourceJNDI("java:comp/env/jdbc/SQLServerDS");config.addDa

Java 枚举 - 枚举上的 Switch 语句与访问者模式 - 性能优势?

我已经搜索了好几天来找到这个基于性能的问题的答案。到目前为止,在浏览Internet之后,我了解到有几种方法可以在Java中使用枚举,详细记录在here中。.好吧,作为初学者肯定会喜欢在switch-case语句中使用枚举,这样可以使代码更加清晰和更好地理解。但另一方面,我们也有一个Visitor模式风格的枚举实现,这确保了类型安全和可扩展性,已讨论here.话虽如此,回到这个问题背后的最初想法,到目前为止,我了解到如果使用枚举正确设计了一个switch-case结构,这确保了case值不稀疏,并且Enum声明是在与switch-case语句相同的编译单元中,java编译器通过实现诸如

java - G1 垃圾收集器 : Why survivor space is always full?

这是jmap-heap命令的输出:SurvivorSpace:regions=52capacity=54525952(52.0MB)used=54525952(52.0MB)free=0(0.0MB)100.0%used我已经执行了很多次,我发现capacity的值总是等于used。我的问题是为什么幸存者空间总是满的(而且这么小)?我指定了-Xmx2200m-Xms2200m-Xmn1100m。(我预计survivorspace应该是220M,也就是说survivorregion应该有更多的空间)--更新--jheap的完整输出:Garbage-First(G1)GCwith2thre

java - 使用 log4j 包装器在日志语句中打印 "source"类

我的应用程序有一个自制的日志记录类,我正在迁移到在幕后使用log4j。但是,由于我使用homebrew类将应用程序的其余日志记录语句传递给log4j,因此输出语句被记录为来自包装类而不是源类。除了为每个日志语句创建新的org.apache.log4j.Logger实例之外,是否有办法确保显示“正确”的来源?我也尝试过使用Logger.log(StringcallerFQCN,Prioritylevel,Objectmessage,Throwablet)方法,但它似乎不起作用,例如:publicclassLogger2{publicstaticorg.apache.log4j.Logge