好程式設計師Java培訓分享Java基礎知識總結
好程式設計師Java 培訓分享 Java 基礎知識總結
1 , JDK : Java Development Kit , java 的開發和執行環境, java 的開發工具和 jre 。
2 , JRE : Java Runtime Environment , java 程式的執行環境, java 執行的所需的類庫 +JVM(java 虛擬機器 ) 。
3 ,配置環境變數:讓 java jdk\bin 目錄下的工具,可以在任意目錄下執行,原因是,將該工具所在目錄告訴了系統,當使用該工具時,由系統幫我們去找指定的目錄。
環境變數的配置:
1) 永久配置方式: JAVA_HOME=% 安裝路徑 %\Java\jdk
path=%JAVA_HOME%\bin
2) 臨時配置方式: set path=%path%;C:\Program Files\Java\jdk\bin
特點:系統預設先去當前路徑下找要執行的程式,如果沒有,再去path 中設定的路徑下找。
classpath 的配置 :
1) 永久配置方式: classpath=.;c:\;e:\
2) 臨時配置方式: set classpath=.;c:\;e:\
注意:在定義classpath 環境變數時,需要注意的情況
如果沒有定義環境變數classpath , java 啟動 jvm 後,會在當前目錄下查詢要執行的類檔案 ;
如果指定了classpath ,那麼會在指定的目錄下查詢要執行的類檔案。
還會在當前目錄找嗎?兩種情況:
CLASSPATH 是什麼?它的作用是什麼?
它是javac 編譯器的一個環境變數。它的作用與 import 、 package 關鍵字有關。當你寫下 improt java.util.* 時,編譯器面對 import 關鍵字時,就知道你要引入 java.util 這個 package 中的類 ; 但是編譯器如何知道你把這個 package 放在哪裡了呢?所以你首先得告訴編譯器這個 package 的所在位置 ; 如何告訴它呢?就是設定 CLASSPATH 啦 :) 如果 java.util 這個 package 在 c:/jdk/ 目錄下,你得把 c:/jdk/ 這個路徑設定到 CLASSPATH 中去!當編譯器面對 import java.util.* 這個語句時,它先會查詢 CLASSPATH 所指定的目錄,並檢視子目錄 java/util 是否存在,然後找出名稱吻合的已編譯檔案 (.class 檔案 ) 。如果沒有找到就會報錯! CLASSPATH 有點像 c/c++ 編譯器中的 INCLUDE 路徑的設定哦,是不是?當 c/c++ 編譯器遇到 include 這樣的語句,它是如何運作的?哦,其實道理都差不多!搜尋 INCLUDE 路徑,檢視檔案!當你自己開發一個 package 時,然後想要用這個 package 中的類 ; 自然,你也得把這個 package 所在的目錄設定到 CLASSPATH 中去! CLASSPATH 的設定,對 JAVA 的初學者而言是一件棘手的事。所以 Sun 讓 JAVA2 的 JDK 更聰明一些。你會發現,在你安裝之後,即使完全沒有設定 CLASSPATH ,你仍然能夠編譯基本的 JAVA 程式,並且加以執行。
PATH 環境變數
PATH 環境變數。作用是指定命令搜尋路徑,在命令列下面執行命令如 javac 編譯 java 程式時,它會到 PATH 變數所指定的路徑中查詢看是否能找到相應的命令程式。我們需要把 jdk 安裝目錄下的 bin 目錄增加到現有的 PATH 變數中, bin 目錄中包含經常要用到的可執行檔案如 javac/java/javadoc 等待,設定好 PATH 變數後,就可以在任何目錄下執行 javac/java 等工具了。
4 , javac 命令和 java 命令做什麼事情呢?
要知道java 是分兩部分的:一個是編譯,一個是執行。
javac :負責的是編譯的部分,當執行 javac 時,會啟動 java 的編譯器程式。對指定副檔名的 .java 檔案進行編譯。生成了 jvm 可以識別的位元組碼檔案。也就是 class 檔案,也就是 java 的執行程式。
java :負責執行的部分 . 會啟動 jvm. 載入執行時所需的類庫 , 並對 class 檔案進行執行 .
一個檔案要被執行, 必須要有一個執行的起始點 , 這個起始點就是 main 函式 .
標示符:
1) ,數字不可以開頭。
2) ,不可以使用關鍵字。
變數的作用域和生存期:
1. 變數的作用域:作用域從變數定義的位置開始,到該變數所在的那對大括號結束 ;
生命週期:變數從定義的位置開始就在記憶體中活了;
變數到達它所在的作用域的時候就在記憶體中消失了;
資料型別:
1) :基本資料型別: byte 、 short 、 int 、 long 、 float 、 double 、 char 、 boolean
運算子號:
4) 、邏輯運算子。
& | ^ ! && ||
邏輯運算子除了 ! 外都是用於連線兩個boolean 型別表示式。
&: 只有兩邊都為 true 結果是 true 。否則就是 false 。
|: 只要兩邊都為 false 結果是 false ,否則就是 true
^: 異或:和或有點不一樣。
兩邊結果一樣,就為false 。
兩邊結果不一樣,就為true.
& 和 && 區別: & :無論左邊結果是什麼,右邊都參與運算。
&&: 短路與,如果左邊為 false ,那麼右邊不引數與運算。
| 和 || 區別: | :兩邊都運算。
|| :短路或,如果左邊為 true ,那麼右邊不參與運算。
5) 、位運算子 : 用於操作二進位制位的運算子。
& | ^
<< >> >>>( 無符號右移 )
練習:對兩個變數的資料進行互換。不需要第三方變數。
int a = 3,b = 5;-->b = 3,a = 5;
方法一:
a = a + b; a = 8;
b = a - b; b = 3;
a = a - b; a = 5;
方法二:
a = a ^ b;//
b = a ^ b;//b = a ^ b ^ b = a
a = a ^ b;//a = a ^ b ^ a = b;
練習:高效的算出 2*8 = 2<<3;
過載的定義是:在一個類中,如果出現了兩個或者兩個以上的同名函式,只要它們的引數的個數,或者引數的型別不同,即可稱之為該函式過載了。
如何區分過載:當函式同名時,只看引數列表。和返回值型別沒關係。
重寫:父類與子類之間的多型性,對父類的函式進行重新定義。如果在子類中定義某方法與其父類有相同的名稱和引數,我們說該方法被重寫 (Overriding) 。
Java 記憶體管理
Java 記憶體管理:深入 Java 記憶體區域
Java 與 C++ 之間有一堵由記憶體動態分配和垃圾收集技術所圍成的高牆,牆外面的人想進去,牆裡面的人卻想出來。
概述:
對於從事C 和 C++ 程式開發的開發人員來說,在記憶體管理領域,他們既是擁有最高權力的皇帝,又是從事最基礎工作的勞動人民—既擁有每一個物件的 " 所有權 " ,又擔負著每一個物件生命開始到終結的維護責任。
對於Java 程式設計師來說,在虛擬機器的自動記憶體管理機制的幫助下,不再需要為每一個 new 操作去寫配對的 delete/free 程式碼,而且不容易出現記憶體洩漏和記憶體溢位問題,看起來由虛擬機器管理記憶體一切都很美好。不過,也正是因為 Java 程式設計師把記憶體控制的權力交給了 Java 虛擬機器,一旦出現記憶體洩漏和溢位方面的問題,如果不瞭解虛擬機器是怎樣使用記憶體的,那排查錯誤將會成為一項異常艱難的工作。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913864/viewspace-2704140/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 好程式設計師Java培訓分享20個Java程式設計師基礎題程式設計師Java
- 好程式設計師Java培訓分享學習Java需要哪些基礎程式設計師Java
- 好程式設計師Java培訓分享學Java需要什麼基礎?程式設計師Java
- 好程式設計師Java培訓分享JDK工具條知識點程式設計師JavaJDK
- 好程式設計師Python培訓分享Python入門基礎知識程式設計師Python
- 好程式設計師Java培訓分享零基礎快速入門Java程式設計師Java
- 好程式設計師Java培訓分享Java程式設計技巧程式設計師Java
- 好程式設計師Java教程分享Java技術知識點總結程式設計師Java
- 好程式設計師web前端培訓分享CSS基礎知識學習程式設計師Web前端CSS
- 好程式設計師Java培訓分享Java程式設計師技能提升指南程式設計師Java
- 好程式設計師Java培訓分享SpringBoot -YAML程式設計師JavaSpring BootYAML
- 好程式設計師Java培訓分享Java處理異常的幾個小知識程式設計師Java
- 好程式設計師大資料培訓分享Hive基礎知識講解程式設計師大資料Hive
- 好程式設計師Java培訓教程分享MySQL索引最佳化知識梳理程式設計師JavaMySql索引
- 好程式設計師Java培訓分享如何快速入門Java程式設計程式設計師Java
- 好程式設計師web前端培訓分享面試題Session、Cookie基礎知識程式設計師Web前端面試題SessionCookie
- 好程式設計師Java培訓分享Java之反射技術程式設計師Java反射
- 好程式設計師Java培訓分享如何快速入門Java程式設計師Java
- 好程式設計師Java培訓分享Java包是什麼?程式設計師Java
- 好程式設計師Java培訓分享Java多執行緒程式設計師Java執行緒
- 好程式設計師Java培訓分享Java函式式編碼結構程式設計師Java函式
- 好程式設計師Java培訓分享maven-概述程式設計師JavaMaven
- 好程式設計師Java培訓分享BigDecimal的用法程式設計師JavaDecimal
- 好程式設計師Java培訓分享Java程式設計師常用的工具類庫程式設計師Java
- 好程式設計師Java培訓分享零基礎學Java能行嗎 有哪些難點程式設計師Java
- 好程式設計師Java培訓分享Java EE與Java的區別程式設計師Java
- 好程式設計師Java培訓分享學Java程式設計要注意什麼程式設計師Java
- 好程式設計師Java培訓分享Java和HTML的區別?程式設計師JavaHTML
- 好程式設計師Java培訓分享Java物件導向概念解析程式設計師Java物件
- 好程式設計師Java培訓分享Java初學者必讀程式設計師Java
- 好程式設計師Java培訓分享SpringBoot -啟動流程程式設計師JavaSpring Boot
- 好程式設計師Java培訓分享For迴圈詳解程式設計師Java
- 好程式設計師Java培訓分享Spring Ioc的原理程式設計師JavaSpring
- 好程式設計師Java培訓分享SpringBoot入門篇程式設計師JavaSpring Boot
- 好程式設計師Web前端培訓入門之JS基礎知識梳理彙總程式設計師Web前端JS
- 好程式設計師Java培訓分享本地快取如何設計程式設計師Java快取
- 好程式設計師web前端培訓分享JavaScript相關知識程式設計師Web前端JavaScript
- 好程式設計師Python培訓分享基礎入門Django程式設計師PythonDjango