在为我们的应用程序中的每个循环更新for循环时,我遇到了很多这些"模式":
for (int i = 0, n = a.length; i < n; i++) {
...
}
Run Code Online (Sandbox Code Playgroud)
代替
for (int i = 0; i < a.length; i++) {
...
}
Run Code Online (Sandbox Code Playgroud)
我可以看到你获得了集合的性能,因为你不需要为每个循环调用size()方法.但是有阵列?
所以问题出现了:array.length比常规变量更贵?
我经常看到Java类名称
XmlReader
Run Code Online (Sandbox Code Playgroud)
代替
XMLReader
Run Code Online (Sandbox Code Playgroud)
我的直觉是完全是大写的缩略词,但显然很多人都有不同的看法.或许这只是因为许多代码生成器在使用首字母缩略词时遇到了麻烦......
所以我想听听民意.如何将包含首字母缩略词的类名称大写?
为什么Oracle为每个(!)数据库版本提供了不同的(!)版本的JDBC驱动程序,例如ojdbc14.jar?
这些文件都有不同的大小,因此可能有不同的内容.
背景:
保存数据时,我们得到一个随机且看似不可复制的错误"无效数字"(我们猜测它是时间戳).但这不是任何特别的声明.大多数时候,它保存得很好.每月只需一次无害的陈述就会失败.
所以我仔细看了一下Oracle的下载站点,发现尽管文件共享同名,但没有一个文件大小匹配.
我们的产品运行在由客户维护的数据库上,即客户端运行的任何版本和补丁都是它的本质.
那么我们使用什么驱动程序?最新的(Oracle 11g) - 尽管它通常是9i和 10g数据库?
为什么他们不将所有版本链接到相同的"一个驱动程序适合所有"文件?
或者是否存在微小的差异导致像随机错误这样的影响?
编辑:我错了9i数据库.
我正在寻找一个简单条件表达式的求值器.表达式应包括变量(只读),字符串,数字和一些基本运算符.
例如这样的表达式:
${a} == "Peter" && ( ${b} == null || ${c} > 10 )
Run Code Online (Sandbox Code Playgroud)
到目前为止,我实现了一个相当"神奇"的解析器,它返回一个我可以评估的AST,但我无法相信我是第一个解决这个问题的人.
我可以使用哪些现有代码?
据我所知,JBoss Application Server(AS)的EAP版本只是一堆带有一些糖的社区版JBoss项目.
那么,JBoss EAP 4.3.0对应的JBoss应用服务器的社区版本是什么?
我喜欢eclipse diff/merge透视图,当处理大型项目和需要偶尔合并的多个分支时,缺少一个特性:
有没有办法设置eclipse diff来忽略CVS标签,比如$ Author:$,$ Revision:$等等?
由于这些标签在所有分支中都是不同的,因此"与另一个分支比较"总是会导致几百个文件显示不同的标签,但代码中没有明显的差异.(当然标签只有在修复了分支和头部的几百个文件中的错误之后才会有所不同.但是在我工作的地方发生了很多错误.请不要发表评论.)
如何在插件中为"Open Declaration"(又名F3)注册额外的处理程序/操作/命令?
我想在Java代码中使用字符串文字上的F3导航到声明资源包密钥的文件.我已经准备好了一个上下文菜单操作来完成这项工作.所有缺少的是将其绑定到用户习惯的密钥的方法.
完整注释的扩展点列表的额外功劳.我已经厌倦了不得不花费半天的时间来找到我必须用于功能的扩展点.并且通过"注释"我的意思不仅仅是
Identifier: org.eclipse.ui.workbench.texteditor.quickdiffReferenceProvider
Description: Allows contributors to add reference providers for the quick diff display.
Run Code Online (Sandbox Code Playgroud) 我注意到"有时"我在Eclipse项目中放入源文件夹的资源不会立即复制到输出文件夹("bin").
例如,我使用eclipse编辑器更改属性文件并保存...并且"bin"仍然具有旧版本.
有谁知道究竟是什么触发了复制(以及我如何从插件中触发)?我认为当资源发生变化时会自动发生.
- 编辑 -
通过从插件中触发它来澄清我的意思:我有一个插件,它依赖于输出文件夹中的最新资源,但显然我的插件被调用时资源已过时.这就是为什么我需要更好地了解发生了什么以及如何在需要时强制它.
有没有办法让括号中的表达式不被捕获?
我有一个像这样的表达式:
(A(B|C)?) D (E(F|G)?)
Run Code Online (Sandbox Code Playgroud)
记下可选块(B|C)?和(F|G)?需要括号.
我对这些小组中的内容并不感兴趣.我想要的只是抓住完整的第一个和最后一个块.
但是由于可选块,组编号将改变,我无法判断是否(E(F|G)?)被捕获为组2或3.
我可以告诉表达式忽略结果组中的可选部分,因此组编号将保持不变吗?或者我可以使可选的捕获总是出现在组中 - 即使它们是空的?
我想使用Apache的commons-net使用代理服务器建立FTP连接.
但是看看这个FTPClient是否支持通过FTP代理服务器的FTP连接?让我担心
我必须干涉系统属性,Sun文档声明"如果指定了socksProxyHost,那么所有TCP套接字都将使用SOCKS代理服务器建立连接或接受连接."
WTH?所有TCP套接字?我的数据库连接怎么样?或者其他FTP连接我可能想要在不使用代理的情况下同时打开?他们都会受到影响吗?
有没有其他方法可以做到这一点,不会弄乱我的应用程序的其余部分?