簡體   English   中英

Java 源代碼中最長的類有多長?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM