Java常用的知识点就20_JAVA中一些需要记录的知识点
原標題:JAVA中一些需要記錄的知識點
的老師今天給大家講java中一些重要的知識點。
JDK與JRE的區別:
JRE是所有JAVA程序運行所需要的環境,任何JAVA程序的運行都依賴于JRE,當前從JAVA官網選擇安裝JAVA即安裝的是JRE。
JDK是為開發人員所提供的工具包,對開發人員來說屬于必備項,一般在JDK本身包含JRE,但是一般JDK還會再安裝一套JRE,這一套JRE被成為公共JRE。
當前的主流編輯器,如eclipse會找到JRE和JDK的位置,當然也可以再進行手工修改。
JAVA所需環境變量說明:
PATH:(必需)指定編譯、運行java程序是所需要的程序所在路徑,一般在jdk安裝目錄(注意是JDK!!!和JRE是不一樣的!!!)下的bin文件夾中。目前常用的設置辦法是先定義一個JAVA_HOME變量,在PATH中引用JAVA_HOME:%JAVA_HOME%/bin;
CLASSPATH:(之前必需,現在非必需)設置Classpath的目的,在于告訴Java執行環境,在哪些目錄下可以找到您所要執行的Java程序(.class文件),現在已經不需要;
JAVA_HOME:(理論上非必需,實際必需)設置一個變量存放java程序運行所需要的程序所在路徑,方便在其他地方進行引用(不用再輸入一長串路徑,直接使用JAVA_HOME變量即可),同時,現在不少軟件也會直接調用JAVA_HOME變量,不設置容易出錯。
1.java主要結構闡述
java中每一個.java文件都是一個類,一個java工程由許許多多的.java文件組成,也就是由java類組成。一般而言一個java類中主要的結構如下:
1.包申明:java類在本工程中屬于哪個包,即在工程中的位置;
2.導入的包:外部庫,工具;
3.公共類體(或接口)定義:類名與java文件的名稱必須相同,類中內容即java文件的主要內容
4.其他:其他類的定義和接口定義。
java項目中,由外至內分別為:source文件夾、包(package)、類(.java,就是上面bb了半天的那個東西),經過編譯后會將編譯后的類(.class)放在與source文件夾同級的bin文件夾中。不同的source floder中的package可以同名,相同的package中的類不能同名(在兩個不同source floder中的相同package中也不行)
2.基本數據類型
基本數據類型8中:整型4種、浮點2種、字符、布爾;
btye最大128-1;short最大32768-1;int包含最大2開頭的10位數;數值計算注意整型數值范圍,記得加轉換符;long數據在賦值時若整數的數值超出int的最大范圍則要在整數后面加上l說明;
浮點型對于float的賦值要在小數后面加f說明;
單純的字符型變量相加(即每個元素都是字符變量(PS.加入整形也是ascii碼相加))等于把各個字符的ascii碼相加;(與字符串的加法運算不同!!!字符和字符串相加得到的是字符串)
3.基礎包裝類
基礎的常用的包裝好的類有7種(一定注意大小寫!!!):String、Integer、Boolean、Byte、Character、Double、Number;
4.類型轉換:
char、int、double等之間可以用強制轉換的方式轉化,如(int)‘a’,(char)25;boolean類型變量無法由強制轉換得到
各個變量與各個類之間的轉換,需要通過調用各個對象的方法來實現。如:整形、字符型向String對象轉換,可以使用String.valueOf();
5.常量賦值:
全局常量初始化時必須賦值;局部常量初始化時可以不賦值,但是只能賦值一次。
6.變量有效范圍:
全局變量分為實例變量和靜態變量(static),靜態變量可以在其他類中使用類名.變量名的方式使用,實例變量只可在本類中使用。
局部變量只在定義變量的代碼塊中有效,即{}兩個大括號之間,從變量申明開始算。
與局部變量同名的全局變量,在局部變量的使用范圍內失效。
7.switch與if elseif的區別
兩者可實現相同的功能,但從邏輯上說,if elseif必須對匹配項前面的每一個項都執行檢查,而switch通過一定的查找辦法去查找匹配項。在需要檢查的項較多時,switch效率更高,switch另一個優勢是代碼清晰,但缺點是難以進行復雜操作。
8.使用foreach循環方式
使用foreach循環方式可以快速的遍歷數組、對象等,具體方式:for(int x:arr){操作},但需要注意foreach形式無法對數據進行寫入
9.String對象常用方法記錄(按個人理解的常用程度排序,參數和具體用法未說明,下同)
length()獲取字符串長度;
equals()判斷字符串的內容是否相同,注意,不能直接使用等號比較,使用等號會比較內存中的位置!!!!!
replace()字符串中的子串替換;
split(),將字符串按給定的符號進行分割,保存在數組中;
toCharArray(),將字符串轉換為字符數組;
trim()去除字符串前后的空格,注意,不對字符串進行更改,而是返回相應副本;
substring()截取字符字串;
toLowerCase(),toUpperCase()進行字符串的大小寫轉換;
indexOf(),lastIndexOf()在字符串中查找子串位置;
charAt()返回字符串中指定位置的字符;
startsWith(),endsWith()判斷字符串的開始和結尾是否為指定字符串;
compareTo(),按字典順序比較字符串;
10.Arrays對象常用方法記錄(按個人理解的常用程度排序,參數和具體用法未說明)
Arrays.fill(),填充數組,可用于數組初始化、賦值;
Arrays.sort(),對數組進行排序;
Arrays.copyOf(),Arrays.copyOfRange對數組進行復制;
11.注意static關鍵詞的使用
具體解析見技術博客:http://www.cnblogs.com/dolphin0520/p/3799052.html
在使用的時候,如要在類外部調用的方法、變量都需要加上static限制符,而帶有static限制符的類(方法)若需要調用其他方法或全局變量,那么被調用的方法和全局變量也必須有static修飾(這是因為非靜態變量必須要創建實例才能被調用)。一般用于不需要創建實例的類(方法),例如用作工具的類。
要區分static與權限修飾符的區別,static的目的是,在不創建實例的情況下也可使用static變量和方法,而權限修飾符則規定了該方法與變量的使用范圍。
12.Java的集合類保存數據說明
Arraylist、HashMap等集合類是java中的一個特色,但在其中只能保存引用型的數據,不能保存基本數據。即:Integer可以但int不行。
13.對于class的權限修飾符說明
對于頂級類(包內部第一層的類)來說,只有public修飾符可用,表示可跨包使用該類,若不用public則默認在該包內可用,一個.java文件中使用public的類至多存在一個。對于頂級類的內部類,其權限修飾符為private、protected、public與默認。
關于內部類的權限問題需要深入研究(比如內部類中存在private變量,需要在外部類的內部使用該變量等情況),此處暫時跳過。
14.判斷一個類的兩個對象是否相等
除了基礎變量,引用變量(對象)不能使用兩個等號==去判斷值是否相等(一個類生成的兩個對象是否相等),需要使用equals方法。但注意的是,一般用戶定義的類的equals方法內部都是使用雙等號判斷的,要實現判斷的效果還需要用戶重載equals。
15.基本變量對應的包裝類中可能常用的方法
Integer
equals(),比較兩個integer對象的值是否相等
byteValue(),intValue(),shortValue(),返回對應類型的值
toString(),將Integer對象轉換為String對象(toBinaryString()、toHexString()、toOctalString()同理)
Integer.valueOf(),將String對象轉換為Integer對象
Integer.parseInt(),將String對象轉換為int變量。
Boolean
Byte
Character
Character.inUpperCase()、Character.inLowerCase(),判斷是否為大寫、小寫字符
Character.toUpperCase()、Character.toLowerCase(),轉換為大寫、小寫字符
toString(),將字符轉化為字符串
Double(Float可以參考Doubel,方法是一樣的)
intValue(),返回整形變量
toString(),返回字符串
Double.valueOf(),將String對象轉換為Double對象
的老師的總結:需要進行基礎類的轉換時,可使用toString()轉換成字符串,再將字符串用各個類的valueOf轉換為需要的類。
16.常用數學計算方法
DecimalFormat類
當中的各個方法對數字進行格式化,得到的是字符串;
Math類
三角函數方法,可進行各類三角函數計算,包括弧度角度互換
指數函數方法,平方、平方根、立方、立方根方法等
取整函數方法,向上、向下取整,最近取整
最大值最小值絕對值
隨機數方法(產生0到1之間的任意double型數值)
Random類
nextInt()返回一個整數、nextLong()返回一個長整型、nextBoolean()返回一個布爾變量、nextFloat()返回一個浮點數
17.關于方法重寫(不同于重載!!!!)
重寫方法時,可以修改方法的修飾符、返回值類型(參數類型、個數不可變),大多數情況下父類中的final方法不可重寫(private final在子類中不可見,可重寫,是比較特殊的情況)
子類方法對父類方法重寫時,子類方法的修飾符必須比父類方法的修飾符權限更大;
子類對父類方法從重寫時,若要修改子類方法中返回值類型,該類型必須是父類中同方法返回值的子類;
18.關于方法重寫與重載的區別
在同一個類中,方法無法重寫,即在一個類中不能存在兩個相同方法名、參數個數、參數類型的方法,在同一個類中,方法可以重載,即一個類中允許多個相同的方法名,不同的參數類型、參數個數的方法存在。方法的重寫涉及到父類、子類至少兩個類,若要重寫,不能修改方法的參數類型和個數,方法的重載只在一個類中發生,若要重載,必須要修改參數類型、個數。所有的父類中的方法都會在子類中被繼承,所以父類與子類中存在兩個方法名相同、參數不同的方法時,可以看作先被繼承,后被重載。
19.抽象類(abstract關鍵字)
抽象類只能被繼承,沒有其他任何功能,而抽象類中的抽象方法在被繼承后必須要進行重寫,抽象方法沒有方法體。若類中含有抽象方法,則該類必定為抽象類。
20.接口
接口(interface)的權限修飾符(待解決),接口中的方法均為public且不含方法體需要繼承后重寫,
先不管原理談應用,接口一般使用public修飾,不加public的接口只能在同包中的不同類中使用(依然是默認的protected),加上public的接口才能跨包使用,但是只有與.java名稱相同的interface才能使用public。而在接口內部,除去static、default方法,其他方法均不能有方法體。
21.對象的轉型
對象轉型分為向上轉型和向下轉型,子類對象可以一直向上轉型(會自動轉型),父類對象的轉型要考慮其是否屬于子類對象才能轉(需要強制轉型)。如:A a = new B();,B為A的子類,則最終a當作A類型的對象,但本質上仍是B類,父類類型的引用可以調用父類中定義的所有屬性和方法,對于只存在與子類中的方法和屬性它就望塵莫及了,即a可以調用B類型中從A類繼承到的方法和屬性,但不能調用B類中獨有的方法和屬性。在方法調用時同理,假設C繼承于B繼承于A,則C類型對象c在調用類中某一方法時,會在可用范圍內(可用范圍參考上一句)先查找以C類型為參數的方法重載版本,若不存在,則向上轉型為B并查找B類型為參數的方法重載版本,直至找到可執行的方法重載版本,若不存在,則無法調用,會報錯。
22.關于類包
在實際開發中,應為所有的類指定類包,包的聲明必須是文件中第一行非注釋代碼,所有類包均為小寫字母構成。導入包時,若使用*來導入包中的所有類,則并不會導入子類,如需要導入子類還需要重新import。使用import static可以導入類當中的靜態成員。
23.關于常量
final定義的常量分類局部常量和全局常量,局部常量在其生命周期內不能重定義,但是需要的話可在每次創建的時候都可以賦新值,全局常量一般使用public static final,在程序運行期間,全局常量的值都不會被改變。
PS:
多態沒能理解透徹,待深入
接口的權限修飾符未能理解透徹,待深入
JDK與JRE的區別:
JRE是所有JAVA程序運行所需要的環境,任何JAVA程序的運行都依賴于JRE,當前從JAVA官網選擇安裝JAVA即安裝的是JRE。
JDK是為開發人員所提供的工具包,對開發人員來說屬于必備項,一般在JDK本身包含JRE,但是一般JDK還會再安裝一套JRE,這一套JRE被成為公共JRE(如圖),JDK需要從oracle的官網下載。
當前的主流編輯器,如eclipse會找到JRE和JDK的位置,當然也可以再進行手工修改。
JAVA所需環境變量說明:
PATH:指定編譯、運行java程序是所需要的程序所在路徑,一般在jdk安裝目錄(注意是JDK!!!和JRE是不一樣的!!!)下的bin文件夾中。目前常用的設置辦法是先定義一個JAVA_HOME變量,在PATH中引用JAVA_HOME:%JAVA_HOME%/bin;
CLASSPATH:設置Classpath的目的,在于告訴Java執行環境,在哪些目錄下可以找到您所要執行的Java程序(.class文件),現在已經不需要;
JAVA_HOME:設置一個變量存放java程序運行所需要的程序所在路徑,方便在其他地方進行引用(不用再輸入一長串路徑,直接使用JAVA_HOME變量即可),同時,現在不少軟件也會直接調用JAVA_HOME變量,不設置容易出錯。
1.java主要結構闡述
java中每一個.java文件都是一個類,一個java工程由許許多多的.java文件組成,也就是由java類組成。一般而言一個java類中主要的結構如下:
1.包申明:java類在本工程中屬于哪個包,即在工程中的位置;
2.導入的包:外部庫,工具;
3.公共類體(或接口)定義:類名與java文件的名稱必須相同,類中內容即java文件的主要內容
4.其他:其他類的定義和接口定義。
java項目中,由外至內分別為:source文件夾、包(package)、類(.java,就是上面bb了半天的那個東西),經過編譯后會將編譯后的類(.class)放在與source文件夾同級的bin文件夾中。不同的source floder中的package可以同名,相同的package中的類不能同名(在兩個不同source floder中的相同package中也不行)
2.基本數據類型
基本數據類型8中:整型4種、浮點2種、字符、布爾;
btye最大128-1;short最大32768-1;int包含最大2開頭的10位數;數值計算注意整型數值范圍,記得加轉換符;long數據在賦值時若整數的數值超出int的最大范圍則要在整數后面加上l說明;
浮點型對于float的賦值要在小數后面加f說明;
單純的字符型變量相加(即每個元素都是字符變量(PS.加入整形也是ascii碼相加))等于把各個字符的ascii碼相加;(與字符串的加法運算不同!!!字符和字符串相加得到的是字符串)
3.基礎包裝類
基礎的常用的包裝好的類有7種:String、Integer、Boolean、Byte、Character、Double、Number;
4.類型轉換:
char、int、double等之間可以用強制轉換的方式轉化,如(int)‘a’,(char)25;boolean類型變量無法由強制轉換得到
各個變量與各個類之間的轉換,需要通過調用各個對象的方法來實現。如:整形、字符型向String對象轉換,可以使用String.valueOf();
5.常量賦值:
全局常量初始化時必須賦值;局部常量初始化時可以不賦值,但是只能賦值一次。
6.變量有效范圍:
全局變量分為實例變量和靜態變量(static),靜態變量可以在其他類中使用類名.變量名的方式使用,實例變量只可在本類中使用。
局部變量只在定義變量的代碼塊中有效,即{}兩個大括號之間,從變量申明開始算。
與局部變量同名的全局變量,在局部變量的使用范圍內失效。
7.switch與if elseif的區別
兩者可實現相同的功能,但從邏輯上說,if elseif必須對匹配項前面的每一個項都執行檢查,而switch通過一定的查找辦法去查找匹配項。在需要檢查的項較多時,switch效率更高,switch另一個優勢是代碼清晰,但缺點是難以進行復雜操作。
8.使用foreach循環方式
使用foreach循環方式可以快速的遍歷數組、對象等,具體方式:for(int x:arr){操作},但需要注意foreach形式無法對數據進行寫入
9.String對象常用方法記錄(按個人理解的常用程度排序,參數和具體用法未說明)
length()獲取字符串長度;
equals()判斷字符串的內容是否相同,注意,不能直接使用等號比較,使用等號會比較內存中的位置!!!!!
replace()字符串中的子串替換;
split(),將字符串按給定的符號進行分割,保存在數組中;
toCharArray(),將字符串轉換為字符數組;
trim()去除字符串前后的空格,注意,不對字符串進行更改,而是返回相應副本;
substring()截取字符字串;
toLowerCase(),toUpperCase()進行字符串的大小寫轉換;
indexOf(),lastIndexOf()在字符串中查找子串位置;
charAt()返回字符串中指定位置的字符;
startsWith(),endsWith()判斷字符串的開始和結尾是否為指定字符串;
compareTo(),按字典順序比較字符串;
10.Arrays對象常用方法記錄(按個人理解的常用程度排序,參數和具體用法未說明)
Arrays.fill(),填充數組,可用于數組初始化、賦值;
Arrays.sort(),對數組進行排序;
Arrays.copyOf(),Arrays.copyOfRange對數組進行復制;
11.注意static關鍵詞的使用
在使用的時候,如要在類外部調用的方法、變量都需要加上static限制符,而帶有static限制符的類(方法)若需要調用其他方法或全局變量,那么被調用的方法和全局變量也必須有static修飾(這是因為非靜態變量必須要創建實例才能被調用)。一般用于不需要創建實例的類(方法),例如用作工具的類。
要區分static與權限修飾符的區別,static的目的是,在不創建實例的情況下也可使用static變量和方法,而權限修飾符則規定了該方法與變量的使用范圍。
12.Java的集合類保存數據說明
Arraylist、HashMap等集合類是java中的一個特色,但在其中只能保存引用型的數據,不能保存基本數據。即:Integer可以但int不行。
13.對于class的權限修飾符說明
對于頂級類(包內部第一層的類)來說,只有public修飾符可用,表示可跨包使用該類,若不用public則默認在該包內可用,一個.java文件中使用public的類至多存在一個。對于頂級類的內部類,其權限修飾符為private、protected、public與默認。
關于內部類的權限問題需要深入研究(比如內部類中存在private變量,需要在外部類的內部使用該變量等情況),此處暫時跳過。
14.判斷一個類的兩個對象是否相等
除了基礎變量,引用變量(對象)不能使用兩個等號==去判斷值是否相等(一個類生成的兩個對象是否相等),需要使用equals方法。但注意的是,一般用戶定義的類的equals方法內部都是使用雙等號判斷的,要實現判斷的效果還需要用戶重載equals。
15.基本變量對應的包裝類中可能常用的方法
Integer
equals(),比較兩個integer對象的值是否相等
byteValue(),intValue(),shortValue(),返回對應類型的值
toString(),將Integer對象轉換為String對象(toBinaryString()、toHexString()、toOctalString()同理)
Integer.valueOf(),將String對象轉換為Integer對象
Integer.parseInt(),將String對象轉換為int變量。
Boolean
Byte
Character
Character.inUpperCase()、Character.inLowerCase(),判斷是否為大寫、小寫字符
Character.toUpperCase()、Character.toLowerCase(),轉換為大寫、小寫字符
toString(),將字符轉化為字符串
Double(Float可以參考Doubel,方法是一樣的)
intValue(),返回整形變量
toString(),返回字符串
Double.valueOf(),將String對象轉換為Double對象
武漢IT培訓的老師給你總結一下:需要進行基礎類的轉換時,可使用toString()轉換成字符串,再將字符串用各個類的valueOf轉換為需要的類。
16.常用數學計算方法
DecimalFormat類
當中的各個方法對數字進行格式化,得到的是字符串;
Math類
三角函數方法,可進行各類三角函數計算,包括弧度角度互換
指數函數方法,平方、平方根、立方、立方根方法等
取整函數方法,向上、向下取整,最近取整
最大值最小值絕對值
隨機數方法(產生0到1之間的任意double型數值)
Random類
nextInt()返回一個整數、nextLong()返回一個長整型、nextBoolean()返回一個布爾變量、nextFloat()返回一個浮點數
17.關于方法重寫
重寫方法時,可以修改方法的修飾符、返回值類型(參數類型、個數不可變),大多數情況下父類中的final方法不可重寫(private final在子類中不可見,可重寫,是比較特殊的情況)
子類方法對父類方法重寫時,子類方法的修飾符必須比父類方法的修飾符權限更大;
子類對父類方法從重寫時,若要修改子類方法中返回值類型,該類型必須是父類中同方法返回值的子類;
18.關于方法重寫與重載的區別
在同一個類中,方法無法重寫,即在一個類中不能存在兩個相同方法名、參數個數、參數類型的方法,在同一個類中,方法可以重載,即一個類中允許多個相同的方法名,不同的參數類型、參數個數的方法存在。方法的重寫涉及到父類、子類至少兩個類,若要重寫,不能修改方法的參數類型和個數,方法的重載只在一個類中發生,若要重載,必須要修改參數類型、個數。所有的父類中的方法都會在子類中被繼承,所以父類與子類中存在兩個方法名相同、參數不同的方法時,可以看作先被繼承,后被重載。
19.抽象類(abstract關鍵字)
抽象類只能被繼承,沒有其他任何功能,而抽象類中的抽象方法在被繼承后必須要進行重寫,抽象方法沒有方法體。若類中含有抽象方法,則該類必定為抽象類。
20.接口
接口(interface)的權限修飾符(待解決),接口中的方法均為public且不含方法體需要繼承后重寫,
先不管原理談應用,接口一般使用public修飾,不加public的接口只能在同包中的不同類中使用(依然是默認的protected),加上public的接口才能跨包使用,但是只有與.java名稱相同的interface才能使用public。而在接口內部,除去static、default方法,其他方法均不能有方法體。
21.對象的轉型
對象轉型分為向上轉型和向下轉型,子類對象可以一直向上轉型(會自動轉型),父類對象的轉型要考慮其是否屬于子類對象才能轉(需要強制轉型)。如:A a = new B();,B為A的子類,則最終a當作A類型的對象,但本質上仍是B類,父類類型的引用可以調用父類中定義的所有屬性和方法,對于只存在與子類中的方法和屬性它就望塵莫及了,即a可以調用B類型中從A類繼承到的方法和屬性,但不能調用B類中獨有的方法和屬性。在方法調用時同理,假設C繼承于B繼承于A,則C類型對象c在調用類中某一方法時,會在可用范圍內(可用范圍參考上一句)先查找以C類型為參數的方法重載版本,若不存在,則向上轉型為B并查找B類型為參數的方法重載版本,直至找到可執行的方法重載版本,若不存在,則無法調用,會報錯。
22.關于類包
在實際開發中,應為所有的類指定類包,包的聲明必須是文件中第一行非注釋代碼,所有類包均為小寫字母構成。導入包時,若使用*來導入包中的所有類,則并不會導入子類,如需要導入子類還需要重新import。使用import static可以導入類當中的靜態成員。
23.關于常量
final定義的常量分類局部常量和全局常量,局部常量在其生命周期內不能重定義,但是需要的話可在每次創建的時候都可以賦新值,全局常量一般使用public static final,在程序運行期間,全局常量的值都不會被改變。
責任編輯:
總結
以上是生活随笔為你收集整理的Java常用的知识点就20_JAVA中一些需要记录的知识点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 堆叠查询_SQL 注入方法
- 下一篇: mysql相交_MySQL相交