文章目錄
- API
- 字符串
- String
- 概述
- 創建對象
- java的內存模型
- java的常用方法(比較)
- 練習
API
概念: APl(Application ProgrammingInterface): 應用程序編程接口
簡單理解: API就是別人已經寫好的東西,我們不需要自己編寫,直接使用即可。
Java API: 指的就是JDK 中提供的各種功能的java類
這些類將底層的實現封裝了起來,我們不需要關心這些類是如何實現的,只需要學習這些類如何使用即可
API幫助文檔: 幫助開發人員更好的使用API和查詢API的一個工具。
字符串
String
概述
java.lang.String 類代表字符串,Java 程序中的所有字符串文字(例如“abc”)都為此類的對象。
注意點: 字符串的內容是不會發生改變的,它的對象在創建后不能被更改。
總結:
1.String是Java定義好的一個類。定義在java.lang 包中
所以使用的時候不需要導包。
2.Java 程序中的所有字符串文字(例如“三連投幣”)都被實為此類的對象。
3.字符串不可變,它們的值在創建后不能被更改
創建對象
- 直接賦值
String name = “宮水三葉”; - new + 構造方法
package String;public class StringDemo1 {public static void main(String[] args) {//直接賦值的方法獲得一個字符串String s1 = "Hello World";System.out.println(s1);//使用new 的方式來獲取字符串的對象//空參String s2 = new String();System.out.println("@" + s2 + "!");//傳遞一個字符串,根據傳遞的字符串內容再創建一個新的字符串對象String s3 = new String("Hello World");System.out.println(s3);//傳遞一個字符數組,再根據字符數組的內容創建一個字符串對象//需求:將ABC 改為BBC//ABC ---> {'A','B','C'} ---> {'B','B','C'}char [] chs = {'A','B','C','D','E','F','G','H'};String s4 = new String(chs);System.out.println(s4);//傳遞一個字節數組,根據字節數組的內容再創建一個字符串對象//應用場景:以后在網絡中傳輸的其實是字節信息//我們一般要把字節信息進行轉換,轉換成字符串,用到這個構造byte [] bytes = { 97, 98, 99, 100};String s5 = new String(bytes);System.out.println(s5);}
}
java的內存模型
注意:StringTable(串池)在JDK7版本開始從方法區中挪到了堆內存
當使用雙引號直接賦值時,系統會檢查該字符串在串池中是否存在,不存在:創建新的存在:復用
舉例:
只要是new出來的新的變量都會在堆內存開辟一個新的位置出來
java的常用方法(比較)
==號比的到底是什么?
package String;public class StringDemo2 {public static void main(String[] args) {//創建一個字符串對象String s1 = new String("abc");String s2 = "Abc";//==號的比較//基本數據類型比較的是數據值//引用數據類型比較的是地址值System.out.println(s1==s2);//比較字符串對象中的內容是否相等boolean result = s1.equals(s2);System.out.println(result);//比較字符串中內容是否相等,忽略大小寫//忽略大小寫只能忽略英文的大小寫boolean result2 = s1.equalsIgnoreCase("abc");System.out.println(result2);}
}
練習
代碼呈現
package String;import java.util.Scanner;public class StringDemo4 {public static void main(String[] args) {//定義兩個變量記錄正確的用戶名和密碼String rightUsername = "youzi";String rightPassword = "123456";//鍵盤錄入用戶名和密碼Scanner sc = new Scanner(System.in);for (int i = 0; i < 3; i++) {System.out.println("請輸入用戶名: ");String username = sc.next();System.out.println("請輸入密碼");String password = sc.next();//比較if (username.equals(rightUsername) && password.equals(rightPassword)) {System.out.println("用戶登錄成功");break;} else {if (i == 2) {System.out.println("您的賬戶已被鎖定,解鎖請聯系工作人員");} else {System.out.println("用戶登錄失敗,用戶名或密碼錯誤,還剩下" + (2 - i) + "次機會");}}}}
}
運行結果