java基礎——環境變量配置

工欲善其事,必先利其器。

不過對于剛剛入門的菜鳥來說,最好的編輯器還是使用記事本。

原因不外乎是熟悉語法結構,而不是使用IDE自動生成。

java 體系:

J2SE? 桌面應用的開發? JAVA SE? (接下來學習的目標)

J2EE? 企業級開發? ? ? JAVA EE

J2ME? 手機應用的開發? JAVA ME

SDK? software development kit? 軟件開發包 函數庫或者工具等

JDK? java development kit? 是面向開發人員的,java開發工具

JRE? java runtime enviroment java運行環境,是面向應用程序使用者的

API application program interface 應用程序編程接口

配置環境變量:

JAVA_HOME? 值放Jdk的地址

PATH? 執行命令都從PATH中找? win7是最前面的先找? win10是最下面的先找? %JAVA_HOME%\bin? 好處:JAVA_HOME 變了就變了

CLASSPATH 運行java程序的時候查找對應的class

特點:jvm像鞋? Java就是腳? 這就是跨平臺性? 一次編寫 到處運行

gc

垃圾回收器:java中有一個線程,專門負責JVM中垃圾內存的釋放

垃圾:沒有引用的內存節點

垃圾回收的算法

注意:垃圾回收有自己的算法,我們是不能控制垃圾回收機制的,雖然有和垃圾回收相關的方法:java.lang.System.gc()? java.lang.Runtime.gc(),但是還是無法控制垃圾回收機制

在chap01下面建一個文件HelloWorld.java

文件內容如下:

public class HelloWorld{

public static void main(String[] args){

System.out.println("hello world");

}

}

寫完后保存,然后到終端里面編譯HelloWorld.java

注意路徑:自己的當前位置和HelloWorld.java文件所在的位置是不是一致

javac HelloWorld.java

編譯完了之后,會在當前目錄下,生成一個文件叫HelloWorld.class

最后我們運行的文件就是這個HelloWorld.class

這樣來運行HelloWorld.class文件:

java HelloWorld? ? 注意:運行的時候一定不要加后綴名 .class

這樣運行的前提是:XXX.java文件中 沒有寫包(package)名

編寫的java文件要以XXX.java命令

javac XXX.java? (注意當前路徑和java文件路徑)

XXX.java(源文件)

編譯完后會生成一個XXX.class(字節碼文件)

運行這個java代碼

java XXX? ? (后面不加.class)

可以把字節碼文件打成jar包

jar -cvf hello.jar? HelloWorld.class

類加載:? 雙親委托機制

啟動類加載

擴展類加載

本地類加載? classpath? Hello.class

JVM

類加載-->字節碼驗證-->JIT運行

字節碼驗證:

代碼要符合JVM的規范

代碼破壞計算機的系統或者硬件

棧不能溢出

方法的參數類型要正確

類型轉換要正確

java類名和文件名的關系:

一個java源文件(.java)中,可以有好多個類(class),但是,最多只能有一個類(class)被public修飾

如果有一個類被public修飾,那么這個源文件(.java)的名字就必須和這個被public修飾的類的名字一致,而且還要首字母大寫

java文件中的三個頂級元素:

package

1.最終會是以文件夾的形式體現出來(有什么包,就必須有什么文件夾,運行的時候.class文件必須在這個文件夾下面)

2.? .java文件中有多個package的時候,用.分割并且結尾用;號結束 例如:(com.hangsing.test;)

3.包也是java中類的標識的一部分,確定某一個類是通過包名加類名來唯一確定的 比如運行java類的時候:

java package.類名 (java com.hangsing.test.HelloPackage)

import

1.導包用的關鍵字

2.如果你想在當前這個類使用其他的類,那么就必須通過這個關鍵字,把那個類導入進來

3. java.lang包下面的類可以直接使用,不用導入.

4. 和當前這個類位于同一個包下面的類,也不需要導入,可以直接使用

class

java中標識一個類的關鍵字

(java類中可以沒有package,也可以沒有import,但是一定會class)

編寫帶包名的類 HelloPackage.java

package com.hangsing.test;

public class HelloPackage{

public static void main(String[] args){

System.out.println("hello world");

System.out.println("hello world");

System.out.print("hello world");

}

}

直接編譯 javac? HelloPackage.java

然后運行 java HelloPackage? 報錯!!!

在當前(ch01)目錄下面建立文件夾 com/hangsing/test

然后把HelloPackage.class文件剪切到了這個test目錄里面

然后在ch01目錄下運行:

java com.hangsing.test.HelloPackage

以上建立文件夾并且把.class文件剪切到相應的文件夾里面的操作,我們可以用命令在編譯的時候實現

javac -d . HelloPackage.java

-d 表示編譯的同時生產和這個.java文件中定義的包名相一致的是文件夾結構,

.? 表示在當前目錄下生產這個文件夾(這個不一定非是.? 也可以是其他路徑)

最后編譯完成后的.class文件也會自動的放進生產的文件夾里面

然后我們之間用package.類名去運行就可以了

java com.hangsing.test.HelloPackage

注意:沒有main方法的類是不能直接運行的

main的形式是固定的(大體是固定,之后會看到改動一些指定地方也是可以的)

public static void main(String[] args){

......

}

因為main方法是程序的入口,要直接運行的那個類,類加載之后,JVM沒有在這個類中找個main方法,那么就會報錯

JVM只會運行*java命令后面*指定的類中的main方法(如果沒有這個方法就報錯)

java com.hangsing.test.HelloWorld

Java環境變量配置比較簡單,多試試,有著印象即可

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,563評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,694評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,672評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,965評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,690評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,019評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,013評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,188評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,718評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,438評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,667評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,149評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,845評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,252評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,590評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,384評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,830評論 18 139
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,737評論 18 399
  • 小編費力收集:給你想要的面試集合 1.C++或Java中的異常處理機制的簡單原理和應用。 當JAVA程序違反了JA...
    八爺君閱讀 4,649評論 1 114
  • 文/文風居士 萬物皆有靈性,何況孩子那純真的笑顏。 孩子從感知到這個世界便向往著一切的美好,孩童的靈性里透著的是世...
    成悅如閱讀 530評論 0 0
  • 前天,微信上看到一個好友請求通知,附加消息是:你是某某嗎?某某是我的名字。 這指定是認識啊,遂趕緊通過。看微信頭像...
    熹嶼閱讀 273評論 0 1