idea寫java程序怎么自動啟動程序 idea運(yùn)行不了java項(xiàng)目?
idea運(yùn)行不了java項(xiàng)目?ID:1.首先,檢查是否設(shè)置了sdk。您可以在文件項(xiàng)目結(jié)構(gòu)項(xiàng)目中查看和設(shè)置它。將項(xiàng)目SDK:設(shè)置為版本1.8。將項(xiàng)目語言l:設(shè)置為相應(yīng)的版本8。在JavaS:設(shè)置為指向我
idea運(yùn)行不了java項(xiàng)目?
ID:
1.首先,檢查是否設(shè)置了sdk。您可以在文件項(xiàng)目結(jié)構(gòu)項(xiàng)目中查看和設(shè)置它。將項(xiàng)目SDK:設(shè)置為版本1.8。將項(xiàng)目語言l:設(shè)置為相應(yīng)的版本8。在JavaS:設(shè)置為指向我們創(chuàng)建的out文件夾。最后,單擊應(yīng)用,然后單擊確定。
2.檢查輸出路徑設(shè)置。
點(diǎn)擊文件-gt項(xiàng)目結(jié)構(gòu)-gt模塊-gt路徑-gt勾選繼承項(xiàng)目編譯輸出路徑,設(shè)置完成后點(diǎn)擊應(yīng)用- gtOK。
再試一次,應(yīng)該能正常工作。
為啥我用IDEA測試多線程,一直是先運(yùn)行main()方法中的代碼?然后才會執(zhí)行多線程?
看到你的問題,我可以 我不得不進(jìn)來。也許你剛剛開始在程這個行業(yè)。雖然我是普通班出身,但是你知道現(xiàn)在大學(xué)生活太豐富了,學(xué)習(xí)永遠(yuǎn)是最后一名。結(jié)果畢業(yè)的時候找工作遇到了困難,所以那時候我就開始系統(tǒng)的學(xué)習(xí)我的學(xué)科。這個行業(yè),怎么說呢,可以很快習(xí)慣培訓(xùn),但是我覺得還是需要一些基礎(chǔ)知識支撐的。比如計(jì)算機(jī)組成原理,微機(jī)原理,匯編語言,編譯原理,操作系統(tǒng),軟件工程,面向?qū)ο蠓椒ǎ?jì)算機(jī)網(wǎng)絡(luò),當(dāng)然還有像離散數(shù)學(xué),統(tǒng)計(jì)學(xué)這樣的課程,都是這個行業(yè)的基礎(chǔ)課。
嗯,我 對不起,好像有點(diǎn)遠(yuǎn)。我先回答你的問題:
想要理解你的問題,首先需要理解兩個概念,什么是流程,什么是線程,它們之間是什么關(guān)系,是如何工作的。
流程:
我是根據(jù)書上寫的這個概念:進(jìn)程是程序在計(jì)算機(jī)中數(shù)據(jù)集上的運(yùn)行活動,是系統(tǒng)中資源分配和調(diào)度的基本單位,是操作系統(tǒng)結(jié)構(gòu)的基礎(chǔ)。在早期面向進(jìn)程設(shè)計(jì)的計(jì)算機(jī)結(jié)構(gòu)中,進(jìn)程是程序的基本執(zhí)行實(shí)體;在當(dāng)代面向線程的計(jì)算機(jī)體系結(jié)構(gòu)中,進(jìn)程是線程的容器。程序是指令、數(shù)據(jù)及其組織形式的描述,進(jìn)程是程序的實(shí)體。
這個解釋似乎有點(diǎn)混亂。其實(shí)簡單點(diǎn)就是我們操作系統(tǒng)調(diào)度的單元,比如我們開始的想法,是操作系統(tǒng)中的一個進(jìn)程。我們經(jīng)常使用的Tomcat也是啟動后的一個進(jìn)程。啟動后,它們在操作系統(tǒng)中都有一個唯一的進(jìn)程id。我們常說強(qiáng)行關(guān)閉一個軟件,其實(shí)就是在扼殺進(jìn)程。
過程的五態(tài)模型
線程:
線程是一個執(zhí)行路徑,是程序執(zhí)行時的最小單位。它是一個進(jìn)程的執(zhí)行流,是CPU調(diào)度和分派的基本單位。一個進(jìn)程可以由很多線程組成,這些線程共享進(jìn)程的所有資源,每個線程都有自己的棧和局部變量。線程由CPU獨(dú)立調(diào)度和執(zhí)行,允許多個線程在多CPU環(huán)境下同時運(yùn)行。同樣,多線程也可以實(shí)現(xiàn)并發(fā)操作,每個請求都被分配一個線程來處理。
進(jìn)程和線程之間的關(guān)系:
程序是一個進(jìn)程,程序中的多個任務(wù)稱為線程。進(jìn)程是資源分配和調(diào)度操作的基本單位,即處理器調(diào)度的基本單位。一個線程只能屬于一個進(jìn)程,一個進(jìn)程可以有多個線程,但至少要有一個線程。線程是操作系統(tǒng)可以識別的最小執(zhí)行和調(diào)度單元。資源被分配給一個進(jìn)程,同一進(jìn)程的所有線程共享該進(jìn)程的所有資源。同一進(jìn)程中的多個線程共享代碼段(代碼和常量)、數(shù)據(jù)段(全局變量和靜態(tài)變量)和擴(kuò)展段(堆存儲)。但是每個線程都有自己的棧段,也叫runtime,用來存儲所有的局部變量和臨時變量,也就是每個線程都有自己的棧和局部變量。在線程執(zhí)行過程中,它們需要協(xié)同同步。不同進(jìn)程的線程應(yīng)該通過消息通信來同步。結(jié)合你的問題解釋:
你的問題是為什么先拿主方法。其實(shí)我覺得可以理解為一種傳統(tǒng),java作為后來的語言,是對之前語言的致敬。根據(jù)程序運(yùn)行的機(jī)制,一個程序的執(zhí)行必須由另一個之前的程序啟動,最原始的就是操作系統(tǒng)。說白了,主要方法就是jvm默認(rèn)尋找的方法(有很多解釋,比如設(shè)計(jì)匯編指令,設(shè)計(jì)C語言等等。),所以你可以理解java是用C語言寫的,C語言使用的main方法的聲明就是入口,java也是如此。說的通俗一點(diǎn),main在編譯器的源代碼中被標(biāo)記為程序執(zhí)行的入口。我覺得我說的不是人話。
也就是說,你在IDEA中點(diǎn)擊運(yùn)行的程序就是一個進(jìn)程,而這個進(jìn)程的入口方法就是mian方法。你說的多線程就是你啟動的這個進(jìn)程中的單元,它當(dāng)然會在mian方法之后執(zhí)行。
好吧,我不 我不想寫。我不 我不知道我在做什么。;我在寫東西。事實(shí)上,我知道一些事情,但我不能 不要寫它??赡芪疫€是有點(diǎn)見識的。希望對你有一點(diǎn)幫助。