[英]How Long is the Longest Class in Java Source Code?
只是想知道哪個是 Java 源代碼中最長的類(Java 6 以上的任何版本)以及它有多少行代碼?
為什么我想知道,用例是什么?
恕我直言,知道這也是理解 Java 如何遵守 SOLID 原則的好方法,即在所有這些努力保持盡可能小之后最長的類是多長時間。
jdk1.8.0/src> wc -l **/*.java | sort -n | tail -n 2
10159 java/awt/Component.java
其他示例是ORBUtilSystemException
,它是 9063 行, Character
是 7231 行, BigDecimal
是 5224 行。 這些可能不應該用作良好設計的示例,而是隨着時間的推移在大型項目中可能會發生的情況。 平均行數為 310。
find . -name '*.java' | xargs wc -l | sort -nr | head -n 10
jdk1.8.0
結果:
10161 ./awt/Component.java
7231 ./lang/Character.java
6312 ./util/concurrent/ConcurrentHashMap.java
5858 ./util/regex/Pattern.java
5564 ./util/Collections.java
5257 ./math/BigDecimal.java
5115 ./util/Arrays.java
4986 ./awt/Container.java
4698 ./util/Formatter.java
請注意,較短的習慣用法wc -l **/*.java
默認情況下不是遞歸的。 您需要shopt -s globstar
使運算符遞歸。 否則,您將錯過大型課程,例如,
6312 ./util/concurrent/ConcurrentHashMap.java
4503 ./time/format/DateTimeFormatterBuilder.java
mac 用戶注意事項:
對於接受的答案( wc -l **/*.java
),您需要具有globstar
支持的 bash ( ≥ 4.x
)。 例如,macOS Catalina 帶有舊版本的 bash ( 3.2.57
)。 在這種情況下,您需要使用 Homebrew ( brew install bash
) brew install bash
,並使用shopt -s globstar
打開遞歸。 您可以在此處找到更多詳細信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.