Java基礎教程:Java包裝類概念及應用

2020-12-26 黑馬程式設計師

概述

Java提供了兩個類型系統,基本類型與引用類型,使用基本類型在於效率,然而很多情況,會創建對象使用,因為對象可以做更多的功能,如果想要我們的基本類型像對象一樣操作,就可以使用基本類型對應的包裝類,如下:

Integer類

Integer類概述包裝一個對象中的原始類型 int 的值Integer類構造方法及靜態方法

示例代碼public class IntegerDemo { public static void main(String[] args) { //public Integer(int value):根據 int 值創建 Integer 對象(過時) Integer i1 = new Integer(100); System.out.println(i1); //public Integer(String s):根據 String 值創建 Integer 對象(過時) Integer i2 = new Integer("100"); //Integer i2 = new Integer("abc"); //NumberFormatException System.out.println(i2); System.out.println("--------"); //public static Integer valueOf(int i):返回表示指定的 int 值的 Integer 實例 Integer i3 = Integer.valueOf(100); System.out.println(i3); //public static Integer valueOf(String s):返回保存指定String值的Integer對象 Integer i4 = Integer.valueOf("100"); System.out.println(i4); }}

裝箱與拆箱

基本類型與對應的包裝類對象之間,來迴轉換的過程稱為」裝箱「與」拆箱「:

裝箱:從基本類型轉換為對應的包裝類對象。拆箱:從包裝類對象轉換為對應的基本類型。用Integer與 int為例:(看懂代碼即可)

基本數值---->包裝對象

Integer i = new Integer(4);//使用構造函數函數

Integer iii = Integer.valueOf(4);//使用包裝類中的valueOf方法

包裝對象---->基本數值

int num = i.intValue();

自動裝箱與自動拆箱

由於我們經常要做基本類型與包裝類之間的轉換,從Java 5(JDK 1.5)開始,基本類型與包裝類的裝箱、拆箱動作可以自動完成。例如:

Integer i = 4;//自動裝箱。相當於Integer i = Integer.valueOf(4);

i = i + 5;//等號右邊:將i對象轉成基本數值(自動拆箱) i.intValue() + 5;

//加法運算完成後,再次裝箱,把基本數值轉成對象。

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

基本類型轉換為String

轉換方式方式一:直接在數字後加一個空字符串方式二:通過String類靜態方法valueOf()示例代碼public class IntegerDemo { public static void main(String[] args) { //int --- String int number = 100; //方式1 String s1 = number + ""; System.out.println(s1); //方式2 //public static String valueOf(int i) String s2 = String.valueOf(number); System.out.println(s2); System.out.println("--------"); }}

String轉換成基本類型

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

public static byte parseByte(String s):將字符串參數轉換為對應的byte基本類型。

public static short parseShort(String s):將字符串參數轉換為對應的short基本類型。

public static int parseInt(String s):將字符串參數轉換為對應的int基本類型。

public static long parseLong(String s):將字符串參數轉換為對應的long基本類型。

public static float parseFloat(String s):將字符串參數轉換為對應的float基本類型。

public static double parseDouble(String s):將字符串參數轉換為對應的double基本類型。

public static boolean parseBoolean(String s):將字符串參數轉換為對應的boolean基本類型。

代碼使用(僅以Integer類的靜態方法parseXxx為例)如:

轉換方式方式一:先將字符串數字轉成Integer,再調用valueOf()方法方式二:通過Integer靜態方法parseInt()進行轉換示例代碼public class IntegerDemo { public static void main(String[] args) { //String --- int String s = "100"; //方式1:String --- Integer --- int Integer i = Integer.valueOf(s); //public int intValue() int x = i.intValue(); System.out.println(x); //方式2 //public static int parseInt(String s) int y = Integer.parseInt(s); System.out.println(y); }}

注意:如果字符串參數的內容無法正確轉換為對應的基本類型,則會拋出java.lang.NumberFormatException異常。

相關焦點

  • java集合詳解合集
    所以的集合類都位於java.util包下,後來為了處理多線程環境下的並發安全問題,java5還在java.util.concurrent包下提供了一些多線程支持的集合類。在學習Java中的集合類的API、編程原理的時候,我們一定要明白,"集合"是一個很古老的數學概念,它遠遠早於Java的出現。
  • Java基礎教程:Java基礎知識之List接口
    接下來,我們一起學習Collection中的常用幾個子類(java.util.List集合、java.util.Set集合)。List接口介紹java.util.List接口繼承自Collection接口,是單列集合的一個重要分支,習慣性地會將實現了List接口的對象稱為List集合。
  • 你必須掌握的 21 個 Java 核心技術!
    對象和實例在這方面,開發者需要了解class和instance的概念以及之間的差別, 這是java面向對象特性的一個基礎。面向對象編程的概念這是一個java的核心概念,對於任何java開發者都需要熟練掌握。Java中很多特性或者說知識點都是和java面向對象編程概念相關的。在我的理解,一個好的開發者不僅僅需要了解這些特性(知識點)本身。
  • JAVA應用可視化診斷工具
    相當於可視化的jstat命令監控區域有PS Eden SpacePS Survivor SpacePS Old SpaceMetaspaceCode CacheCompressed Class Space2.線程監控:相當於可視化的jstack命令JHSDB:基於服務性代理的調試工具(java9
  • 艾編程JAVA基礎教程:雲環境下單一應用服務搭建
    安裝版本:JDK131、JDK 下載的兩種方式1)通過 FTP 將安裝文件上傳:在 JavaSE 的官網:https://www.oracle.com/technetwork/javawget --no-check-certificate --no-cookies --header "Cookie:oraclelicense=accept-securebackup-cookie"https://download.oracle.com/otn-pub/java
  • 開發崗位這麼多,為什麼選Java?你學Java了嗎-開課吧
    提到C++語言,很多人發現在使用過程中最容易出現的錯誤就是內存管理,而java有自動垃圾回收器,不用擔心內存。零基礎學Java作為一門面向對象的高級語言,Java不僅吸收了C++語言的各種優點,還對C++裡諸如多繼承、指針等一些讓用戶難以理解和掌握的概念重新組織和及摒棄,從而形成了Java
  • 《java基礎》整型包裝類之間值得比較
    其實很簡單,java中 == 比較的是地址值。當Integer的值在-128至127之間時,Integer對象是在IntegerCache.cache中產生會復用已有對象。當超過這個範圍時產生的對象是在堆內存中,就不會復用已有的對象。所以用 == 比較就會出現問題。建議大家使用整形包裝類比較時統一都使用equals方法。
  • java如何快速入門?
    相信我,Java是一種程式語言,如果你集中Java的一個知識面首先去專注學習,那麼學習Java還是挺容易的;但是,如果你想一下子把Java的各個應用領域知識都去接觸,試圖花最短的時間去學習完Java,那麼最後的結果可能會令你失望。
  • 詳解Java中包(package)的概念,新手也能看懂,內含實例
    那java項目中也是可以分不同文件夾的。只不過java中類的文件夾不叫文件夾,叫「包名」英文單詞:package,那package還有個意思就是打包的意思,所以你可以理解為這個文件夾,就是打了一個包裹,就跟快遞包裹似的,你買了好多東西,不同商家是不同的包裹,每個包裹放的東西是不同類別的。java中也是這個意思,包中放的基本上都是同一類的東西。
  • java是什麼文件格式?.java文件怎麼打開?
    java是什麼文件?  Java文件是由Sun Microsystems公司於1995年5月推出的Java程序設計語言和Java平臺的總稱。用Java實現的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平臺、動態的Web、Internet計算。從此,Java被廣泛接受並推動了Web的迅速發展,常用的瀏覽器現在均支持Java applet。
  • 使用Java API在Jedis中實現DAO設計模式
    DAO模式被實現為客戶端應用程式和資料庫之間的一層。客戶端應用程式不必依賴基礎資料庫交互API(低級)。Redis資料庫中存儲的數據被建模為Domain對象(POJO類),它將僅具有getter和setter方法,客戶端應用程式僅知道域對象和高級API。
  • 黑馬程式設計師java培訓機構如何?好口碑java培訓機構如何選?
    大大小小的Java培訓機構多如牛毛,幾個人經過簡單的包裝就會成為精英人士混淆視聽,因此想要知道黑馬程式設計師java培訓機構如何?好口碑java培訓機構如何選?我們就要考全面慮。想要知道一家java培訓機構好不好,品牌和實力是最為重要的,實力如何就要看師資力量了,擁有豐富實戰經驗的導師會結合學員過往的工作經歷、學習表現、階段性成績、項目成績等,為學員提供最佳的專業輔導。課程安排方面會凸顯這家java培訓機構的專業,畢竟專注的總歸是專業的,java培訓起來理論必須加實踐,因為最終的目的是打造符合企業需求的java人才。
  • Java內部類新解,你沒有見過的船新版本
    程序運行結果如下:private member variableinvoke outer class private method.public member variable反編譯一下上面的兩個類:# javap -p OuterClass.class Compiled from "OuterClass.java"public
  • java、php、python誰更容易學習呢?
    就市場前景而言,三者都有著廣闊的就業前景,薪資也都很不錯,java、php、python誰更容易學習呢?今天千鋒就從學習路線方面給大家分析一下。如果你選擇學習java,需要經歷四大階段。一階段為java基礎,包括java的基本介紹、數組、面向對象、類、線程、接口、反射等知識;二階段為JavaWeb部分,包括HTML、CSS3、JavaScript、MySQL資料庫、JSP、Ajax、JDBC連接池、jQuery等;三階段為java框架學習,包括Maven、Hibernate、Spring、Spring MVC、MyBatis、WebService、SVN、Activiti等;四階段為
  • 日常疑惑:編程學Java還是學C語言?
    這兩門程式語言都是IT行業的寵兒,Java與和C語言各自的技術特點、應用方向上有所不同,沒有伯仲之分,所以這也讓初學者們覺得很難選:應該選擇哪個做為入門語言呢?從學習的難易度上來說,java語言比C語言要簡單。
  • 私人收藏:這十大java開源庫深得人心!
    ·在java.util中,可以在Java中找到可用的所有集合和數據結構  ·程式設計師可以使用java.io來讀取文件,使用管道,流和其他。  ·java.nio實際上是java.io的替代品,代表了非阻塞I / O,它允許密集使用輸入/輸出操作。
  • 你好, Java !
    把它看作是已經實例化為單例的匿名內部類。事實上,這個類並不是匿名的,它的名字是 Companion,但你可以省略這個名字。看到了嗎?這很簡單。"我很欣賞對象聲明的概念——單例很有用。但從語言中刪除靜態成員是不切實際的。在 Java 中我們使用靜態 Logger 很經典,它只是一個 Logger,所以我們不關心面向對象的純度。它能夠工作,從來沒有任何壞處。因為有時候你必須使用靜態。
  • Java面向對象之final、abstract抽象、和變量生命周期
    只要滿足以下條件就可以考慮把一個類設計成final類:在設計之初就考慮不進入繼承體系的類。出於安全考慮,類的實現細節不允許被拓展和修改。比如:基本數據類型的包裝類就是一個典型的例子。該類不會再被拓展。java裡final修飾的類有很多,比如八大基本數據類型的包裝類(Byte,Character、Short、Integer、Long、Float、Double、Boolean)和String等。
  • Java書架來啦!入門到進階必看書籍推薦
    共覆蓋了java.awt、java.lang、java.io和java.nio、java.sql、java.text、java.util、javax.swing包下絕大部分類和接口。 《瘋狂Java講義》可以算是國人原創必讀經典了,同樣非常適合初學者。講解內容細緻全面,系統通俗,目錄劃分和查找非常方便,就算完全沒有基礎也可以學的沒有什麼壓力。
  • Java基礎面試題簡單總結
    面向對象計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的接口訪問其他對象。多態性:多態性是指允許不同類的對象對同一消息作出響應。多態性包括參數化多態性和包含多態性。