日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 第二天,Java复习第二天

發布時間:2024/7/23 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 第二天,Java复习第二天 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.idea里jar包和war的區別

JAR(JAVA Archive 是類的歸檔文件),JAR 文件不僅用于壓縮和發布,而且還用于部署和封裝庫、組件和插件程序,并可被像編譯器和 JVM 這樣的工具直接使用。

簡單來說,jar包就像一個插件而且是打包已經寫好的類,可以將jar包導入自己寫的項目中,也可以直接使用jar包中的類和屬性(jar包一般放在bin目錄中)

WAR(Web application Archive,war包是JavaWeb程序打的包,一個Web應用程序),war包里面包括寫的代碼編譯成的class文件,依賴的包,配置文件,所有的網站頁面,包括html,jsp等等。一個war包可以理解為是一個web項目,里面是項目的所有東西。

部署普通的spring項目用war包就可以,部署springboot項目用jar包就可以,因為springboot內置tomcat

2.JAVA環境配置

JDK(JavaSE Development Kit,java開發工具包)提供了編譯、運行java程序所需的各種工具和資源,包括java編譯器、java運行時環境,以及常用的java類庫等

JRE,(Java Runtime Environment ),java運行時環境。它是運行java程序的必須條件。一般而言,如果只是運行java程序,可以只安裝JRE,無需安裝JDK

3.安裝jdk

2.在 "系統變量" 中設置 3 項屬性,JAVA_HOME、PATH、CLASSPATH(大小寫無所謂),若已存在則點擊"編輯",不存在則點擊"新建"。

(注意:如果使用 1.5 以上版本的 JDK,不用設置 CLASSPATH 環境變量,也可以正常編譯和運行 Java 程序。)

變量名:JAVA_HOME

變量值:C:\Program Files (x86)\Java\jdk1.8.0_91?? ? ? ?// 要根據自己的實際路徑配置

變量名:CLASSPATH

變量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;?? ? ? ? //記得前面有個"."

變量名:Path

變量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;

(注意:在 Windows10 中,Path 變量里是分條顯示的,我們需要將?%JAVA_HOME%\bin; %JAVA_HOME%\jre\bin;?分開添加,否則無法識別:)

測試JDK是否安裝成功

1、"開始"->"運行",鍵入"cmd";

2、鍵入命令:?java -version、java、javac?幾個命令,

jdk 基本包

java.lang ----- 包含了java開發的基礎類和一些基本的方法。其中最重要的類就是java.lang.Object類,它的對象是Java平臺中所有其他類對象擴展層次樹的根,又叫做語言包,基本類型都能在這里找到他的封裝

java.io ----- 通過數據流、序列化和文件系統提供系統輸入和輸出,尤其是文件操作

java.util ----- 包含 collection 框架、遺留的 collection 類、事件模型、日期和時間設施、國際化和各種實用工具類(字符串標記生成器、隨機數生成器和位數組)

java.sql ----- 提供使用 JavaTM 編程語言訪問并處理存儲在數據源(通常是一個關系數據庫)中的數據的 API。此 API 包括一個框架,憑借此框架可以動態地安裝不同驅動程序來訪問不同數據源

JDK的最命令行工具

java: 啟動JVM執行class

javac: Java編譯器

jar: Java打包工具

javadoc: Java文檔生成器

4.JAVA八大基本數據類型

byte,short,long,int(包裝類為Integer),char(包裝類為Character數據類型可以儲存任何字符),boolean(默認值為false),float(浮點數不能用來表示精確的值)double

string 類中的常用方法

length() : 獲取字符串的長度,其實也就是字符個數

charAt(int index) : 獲取指定索引處的字符

indexOf(String str) : 獲取str在字符串對象中第一次出現的索引

substring(int start) : 從start開始截取字符串

String substring(int start,int end) : 從start開始,到end結束截取字符串。包頭不包尾

equals(Object obj) : 比較字符串的內容是否相同

toCharArray() : 把字符串轉換為字符數組

toLowerCase() : 把字符串轉換為小寫字符串

toUpperCase() : 把字符串轉換為大寫字符串

trim():去除字符串兩端空格

字符串比較

public int compareTo(String anotherString)//該方法是對字符串內容按字典順序進行大小比較,通過返回的整數值指明當前字符串與參數字符串的大小關系。若當前對象比參數大則返回正整數,反之返回負整數,相等返回0。

public int compareToIgnore(String anotherString)//與compareTo方法相似,但忽略大小寫。

public boolean equals(Object anotherObject)//比較當前字符串和參數字符串,在兩個字符串相等的時候返回true,否則返回false。

public boolean equalsIgnoreCase(String anotherString)//與equals方法相似,但忽略大小寫。

12.replace(char oldChar, char newChar)//用字符newChar替換當前字符串中所有的oldChar字符,并返回一個新的字符串。

5.==, equals 與 hashCode 的區別與聯系

== : 該操作符生成的是一個boolean結果,它計算的是操作數的值之間的關系

若操作數的類型是基本數據類型,則該關系操作符判斷的是左右兩邊操作數的值是否相等

若操作數的類型是引用數據類型,則該關系操作符判斷的是左右兩邊操作數的內存地址是否相同。也就是說,若此時返回true,則該操作符作用的一定是同一個對象。

equals : Object 的 實例方法,比較兩個對象的content是否相同

equals方法是用來比較兩個對象的引用是否相等,即是否指向同一個對象。

hashCode : Object 的 native方法 , 獲取對象的哈希值,用于確定該對象在哈希表中的索引位置,它實際上是一個int型整數

hashcode是系統用來快速檢索對象而使用

equals方法本意是用來判斷引用的對象是否一致

重寫equals方法和hashcode方法時,equals方法中用到的成員變量也必定會在hashcode方法中用到,只不過前者作為比較項,后者作為生成摘要的信息項,本質上所用到的數據是一樣的,從而保證二者的一致性

6.HashMap和Hashtable的區別和聯系

相同點: 實現原理相同,功能相同,底層都是哈希表結構,查詢速度快,在很多情況下可以互用

不同點: 1、Hashtable是早期提供的接口,HashMap是新版JDK提供的接口。

2、Hashtable繼承Dictionary類,HashMap實現Map接口。

3、Hashtable線程安全,HashMap線程非安全。

4、Hashtable不允許null值,HashMap允許null值。

7.集合和數組

一、數組聲明了它容納的元素的類型,而集合不聲明。

二、數組是靜態的,一個數組實例具有固定的大小,一旦創建了就無法改變容量了。而集合是可以動態擴展容量,可以根據需要動態改變大小,集合提供更多的成員方法,能滿足更多的需求。

三、數組的存放的類型只能是一種(基本類型/引用類型),集合存放的類型可以不是一種(不加泛型時添加的類型是Object)。

四、數組是java語言中內置的數據類型,是線性排列的,執行效率或者類型檢查都是最快的。

8.集合體系結構

Collection

├List (有序集合,允許相同元素和null)

│├LinkedList (非同步,允許相同元素和null,遍歷效率低插入和刪除效率高)

│├ArrayList (非同步,允許相同元素和null,實現了動態大小的數組,遍歷效率高,用的多)

│└Vector(同步,允許相同元素和null,效率低)

│ └Stack(繼承自Vector,實現一個后進先出的堆棧)

└Set (無序集合,不允許相同元素,最多有一個null元素)

|-HashSet(無序集合,不允許相同元素,最多有一個null元素)

Map (沒有實現collection接口,key不能重復,value可以重復,一個key映射一個value)

├Hashtable (實現Map接口,同步,不允許null作為key和value,用自定義的類當作key的話要復寫hashCode和eques方法,)

├HashMap (實現Map接口,非同步,允許null作為key和value,用的多)

└WeakHashMap(實現Map接口)

9.常用集合的分類:

List 接口:元素按進入先后有序保存,可重復

LinkedList 接口實現類, 鏈表, 插入刪除, 沒有同步, 線程不安全

ArrayList 接口實現類, 數組, 隨機訪問, 沒有同步, 線程不安全

Set 接口: 僅接收一次,不可重復,并做內部排序

HashSet 使用hash表(數組)存儲元素

LinkedHashSet 鏈表維護元素的插入次序

TreeSet 底層實現為二叉樹,元素排好序

Map 接口: 鍵值對的集合 (雙列集合)

Hashtable 接口實現類, 同步, 線程安全

HashMap 接口實現類 ,沒有同步, 線程不安全-

TreeMap 紅黑樹對所有的key進行排序

Vector類

Vector非常類似ArrayList,但是Vector是同步的

總結

1.如果涉及到堆棧,隊列等操作,應該考慮用List,對于需要快速插入,刪除元素,應該使用LinkedList,如果需要快速隨機訪問元素,應該使用ArrayList。

2.如果程序在單線程環境中,或者訪問僅僅在一個線程中進行,考慮非同步的類,其效率較高,如果多個線程可能同時操作一個類,應該使用同步的類。

3.要特別注意對哈希表的操作,作為key的對象要正確復寫equals和hashCode方法。

4.盡量返回接口而非實際的類型,如返回List而非ArrayList,這樣如果以后需要將ArrayList換成LinkedList時,客戶端代碼不用改變。這就是針對抽象編程。

總結

以上是生活随笔為你收集整理的java 第二天,Java复习第二天的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。