2021-01-10大資料1+x培訓
技術標籤:java
第一本書(類、物件、介面)
第一章結束後:
Console的商場(類之間的關係):EXcel代替資料庫)
1.1、方法引數的傳遞
- 按值傳遞(傳遞的是值的拷貝)
public class MethodDemo {
public static void main(String[] args) {
int a=3;
m1(a);
System.out.println("AAAAAA: "+a);
}
/*
區域性變數
*/
public static void m1(int a){
a=5;
System.out.println("CCCCCC: "+a);
}
}
- 按引用傳遞
public class MethodDemo01 {
public static void main(String[] args) {
int a[]={1,2,3};
m1(a);
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
}
public static void m1(int b[]){
b[2]=88;
}
斷點除錯 debug
左鍵插入斷點
開始Debug
讓程式碼開始一步一步執行
計算機中的程式錯誤,為什麼叫bug?
1.2、字串String
教育的本質:見多識廣
程式設計的本質:呼叫方法
字串的常用方法
-
charAt(int index)
-
concat(String str)
-
contains(CharSequence s)
-
endsWith(String suffix)
-
equals(Object anObject)
-
getBytes(String charsetName)
-
indexOf(String str)
-
lastIndexOf(String str)
-
length()
-
matches(String regex)
-
replace(char oldChar, char newChar)
-
split(String regex)
-
startsWith(String prefix)
-
substring(int beginIndex)
-
toString()
-
toLowerCase()
-
toUpperCase()
-
trim()
-
valueOf(float f)
-
字串的特點
不可變
public static void main(String[] args) {
String str="hechi";
String newStr=str.replace('h','H');
System.out.println("替換後的結果:"+newStr);
System.out.println("原本的字串" + str);
}
結果
1.3、StringBuffer和StringBuilder
區別:synchronize
StringBuffer是執行緒安全
StringBuilder是非執行緒安全
N個火車票代售網點,相當於N執行緒
張三在宜州網點買G566車次的第8車廂的F座
李四在金城江區網點買G566次的第8車廂的F座
如果能買到就是非執行緒安全
1.4、類和物件
最重要的是會進行類的抽取
學生選課系統
學生:類,小明:物件
教師:類,李老師:物件
教務處祕書:類 , 小紅祕書:物件
課程:類,課程名、課程號:物件
- 封裝
1.所有屬性private修飾
2.給所有的屬性增加public的setter和getter的方法
- 繼承(程式碼複用)
構造方法、this、super
this:類的當前物件,並不是特指哪個物件
JVM會給類提供一個預設的構造方法
給類的屬性賦值方式
通過SETTER 快捷鍵:Ctrl+Insert 選單中選擇SETTER
通過構造方法 快捷鍵:Ctrl+Insert 選單中選擇constructor
supper表示的是父類的物件
需求:如何讓Student和Teacher的物件都擁有預設的123456的密碼?
第一步:
//新建一個Users父類,寫一個構造方法設定密碼password
public Users(String password) {
this.password = password;
}
第二步:
//在Student類中,建立構造方法,通過使用super關鍵字來設定密碼為123456
public Student(String password) {
super("123456");
}
//在Student類中,建立構造方法,通過使用super關鍵字來設定密碼為123456
public Teacher(String password) {
super("123456");
}
第三步:
public class Test {
public static void main(String[] args) {
Student stu = new Student();
Student stu1=new Student();
System.out.println(stu.getPassword());
System.out.println(stu1.getPassword());
}
}
輸出結果為:123456
123456
重寫:Override(先有繼承,才能重寫)
什麼情況下才需要重寫?當父類的方法滿足不來子類的需求的時候,就要重寫父類的方法
String類重寫了父類的toString方法
學生類:
public class Student extends Users {
private String major;
private String phone;
public Student(String major, String phone) {
super("123456");
this.major = major;
this.phone = phone;
}
public String getMajor() {
return major;
}
public String getPhone() {
return phone;
}
@Override
public String toString() {
return "Student{" +
"major='" + major + '\'' +
", phone='" + phone + '\'' +
'}';
}
}
主類:
public class Test {
public static void main(String[] args) {
Student stu = new Student("電腦科學與技術","18377940962");
Student stu1=new Student("網路工程","1887415615");
System.out.println(stu.getMajor());
System.out.println(stu.getPhone());
System.out.println(stu1.getMajor());
System.out.println(stu1.getPhone());
System.out.println(stu.getPassword());
System.out.println(stu); //方法的重寫
System.out.println(stu1); //方法的重寫
}
}
-
多型
-
介面
-
抽象類
1.5、github的開發模式
-
專案組的成員從master建立分支(branch),每天下班的時候,先提交push到自己的分支,如果程式碼無誤,則申請和master合併
-
每個組的成員fork一份master的程式碼,每天下班的時候,先提交push到自己的倉庫,如果程式碼無誤,則給組長髮宋體pr(pull request)
1.6、git的使用
-
和idea整合使用
-
獨立使用
SSH金鑰
第二本書(異常、集合、I/O、多執行緒、Socket)
區域網內部的聊天程式(I/O、多執行緒、Socket)、傳檔案(單獨傳、群發),redis充當資料庫
交push到自己的分支,如果程式碼無誤,則申請和master合併
- 每個組的成員fork一份master的程式碼,每天下班的時候,先提交push到自己的倉庫,如果程式碼無誤,則給組長髮宋體pr(pull request)
1.6、git的使用
-
和idea整合使用
-
獨立使用
SSH金鑰
第二本書(異常、集合、I/O、多執行緒、Socket)
區域網內部的聊天程式(I/O、多執行緒、Socket)、傳檔案(單獨傳、群發),redis充當資料庫