【java學習路線圖】入門java干貨滿滿

      網友投稿 627 2025-04-02

      java基礎及語法


      JDK=JRE+JAVA開發工具 ?JRE=JVM+JAVA核心類庫(J2SE )

      .java編寫到到運行過程 ?java文件(代碼文件) ?--> ? class文件(字節文件) ? --> ? JVM ?-->執行 ? ? ? ? ? javac ?編譯 ?java 運行

      j2 se關鍵字

      { }( )空格代表方法和判斷條件

      continue(跳出本次),break(終止),if{ }else{ },while(){ },do{ }while( ),for( ; ; )

      函數,數組

      插入排序,希爾排序,選擇排序

      冒泡排序

      for (int j = 0; j < a.length - 1; j++) {

      for (int i = 0; i < a.length - j - 1; i++) {

      if (a[i] > a[i + 1]) {

      int temp = a[i];

      a[i] = a[i + 1];

      a[i + 1] = temp;

      }

      }

      }

      二分查找

      // 上限 中值 下限

      int min, mid, max;

      min = 0;

      max = tmp.length - 1;

      mid =( min + max) / 2;

      while (tmp[mid] != search) {

      if (tmp[mid] < search) {

      min = mid + 1;

      } else if (tmp[mid] > search) {

      max = mid - 1;

      }

      mid = ( min + max) / 2;

      }

      IO流

      createNewFile()

      字節流(亂碼問題),字符流

      輸入流:java.io.InputStream 輸出流:java.io.OutputStream

      final和finally

      final修飾在

      類 :不能繼承

      屬性 :不能賦值

      方法: ?不能重寫

      finally肯定會執行,最后執行 ? try{ ? }catch{ ? }finally { }

      /:除

      %:取余

      ++:自增(在原值的基礎上加一)

      前++ 先增加后操作 int i=0; int result=++i; i為1 result為1

      后++ 先操作后增加 int i=0; int result=i++; i為1 result為0

      運算符== ?和equals()

      StringBuffer中 ? ( == ?和equals() 一樣 ?同為判斷內存地址)

      String中

      == ? ? 判斷內存地址

      和equals() ? 判斷值(String中重寫了equals() 方法)

      基本類型,泛型

      全局變量默認為0

      局部變量需要賦值

      泛型,T指定類型

      單繼承,多實現接口

      extends 繼承

      父構造器有參數 ? ? 子類構造器必須super(5)傳參,且需放在第一行

      super關鍵字作用

      1:主要存在于子類方法中,用于指向子類對象中父類對象。 2:訪問父類的屬性 3:訪問父類的函數 4:訪問父類的構造函數

      重寫方法:方法名,返回類型,參數都一致

      對象流

      實現了Serializable接口

      函數返回類型

      void ?引用類型和非引用類型(八大基本類型)

      類型轉換

      (小轉大)自動轉換和強制轉換

      存放數據

      io流存放

      .properties文件配置

      java面向對象

      面向對象三大特性:封裝,繼承,多態

      抽象,接口,枚舉,包

      集合,多線程,網絡編程(TCP/UDP)

      【java學習路線圖】入門java干貨滿滿

      集合的Collection的使用方法

      接口:是代表集合的抽象數據類型。例如 Collection、List、Set、Map 等。之所以定義多個接口,是為了以不同的方式操作集合對象

      實現(類):是集合接口的具體實現。從本質上講,它們是可重復使用的數據結構,例如:ArrayList、LinkedList、HashSet、HashMap。

      實例化ArrayList();

      HashSet 底層數據結構是哈希表。(無序,唯一) 如何來保證元素唯一性? 1.依賴兩個方法:hashCode()和equals()比對字符串

      差集、并集。

      java泛型,類型代表java類型

      Map函數

      HashMap()

      異常

      finally肯定會執行,最后執行 ? try{ ? }catch{ ? }finally { }

      throw 拋出異常,往上一級拋出

      *集合和數組

      (List,Set,Map鍵值對)

      通過List接口聲明 = 實例化子類

      Collection ├List (有序集合,允許相同元素和null) │├LinkedList (非同步,允許相同元素和null,遍歷效率低插入和刪除效率高) │├ArrayList (非同步,允許相同元素和null,實現了動態大小的數組,遍歷效率高,用的多)

      查詢快 ?增刪慢

      ArrayList初始長度為10,擴容機制1.5倍,old+(old >> 1)初始值加初始值右移一位

      │└Vector(同步,允許相同元素和null,效率低) │ └Stack(繼承自Vector,實現一個后進先出的堆棧) └Set (無序集合,不允許相同元素,最多有一個null元素)**

      |-HashSet(不按存儲順序,不允許相同元素,最多有一個null元素)

      |-TreeSet(不可重復,自定義排序)

      自定義排序需要實現Comparable接口<類名>

      哈希值一致, ?對象未必一致;哈希值不一致 ? , ? 對象 一定不一致

      哈希分組 ?然后通過遍歷組內哈希值再遍歷組內元素

      List ?ls= new ArrayList(); ? //使用

      ls.add("aa")添加集合元素 ? ls.get(0)//獲取指定位置元素

      for (String str : ls) { ?//使用forreach遍歷ArrayList中的元素 ?System.out.print(str+" "); ?}

      ls1.addAll(ls);//把另外一個幾個元素放進去

      ls.indexOf("cc")//用來查找元素位置,查找不到則返回-1

      Map (沒有實現collection接口,key不能重復,value可以重復,一個key映射一個value) ├Hashtable (實現Map接口,同步,不允許null作為key和value,用自定義的類當作key的話要復寫hashCode和eques方法,) ├HashMap (實現Map接口,非同步,允許null作為key和value,用的多) └WeakHashMap(實現Map接口)

      Map提供key到value的映射。一個Map中不能包含相同的key,每個key只能映射一個value。

      Map numbers = new HashMap (); numbers.put(“one”, new Integer(1));

      進程,線程實現*

      關鍵字synchronized

      使用在方法上,避免單獨跑一個進程

      繼承Thread類

      實現Runnable接口,需要重寫run方法,通過start()啟動

      與繼承Thread類區別:Runnable可實現數據共享

      使用匿名內部類->實例化的類Thread再 new Runnable重寫run方法

      eg:搶票系統

      死鎖的互斥同步 (在互斥的基礎上,讓線程擁有先后順序)

      在死鎖進程加入判斷

      使用wait( )方法等待進程,notify( )重新喚醒進程

      抽象類abstract

      接口關鍵字implements

      死鎖一旦發生不能解決。只能避免 避免就是 ?互斥(某個時刻只能進入一個線程) ? synchronzied ?同步 (在互斥的基礎上,讓線程擁有先后順序)

      反射機制,封裝

      封裝:

      私有屬性通過一個公開方法進行訪問,就是封裝

      私有屬性可以通過反射來獲取

      一般步驟:

      *獲取Class對象的三種方式 1.通過類名獲取 ? ? ?類名.class ? ?該方法無法加載類 2.通過對象獲取 ? ? ?對象名.getClass() ? 3.通過全類名獲取 ? ?Class.forName(全類名) ?該方法可以加載類,就是可以加載靜態內容

      *接口和抽象類的區別

      abstract修飾的類-抽象類

      子類繼承抽象父類,必須重寫抽象方法

      extends繼承父類

      創建interface接口類

      通過implements繼承接口,可以多繼承用","隔開

      抽象類可以有構造函數,接口不可以有構造函數 抽象類中可以有普通成員變量,接口中沒有全局普通成員變量,只能有常量 抽象類中的方法可以被static修飾,接口中的方法不可以被static修飾(jdk1.8之前) 抽象類中可以有普通方法和抽象方法,接口中的方法全是抽象方法(jdk1.8之前) 抽象中的方法可以被public,protected等修飾符修飾,接口中的方法全都是public abstract的方法,如果省略修飾符,則默認的也都是public abstract修飾 一個類只能繼承一個抽象類,接口可以被多實現,即一個類只能繼承一個類,可以實現多個接口

      設計模式

      單例模式

      1.都需先 將構造函數私有化

      餓漢式:不管用不用先實例化唯一的對象,消耗內存

      private static ?Test3 test = new Test3();

      懶漢式:用的時候再實例化唯一的對象,在不實用的時候節約內存(懶加載)

      private static ?Test3 test = null;

      synchronized

      工廠模式

      網絡編程

      TCP/IP

      UDP/IP

      Java

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:wps表格怎么制作折線圖(wps表格做折線圖)
      下一篇:無代碼可視化編輯開發平臺(無代碼可視化編輯開發平臺下載)
      相關文章
      亚洲精品国产精品乱码不99| 国产成人亚洲精品91专区手机| 国产自偷亚洲精品页65页| 亚洲国产日韩a在线播放| 久久久国产亚洲精品| 天天爽亚洲中文字幕| 亚洲国产日韩在线成人蜜芽| 亚洲精品白色在线发布| 亚洲欧洲日产v特级毛片| 亚洲av日韩综合一区在线观看| 亚洲精品~无码抽插| 亚洲一区二区三区无码中文字幕| 亚洲综合精品香蕉久久网| 国产成人综合亚洲AV第一页| 亚洲无人区午夜福利码高清完整版| 亚洲色爱图小说专区| 日韩亚洲一区二区三区| 亚洲av鲁丝一区二区三区| 亚洲天堂久久精品| 亚洲最大在线视频| 亚洲精品123区在线观看| 亚洲熟妇AV日韩熟妇在线| 亚洲国产AV一区二区三区四区| 国产精品亚洲lv粉色| www亚洲一级视频com| 亚洲人成网站色在线入口| 国产gv天堂亚洲国产gv刚刚碰| 国产日韩亚洲大尺度高清| 亚洲AV乱码久久精品蜜桃| 亚洲视频免费一区| 亚洲香蕉久久一区二区| 亚洲一线产品二线产品| 国产精品亚洲专一区二区三区| 亚洲精品动漫人成3d在线| 亚洲国产精品一区二区成人片国内| 久久精品国产亚洲av水果派| 亚洲美女色在线欧洲美女| 美女视频黄免费亚洲| 夜色阁亚洲一区二区三区| 区久久AAA片69亚洲| 亚洲尹人九九大色香蕉网站|