JAVA基礎

1.基本結構:
public static void main(String[] args) {
權限修飾符、靜態修飾符 返回值類型 方法名 參數
}
2.fload類必須加上F、f否則編譯器會當成double
3.final常量,可以先定義在賦值,但只能賦值一次
4.static
static方法:不依賴于任何對象就可以訪問,故沒有this操作,靜態方法中不可訪問非靜態方法和變量,反之可以。
補充:當然也可以將某個類的實例對象,然后通過該實例對象調用非靜態方法
static變量:不可修飾局部變量,同樣不需要依托于對象(與C語言不同,static不可限制權限),兩個對象對同一個靜態成員變量操作,將會操作內存中的同一個地址
5.String:
字符串常用方法:indexOf()該字符串第一次出現的位置
lastIndexOf()該字符串第一次出現的位置
charAt()指定位置的字符
subString(1,3)截取字符串
trim()去除前導空格和尾部空格
replace(”A”,”B")替換字符串
startsWith()endsWith()是否是這個前綴或者后綴
compareTo()按照字典順序比較兩個字符串,基于Unicode值
例:
String str1 = "test11";
String str2 = "test22";
str2.compareTo(str1)返回“1”,相反“-1”,相同則“0”
split(”,”,3)按照指定字符和次數限制分割字符串
equals()對比兩個對象(必須是地址和內容全部相同)
例:String s1 = new String("jianghong");
String s3 = new String("jianghong");
String s2 = "jianghong";
String s4 = "jianghong";
那么s2=s4,s1!=s3.解釋:new 出來的對象會調用String的構造函數,同時在堆里和對象池里各創建一個對象。但直接賦值會首先在對象池查找是否有相同的字符串,有的話則將地址指向這個字符。
例:
String a = "1";
String b = "2";
String c = "12";
String d = "1"+"2";
String e = a+b;
如果 final a final b 那么c和e‘是否相等
c = d ,c != e ,c=e'
解釋:取決于在編譯期間是否能知道它實際的內容。

6.數組:java.util.Arrays
排序:Arrays.sort(arr)
搜索:Arrays.binarySearch(arr,0,2,5);
冒泡排序、選擇排序、反轉排序(有序)
7.類
extends 繼承與某個類

     class SubClass extends SuperClass{
     //構造方法調用父類構造方法
     public Subclass(String name){
     super (name)
     }
}
implement 實現某個接口(interface支持被繼承,類中支持多接口實現)

//定義了一個接口Flyer

interface Flyer
{
    void fly ();
    int ID = 1;
}
public class Animal extends Person implements Flyer,Runner{
    @Override
    public void fly() {
    }
    int j = Flyer.ID;
}
 構造方法的調用順序為先頂級再父類再自身

8.權限修飾符 java

| 包位置 |private|protected|public
| -------------|-------------| -----|
| 本類 |可見 | 不可見| 不可見 |
| 同包其他類或子類 |不可見 | 可見 | 可見 |
| 其它包的類或者子類 | 不可見 | 不可見 | 可見 |

類的成員不寫訪問修飾時默認為default。默認對于同一個包中的其他類相當于公開(public),對于不是同一個包中的其他類相當于私有(private)。受保護(protected)對子類相當于公開,對不是同一包中的沒有父子關系的類相當于私有
9.java內存回收(對象的銷毀)當超出作用范圍或者被賦為null的時候。不足之處為只能回收由new創建的對象,那么就要寫方法finalize(),調用這個方法,手動將對象銷毀(null)。但是當Java內存爆炸用完的時候

10.關于計算機編碼基礎
原碼:
如果機器字長為n,那么一個數的原碼就是用一個n位的二進制數,其中最高位為符號位:正數為0,負數為1。剩下的n-1位表示概數的絕對值。
例如: X=+101011 , [X]原= 00101011 X=-101011 , [X]原= 10101011
位數不夠的用0補全。
PS:正數的原、反、補碼都一樣:0的原碼跟反碼都有兩個,因為這里0被分為+0和-0。
反碼:
反碼就是在原碼的基礎上,符號位不變其他位按位取反(就是0變1,1變0)就可以了。
例如:X=-101011 , [X]原= 10101011 ,[X]反=11010100
補碼:
補碼也非常的簡單就是在反碼的基礎上按照正常的加法運算加1。
例如:X=-101011 , [X]原= 10101011 ,[X]反=11010100,[X]補=11010101
PS:0的補碼是唯一的,如果機器字長為8那么[0]補=00000000。
移碼:
移碼最簡單了,不管正負數,只要將其補碼的符號位取反即可。
例如:X=-101011 , [X]原= 10101011 ,[X]反=11010100,[X]補=11010101,[X]移=01010101

11.對象類型轉型

     向上轉型:SuperClass super = new SubClass();即,將子類的對象賦值給父類。
例:假設SuperClass有個方法test(SuperClass class),這樣如果根據子類對象的不同在父類的方法中,進行不同的處理,這就是多態的思想。
     向下轉型:將父類對象賦值給子類,可能會出現對象成員的錯誤,需要使用顯示類型轉換(SuperClass)
     instanceof:判斷某個對象是否為某一個類的一個實例

12.抽象類:使用abstract修飾,抽象類不能擁有實例化的對象,但可以通過繼承和多態實現方法。抽象方法本身沒有方法體,沒有實際意義

13.java 中使用import可以指定某個包中的所有類,如:import com.test.jianghong.*,import不僅能導入類,也可以導入靜態成員,如import:static java.lang.Math.max;

14.集合類 map、list、set
迭代器iterator(),

Collection<String> list =new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
Iterator <String> it  = list.iterator();
while (it.hasNext()){
    System.out.println(it.next());
}
    ```
15.I/O輸入輸出
     所有輸入流類都是抽象類InoutStream或Reader的子類。所有輸出都是OutputStream或Writer的子類
     InputStream是用來處理字節的,不適合處理字符文本(字符采用Unicode編碼,雙字節),而Reader則能處理字符流

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class StandardInputOutput {
public static void main(String args[]) {
String s;
// 創建緩沖區閱讀器從鍵盤逐行讀入數據
InputStreamReader ir = new InputStreamReader(System.in);
BufferedReader in = new BufferedReader(ir);
System.out.println("Unix系統: ctrl-d 或 ctrl-c 退出"
+ "\nWindows系統: ctrl-z 退出");
try {
// 讀一行數據,并標準輸出至顯示器
s = in.readLine();
// readLine()方法運行時若發生I/O錯誤,將拋出IOException異常
while (s != null) {
System.out.println("Read: " + s);
s = in.readLine();
}
// 關閉緩沖閱讀器
in.close();
} catch (IOException e) { // Catch any IO exceptions.
e.printStackTrace();
}
}
}

16.class類與java的反射
     通過getClass、getMethods等可以返回java對象的描述信息。如果去類名,類的構造方法,類中的成員等

17.Java中的枚舉類enum,該類可定義枚舉常量,也可以自定構造方法定義帶參數的枚舉類型成員

enum Constants2{
Constants_A("test1"),Constants_B("test2");
private String description;
private Constants2(String description){
this.description = description;

};
private String getDescription(){
    return description;
}

}
public static void main (String []args ){
for (int i = 0; i <Constants2.values().length ; i++) {
out.println("枚舉成員變量" + Constants2.values()[i]+"輸入" + Constants2.values()[i].getDescription());

}

}
補充:枚舉類也可以實現接口
interface d {
public String getDescription();
}
public enum Constant3 implements d{
Constants_A{
public String getDescription(){
return ("test3");
}
}
}

18.泛型類,使用格式為Class<T>,這個類不規定自身類型,在使用的時候自動轉化為需要的類型

public class Tclass <T>{
private T[] array;

public void SetT(T[] array){
    this.array = array;
}
public T[] getT(){
    return array;
}

public static void main(String[] args) {
    Tclass <String >tClass = new Tclass<String >();
    String[] array = {"var1","var2","var3"};
    tClass.SetT(array);
    for (String a: tClass.getT()
         ) {
        System.out.println("數組泛型類 "+a);
    }
    //通配符?先不確定類型,在實際使用的時候再確定類型
    Tclass<? extends List> a = null;
    a = new Tclass<ArrayList>();
    a = new Tclass<LinkedList>();

}

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,106評論 6 542
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,441評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,211評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,736評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,475評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,834評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,829評論 3 446
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,009評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,559評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,306評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,516評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,038評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,728評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,132評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,443評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,249評論 3 399
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,484評論 2 379

推薦閱讀更多精彩內容

  • 在編寫程序的過程中,不了避免的要用到字符串,所以String類的常用方法的用法是必須掌握的。學習一個類的使用方法最...
    Geg_Wuz閱讀 1,287評論 0 4
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,733評論 18 399
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,826評論 18 139
  • Win7下如何打開DOS控制臺? a:開始--所有程序--附件--命令提示符 b:開始--搜索程序和文件--cmd...
    逍遙嘆6閱讀 1,608評論 4 12
  • 《紅樓夢》第六十五回,賈璉在外偷娶尤二姐,枕邊恩愛奉承嬌妻,言,只待她(王熙鳳)一死,便接妳進去。蔣勳老師嘆...
    Xuanmany小牡羊閱讀 253評論 0 0