hello Java

初識Java–part1

關鍵字: JDK,JRE,JVM三者作用以及三者聯繫,解釋Java爲什麼一次編譯到處執行,用windows下的powershell執行notepad中代碼的流程及常見問題處理方法,馮諾依曼體系以及其與哈佛體系的區別
JDK (Java Development Kit)Java開發工具包 集成了JRE和其他一些開發的工具
JRE (Java Runtime Environment)Java運行時環境 包含JVM的標準實現和一些Java基本類庫
JVM (Java Virtual Machine) Java虛擬機 是Java能夠跨平臺運行的核心
Q : Java爲什麼可以一次編譯到處執行?
雖然不同操作系統的API(Application Programming Interface)不同,但是Java中引入了字節碼的概念,而JVM只能識別字節碼並將其解釋到系統的API調用,針對不同的操作系統有不同的JVM實現,在不同平臺上實現某功能,其代碼和生成的字節碼都是唯一的,不同操作系統的JVM實現上會映射到不同操作系統的API調用,這使得Java可以一次編譯到處執行,也就是說並不是Java能夠跨平臺,而是它的JVM能夠跨平臺
在這裏插入圖片描述

public class hl { // public 公有的  是一個關鍵字, class 用來定義類(類是結構體的高配版), hl 跟在class後面,是類名,類名後面的{}內叫類體,會包含一些屬性和方法
	public static void main(String[] args){//  static 靜態的(Java中的main函數前都跟static),String[] args 定義字符串數組,c中定義數組都是 int arr[10] ,而Java中int [] arr,String 表示該數組爲字符串類型
		System.out.println("hello world");//"hello world"字符串,但是不存在像C語言中一樣以\0結尾 
	}
}

在Windows Powershell(在代碼所在文件夾中shift+左鍵打開)中執行結果
在這裏插入圖片描述
但是如果加了中文註釋編譯就會出現錯誤,如下圖:
在這裏插入圖片描述
在Notepad++中編寫Java代碼加中文註釋後會編譯會提示亂碼,如上圖,因爲notepad++上面註釋默認是UTF-8(LINUX)編碼,而運行Windows上解碼默認是GBK(windows的編碼)
所以編譯時將指令javac 文件名.java 改爲 javac -encoding UTF-8 文件名.java即可

  • javac之後會發現代碼所在文件夾多了一個.class文件,一個class對應一個.class字節碼文件(二進制文件)

  • 類只有使用到纔會被調用

  • java 裏面求數組長度 數組名.length

  • java 文件名 後面如果加東西的話 這些東西就叫命令行參數,存儲在數組中,遍歷的時候會打印出來

public class hl {// public 公有的  是一個關鍵字
	public static void main(String[] args){
			for(int i = 0;i < args.length;i++) {
			System.out.println(args[i]);
		}
	}
}

在這裏插入圖片描述

  • import 的作用相當於c語言裏面的include 引入頭文件
  • 馮諾依曼體系(指令和數據放在同一個存儲器) 五部分組成 內存(M.M)控制器(CU)運算器(ALU) 輸入設備 輸出設備 CPU由控制器和運算器組成
    在這裏插入圖片描述
  • 哈佛結構 指令和數據分別放在兩個存儲器
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章