4j是什么意思?

62

我注意到许多Java库使用这个作为后缀:

log4j, couchdb4j, neo4j, launch4j, etc..

14
4J的意思是“针对Java的”。 - JuanZe
11
已经有9个赞了,而且还在增加……哇,我想我需要开始问更多像这样的问题了 :) - skaffman
14
难以置信。如果你问或回答了一些真正具有挑战性的问题,通常会得到0分(如果你幸运的话可能会获得采纳)。这个游戏太愚蠢了。 - Andreas Dolk
7
@Andreas_D 根据提问者的名字,他是中国人。因此,这并不是一个奇怪的问题……毕竟在中国文化中,数字4被视为非常负面的,它是“死亡”或“死亡”的谐音。如果你不是来自英语背景,很容易意识不到4=for。 - TM.
3
@SinanUnur没有给自己点赞……显然(至少)有11个人认为这是个好问题。与像“你最喜欢的程序员T恤是什么”这样的问题相比,这类问题至少是真正的知识请求,因此获得了更多声望。 - TM.
显示剩余5条评论
5个回答

73

由于数字4(英文中的four)是介词for的同音词,因此它被用来表示该库是为Java而设计的。

在.NET中,库有时会以n作为前缀,以表示它们是.NET变体。例如,Java有Hibernate,而.NET有nHibernate。你也可以找到Java遵循这种“约定”的情况,如jUnit(.NET则有nUnit)。

作为一个初学者开发人员,我也曾被4j命名惯例所困惑。我以为它是某种版本指示器,直到我注意到几个库带有后缀。

也许现在通过Google搜索可以找到关于“4j”的有意义的结果:)

编辑:

我无法找到4j后缀的起源,但我最好的猜测是它始于log4j,现在有variants,如log4net、log4php、log4cxx。


1
有几个带有4net后缀的库适用于.Net,例如log4net。 - RA.
1
@Alexey:就我所知(在.NET世界中并不是很了解),这些大多数都是现有的“*4j”库的移植/重写。 - Joachim Sauer
非常好的回答。我想指出,“4j”后缀和“j”前缀几乎总是表示已从其他语言移植到Java的库或框架;同样,“n”前缀表示已从其他语言(通常是C#)移植到.NET的库或框架。 - Randolpho
我认为你猜测的log4j是开始的是准确的。至少它是我所知道的第一个使用这种名称的广泛库。 - laz
22个声望点赞 :) - Rakesh Juyal
@Randolpho:你能给出一些例子吗?我想到的两个,log4j和slf4j,据我所知都没有从其他地方移植过来。 - Joachim Sauer

15

我猜它的意思是“用于Java”

在这个页面 slf4j上,甚至写着

Simple Logging Facade for Java或(SLF4J)


唯一一个不必要地自以为是却实际回答问题的人。 - Peter Perháč

3
它是“为Java”的缩写。

5
回答是否以问号结尾?我认为这样回答会让提问者感到自卑或愚蠢,是不礼貌的做法。 - Peter Perháč
@MasterPeter - 不需要生气 - 我从来没有认真考虑过这个问题,所以我只是提供了一个建议(或者是有教养的猜测),关于它可能代表什么。楼主已经得到了答案,所以一切都好。 - Galwegian
没关系。我只是注意到一个简单问题有三个答案,其中两个以问号结尾。 - Peter Perháč

3
对于Java来说,处理这个问题就这么简单 :D

2
4j ~ 对于Java。我只是写更多的文本,因为SO答案需要至少15个字符,这对于回答这个问题来说几乎是不可能的 - 我认为这个问题应该是社区维基,尽管它是合法的,我猜,很多人只是阅读这个缩写而不考虑它可能代表什么。;)
但至少这是一个机会提醒社区一个著名的答案,由ammoQ给出,在MasterPeter's现在关闭和删除的主观问题“Java是否夺走了编程的乐趣?”:
问题仍然可以在谷歌的缓存中找到。

1
为什么这会是 CW?它提出了一个直接的问题,有一个单一、明确的答案。 - Kip
这只是我的观点(与我对你问题的初始评论一致)。这并不意味着我不喜欢它 :) - 但这是SO声望系统的一个普遍问题:建立声望的最简单方法是提出一个简单、有趣的问题,并希望人们在它被关闭和删除之前投票支持。要建立声望:永远不要问棘手的问题或回答复杂的问题。 - Andreas Dolk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接