1-2、Java環境搭建

語雀原文鏈接

文章目錄

    • 1、JDK安裝
    • 2、Hello World
      • 2-1、Hello World示例
      • 2-2、類名和文件名
      • 2-3、注釋
      • 2-4、javadoc
    • 3、環境變量
      • 3-1、Path作用
      • 3-2、classpath
      • 3-3、JAVA_HOME
    • 4、Java組成
    • 5、跨平臺原理
      • 5-1、Java跨平臺原理
      • 5-2、C語言的跨平臺原理

1、JDK安裝

  • 下載地址:https://www.oracle.com/java/technologies/downloads/
  • 選擇Java8 下載即可,需要注冊一個Oracle賬號

image.png

  • 下載后安裝就行,安裝之后的jdk/bin目錄如下

image.png
image.png

  • 將安裝后bin路徑設置到系統環境變量中,此處路徑為F:\Java\jdk1.8.0_311\bin(使在任何目錄都能訪問javac、java)

image.png

  • 驗證環境變量是否配置正確
    • java -version:查看java版本
C:\Users\wangchun>java -version
java version "1.8.0_311"
Java(TM) SE Runtime Environment (build 1.8.0_311-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.311-b11, mixed mode)

2、Hello World

2-1、Hello World示例

  • Java中大小寫嚴格區分
  • Hello.java
/*** 文檔注釋(可以通過Javadoc命令生成文檔)* public 公共的* class 類* Hello 類名,這個必須和文件名一致* {} 類的作用域*/
public class Hello {// 單行注釋// static 靜態的// void 無返回值// main 主函數,程序的入口方法public static void main(String[] args){/** 多行注釋* 在控制臺輸出Hello World!*/System.out.println("Hello World!");}
}
  • javac Hello.java:執行后自動生成Hello.class字節碼文件
  • java Hello:JVM運行字節碼文件
C:\Users\wangchun\Desktop>javac Hello.javaC:\Users\wangchun\Desktop>java Hello
Hello World!

2-2、類名和文件名

  • 一個源文件中可以有多個類,但是只能有一個類被public修飾
  • 以下代碼執行會報錯

public class Hello {public static void main(String[] args){System.out.println("Hello World!");}
}public class Hello1 {public static void main(String[] args){System.out.println("Hello World!");}
}
  • 以上代碼執行會報錯,去除Hello1的public即可
F:\>javac Hello.java
Hello.java:24: 錯誤: 類Hello1是公共的, 應在名為 Hello1.java 的文件中聲明
public class Hello1 {^
1 個錯誤
  • javac之后會生成兩個class文件Hello.class Hello1.class

2-3、注釋

  • 注釋不會參與編譯,編譯后產生的字節碼文件中不會有注釋的內容
  • 單行注釋 //
  • 多行注釋 /* */
  • 文檔注釋 /** */ 可以通過javadoc命令來提取
  • 文檔注釋代碼例子
/**文檔注釋*/
public class Hello {/**main方法@param args 數組*/public static void main(String[] args){// 單行注釋System.out.println("Hello World!");}
}

2-4、javadoc

  • javadoc生成文檔
F:\>javadoc -d newName Hello.java
正在加載源文件Hello.java...
正在構造 Javadoc 信息...
標準 Doclet 版本 1.8.0_311
正在構建所有程序包和類的樹...
正在生成newName\Hello.html...
正在生成newName\package-frame.html...
正在生成newName\package-summary.html...
正在生成newName\package-tree.html...
正在生成newName\constant-values.html...
正在構建所有程序包和類的索引...
正在生成newName\overview-tree.html...
正在生成newName\index-all.html...
正在生成newName\deprecated-list.html...
正在構建所有類的索引...
正在生成newName\allclasses-frame.html...
正在生成newName\allclasses-noframe.html...
正在生成newName\index.html...
正在生成newName\help-doc.html...

image.png
image.png

3、環境變量

3-1、Path作用

  • window cmd命令行:path(查看當前配置的path屬性)
C:\Users\wangchun>path
PATH=C:\Windows\system32;
C:\Windows;C:\Windows\System32\Wbem;
C:\Windows\System32\WindowsPowerShell\v1.0\;
C:\Windows\System32\OpenSSH\;
F:\Java\jdk1.8.0_311\bin;
C:\Users\wangchun\AppData\Local\Microsoft\WindowsApps;
  • 在D盤目錄下輸入命令notepad,嘗試打開記事本,嘗試在D盤目錄下查找有沒有記事本程序,有則打開記事本,沒有則去path中保存的路徑下找,有則打開記事本;沒有則失敗
  • 正常只有在xxx.exe所在路徑在運行該命令才能運行該程序;但將該路徑添加到Path中,就能在任何路徑下運行該程序,Path里面存儲的是環境變量,保證在任何目錄下都能運行該程序
C:\Users\wangchun>notepadC:\Users\wangchun>aa
'aa' 不是內部或外部命令,也不是可運行的程序
或批處理文件。
  • 設置臨時path(只在CMD命令行開啟階段有效,關閉后失效)
    • set path=xx
    • set path=xx;%path%
C:\Users\wangchun>set path=aaC:\Users\wangchun>path
PATH=aaC:\Users\wangchun>set path=bb;%path%C:\Users\wangchun>path
PATH=bb;aa

3-2、classpath

  • 系統中有一個環境變量classpath,默認是當前目錄
  • 作用:設置這個classpath路徑后,在執行字節碼文件的時候,就會去這個路徑下尋找對應的字節碼文件
  • set classpath只是臨時修改,此設置會隨著當前cmd的窗口關閉而消失!
  • 但如果在當前cmd中用start開啟新的窗口,設置的路徑在新的cmd窗口中依然有效
  • set classpath
    • 查看當前的classpath值
  • set classpath=d:\
    • 設置classpath屬性,在classpath目錄下(d:\路徑下)查找有沒有對應的class文件,如果沒有就報錯提示沒有
  • set classpath=d:;
    • 設置classpath屬性,在classpath目錄下(d:\路徑下)查找有沒有對應的class文件,如果找不到就在Hello.java文件所在目錄下查找
  • 路徑后面不加分號 :執行的時候只會查找classpath路徑下的文件夾,找不到就報錯。
  • 路徑后面加分號:先查找classpath路徑下有沒有,如果沒有就查找當前文件夾下有沒有,依然沒有就報錯。
C:\Users\wangchun\Desktop>set classpath
classpath=d:\C:\Users\wangchun\Desktop>set classpath=d:\C:\Users\wangchun\Desktop>set classpath
classpath=d:\C:\Users\wangchun\Desktop>java Hello
錯誤: 找不到或無法加載主類 HelloC:\Users\wangchun\Desktop>set classpath=d:\;C:\Users\wangchun\Desktop>set classpath
classpath=d:\;C:\Users\wangchun\Desktop>java Hello
Hello World!

3-3、JAVA_HOME

  • 環境變量JAVA_HOME F:\Java\jdk1.8.0_311\bin

image.png

  • 之前的PATH路徑可以這樣配置:%JAVA_HOME%\bin

4、Java組成

  • JRE(Java Runtime Environment):Java運行環境
    • 包括JVM和Java程序所需的核心類庫等
    • 想要運行一個開發好的Java程序,計算機只需要安裝JRE即可
  • JDK(Java Development Kits):Java開發工具集
    • JDK是提供給Java開發人員使用的,其中包括Java的開發工具,也包括JRE
    • 安裝了JDK,就不用單獨安裝JRE
    • 其中的開發工具包括:編譯工具javac.exe、打包工具jar.exe

image.png image.png

5、跨平臺原理

5-1、Java跨平臺原理

  • JVM(Java Virtual Machine):因為JVM,使得Java程序在三種操作系統上都可以執行,這就是Java程序的跨平臺性,使得Java具有良好的可移植性
  • JVM是不跨平臺的,Windows有Windows對應的JVM,Linux有Linux對應的JVM
  • 流程:源文件(.java) -> (編譯器javac.exe) -> 字節碼文件(.class) -> (JVM執行java.exe) -> 操作系統(一次編譯,隨處運行)

image.png

5-2、C語言的跨平臺原理

image.png

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/211861.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/211861.shtml
英文地址,請注明出處:http://en.pswp.cn/news/211861.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

打造Github首頁的動態飛線效果

一、導語 Github首頁的地球動態飛線,大家都比較熟悉吧 二、分析 由大量隨機的3點構造出貝塞爾曲線,然后開始從起點到終點的飛行后,然后再從起點到終點的消失,就此完成整個過程 三、基礎代碼 createCurve(startPoint, endPoint…

unity 2d 入門 飛翔小鳥 死亡閃爍特效(十三)

一、c#腳本 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Bling : MonoBehaviour {public Texture img;public float speed;public static bool changeWhite false;private float alpha0f;// Start is called before the fi…

信創運維產業的發展與趨勢:IT管理的新視角

隨著數字化時代的來臨,信息技術應用的各個方面都在發生變革。在這個過程中,信創運維產業的發展尤為引人注目。它不僅是數字化轉型的關鍵驅動力,也是國家經濟發展的重要支柱。本文將探討信創運維產業的發展與趨勢,以及國家如何管理…

芯片量產導入知識

什么是芯片量產 從芯片功能設計到生產制造、測試等環節,每一個環節都至關重要。 對于保障大規模發貨后芯片指標表現的一致性,以及產品應用生命周期內的穩定性和可靠性,需要考慮多種因素。以下是一些相關的觀點: 可量產性設計&am…

Stable Diffusion 系列教程 - 2 WebUI 參數詳解

Stable Diffusion 的整個算法組合為: UNet VAE 文本編碼器 UNet:就是我們大模型里的核心。 文本編碼器:將我們的prompt進行encoder為算法能理解的內容(可以理解為SD外包出去的項目CLIP)。 VAE:對UNet生…

【牛牛送書 | 第三期】《一本書講透Java線程:原理與實踐》帶你深入JAVA多線程

目錄 摘要: 多線程對于Java的意義 為什么Java工程師必須掌握多線程 Java多線程使用方式 如何學好Java多線程 參與方式🥇 摘要: 互聯網的每一個角落,無論是大型電商平臺的秒殺活動,社交平臺的實時消息推送&#x…

1.2.啟動線程的五類種方法

一.new MyThread().start() 繼承Thread類創建線程類 定義一個繼承Thread類的子類,并重寫該類的run()方法 創建Thread子類的實例,即創建了線程對象 調用該線程對象的start()方法啟動線程 二.new Thread(r).start() 實現Runnable接口創建線程類 定義R…

Qt槽函數不響應不執行的一種原因:ui提升導致重名

背景: 一個包含了組件提升的ui,有個按鈕的槽函數就是不響應,于是找原因。 分析: 槽函數的對應一是通過connect函數綁定信號,二是on_XXX_signal的命名方式。界面上部件的槽函數通常是第二種。 我反復確認細節&#…

寫一個程序拷貝文件

使用所學文件操作,在當前目錄下放一個文件data.txt,寫一個程序,將data.txt文件拷貝一份,生成data_copy.txt文件。 基本思路: 打開文件data.txt,讀取數據打開文件data_copy.txt,寫數據從data.t…

如何使用拼多多根據ID取商品詳情 API 獲取熱銷商品信息?

使用拼多多根據ID取商品詳情 API 獲取熱銷商品信息是一種高效且便捷的方式,可以快速獲取到拼多多平臺上熱銷商品的信息。以下是獲取熱銷商品信息的步驟和示例代碼: 一、步驟 注冊成為拼多多開發者,并獲取API密鑰。確定要獲取熱銷商品信息的…

張正友相機標定法原理與實現

張正友相機標定法是張正友教授1998年提出的單平面棋盤格的相機標定方法。傳統標定法的標定板是需要三維的,需要非常精確,這很難制作,而張正友教授提出的方法介于傳統標定法和自標定法之間,但克服了傳統標定法需要的高精度標定物的缺點,而僅需使用一個打印出來的棋盤格就可…

.Faust勒索病毒解密方法|勒索病毒解決|勒索病毒恢復|數據庫修復

引言: 數字時代的黑暗勢力中,faust勒索病毒如幽靈般潛伏,將用戶的數字珍寶變為數字枷鎖。本文將深入介紹.faust勒索病毒的威脅特征,提供有效的數據恢復方法,并分享一系列預防措施,以協助您在數字戰場上筑起…

kafka學習筆記--如何保證生產者數據可靠、不重復、有序

本文內容來自尚硅谷B站公開教學視頻,僅做個人總結、學習、復習使用,任何對此文章的引用,應當說明源出處為尚硅谷,不得用于商業用途。 如有侵權、聯系速刪 視頻教程鏈接:【尚硅谷】Kafka3.x教程(從入門到調優…

名字的漂亮度

給出一個字符串,該字符串僅由小寫字母組成,定義這個字符串的“漂亮度”是其所有字母“漂亮度”的總和。 每個字母都有一個“漂亮度”,范圍在1到26之間。沒有任何兩個不同字母擁有相同的“漂亮度”。字母忽略大小寫。給出多個字符串&#xff0…

從零開發短視頻電商 Low Level Client(推薦)連接OpenSearch進行CRUD

文章目錄 依賴初始化客戶端發起請求請求參數請求頭設置超時時間設置線程數設置用戶名密碼結果解析節點選擇器配置嗅探器整體示例問題參考 OpenSearch開發環境安裝Docker和Docker-Compose兩種方式 依賴 <dependency><groupId>org.elasticsearch.client</groupId…

【腳本】圖片-音視頻-壓縮文件處理

音視頻處理 一&#xff0c;圖片操作1&#xff0c;轉換圖片格式2&#xff0c;多張圖片合成視頻 二&#xff0c;音頻操作1&#xff0c;轉換音頻格式2&#xff0c;分割音頻為多段3&#xff0c;合成多段音頻 三&#xff0c;視頻操作1&#xff0c;轉換視頻格式2&#xff0c;提取視頻…

【Go自學版】01-基礎

// 變量 var a, b, c 8, 2.3, "hello" var d float64; e : 6var A []int; var B [10]int; C : [10]int{1, 2, 3, 4} for i : 0; i < len(B); i {} for _, value : range C {} D make([]int, 3) // len 4, cap 10, 擴容方式 cap*2 E : make([]int, 4, 10) E …

掌握PyTorch數據預處理(一):讓模型表現更上一層樓!!!

引言 在PyTorch中&#xff0c;數據預處理是模型訓練過程中不可或缺的一環。通過精心優化數據&#xff0c;我們能夠確保模型在訓練時能夠更高效地學習&#xff0c;從而在實際應用中達到更好的性能。今天&#xff0c;我們將深入探討一些常用的PyTorch數據預處理技巧&#xff0c;…

C++如何通過調用ffmpeg接口對H264文件進行編碼和解碼

C可以通過調用FFmpeg的API來對H264文件進行編碼和解碼。下面是一個簡單的例子。 首先需要在代碼中包含FFmpeg的頭文件&#xff1a; extern "C" { #include <libavcodec/avcodec.h> #include <libavformat/avformat.h> #include <libswscale/swscale…

Linux系統編程:進程間通信總結

管道 在Linux中&#xff0c;管道是一種進程間通信方式&#xff0c;它允許一個進程&#xff08;寫入端&#xff09;將其輸出直接連接到另一個進程&#xff08;讀取端&#xff09;的輸入。從本質上說&#xff0c;管道也是一種文件&#xff0c;但它又和一般的文件有所不同。 具體…