大家可以關註作者的賬號,關註從零開始學Java筆記文集。也可以根據目錄前往作者的博客園博客進行學習。本片文件將基於黑馬程式員就業班視頻進行學習以及資料的分享,並記錄筆記和自己的看法。歡迎大家一起學習和討論。 "【從零開始學Java筆記】目錄" Java本身為我們提供了很多已經封裝好的API,在開發中 ...
大家可以關註作者的賬號,關註從零開始學Java筆記文集。也可以根據目錄前往作者的博客園博客進行學習。本片文件將基於黑馬程式員就業班視頻進行學習以及資料的分享,並記錄筆記和自己的看法。歡迎大家一起學習和討論。
【從零開始學Java筆記】目錄
Java本身為我們提供了很多已經封裝好的API,在開發中直接調用即可,大大的提高了開發的效率。在本節主要會教大家如何查閱和使用API,以及一些常用的API
鏈接:https://pan.baidu.com/s/1fwlb0ilG7DEJwSnfCjSurg
提取碼:kt54
這是API文檔
Scanner類
就以Scanner類為例,交大家釣魚的方法
第一步:下載完成後打開API文檔
第二步:在索引處,輸入你想學習的類或者方法
第三步:點擊Scanner類會出個對話框,點第一個
第四步:進入查看你需要的內容
1:看包
java.lang包下的類在使用的時候是不需要導包的,可以看出Scanner類是在java.util包下,所以使用的時候需要導包
import java.util.Scanner;
2:看類的描述
一個可以使用正則表達式來解析基本類型和字元串的簡單文本掃描器。
以下代碼使用戶能夠從 System.in 中讀取一個數:
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
3:看構造方法
Scanner(InputStream source) : 構造一個新的 Scanner,它生成的值是從指定的輸入流掃描的。
Scanner sc = new Scanner(System.in);
4:看成員方法
String nextLine() :此掃描器執行當前行,並返回跳過的輸入信息。
String s = sc.nextLine();
調用方法:
看返回值類型:人家返回什麼類型,你就用什麼類型接收
看方法名:名字不要寫錯了
看形式參數:人家要幾個參數,你就給幾個,人家要什麼數據類型的,你就給什麼數據類型的
5:後期還需要主要這個類的子父類,介面,以及方法是否是抽象,靜態等
實例:
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.println("請輸入:");
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
System.out.println("------------------");
System.out.println(s);
}
}
輸出結果
請輸入:
123
------------------
123
String字元串類
由多個字元組成的一串數據,字元串其本質是一個字元數組
構造方法
String(String original) :把字元串數據封裝成字元串對象
String(char[] value) :把字元數組的數據封裝成字元串對象
String(char[] value, int index, int count ) :把字元數組中的一部分數據封裝成字元串對象
public class StringDemo {
public static void main(String[] args) {
// 方式1
// String(String original) :把字元串數據封裝成字元串對象
String s1 = new String("hello");
System.out.println();
System.out.println("s1: " + s1);
System.out.println("---------");
// 方式2
// String(char[] value): 把字元數組的數據封裝成字元串對象
char[] chs = { 'h', 'e', 'l', 'l', 'o' };
String s2 = new String(chs);
System.out.println("s2:" + s2);
System.out.println("--------");
// 方式3
// String(char[] value, int index, int. count ) :把字元數組中的一部分數據封裝成字元串對象
String s3 = new String(chs, 0, chs.length);
String s4 = new String(chs, 1, 3);
System.out.println("s3:" + s3);
System.out.println("s4:" + s4);
}
}
輸出結果
s1: hello
---------
s2:hello
--------
s3:hello
s4:ell
成員方法
都很簡單,大家可以自己去嘗試。
首先介紹一個概念Object :是類層次結構中的根類,所有的類都直接或者間接的繼承自該類。
如果一個方法的形式參數是0bject,那麼這裡我們就可以傳遞它的任意的子類對象。
String類的判斷功能
boolean equals(Object obj) :比較字元串的內容是否相同
boolean equalsIgnoreCase(String str) :比較字元串的內容是否相同,忽略大小寫
boolean startsWith(String str) :判斷字元串對象是否以指定的str開頭
boolean endsWith(String str) :判斷字元串對象是否以指定的str結尾
String類的獲取功能
int length() :獲取字元串的長度,其實也就是字元個數
char charAt(int index) :獲取指定索引處的字元
int indexOf(String str) :獲取str在字元串對象中第一次出現的索引
String substring(int start):從start開始截取字元串
String substring(int start, int end):從start開始, 到end結束截取字元串
String類的轉換功能
char[] toCharArray( ) :把字元串轉換為字元數組
String tolowerCase() :把字元串轉換為小寫字元串
String toUpperCase() :把字元串轉換為大寫字元串
String類的其他功能
String trim():去除字元串兩端空格
String[] split(String str):按照指定符號分割字元串
StringBuilder類
我們如果對字元串進行拼接操作,每次拼接,都會構建一個新的String對象,既耗時,又浪費空間。而StringBuilder就可以解決這個問題。但其實StringBuilder類也不常用,以後會介紹一個更方便,更符合面向對象思想的集合類AarryList類,所以StringBuilder類,大家瞭解一下即可。
object類
String toString() : 返回該對像的字元串表示
return getClass().getName() + "@" + Integer.toHexString(hashCode());
- getClass():返回一個位元組碼對象
Integer.toHexString():返回指定參數的十六進位字元串形式
hashCode():返回該對象的哈希碼值(內部地址)
public class ObjectDemo {
public static void main(String[] args) {
People s = new People();
s.name = "曹操";
s.age = 44;
System.out.println(s.toString());
System.out.println(s);//輸出一個對象,預設輸出toString方法
}
}
class People {
String name;
int age;
@Override
public String toString() {
return "People [name=" + name + ", age=" + age + "]";
}
}
輸出結果
People [name=曹操, age=44]
People [name=曹操, age=44]
boolean equals(Object obi ):使用==來比較兩個對象是否相等,則比較地址值是否相等
重寫此方法使方法更有效,目的就是比較對象的內容而不是地址值
public boolean equals(Object obj) {
//提高效率,如果是同一個對象,地址值一樣,不需要比較
if (this == obj)
return true;
//如果傳參是空,不需要比較
if (obj == null)
return false;
//提高健壯性,如果傳參不是一個類型,即class類不一樣不需要比較
if (getClass() != obj.getClass())
return false;
//向下轉型
People other = (People) obj;
//判斷對象所有屬性是不是相同
if (age != other.age)
return false;
if (name == null) {
if (other.name != null)
return false;
} else if (!name.equals(other.name))
return false;
return true;
}
System類
System:包含一些有用的類欄位和方法。它不能被實例化
static void arraycopx.(Object src, int srcPos, object dest, int destPos, int length)
static long currentTimeMillis()
static void exit(int status)
public class SystemDemo {
public static void main(String[] args) {
// 想測試那個方法就可以取消註釋
// method();
// method2();
// method3();
}
private static void method3() {
//static void exit(int status) :終止虛擬機
for (int i = 0; i < 100000; i++) {
System.out.println(i);
if(i == 100) {
System.exit(0);
}
}
}
private static void method2() {
/*
* static long currentTimeMillis() :以毫秒值返回當前系統時間
* 這個毫秒的時間是相對時間,相對於1970-1-1 00:00:00 : 0
* 1970-1-1 00:00:01 : 1000
* 1970-1-1 00:01:00: 1000 * 60
* 1970-1-1 01:00:00: 1000 * 60 * 60
* 1000毫秒 = 1秒
*
*/
//System.out.println(System.currentTimeMillis());
long start = System.currentTimeMillis();
for (int i = 0; i < 100000; i++) {
System.out.println(i);
}
long end = System.currentTimeMillis();
System.out.println(end - start);
}
private static void method() {
/*
* static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
* 複製數組
* 參數1:源數組
* 參數2:源數組的起始索引位置
* 參數3:目標數組
* 參數4:目標數組的起始索引位置
* 參數5:指定接受的元素個數
*/
int[] src = {1,2,3,4,5};
int[] dest = new int[5];
System.arraycopy(src, 0, dest, 0, 5);
for (int i = 0; i < dest.length; i++) {
System.out.print(dest[i]);
}
}
}
Date類、SimpleFormat類和Calender類
這三個類都是和系統時間有關的,有興趣的可以瞭解一下