1. 程式人生 > 實用技巧 >Java筆記

Java筆記

1.Java如何定義變數:
宣告變數:
資料型別 變數名;
賦值
變數名=值;

[final] 資料型別 變數名=值;
int[] arr=new int[長度];
ArrayList<Student> list=new ArrayList<Student>();

HashSet
定義一個儲存String型別的HashSet集合物件
HashSet<String> set=new HashSet<String>();

String str="hell";
String str2=new String("hell");

Student stu1=new Student();

Student stu2=new Student(202001,"tom",23,"男");
2.Java中資料型別:
基本資料型別:
4類8種 byte short int long float double boolean char
​引用資料型別:
​ Object的子類 陣列 集合 String
​ 類型別:String HelloWorld
陣列型別:資料型別[]
int[] Student[] String[]
介面型別: Animal
interface Animal{}
例子:
int a=10;
​ short b=19;
​ float f=1.0f;

​ char c=‘A’;
​ boolean b=true;
​ String str=“hello,word”; 字面量賦值
​ String str1=new String(“hello, word”);
​ class Student{
​ //屬性 全域性變數
​ private String name=null;
​ private int age=0;
​ private String stuId=null;

​ … setXXX getXXX
​}
​GC垃圾回收器
3.識別符號
可以用來表示:變數名 方法名 類名 介面名 常量名….
1.字母或_開頭,允許出現數字
2.不能java中的關鍵字或者保留字class interface final static void super this try for if while else switch case default extends implements …..
String stuName=“tom”;
final String TEXT=“內容”;
4.程式碼定義在哪兒?
程式碼只能出現在方法中;
方法只允許定義在類中;
類出現在包中。
5.包:目錄/資料夾
com.briup.grms
.bean Student Book Animal ….
.utils 工具類 MD5.java ConnectionFactory.java
.web 表現層 與頁面進行互動的程式碼
.service 業務邏輯層 核心
.dao 資料庫操作層 jdbc
package com.base;
6.類: 特徵——》屬性 行為——〉方法

final
Animal
eat() 吃食物
Cat
eat() 吃魚乾
Dog
eat() 吃肉

封裝 繼承
多型:同一類域的不同物件,呼叫相同方法時有多種表現形態。

Animal a=new Animal();
a.eat();//吃食物

編譯時型別 執行時型別
Animal c=new Cat();
c.eat();//吃魚乾
Animal d=new Dog();
d.eat();//吃肉

public void test(Animal a){
a.eat();
}

test();

Cat c=new Cat();
c.eat();

Cat e=new Animal();

static
[修飾符] class 類名{
//類體
//1.屬性 全域性變數 有預設值. null 0 0.0 false ‘’
private String str;
//2.方法 構造器
[修飾符] 返回型別 方法名([引數列表]){
//方法體 編寫程式碼的地方
return “返回型別”;
}
}
7.編寫HelloWorld程式執行
編譯
javac -d bin src/HelloWorld.java
執行
java -cp bin com.test.HelloWorld
類名.靜態方法名([引數]);
HelloWorld.show();
main{
HelloWorld.show();
}
物件.非靜態方法名([引數]);
HelloWorld hw=new HelloWorld();
hw.show();
8.set/get方法
屬性被私有化之後,為了對外提供賦值和取值方法,而產生的。
setXXX方法的作用是給屬性賦值。
getXXX方法的作用是獲取屬性值。
9.toString方法
Object超類中提供的方法,每個引用型別都會繼承下來,如果沒有重寫toString方法,預設使用Object中的方法,則會返回該物件的記憶體地址值。
對於pojo類需要重寫toString方法。
10.構造器
1.如果沒有顯示定義構造器,預設JVM會提供一個無參構造器。
2.如果顯示定義了構造器,就不會在提供無參構造器了。

構造器的作用之一是給屬性賦值,除此之外可以呼叫父類構造器以及返回物件的記憶體地址值。

過載:方法名相同,引數列表(引數型別不同,引數個數不同)不同。
重寫:方法名相同,引數列表相同,異常不能被擴大,範圍不能被縮小。

11.練習:
自定義Book
bookId
bookName
price
set/get
構造器過載
重寫toString
Book測試類
構建三個書本物件
儲存到容器(陣列,集合)中
遍歷容器輸出到控制檯
12.集合
集合的分類
java.util
介面:
Collection
List : 允許重複,記錄元素進入集合的先後順序
Set:不允許重複,不記錄元素進入集合的先後順序
SortedSet Set加排序
Map : 鍵值對 (key,value) key不允許重複
SortedMap Map+加對key排序

資料型別 變數名=new 資料型別();

ArrayList list1=new ArrayList();
LinkedList list2=new LinkedList();

Animal c=new Cat();

List list3=new ArrayList();
List list4=new LinkedList();

實現類:
List:
ArrayList(Vector) 陣列
檢索效率高
插入刪除效率低
LinkedList 連結串列
插入刪除效率高
檢索效率低
Set:單個元素 不重複
Object
toString()
equals()
hashcode()

HashSet 16 0 15 hash散列表
SortedSet --> TreeSet 紅黑樹

Set<String> set1=new HashSet<>()
Set<String> set2=new TreeSet<>()

Map: key-value
HashMap 只對keyHash散列表
SortedMap ----> TreeMap 紅黑樹