一、如何生成jar包:java
在eclipse中,選中要導出內容,右鍵export---->Java---->Jar File程序員
在彈出的框中,選擇要生成的文件路徑,點擊finish數組
二、第三方Jar包:eclipse
Jdk開發商是第一方、程序員做爲用戶是第二方,開源社區、組織或者其餘公司均可以認爲是第三方ide
一旦將第三方的jar包導入到咱們的工程中來,就可使用第三方開發好的全部功能ui
三、導入第三方jar包:編碼
一、在工程下新建一個目錄(專門用於存放第三方jar),命名爲libspa
二、將下載好的第三方jar包,拷貝到lib目錄中code
三、將導入的jar包添加到Build Path中(鼠標右鍵,選擇build path----> add to build path)對象
四、看到奶瓶狀的標記出現,就說明該jar包中的全部類型能夠直接使用了
四、使用第三方jar包,查看原碼:
一、使用鼠標右鍵,選擇Open declaration
二、使用快捷鍵F3
三、使用鍵盤ctrl + 鼠標左鍵
五、關聯源代碼:
Attach Source ---->external File或者Folder---->找到原碼所在的目錄便可
一、Object類是所類型的頂層父類,全部類型的類直接或者間接的父類,全部的類型中都含有Object類中全部的方法。
class Animal{}
class Dog extends Animal{}
二、隨意定義一個類型,不手動顯定義其父類,那麼這個類的父類是Object類
三、Object類的構造方法 Object()
1.能夠本身建立對象
2.讓子類訪問
3.Object類在執行構造方法時,不去訪問本身的父類,由於沒父類了。
四、Object類的經常使用方法
1.getClass()方法
返回當前 對象的運行時類
運行時類:真正建立對象所使用的那個子類類型。
返回值:Class類型的對象。
2.hashCode() 方法
1.根據對象的狀況,生成的一個整數,就是哈希碼值,生成數字的方法 就是hashCode()
2.注意事項
同一個對象屢次調用hashCode方法,返回相同的整數。
3.String toString()
返回該對象的字符串表示。
1.Object類型中,這個方法的實現,全類名+@+哈希碼值的十六進制表示
getClass().getName()+"@"+Integer.toHexString(hashCode())
2.打印對象,默認會調用toString()
3.重寫的原則:返回該對象中的全部的成員變量的值(對象的屬性)
4.boolean equals(Object obj)
指示其餘某個對象是否與此對象「相等」。
Object類中的equals方法比較是兩個對象的地址
若是比較其它內容,須要重寫equals方法。
5.== equals方法的區別
1.兩種都是用於比較數據是否相等。
2.不一樣點:
1.比較內容不一樣:
==能夠比較任意數據類型,既能夠比較基本數據類型,也能夠比較引用數據類型。
equals()只能比較引用數據類型。
2.比較規則不一樣:
==在比較基本數據類型的時候,比較的是數據的值,比較引用數據類型時,比較的是地址值
equals方法在重寫以前,比較是兩個對象的地址,在重寫以後,比較的是本身定的規則。
一、Scanner就是一個掃描器, 能夠掃描指定設備的基本數據和字符串
二、構造方法
Scanner(File source):掃描指定的文件
Scanner(String path):掃描指定的路徑
Scanner(InputStream source):掃描指定的輸入流
System.in屬於InputStream類的對象,默認關聯鍵盤
三、錄入基本數據類型
1. nextByte():獲取一個byte數據
nextShort()
nextInt()
nextLong()
nextFloat()
nextDouble()
nextBoolean()
2.注意事項
1.nextChar()沒有這個方法
2.鍵盤錄入的是數據,不是java代碼,因此float類型的常量不須要加f.
3.一次想錄入多個數據,可使用空格進行分隔
四、錄入字符串
1.next(): 空格來分隔每一個字符串
2.nextLine():換行來分隔字符串
五、Scanner注意事項:
之後儘可能不要交叉使用空格和換行標誌分隔。
六、小問題
問題:當你調用完以空格做爲分隔符的方法以後,再調用一個以換行符爲分隔符的方法時,這個方法不會等待你繼續錄入,而是直接結束程序,若是打印返回的內容,就是一個空字符串。
緣由:
1、鍵盤錄入123以後,其實你錄入的是123+一個換行符,當使用nextInt方法以後,將123這三個字符解析成一個int類型的數字,獲取到內存的變量中,在Scanner對象中,留下了一個換行符,下次再調用nextLine,這個方法是以換行符做爲分隔符,在分隔符前面只剩下了一個空串,將空串返回,因此不須要等待用戶繼續錄入了。
2、鍵盤錄入123以後,其實你錄入的是123+換行符,當使用nextInt方法以後,將123這個數字解析成一個int類型的數字,獲取到內存的變量中,在Scanner對象中,還剩一個換行符,再次調用nextInt方法時,發現只剩一個空串了,沒法解析成一個int類型的數據,只能等待用戶繼續錄入。因此不會出現上述問題。
3、鍵盤錄入abc以後,其實你錄入的是abc+換行符,當你使用nextLine方法以後,將換行符前面的全部數據都解析成一個字符串,所以換行符前面就沒有任何須要解析的數據了,若是再次調用nextLine,只須要到換行符以後尋找,只能繼續等待用戶錄入了。(其實就是nextLine方法一碰到換行符就跳過了)
解決方式:
1、連續兩次調用nextLine,第一次會將空串略過,第二次就會等待用戶錄入
2、建立兩個Scanner對象,新的Scanner對象中沒有上次錄入的數據,是乾淨的,因此不會影響下次的錄入。
3、全部的錄入都以字符串的形式錄入到內存中,而後再進行數據類型之間的轉換
一、String就是一個字符串類型,屬於java.lang包,不須要導包
二、全部的字符串常量("helloworld","abc"),都屬於字符串對象
三、字符串的字面屬於常量,存儲在方法區的常量池中。
四、String類型是一個常量,在建立以後就沒法更改。日常見到的改變是從新賦值新地址
五、由於沒有提供set方法
六、String類型的構造方法
1.String():建立一個空字符串
2.String(String original):建立參數字符串的一個副本(參數字符串在常量池中,構造方法建立的字符串在堆內存中)。
3.String(byte[] bytes) :將一個字節數組轉一個字符串
將咱們不認識的字節數組,轉成了咱們認識的字符串,過程叫解碼。
查詢的是當前平臺默認的編碼表。
4.String(byte[] bytes, int offset, int length)
5.String(char[] value):
6.String(char[] value, int offset, int count)
七、String中經常使用的方法
1.判斷功能
boolean equals(Object anObject) :比較字符串自己
boolean equalsIgnoreCase(String anotherString)
boolean contains(CharSequence s)
boolean startsWith(String prefix)
boolean endsWith(String suffix)
boolean isEmpty()
2.判斷功能練習
模擬用戶登陸:
正確的用戶名是admin,密碼是123
鍵盤錄入用戶名和密碼,一共三次機會,若是錄入錯誤,前兩次提示還有幾回機會,
最後一次提示"帳號已被鎖定"
錄入正確,提示「登陸成功」
import java.util.Scanner; /* * 模擬用戶登陸: 正確用戶名是admin,密碼是123 鍵盤錄入用戶名和密碼,一共有三次機會,若是錄入錯誤,前兩次提示還有幾回機會 最後一次提示「登陸機會已經用完」 錄入正確,提示「登陸成功」 */ public class Demo02 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int count = 3; boolean flag = true; while(flag){ if(count>0) { System.out.println("請輸入用戶名:"); String userName = sc.nextLine(); if(userName.equals("admin")) { System.out.println("請輸入密碼:"); String code = sc.nextLine(); if(code.equals("hao123.com")) { System.out.println("登陸成功"); break; }else { count--; System.out.println("密碼錯誤,還有"+count+"次機會,請從新輸入"); } }else { count--; System.out.println("用戶名錯誤,還有"+count+"次機會,請從新輸入"); } }else { System.out.println("三次機會以用完,是否從新輸入?1:繼續,0:退出"); int a = sc.nextInt(); if(a==1) { count = 3; }else{ break; } } } sc.close(); } }
3.String類型的獲取功能 int length() char charAt(int index) String substring(int beginIndex, int endIndex) int indexOf(String str) "aabbacc" 4.String類型的轉換功能 byte[] getBytes(String charsetName) char[] toCharArray() String toUpperCase() String toLowerCase() String concat(String str) static String valueOf() 5."i lOVe jAva"-->"I Love Java" splite(" ") 6.String類型的其它的方法 String replace(char oldChar, char newChar) String trim() " ab c "-->"abc" //去掉字符串左右兩邊的空格、製表符