日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

如何简单运行Java程序

發(fā)布時(shí)間:2023/12/10 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何简单运行Java程序 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本章開(kāi)始,我們需要下苦功打基礎(chǔ),目標(biāo)是完成一個(gè)會(huì)員管理系統(tǒng)哦!如何運(yùn)行Java程序,用java命令即可,一定不要忘了寫(xiě)main方法哦,一個(gè)java文件里面可以寫(xiě)很多個(gè)class。

步驟 1 java文件等于java類嗎

問(wèn)大家一個(gè)問(wèn)題,你認(rèn)為java文件是java類嗎?

你可以用記事本寫(xiě)一個(gè)Demo.java的文本文件,編碼是ansi,如果你的windows系統(tǒng)是簡(jiǎn)體中文的,那么所謂的ansi,其實(shí)就和GBK是一樣的。

在這個(gè)文件里,你可以寫(xiě)很多的class,但是聲明為public的class只能有一個(gè)。

這就說(shuō)明,java文件不等于java類。java文件可以是一大堆class的集合體,每一個(gè)class都可以通過(guò)new關(guān)鍵字,或者反射變成實(shí)例對(duì)象。所以,你也可以說(shuō),一個(gè)java文件就是一個(gè)程序,這個(gè)程序如果跑起來(lái),就是一大堆對(duì)象的集合。

每一個(gè)對(duì)象可以互相通信,各司其職,共同完成程序的任務(wù)。

有點(diǎn)繞,反射又是什么鬼,看不懂?沒(méi)關(guān)系,下面我們會(huì)一步一步,慢慢學(xué)習(xí)到的。現(xiàn)在,請(qǐng)放輕松。

步驟 2 java文件本質(zhì)上就是txt文本

現(xiàn)在,我們找一個(gè)地方,比如 **D:\java18 ,**創(chuàng)建一個(gè)普通的文本文件,后綴名改成.java。如果不知道怎么改后綴名,文件框左上角點(diǎn)擊組織,選擇文件夾和搜索選項(xiàng),把隱藏文件擴(kuò)展名的選項(xiàng)去掉就可以啦。

然后,創(chuàng)建一個(gè)Demo.java。

這就是一個(gè)java文件了,如果到這一步?jīng)]有問(wèn)題,那么恭喜你,你已經(jīng)向前邁進(jìn)了一大步!

步驟 3 javac命令

java文件是無(wú)法直接執(zhí)行的,我們需要借助Java虛擬機(jī)來(lái)執(zhí)行java程序。而java虛擬機(jī)也無(wú)法直接運(yùn)行運(yùn)行.java的文件,我們需要把java文件編譯成.class文件,這個(gè)編譯的過(guò)程,就是用javac命令。之前已經(jīng)安裝好了環(huán)境變量,所以這邊可以直接調(diào)用javac命令吧。

結(jié)果,文件夾里面啥也沒(méi)發(fā)生?為什么,因?yàn)槲业腄emo.java文件本來(lái)就是一個(gè)空文件啊,里面啥也沒(méi)有。

步驟 4 什么是Java虛擬機(jī)?

我們?cè)谏弦还?jié)下載了JDK的安裝包,解壓后又配置了環(huán)境變量。這個(gè)時(shí)候,我們可以說(shuō),我們的電腦上已經(jīng)安裝了Java虛擬機(jī),也叫做JVM。

說(shuō)到底,Java虛擬機(jī)就是一個(gè)軟件,和你電腦上的QQ是一回事。這個(gè)軟件的作用,就是編譯和運(yùn)行某一個(gè).java文件。

就是這么回事啦,虛擬機(jī)并不神秘,在操作系統(tǒng)的角度看來(lái),它只是一個(gè)普通進(jìn)程。

下面給出一張JVM的圖:

步驟 5 java里面要寫(xiě)什么?

上面那張圖有點(diǎn)復(fù)雜?沒(méi)關(guān)系,現(xiàn)在我們只需要明白,JVM可以編譯和運(yùn)行某一個(gè)java文件,比如Demo.java。

剛才我們使用了javac命令,雖然啥也沒(méi)發(fā)生,但是cmd窗口也沒(méi)有報(bào)錯(cuò),這是好事,這說(shuō)明編譯成功了。

java文件里面要寫(xiě)什么呢?答案是很簡(jiǎn)單的,那就是我們要寫(xiě)class,即java類。我們先考慮一下,做一個(gè)會(huì)員管理系統(tǒng),需要什么?會(huì)員的前提是客戶,會(huì)員就是VIP客戶。這就引入了兩個(gè)概念,分別是客戶和會(huì)員。每一個(gè)客戶都是潛在的會(huì)員,這就是業(yè)務(wù)需求。

不管是客戶還是會(huì)員,都是我們?nèi)粘I畹母拍?#xff0c;現(xiàn)在我們要做的事情,把這兩個(gè)概念都放到程序中去。我們用記事本打開(kāi)Demo.java,輸入

class是java的關(guān)鍵字,代表要聲明一個(gè)類,右邊緊跟著一個(gè)大小字母開(kāi)頭的單詞,就是類名稱,然后是一對(duì){},這是java類的主體。現(xiàn)在,重復(fù)javac命令。

你會(huì)發(fā)現(xiàn)多了兩個(gè)class文件,編譯成功了,這個(gè)是java虛擬機(jī)的功勞。

步驟 6 怎么運(yùn)行class文件?

我們要運(yùn)行java程序,其實(shí)就是用java命令執(zhí)行某一個(gè)class文件,運(yùn)行的前提是,這個(gè)class文件的“前身” – 即java文件,它里面的class有一個(gè)main方法。我們?cè)贒emo.java中再加一個(gè)App類。

class App {public static void main(String[] args){System.out.println("程序啟動(dòng)了...");} }

**重新javac一下,**注意每次修改了Demo.java,都要重新編譯,確保class文件是最新版本

這時(shí)候你會(huì)發(fā)現(xiàn)又多了一個(gè)App.class,我們用java命令去運(yùn)行它。

這樣就執(zhí)行成功了!

步驟 7 javac的時(shí)候發(fā)生了什么?

javac的時(shí)候,JVM會(huì)啟動(dòng)java的編譯器程序,對(duì)指定擴(kuò)展名的**.java文件進(jìn)行解析,然后按照一定的規(guī)則編譯成字節(jié)碼,生成一個(gè).class**文件。這個(gè)class文件是可以被JVM的類加載器讀取和執(zhí)行的。至于內(nèi)部的深層次原理,我們暫時(shí)不用關(guān)心,我們只需要知道java文件必須要編譯成class文件,才可以被JVM執(zhí)行,這就行了。

步驟 8 java的時(shí)候發(fā)生了什么?

剛才我們運(yùn)行了App.class文件,用的命令是這樣的,注意,不需要寫(xiě)class。

java App

那為什么不能寫(xiě)成 java App.class呢?這是因?yàn)?#xff0c;java規(guī)定如果執(zhí)行的class文件名里面有 **“.” **號(hào),就會(huì)認(rèn)為是有文件夾嵌套,有一個(gè)包含關(guān)系。現(xiàn)在我們做一個(gè)證明。新建一個(gè)Test.java

package my; class Test {public static void main(String[] args){System.out.println("Test");} }

用javac編譯,得到Test.class文件,然后創(chuàng)建一個(gè)文件夾my,把Test.class放進(jìn)去。

回到j(luò)ava18文件夾,執(zhí)行命令:

驗(yàn)證成功了,所以不寫(xiě).class是有用意的,因?yàn)榕禄煜?#xff01;

回到最初的問(wèn)題,java命令到底發(fā)生了什么?其實(shí)就是去那個(gè)類里面尋找 public static void main 方法,如果有,就去執(zhí)行這個(gè)方法。

步驟 9 這個(gè)main方法是什么?

public是java語(yǔ)法中的訪問(wèn)權(quán)限修飾符,代表公共的,誰(shuí)都可以訪問(wèn)。

static代表這個(gè)方法是靜態(tài)的,靜態(tài)的意思就是不需要實(shí)例化對(duì)象就可以直接訪問(wèn),結(jié)合上面的JVM圖,我們可以知道這個(gè)main方法在class被加載的時(shí)候,就會(huì)被存放到方法區(qū),JVM想調(diào)用就調(diào)用。

void代表方法沒(méi)有返回值,這是程序的主方法,不需要返回值,也沒(méi)有誰(shuí)可以去接收這個(gè)返回值。

main代表這是主入口,JVM會(huì)去尋找一個(gè)叫做main的方法去執(zhí)行,這是規(guī)定。

綜上,這個(gè)main()方法的聲明為:public static void main(String args[])。必須這么定義,這是Java的規(guī)范。

如果不這么設(shè)置,執(zhí)行就會(huì)報(bào)錯(cuò),main方法中還有一個(gè)輸入?yún)?shù),類型為String[],這個(gè)也是java的規(guī)范,main()方法中必須有一個(gè)入?yún)?#xff0c;類型必須String[]。

步驟 10 System.out.println?

這個(gè)語(yǔ)句是java打印數(shù)據(jù)到控制臺(tái)的方法,調(diào)試的時(shí)候我們可以經(jīng)常使用,因?yàn)閮?nèi)部實(shí)現(xiàn)采用了同步代碼塊,會(huì)極大影響運(yùn)行效率,所以如果項(xiàng)目要上線,請(qǐng)刪除或者注釋掉所有的System.out.println,轉(zhuǎn)而采用異步的日志處理方案,比如logback。

轉(zhuǎn)載自:java小白翻身

總結(jié)

以上是生活随笔為你收集整理的如何简单运行Java程序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。