Java筆記04-核心類庫

Java筆記04-核心類庫

Object類

1.1 常用的包

java.lang包  -該包是Java語言中的核心包,該包中的內容由Java虛擬機自動導入
如:String類,System類等java.util包- 該包是Java語言中的工具包,里面包含了大量的工具類和集合類等java.io包 是輸入輸出包,包括讀寫各種設備java.net包 是網絡編程包,包括各種網絡編程java.sql包 是操作數據庫的所有類和接口

Java程序員在編程時,可以使用大量的類庫,因此,java編程需要記的很多,對編程能力的本身要求不是特別的高.

第三個階段

從這個階段開始,我們不需要自己來寫一些類了

而是要學習系統給我們寫好的一些類了,這部分最好需要隨時來查詢API文檔

Object類

  1. 基本概念
    java.lang.Object類是所有類層次結構的根類,任何類都是該類的直接或間接子類.
    (也驗證了那就話,萬物皆對象)
  2. 常用的方法
    Object() - 使用無參方式構造對象boolean equals(Object obj) - 用于判斷調用對象是否與參數對象相等- 該方法默認比較兩個對象的地址,== 運算符結果相同- 為了使得該方法比較兩個對象的內容,則需要重寫該方法- 若該方法重寫后,則應該重寫hashCode()方法來維護hashCode方法的常規協定int hashCode() - 用于獲取調用對象的哈希碼值(內存地址的編號)- 若調用equals方法的結果相等,則各自調用hashCode方法的結果相同- 若調用equals方法的結果不相等,則各自調用hashCode方法的結果不相同- 為了維護上述的常規協定與equals方法結果保持一致,就需要重寫該方法String toString()方法 - 用于獲取對象的字符串形式- 該方法默認返回的字符串為:包名.類名@哈希碼值的十六進制形式- 為了返回更有意義的數據內容,則需要重寫該方法- 當字符串內容與引用進行連接時,自動調用toString()方法- 當使用print()println()方法打印引用時,或者用+連接時候,調用該方法

equals方法

equals方法用于判斷對象是否"相等"

equals(Object obj)
// 這么定義的好處是,所有的類都能夠作為的參數傳遞進來
// 大不了就形成多態唄!

多態無處不在

boolean equals(Object obj)

要想調用這個方法,這個引用必須是非空的引用,不然會引起空指針異常

自反性: 自個兒跟自個兒比都相等,廢話  
對稱性: y.equals(x)相等 -> x.equals(y)  
傳遞性: x與y等,y與z等,那么x與z等  
一致性: x與y等,x還是與y等  
對于空: x(非空).equals(null)結果為false  

說白了equals就是比較引用類型的地址信息
與 == 運算符等價

包裝類和數學處理類

Person p = new Person();
// 聲明Person類型的引用,指向Person類型的對象
int num = 10;
// 聲明一個int類型的變量num初始值為10
// Java語言是一門純面向對象的編程語言// 對于八種不是對象類型的變量,我們就要想辦法把他們包裝成面向對象的 -->
包裝類概念由于Java語言是一門純面向對象的編程語言,8種基本數據類型聲明的變量并不是對象,為了滿足Java語言的特性就需要對這些變量進行對象化處理,而實現該功能的相關類就叫做包裝類
包裝類的分類int -> java.lang.Integer類char -> java.lang.Character類其他類型對應的包裝類就是首字母變為大寫的

Integer類

基本概念:java.lang.Integer類是int類型的包裝類,里面包含了一個int類型的成員變量.該類有final關鍵字修飾表示不能被繼承
常用方法Integer(int value) - 根據參數指定的整數構造對象Integer(String s) - 根據參數知指定的字符串構造對象該類重寫了equals(), hashCode() toString()方法

包裝類

基本數據類型,使用起來非常方便,但是沒有對應的方法來操作這些數據類型的數據,可以使用一個類,把基本數據類型裝起來,在類中定義一些方法,這個類叫做包裝類,我們可以使用類中的方法來操作這些基本數據類型的數據

裝箱與拆箱

  • 裝箱:
  • 把基本數據類型的數據,包裝到包裝類中(基本數據類型的數據->包裝類)
  • 構造方法:
  • Integer(int value)
  • 靜態方法:
  • 拆箱:
  • 在包裝類中取出基本類型數據(包裝類->基本類型數據)
  • 成員方法:int intValue() 以int 類型返回該Integer的值

基本類型與字符串類型之間的相互轉換

  • 基本類型 -> 字符串(String)
    1. 基本類型的值+"" 最簡單的方法(工作中常用)
    1. 包裝類的靜態方法toString(參數),不是Object類的toString()重載
    1. String類的靜態方法valueOf(參數)
  • static String valueOf(int i) 返回int 參數的字符串表示形式
  • 字符串(String) -> 基本類型
  • 使用包裝類的靜態方法paresXXX(“字符串”);
  •  Integer類:static int parseInt(String s)
    
  •  Double類: static double parseDouble(String s)
    

String轉換成對應的基本數據類型

除了Character類之外,其他所有包裝類都具有parseXXX靜態方法可以將字符串參數轉換為對應的基本類型:

int i = Integer.parseInt(s3);
float ff = Float.parseFloat(s);
long l = Long.parseLong(s);
...

學習集合的目標:

  1. 會使用集合存儲數據
  2. 會遍歷集合,把數據取出來
  3. 掌握每種集合

集合框架的學習方式:

  1. 學習底層:學習頂層接口/抽象類中共性的方法,所有的子類都可以使用

  2. 使用底層:底層不是接口就是抽象類,無法創建對象使用,需要使用底層的子類創建對象使用

容器類數據包含結構

繼承:子類共性抽取,形成父類(接口)

Collection接口List接口Vector集合ArrayList集合LinkedList集合Set接口TreeSet集合HashSet集合(無序)LinkedHashSet集合

無序的集合(存儲和取出元素的順序有可能不一致)

Collection接口

定義的是所有單列集合中共性的方法
所有的單列集合都可以使用共性的方法
沒有帶索引的方法

List接口

1. 有序集合(存儲和取出元素順序相同)
2. 允許存儲重復的元素
3. 有索引,可以使用普通的for循環遍歷

Set接口

1. 不允許存儲重復元素
2. 沒有索引(不能使用普遍for循環遍歷)

Collection接口

  • java.util.Collection
  • 所有單列集合的最頂層的接口,里面定義了所有單列集合共性的方法
  • 任意的單列集合都可以使用Collection接口中的方法
  • 共性的方法
  • public boolean add(E e): 把給定的對象添加到當前集合中
  • public void clear():清空集合中所有的元素
  • public boolean remove(E e):把給定的對象在當前集合中刪除
  • public boolean contains(E e):判斷當前集合中是否包含給定的對象
  • public boolean isEmpty(): 判斷當前集合是否為空.
  • public int size(): 返回集合中元素的個數.
  • public Object[] toArray(): 把集合中的元素,存儲到數組中.

Iterator迭代器

在程序開發中,經常需要遍歷集合中的所有元素.針對這種需求,JDK專門提供了一個接口java.util.Iterator.Iterator接口也是Java集合中的一員,但它與Collection,Map接口有所不同,Collection接口與Map接口主要用于存貯元素,而Iterator主要用于迭代訪問(即遍歷)Collection中的元素,因此Iterator對象也被稱為迭代器.

想要遍歷Collection集合,那么就要獲取該集合迭代器完成迭代操作,下面介紹一下獲取迭代器的方法:

  • public Iterator iterator():獲取集合對應的迭代器,用來遍歷集合中的元素的.
    下面介紹一下迭代的概念:
  • 迭代:即Collection集合元素的通用獲取方式.在取元素之前先要判斷集合中有沒有元素,如果有,就把這個元素取出來,繼續在判斷,如果還有就再取出出來.

一直把集合中的所有元素全部取出.這種取出方式專業術語稱為迭代

Iterator接口的常用方法如下:

  • public E next():返回迭代的下一個元素.
  • public boolean hasNext():如果仍有元素可以迭代,則返回true
  • java.util.Iterator 接口:迭代器(對集合進行遍歷)
  • 有兩個常用的方法
  • boolean hasNext() 如果仍有元素可以迭代,則返回true
  • E next() 返回迭代的下一個元素
  • 取出集合中的下一個元素
  • Iterator 迭代器,是一個接口,我們無法直接使用,需要使用ITerator接口的實現類對象,獲取實現類的方式比較特殊
  • Collection接口中有一個方法,叫iterator(),這個方法返回的就是迭代器的實現類對象
  • Iterator iterator()
  • 返回在此 collection 的元素進行迭代的迭代器

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/455488.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455488.shtml
英文地址,請注明出處:http://en.pswp.cn/news/455488.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Butterknife全方位解析

概述 Butterknife是供職于Square公司的JakeWharton大神開發的開源庫,使用這個庫,在AS中搭配Android ButterKnife Zelezny插件,可以大大提高開發的效率,從此擺脫繁瑣的findViewById(int id),也不用自己手動bind(int id)…

Linux下編譯FFMpeg

環境:RedHat AS4  1。首先獲取ffmpeg  通過svn下載:  從 http://subversion.tigris.org下載SVN客戶端程序。   先裝subversion,確保已經安裝了apr和apr-util,在apache.org網站能下到  wget http://subversion.tigris.or…

論文筆記 Aggregated Residual Transformations for Deep Neural Networks

這篇文章構建了一個基本“Block”,并在此“Block”基礎上引入了一個新的維度“cardinality”(字母“C”在圖、表中表示這一維度)。深度網絡的另外兩個維度分別為depth(層數)、width(width指一個層的channel的數目)。 首…

matlab 歸一化_機器學習中如何用Fscore進行特征選擇(附Matlab代碼)

作者:kervin編輯:阿吉 目前,機器學習在腦科學領域的應用可謂廣泛而深入,不論你是做EEG/ERP研究,還是做MRI研究,都會看到機器學習的身影。機器學習最簡單或者最常用的一個應用方向是分類,…

Java筆記05-Collection、泛型、迭代器

Java筆記05-Collection、泛型、迭代器 【Collection、泛型】 主要內容 Collection集合迭代器增強for泛型 第一章 Collection集合 1.1 集合概述 在前面基礎班我們已經學習過并使用過集合ArrayList ,那么集合到底是什么呢? 集合:集合是java中提供的一種容器&a…

IOS安裝CocoaPods完整流程

作為一個底層系統大菜鳥,又搞過幾年ios來說,安裝一個CocoaPods是一件蛋痛的事~ 說懂又懂,說不懂又不懂. 由于安裝過程比較復雜,步驟較多,而網上教程又比較零散,并且有一些是扯蛋的,所以本篇文章主要從頭到位依據自身安裝經歷記錄每一條終端指令,至于里面的原理和一些概念性的東…

重裝TCP/IP

在Windows XP的網絡組件列表里,Internet 協議 (TCP/IP)的"卸載"按鈕是灰色不可選狀態。這是因為傳輸控制協議/Internet 協議 (TCP/IP) 堆棧是 Microsoft XP/ 2003 的核心組件(TCP/IP協議是Windows XP的默認協議),不能刪除。所以Windows XP不允許卸載TCP/I…

linux 修改時區_教你在Centos8中更改時區

對于許多與系統相關的任務和進程,使用正確的時區是必不可少的。例如,cron守護進程使用系統的時區執行cron作業,日志文件中的時間戳基于同一系統的時區。環 境CentOS 8檢查現在的時區timedatectl是一個命令行實用程序,允許您查看和…

UVA12511 - Virus(DP+最長公共上升子序列)

題目鏈接: https://vjudge.net/problem/UVA-12511 題目大意: 給定兩個序列,求出兩個序列的最長公共上升子序列(嚴格上升)。 解題過程: 比賽的時候沒有做出來,非常咸魚的一場比賽,當時…

Java筆記06-Map集合

Map集合 學習目標 能夠說出Map集合特點使用Map集合添加方法保存數據使用”鍵找值”的方式遍歷Map集合使用”鍵值對”的方式遍歷Map集合能夠使用HashMap存儲自定義鍵值對的數據能夠使用HashMap編寫斗地主洗牌發牌案例 Map集合概述 啥也不用說,Map集合就相當于python中的字典…

理解什么是前后端分離

HTML、CSS、JS。 AJAX或Fetch。 學習一個前端的框架, React或者Vue或者Angularjs2都可以。 學會一個前端的路由框架, 如React-Router或者Vue-Router。 在學會3的基礎上你肯定已經搭建好前端的開發環境了,所有和后端的交互走AJAX或者Fetch…

幀間、幀內像素塊預測

一、像素塊預測 H.264/ AVC標準中的基本預測技術是基于塊,而不是基于對象的。它的編碼器是利用混合的編碼方案來提高編碼效率,這些方案包括高級的預測技術和有效熵編碼技術。在運動預測中它使用不同的塊的大小進行預測,以樹結構的方式來組織…

高性能mysql 第10章 復制

復制功能不僅能夠構建高可用的應用,同時也是高可用性,可擴展性,災難恢復,備份以及數據倉庫等工作的基礎。 mysql支持兩種復制方式:基于語句的復制和基于行的復制。基于語句的復制(也成為邏輯復制&#xff0…

vb6在后臺將窗體保存到圖片_如何將寺庫網多個商品圖片一鍵分類保存到一個目錄...

寺庫網是全球最大的奢侈品網上在線購物平臺,那么我們怎樣可以從寺庫網上一鍵批量采集到多個寶貝商品圖片,并分類保存到電腦呢?今天小編給大家帶來一款專業電商圖片鏈接采集軟件【載圖助手】,它支持平臺高達141個,均可支…

Java筆記07-List、Set、數據結構、Collections

Java筆記07-List、Set、數據結構、Collections 主要內容 數據結構List集合Set集合Collections 第一章 數據結構 2.1 數據結構有什么用? 當你用著java里面的容器類很爽的時候,你有沒有想過,怎么ArrayList就像一個無限擴充的數組&#xff…

Apache安裝問題:configure: error: APR not found . Please read the documentation

參考:http://cuisuqiang.iteye.com/blog/2068794 http://www.cnblogs.com/Anker/p/3355573.html pcre: https://ftp.pcre.org/pub/pcre/ http://www.linuxidc.com/Linux/2012-06/62289.htm 1. 不贊成去卸載httpd的東西。 2. server上可以存在多個apache。一個是rpm&…

浮動與定位

2019獨角獸企業重金招聘Python工程師標準>>> 一.浮動:float:一個元素浮動時,其他內容會"環繞"該元素. 浮動元素的外邊距不會合并浮動的元素不能超出其包含快的內邊界浮動元素彼此會避免重疊浮動元素的頂端不能比之前所有浮動元素或塊級元素的頂端更高如果…

驅動級的自動按鍵_Aqara全自動智能推拉鎖D100,體驗全自動開門的便捷

大家好,我是夢想是個豬,今天為大家帶來的是一篇智能門鎖的使用體驗。前言家里的這張門陸陸續續的換了好幾把智能門鎖了,也體驗了好幾種不同的開鎖方式。最開始開發商給安裝的是一把指紋和把手分離的那種款式,開鎖的時候需要先輸入…

碼率問題

幀率影響的是每幀的額定比特數 我說的幀率是編碼幀率,不是采集幀率。對于一個采集后的序列,MAD 只跟參考幀有關。而編碼幀率與參考幀無關,因此編碼幀率不影響 MAD。 ———————————————————————————————————…

Java筆記08-Map詳解

第一章 Map集合 1.1 概述 現實生活中,我們常會看到這樣的一種集合:IP地址與主機名,身份證號與個人,系統用戶名與系統用戶對象等,這種一一對應的關系,就叫做映射。Java提供了專門的集合類用來存放這種對象…