Java 基礎本語法java
1.一個 Java 程序能夠認爲是一系列對象的集合,而這些對象經過調用彼此的方法來協同工做。編程
- 對象:對象是類的一個實例,有狀態和行爲。
- 類:類是一個模板,它描述一類對象的行爲和狀態。
- 方法:方法就是行爲,一個類能夠有不少方法。
- 實例變量:每一個對象都有獨特的實例變量,對象的狀態由這些實例變量的值決定。
2.命名規則數組
- 大小寫敏感:Java 大小寫敏感。
- 類名:類名的首字母應該大寫。例如 :MyFirstJavaClass 。
- 方法名:小寫字母開頭。例如:getName.
- 源文件名:必須和類名相同。文件名的後綴爲 .java。(若是文件名和類名不相同則會致使編譯錯誤)
- 主方法入口:Java 程序由 public static void main(String []args) 方法開始執行。
3.標識符大數據
- 字母(A-Z 或者 a-z),美圓符($)、或者下劃線(_)開始
- 首字符以後能夠是字母(A-Z 、a-z、$、_、數字的任何字符組合)
- 關鍵字不能用做標識符
- 標識符大小寫敏感
4.Java基本數據類型spa
變量就是申請內存來存儲值。
內存管理系統根據變量的類型爲變量分配存儲空間,分配的空間只能用來儲存該類型數據。線程
Java 的兩大數據類型:code
- 內置數據類型(byte、short、int、long、float、double、boolean、char)
- 引用數據類型(類class、接口interface、數組)
引用類型的默認值都是null。對象
5.Java 常量blog
常量在程序運行時是不能被修改的。
在 Java 中使用 final 關鍵字來修飾常量繼承
如:final double PI = 3.1415927; //常量一般用大寫字母表示
6.訪問控制修飾符
Java中,可使用訪問控制符來保護對類、變量、方法和構造方法的訪問。
- default (即默認,什麼也不寫): 在同一包內可見,不使用任何修飾符。使用對象:類、接口、變量、方法。
- private : 在同一類內可見。使用對象:變量、方法。 注意:不能修飾類(外部類)
- public : 對全部類可見。使用對象:類、接口、變量、方法
- protected : 對同一包內的類和全部子類可見。使用對象:變量、方法。 注意:不能修飾類(外部類)。
7.非訪問修飾符
爲了實現一些其餘的功能,Java 也提供了許多非訪問修飾符。
- static(靜態) ,用來修飾類方法和類變量。
- final ,用來修飾類、方法和變量,
- final 修飾的類不可以被繼承,
- final 修飾的方法不能被繼承類從新定義,
- final 修飾的變量爲常量,是不可修改的。
- abstract ,用來建立抽象類和抽象方法。
抽象類不能用來實例化對象,聲明抽象類的惟一目的是爲了未來對該類進行擴充。
一個類不能同時被 abstract 和 final 修飾。若是一個類包含抽象方法,那麼該類必定要聲明爲抽象類,不然將出現編譯錯誤。
抽象類能夠包含抽象方法和非抽象方法。
1 abstract class Caravan{
2 private double price;
3 private String model;
4 private String year;
5 public abstract void goFast(); //抽象方法
6 public abstract void changeColor();
7 }
- 抽象方法
抽象方法是一種沒有任何實現的方法,該方法的的具體實現由子類提供。
抽象方法不能被聲明成 final 和 static。
任何繼承抽象類的子類必須實現父類的全部抽象方法,除非該子類也是抽象類。
若是一個類包含若干個抽象方法,那麼該類必須聲明爲抽象類。抽象類能夠不包含抽象方法。
抽象方法的聲明以分號結尾,例如:public abstract sample();。
public abstract class SuperClass{
abstract void m(); //抽象方法
}
class SubClass extends SuperClass{
//實現抽象方法
void m(){
System.out.println("Hello java!");
}
}
- synchronized 和 volatile ,主要用於線程的編程。
- synchronized 關鍵字聲明的方法同一時間只能被一個線程訪問。synchronized 修飾符能夠應用於四個訪問修飾符。
- volatile 修飾的成員變量在每次被線程訪問時,都強制從共享內存中從新讀取該成員變量的值。並且,當成員變量發生變化時,會強制線程將變化值回寫到共享內存。這樣在任什麼時候刻,兩個不一樣的線程老是看到某個成員變量的同一個值。一個 volatile 對象引用多是 null。