<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          為了讓更多新手快速體驗 Java,多年來 Java 偷偷做了這個改進

          共 4999字,需瀏覽 10分鐘

           ·

          2024-04-01 20:14

          作為一個準備入門 Java 的新手程序員來說,第一件事兒可能就是要下載一個 IDEA ,如果說有什么 IDE  比 IDEA 還大的話,那恐怕也就是 Visual Studio 了。下載完了還可能一頭懵,不知道從何下手。

          記得我剛接觸 Java 的時候,那時候我還在做 .NET(C#) ,然后對 Python 也比較熟悉。

          對于 Python 來說,一個新手裝完 Python ,連 IDE 都不用裝,就可以在終端中用命令行的方式體驗一下交互式編程了,寫個 Hello World 也就算了入門了。

          而對于 C# 來說,雖說 Visual Studio 好幾個G,但是裝完之后,一切也就準備好了,建一個命令行項目,寫個 Hello World 也算入門了。

          但是當初我剛下載完 IDEA 之后,準備建一個命令行應用,找了半天沒找到(我以為根本沒這個選項,直到很久之后我才發(fā)現用 IDEA 怎么創(chuàng)建命令行應用)。結果,我本就準備寫個 Hello World  體驗一下,發(fā)現還要用 Maven 或 Gradle 創(chuàng)建,要知道對于一個 Java 都沒入門的人來說,Maven 和 Gradle 只會讓人更加糊涂。

          如果不用 Maven 或 Gradle 呢,創(chuàng)建一個 java 文件,還要用javac編譯。javac是什么好像更讓人迷糊了。

          Java 也考慮到這個問題了,讓準備入門或體驗Java的同學,能夠以更快、更簡單的方式嘗試一下 Hello World,不用下載 IDE,不用自己手動編譯,只要抄一段 Hello World,直接一個java 命令運行就好了,像 Python 一樣簡單。

          Java 8 確實有些麻煩

          假設我們抄了一段 Java 代碼,一個Moon.java類,里面一個main方法,輸出一個Hello

          public class Moon {
              public static void main(String[] args) {
                  System.out.println("Hello");
              }
          }

          沒有 IDE 的情況下,我們嘗試了一下java Moonjava Moon.java

          發(fā)現都不行,所以,如果我們想要運行Moonmain方法,要先用javac進行編譯。

          javac Moon.java

          編譯成功后,會在Moon.java的目錄中出現一個Moon.class的編譯后的文件,這個就是字節(jié)碼文件,JVM 只認這種格式。

          然后我們在用java命令來執(zhí)行Moon類,才能夠執(zhí)行成功。

          java -classpath . Moon

          這時,就能看到main方法執(zhí)行成功了,注意其中的-classpath .參數是告訴 Java 去當前目錄查找類文件  Moon

          現在改的稍微復雜一些了,新加了一個類文件。

          Helper.java文件

          public class Helper {
              public static void sayHello() {
                  System.out.println("Hello");
              }
          }

          然后Moon.java類在main方法中調用 Helper.sayHello 方法。

          public class Moon {
              public static void main(String[] args) {
                  Helper.sayHello();
              }
          }

          那之后再編譯的話,就要把這兩個 Java 文件都包含在javac的命令中。

          javac Moon.java Helper.java

          之后仍然可以正常運行java -classpath . Moon

          JDK 11 之后

          而在 JDK 11 之后,就沒這么麻煩了,有點像 Python 那種解釋型語言了,直接寫完就可以運行了。

          仍然是那個輸出HelloMoon類。

          public class Moon {
              public static void main(String[] args) {
                  System.out.println("Hello");
              }
          }

          直接執(zhí)行java Moon.java就行了。

          但是,問題來了,如果是兩個文件,就像 JDK 8 的那個例子,Moon.java調用了另一個Helper.java的方法,大于1個類文件的情況,那還是不行,仍然還是要先編譯。

          JDK 22 之后

          前幾天 JDK22 已經發(fā)布了,我一看,嘿,JDK22竟然又做了調整,解決了多個文件調用的問題。

          Moon.java調用了另一個Helper.java的方法,現在,我們怎么做呢。

          直接java Moon.java,然后就可以了。

          這是因為增強了 java 啟動器的源文件模式,以便能夠運行作為多個 Java 源代碼文件提供的程序。

              
            
                 

                  

          1、有沒有一段代碼,讓你為人類的智慧擊節(jié)叫好?

          2、國產大模型,什么時候能搞出 Sora ?

          3、作為程序員,你的編程技術是從什么時候開始突飛猛進的

          4、剛入職大廠,老板讓我轉語言。。

          5、真的,不是誰都會離職后還回你消息的

          點分享

          點收藏

          點點贊

          點在看

          瀏覽 30
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  AⅤ在线视频观看 | 99精品视频在线 | 日本黄色视频网址 | 欧美亚洲日本在线 | 黄色成人一级视频 |