"java -server"和"java -client"之间有什么实际的区别吗?我在Sun的网站上找到的只是一个模糊的" - 服务器启动较慢但应该运行得更快".有什么真正的区别?(目前使用JDK 1.6.0_07.)
是否有标准(最好是Apache Commons或类似的非病毒)库用于在Java中进行"glob"类型的匹配?当我不得不在Perl中做类似的事情时,我只是将所有的" .
"改为" \.
"," *
"改为" .*
"和" ?
"改为" .
"等等,但是我想知道是否有人做了为我工作.
类似的问题:从glob表达式创建正则表达式
我需要编写一个Java Comparator类来比较Strings,但是有一个转折.如果它比较的两个字符串在字符串的开头和结尾是相同的,并且不同的中间部分是整数,则根据这些整数的数值进行比较.例如,我希望以下字符串以它们显示的顺序结束:
如您所见,字符串中可能还有其他整数,因此我不能只使用正则表达式来分解任何整数.我正在考虑从一开始就走绳子,直到找到一点不匹配,然后走到最后,直到找到一个不匹配的位,然后比较中间的位到正则表达式"[0-9] +",如果比较,则进行数值比较,否则进行词法比较.
有没有更好的办法?
更新我不认为我可以保证字符串中的其他数字,可能匹配的数字,周围没有空格,或者不同的数字确实有空格.
在使用vi和gvim 20年之后,我最近半转换为Eclipse.我想念gvim的一件事就是我可以将一堆不同的代码片段剪切成命名缓冲区,并在做重复常用习语之类的时候随意粘贴它们.例如,我有它所以"ap
粘贴
DatabaseHandle handle = null;
try
{
handle = DatabaseConnectionPool.newHandle();
Run Code Online (Sandbox Code Playgroud)
然后"bp
粘贴
handle.commit();
}
finally
{
handle.rollback();
DatabaseConnectionPool.returnHandle(handle);
}
Run Code Online (Sandbox Code Playgroud)
我可以在一天中一遍又一遍地重复它们.在另一个问题的答案中,有人提到你可以在Eclipse中"管理代码片段",但没有提到如何.所以现在我问:你如何管理Eclipse中的代码片段?
(注意:我意识到这很接近你如何记录你的数据库结构?但我不认为它是相同的.)
我已经开始在一个拥有数百个表和视图的数据库的地方工作,所有这些都使用含有非常少的元音的神秘名称,而且没有文档.他们也不允许对数据库模式进行无偿更改,也不能触摸除我自己的机器上的测试数据库之外的任何数据库(它会被吹走并定期重新创建),因此我无法添加可以帮助任何人的注释.
我尝试使用"Toad"来创建一个ER图,但是在让它连续运行48小时之后它仍然没有产生任何可见的东西,我需要我的电脑.我正在和其他一些最近招聘的人员谈话,我们都建议每当我们弄清楚某个特定表格或其中某些列的含义时,我们应该在开发人员维基中更新它.
那么有什么好办法呢?只需列出表格/视图及其列,并在我们去的时候填写它们?我必须掌握的基本工具是Toad,Oracle的"SQL Developer",MS Office和Visio.
我在Django中有两个模型.第一个是工作职能(职位)报告到哪些其他职位的层次结构,第二个是人员和他们持有的工作职能.
class PositionHierarchy(model.Model):
pcn = models.CharField(max_length=50)
title = models.CharField(max_length=100)
level = models.CharField(max_length=25)
report_to = models.ForeignKey('PositionHierachy', null=True)
class Person(model.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
...
position = models.ForeignKey(PositionHierarchy)
Run Code Online (Sandbox Code Playgroud)
当我有人员记录并且我想找到该人的经理时,我必须这样做
manager = person.position.report_to.person_set.all()[0]
# Can't use .first() because we haven't upgraded to 1.6 yet
Run Code Online (Sandbox Code Playgroud)
如果我找到一个人QuerySet
,我可以加入(并避免第二次访问数据库)使用position和report_to using Person.objects.select_related('position', 'position__reports_to').filter(...)
,但有没有办法避免再次访问数据库以获取person_set?我尝试添加'position__reports_to__person_set'
或刚刚position__reports_to__person
到select_related
,但是这似乎并没有更改查询.这prefetch_related
是为了什么?
我想创建一个自定义管理器,这样当我进行查询以获取Person记录时,我也会获得他们的PositionHeirarchy和他们的经理的Person记录,而不会再往返数据库.这是我到目前为止:
class PersonWithManagerManager(models.Manager):
def get_query_set(self):
qs = super(PersonWithManagerManager, self).get_query_set()
return qs.select_related(
'position',
'position__reports_to',
).prefetch_related(
)
Run Code Online (Sandbox Code Playgroud) django django-models django-queryset django-managers django-1.5
我正在代码审查我的一个同事刚刚做的更改,并且他添加了一堆调用Date.toMonth()
,Date.toYear()
以及其他已弃用的Date
方法.所有这些方法都在JDK 1.1中被弃用了,但他坚持认为可以使用它们因为它们还没有消失(我们使用的是JDK 1.5)而且我说它们现在可能会在任何一天消失而且他应该使用它们Calendar
方法.
Sun/Oracle实际上是在说这些事情何时消失,还是@deprecated
仅仅意味着你失去了风格点?
多年前,当我开始一个小型开发项目时,其他开发人员和我坐下来同意妥协支撑和压痕样式.这不是任何人的最爱,但这是没有人真正讨厌的事情.我为该样式编写了一个.indentrc配置文件,并且有一个签入触发器,它会在签入时对每个文件运行缩进.这使得它与你编写代码的样式无关,在任何人看到它之前,它最终会成为集团的标准.这具有一致性的优点.但我从来没有见过其他人这样做过.
那么你们其他人怎么说呢?好主意还是可憎的?
$query = "SELECT * FROM `table`";
$results = mysql_query($query, $connection);
Run Code Online (Sandbox Code Playgroud)
如果'table'没有行.最简单的检查方法是什么?
我是Subversion的新手,但我多年来一直使用ClearCase等其他版本控制系统.
我的老板让我修复这个项目,以便它可以用Maven而不是Ant构建.我必须要做的一件重要的事情就是移动src/com
到src/main/java/com
并移动test/com
到src/test/java/com
我使用svn mv
命令执行的操作.我愚蠢地假设,因为我使用Subversion命令移动目录,Subversion会知道事情已被移动.当我将我的分支合并到主干时,它似乎工作.但是现在有人刚刚完成了在我工作之前分支的分支机构的工作.因此我们将他的东西合并到主干中,基本上Subversion似乎认为"好吧,他做了更改src/com/foo/bar/baz.java
,但该目录不再存在,所以它无关紧要,所以丢弃它"而不是我的预期,这是"好吧,他做了改动src/com/foo/bar/baz.java
,但src/com
已被移动,所以我需要将其合并为src/main/java/com/foo/bar/baz.java
".
有没有办法让Subversion进行版本管理,或者我将在未来两天手动合并这个人的变化?
java ×4
sql ×2
algorithm ×1
coding-style ×1
comparison ×1
date ×1
django ×1
django-1.5 ×1
eclipse ×1
glob ×1
jvm ×1
jvm-hotspot ×1
mysql ×1
oracle ×1
php ×1
sorting ×1
string ×1
svn ×1
svn-merge ×1