Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特征。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。
數據類型
數據類型 | 內存空間(1字節=8位) |
---|---|
Boolean | 8位/16位 |
byte | 8位 |
char | 16位 |
short | 16位 |
int | 32位 |
long | 64位 |
float | 32位 |
double | 64位 |
創建字符串String
1、String s = new String({'g','o','o','d'});
字符串操作
str.indexOf("g");// 查找索引位置
輸入: Scanner()
Scanner scan = new Scanner(System.in)
.hasNext() 判斷是否存在下一個輸入,返回bool類型。
.hasNextInt() 判斷下一個輸入是否為Int型,返回bool類型。
.next() 取下一個輸入值,遇到結束符停止(空格鍵、Tab鍵或Enter鍵等)。
.nextLine() 取下一行輸入值,遇到Enter鍵停止,可以獲得空白。
字符切割:split() (1)split表達式,就是一個正則表達式。*** ^ |** 等符號在正則表達式中屬于一種有特殊含義的字符,如果使用此種字符作為分隔符,必須使用轉義符即 ** 加以轉義。 (2)如果使用多個分隔符則需要借助 | 符號,如 "^|@|#",但需要轉義符的仍然要加上分隔符進行處理。
使用一個或多個空格分割字符串
str.split("\\s+");
String 轉換成 int
1). int i = Integer.parseInt([String]);//遇到不能被轉換為整型的字符時,會拋出異常
int 轉換成 String
1.) String s = String.valueOf(i);
Char[] 轉換成 String
String str = String.copyValueOf(charArray)
String 轉換成 Char[]
char[] arr = str.toCharArray()
String 轉換成 Int[]
int[] arr = Arrays.stream(str.split(" "))
數組[]轉list
List<String> list = Arrays.asList(stringArray);
float取整
// 1、向下取整:floor
獲取數組最大值
int max = Arrays.stream(arr).max().getAsInt();
函數迭代示例
// 輸入: 一個整數,當月利潤。
HashMap方法
.put(Object key,Object value)// 添加元素
數組sort排序
1.Array.sort(int[] a) // 直接對數組進行升序排序
list集合sort排序
1、降序排列
倒序輸出
1、list集合:
捕捉異常
try{
數組快速打印
// 打印一維數組
兩個數組間復制
// 直接 = ,則是引用的復制,改變一個,另一個也會變:
Java引用類型
Java 中的“引用”,類似于C 和 C++ 里的“指針”。類、接口類型、數組類型、枚舉類型、注解類型
基本數據類型:在被創建時,在棧上給其劃分一塊內存,將數值直接存儲在棧上。
引用數據類型:在被創建時,首先要在棧上給其引用(句柄)分配一塊內存,而對象的具體信息都存儲在堆內存上,然后由棧上面的引用指向堆中對象的地址。
靜態區、堆區、棧區、文字常量區
靜態區: 保存自動全局變量和 static 變量(包括 static 全局和局部變量)。靜態區的內容在總個程序的生命周期內都存在,由編譯器在編譯的時候分配。 堆區: 一般由程序員分配釋放,由 malloc 系列函數或 new 操作符分配的內存,其生命周期由 free 或 delete 決定。在沒有釋放之前一直存在,直到程序結束,由OS釋放。其特點是使用靈活,空間比較大,但容易出錯 棧區: 由編譯器自動分配釋放,保存局部變量,棧上的內容只在函數的范圍內存在,當函數運行結束,這些內容也會自動被銷毀,其特點是效率高,但空間大小有限 常量區: 常量字符串就是放在這里的。 程序結束后由系統釋放。
權限修飾符
Jsoup(HTML解析器)
繼承關系:Document繼承Element繼承Node。TextNode繼承Node。
Jsoup下載文件
Connection.Response imgRes = Jsoup.connect(str).ignoreContentType(true).execute();
File類
java.io.File類用于表示文件或目錄。
創建File對象:
序號 | 方法描述 |
---|---|
1 | public String getName() 返回由此抽象路徑名表示的文件或目錄的名稱。 |
2 |
public String getParent()****、 返回此抽象路徑名的父路徑名的路徑名字符串,如果此路徑名沒有指定父目錄,則返回 null 。 |
3 |
public File getParentFile() 返回此抽象路徑名的父路徑名的抽象路徑名,如果此路徑名沒有指定父目錄,則返回 null 。 |
4 | public String getPath() 將此抽象路徑名轉換為一個路徑名字符串。 |
5 | public boolean isAbsolute() 測試此抽象路徑名是否為絕對路徑名。 |
6 | public String getAbsolutePath() 返回抽象路徑名的絕對路徑名字符串。 |
7 | public boolean canRead() 測試應用程序是否可以讀取此抽象路徑名表示的文件。 |
8 | public boolean canWrite() 測試應用程序是否可以修改此抽象路徑名表示的文件。 |
9 | public boolean exists() 測試此抽象路徑名表示的文件或目錄是否存在。 |
10 | public boolean isDirectory() 測試此抽象路徑名表示的文件是否是一個目錄。 |
11 | public boolean isFile() 測試此抽象路徑名表示的文件是否是一個標準文件。 |
12 | public long lastModified() 返回此抽象路徑名表示的文件最后一次被修改的時間。 |
13 | public long length() 返回由此抽象路徑名表示的文件的長度。 |
14 | public boolean createNewFile() throws IOException 當且僅當不存在具有此抽象路徑名指定的名稱的文件時,原子地創建由此抽象路徑名指定的一個新的空文件。 |
15 | public boolean delete() 刪除此抽象路徑名表示的文件或目錄。 |
16 | public void deleteOnExit() 在虛擬機終止時,請求刪除此抽象路徑名表示的文件或目錄。 |
17 | public String[] list() 返回由此抽象路徑名所表示的目錄中的文件和目錄的名稱所組成字符串數組。 |
18 | public String[] list(FilenameFilter filter) 返回由包含在目錄中的文件和目錄的名稱所組成的字符串數組,這一目錄是通過滿足指定過濾器的抽象路徑名來表示的。 |
19 | public File[] listFiles() 返回一個抽象路徑名數組,這些路徑名表示此抽象路徑名所表示目錄中的文件。 |
20 | public File[] listFiles(FileFilter filter) 返回表示此抽象路徑名所表示目錄中的文件和目錄的抽象路徑名數組,這些路徑名滿足特定過濾器。 |
21 | public boolean mkdir() 創建此抽象路徑名指定的目錄。 |
22 | public boolean mkdirs() 創建此抽象路徑名指定的目錄,包括創建必需但不存在的父目錄。 |
23 | public boolean renameTo(File dest) 重新命名此抽象路徑名表示的文件。 |
24 | public boolean setLastModified(long time) 設置由此抽象路徑名所指定的文件或目錄的最后一次修改時間。 |
25 | public boolean setReadOnly() 標記此抽象路徑名指定的文件或目錄,以便只可對其進行讀操作。 |
26 | public static File createTempFile(String prefix, String suffix, File directory) throws IOException 在指定目錄中創建一個新的空文件,使用給定的前綴和后綴字符串生成其名稱。 |
27 | public static File createTempFile(String prefix, String suffix) throws IOException 在默認臨時文件目錄中創建一個空文件,使用給定前綴和后綴生成其名稱。 |
28 | public int compareTo(File pathname) 按字母順序比較兩個抽象路徑名。 |
29 | public int compareTo(Object o) 按字母順序比較抽象路徑名與給定對象。 |
30 | public boolean equals(Object obj) 測試此抽象路徑名與給定對象是否相等。 |
31 | public String toString() 返回此抽象路徑名的路徑名字符串。 |
進制轉換
// 10進制轉2進制,返回一個二進制字符串
MQTT
基類 | 介紹 |
---|---|
MqttClient | 同步調用客戶端,使用阻塞方法與MQTT服務器通信 |
MqttAsyncClient | 異步調用客戶端,使用非阻塞方法與MQTT服務器通信,允許操作在后臺運行 |
MqttClientPersistence | 表示持久性數據存儲,用于存儲正在傳輸的出站和入站消息,從而實現向指定的QoS的傳遞。可以使用 MqttClient指定此接口的實現,MqttClient將使用該實現來持久保存QoS為1和2消息 |
MqttConnectOptions | 保存控制客戶端連接到服務器的方式的選項集,包括用戶名、密碼等 |
MqttMessage | MQTT消息,保存應用程序有效負載和指定消息如何傳遞的選項消息 |
日期轉為字符串
LocalDateTime now = LocalDateTime.now();
DateTimeFormatter format = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String nowStr = now.format(format);
字符串轉為日期
String dateStr= "2019-08-01 14:28:58";
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime date= LocalDateTime.parse(dateStr, formatter);
字符串轉json
import com.alibaba.fastjson.JSONObject;
JSONObject jo = JSONObject.parseObject("字符串");
判斷字符串是否為空
TextUtils.isEmpty(str);