corejava_day1
Java
J2SE(JAVA SE) 桌面應用的開發 corejava
J2EE(JAVA EE) 企業級開發
J2ME(JAVA ME) 手機應用的開發
SDK(software development kit) 軟件開發包 函數庫或者工具等
JDK(java development kit) 是面向開發人員的,java開發工具
JRE(java runtime environment java) 運行環境,是面向應用程序使用者的
注意:JDK安裝後一般都會包含JRE的
API(application program interface)應用程序編程接口
別人開發好的供我們來使用(java)代碼就稱爲API,API都會有一個API說明文檔,讓我們去查閱學習別人寫好的代碼如何來使用
windows下的環境變量的配置
JAVA_HOME: JDK安裝的目錄路徑
C:\Program Files\Java\jdk1.8.0_74
CLASSPATH:類加載時候查找的字節碼路徑
PATH:%JAVA_HOME%\bin;
JDK安裝後的目錄結構:
bin:java的相關命令
java javac jar javadoc javap javah
db:java提供的數據庫
demo/sample:java代碼的一些示例
include:C語言的頭文件等內容
jre:Java的運行環境
lib:Java所用的基本的jar包
JAVA的特點:
簡單性:(相對應C和C++來講)Java不需要程序員操作內存
跨平臺:一次編譯,到處運行(JVM)
多線程:其他語言的多線程一般是系統級別的,Java的多線程是語言級別的
gc垃圾回收器:Java中有一個線程,專門負責JVM中垃圾內存的釋放
垃圾:沒有引用的內存節點
垃圾回收的算法
注意:垃圾回收有自己的算法,我們是不能控制垃圾回收機制的。雖然有和垃圾回收相關的方法:
java.lang.System.gc() java.lang.Runtime.gc(),但是還是無法控制垃圾回收機制
類加載: 雙親委託機制
啓動類加載 $JAVA_HOME/jre/lib
擴展類加載 $JAVA_HOME/jre/lib/ext
本地類加載 classpath Hello.class
JVM
類加載 --> 字節碼驗證 --> JIT運行
字節碼驗證:
代碼要符合JVM的規範
代碼不能破壞計算機的系統或者硬件
棧不能溢出
方法的參數類型要正確
類型轉換要正確
Java類名和文件名的關係
一個Java源文件(.java)中,可以有好多個類(class),但是,最多隻能有一個類(class)被public修飾
如果有一個類被public修飾,那麼這個源文件(.java)的名字就必須和這個被public修飾的類的名字一致。
注意:首字母大寫是編程規範,不是強制要求。
Java文件中搞得三個頂級元素:
package
- 最終會是以文件夾的形式體現出來(有什麼包,就必須有什麼文件夾,運行的時候.class文件必須在這個文件夾下面)
- .java文件中有多個package的時候,用.分割並且結尾用;號結束 例如:(com.briup.test;)
- 包也是Java中類的標識的一部分,確定某一個類是通過包名加類名來唯一確定的。
比如運行Java類的時候:java package.類名(java com.briup.test.HelloPackage)
import
- 導包用的關鍵字
- 如果你想在當前這個類使用其他的類,那麼就必須通過這個關鍵字,把哪個類導入進來
- java.lang包下面的類可以直接使用,不用導入。
- 和當前這個類位於同一個包下面的類,也不需要導入,可以直接使用
class
Java中標識一個類的關鍵字(Java類中可以沒有package,也可以沒有import,但是一定會class)
編寫帶包名的類 HelloPackage.java
package com.briup.test;
public class HelloPackage {
public static void main(String[] ages) {
System.out.println("hello world");
}
}
注意:沒有main方法的類是不能直接運行的
main的形式是固定的(大體是固定,之後會看到改動一些指定地方也是可以的)
public static void main(String[] args) {
......
}
因爲main方法是程序的入口,要直接運行的那個類,類加載之後,JVM沒有在這個類中找到main方法,那麼就會報錯
JVM只會運行java命令後面指定的類中的main方法(如果沒有這個方法就報錯)java com.briup.test.HelloWorld